This commit is contained in:
2026-08-23 14:20:48 -04:00
parent e28cfd1c53
commit 8f6e2b3ac6
8 changed files with 82 additions and 132 deletions
+9 -2
View File
@@ -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
View File
@@ -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,
+8 -4
View File
@@ -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()),