This commit is contained in:
2026-08-22 23:31:14 -04:00
parent 631bb539f1
commit e28cfd1c53
7 changed files with 234 additions and 189 deletions
+26 -31
View File
@@ -26,7 +26,8 @@ use tracing_subscriber::util::SubscriberInitExt;
use tracing_subscriber::{EnvFilter, fmt};
use url::Url;
use gl_graph::indexer::Indexer;
use gl_graph::{language, CurieHelper};
use gl_graph::{language, CurieHelper, vocab};
use gl_graph::ontology::OntologyBuilder;
use gl_inference::proto::ontology_client::OntologyClient;
use gl_inference::proto::OntologyQueryRequest;
@@ -66,7 +67,11 @@ fn main() -> color_eyre::Result<()> {
.build()?;
runtime.block_on(async {
let mut client = OntologyClient::connect("http://[::1]:3000").await.unwrap();
let mut client = OntologyClient::connect("http://[::1]:3000")
.await
.unwrap()
.max_decoding_message_size(1024 * 1024 * 1024);
let response = client.query(request).await.unwrap();
println!("{}", response.get_ref().results);
});
@@ -103,8 +108,15 @@ fn main() -> color_eyre::Result<()> {
let curie_helper = CurieHelper::new(gl_graph::PREFIXES.clone());
let indexer = Indexer::new(language::ENGLISH_OR_UNTAGGED.clone(), &curie_helper);
let mut client = OntologyClient::connect("http://[::1]:3000").await?;
let documents = indexer.ontology(&mut client).await?;
let mut client = OntologyBuilder::from_string("http://[::1]:3000", language::ENGLISH_OR_UNTAGGED.clone())?
.connect()
.await?;
let resource_descriptions = client.resource_descriptions_from_classes([
vocab::rdf::PROPERTY,
vocab::rdfs::CLASS,
vocab::skos::CONCEPT,
]).await?;
let documents = indexer.ontology(resource_descriptions);
debug_span!("Index Ontology", documents = field::Empty).in_scope(|| {
for document in documents {
writer.add_document(document).unwrap();
@@ -122,13 +134,16 @@ fn main() -> color_eyre::Result<()> {
.build();
let starting_url = Url::parse("http://fedora.quill.lan/rest/")?;
let mut dataset = Dataset::new();
let mut graph = Graph::new();
let mut traversal = Traverse::new(http_client, starting_url, None);
let mut rdf_source_count = 0usize;
while let Some(result) = traversal.next().await {
match result {
Ok(rdf_source) => {
dataset.extend(rdf_source.dataset());
let triples = rdf_source.dataset()
.iter()
.map(|quad| TripleRef::from(quad));
graph.extend(triples);
rdf_source_count += 1;
},
Err(err) => error!(?err),
@@ -140,32 +155,12 @@ fn main() -> color_eyre::Result<()> {
let curie_helper = CurieHelper::new(gl_graph::PREFIXES.clone());
let indexer = Indexer::new(language::ENGLISH_OR_UNTAGGED.clone(), &curie_helper);
let mut client = OntologyClient::connect("http://[::1]:3000").await?;
let mut request = OntologyQueryRequest::default();
let mut client = OntologyBuilder::from_string("http://[::1]:3000", language::ENGLISH_OR_UNTAGGED.clone())?
.connect()
.await?;
let mut output_buffer = Vec::new();
let mut serializer = RdfSerializer::from_format(RdfFormat::Turtle)
.for_writer(output_buffer);
for quad in &dataset {
serializer.serialize_triple(TripleRef::from(quad))?;
}
output_buffer = serializer.finish()?;
let turtle = String::from_utf8_lossy(&output_buffer).to_string();
request.sparql_query = None;
request.turtle = Some(turtle);
request.prefixes = HashMap::new();
request.base = None;
request.inferences_only = false;
let response = client.query(request).await?;
let graph_with_inferences = RdfParser::from_format(RdfFormat::Turtle)
.for_slice(&response.get_ref().results)
.filter_map(Result::ok)
.map(Triple::from)
.collect::<Graph>();
for document in indexer.graph(&graph_with_inferences)? {
let graph_with_inferences = client.run_inference(&graph).await?;
for document in indexer.graph(&graph_with_inferences) {
writer.add_document(document)?;
}