.
This commit is contained in:
+9
-2
@@ -916,7 +916,7 @@ impl Publisher {
|
||||
let subject_column = table::column("Subject", |triple: TripleRef| {
|
||||
let curie = if let NamedOrBlankNodeRef::NamedNode(subject) = triple.subject {
|
||||
Some(self.curie_helper
|
||||
.abbreviate(None, subject.as_str())
|
||||
.abbreviate(Some(self.document.origin().as_str()), subject.as_str())
|
||||
.unwrap_or_else(|| subject.as_str().to_string()))
|
||||
} else {
|
||||
None
|
||||
@@ -942,7 +942,14 @@ impl Publisher {
|
||||
});
|
||||
|
||||
let object_column = table::column("Object", |triple: TripleRef| {
|
||||
text(triple.object.to_string())
|
||||
let displayed_text = match triple.object {
|
||||
TermRef::NamedNode(node) => {
|
||||
self.curie_helper.abbreviate(Some(self.document.origin().as_str()), node.as_str())
|
||||
}
|
||||
_ => None
|
||||
}.unwrap_or(triple.object.to_string());
|
||||
|
||||
text(displayed_text)
|
||||
});
|
||||
Some(table(
|
||||
[subject_column, predicate_column, object_column],
|
||||
|
||||
+2
-2
@@ -27,7 +27,7 @@ use tracing_subscriber::{EnvFilter, fmt};
|
||||
use url::Url;
|
||||
use gl_graph::indexer::Indexer;
|
||||
use gl_graph::{language, CurieHelper, vocab};
|
||||
use gl_graph::ontology::OntologyBuilder;
|
||||
use gl_graph::ontology::{OntologyBuilder, ResourceSelector};
|
||||
use gl_inference::proto::ontology_client::OntologyClient;
|
||||
use gl_inference::proto::OntologyQueryRequest;
|
||||
|
||||
@@ -111,7 +111,7 @@ fn main() -> color_eyre::Result<()> {
|
||||
let mut client = OntologyBuilder::from_string("http://[::1]:3000", language::ENGLISH_OR_UNTAGGED.clone())?
|
||||
.connect()
|
||||
.await?;
|
||||
let resource_descriptions = client.resource_descriptions_from_classes([
|
||||
let resource_descriptions = client.resource_descriptions(ResourceSelector::Classes, [
|
||||
vocab::rdf::PROPERTY,
|
||||
vocab::rdfs::CLASS,
|
||||
vocab::skos::CONCEPT,
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
use iced::Task;
|
||||
use oxigraph::model::{Graph, NamedNode};
|
||||
use gl_graph::ontology::{ConnectedOntology, OntologyBuilder};
|
||||
use gl_graph::ontology::{ConnectedOntology, OntologyBuilder, ResourceSelector};
|
||||
use gl_graph::vocab;
|
||||
use crate::app::Message;
|
||||
|
||||
pub(crate) fn connect_to_ontology_service(builder: OntologyBuilder) -> Task<Message> {
|
||||
@@ -14,16 +15,19 @@ pub(crate) fn connect_to_ontology_service(builder: OntologyBuilder) -> Task<Mess
|
||||
|
||||
pub(crate) fn lookup_resource_description(mut ontology: ConnectedOntology, subject: NamedNode) -> Task<Message> {
|
||||
let subject_clone = subject.clone();
|
||||
Task::perform(async move { ontology.resource_description_from_subject(subject_clone).await }, |result| {
|
||||
Task::perform(async move { ontology.resource_descriptions(ResourceSelector::Subjects, vec![subject_clone.as_ref()]).await }, |result| {
|
||||
match result {
|
||||
Ok(description) => Message::CacheResourceDescription(subject, description),
|
||||
Ok(descriptions) => {
|
||||
let description = descriptions[&subject].clone();
|
||||
Message::CacheResourceDescription(subject, description)
|
||||
},
|
||||
Err(err) => Message::ShowError(err.to_string()),
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
pub(crate) fn list_datatypes(mut ontology: ConnectedOntology) -> Task<Message> {
|
||||
Task::perform(async move { ontology.datatypes().await }, |result| {
|
||||
Task::perform(async move { ontology.resource_descriptions(ResourceSelector::Classes, vec![vocab::rdfs::DATATYPE]).await }, |result| {
|
||||
match result {
|
||||
Ok(datatypes) => Message::CacheDatatypes(datatypes),
|
||||
Err(err) => Message::ShowError(err.to_string()),
|
||||
|
||||
Reference in New Issue
Block a user