.
This commit is contained in:
+35
-5
@@ -17,8 +17,10 @@ use ldp::middleware::BasicAuthMiddleware;
|
||||
use ldp::reqwest::Client;
|
||||
use ldp::reqwest_middleware::ClientBuilder;
|
||||
use ldp::traverse::Traverse;
|
||||
use oxigraph::model::Dataset;
|
||||
use tracing::{debug_span, error, field};
|
||||
use oxigraph::io::{RdfFormat, RdfParser, RdfSerializer};
|
||||
use oxigraph::model::{Dataset, Graph, Triple, TripleRef};
|
||||
use tonic::Status;
|
||||
use tracing::{debug, debug_span, error, field, Instrument};
|
||||
use tracing_subscriber::fmt::format::FmtSpan;
|
||||
use tracing_subscriber::layer::SubscriberExt;
|
||||
use tracing_subscriber::util::SubscriberInitExt;
|
||||
@@ -56,7 +58,7 @@ fn main() -> color_eyre::Result<()> {
|
||||
} else { None };
|
||||
|
||||
let mut request = OntologyQueryRequest::default();
|
||||
request.sparql_query = raw_query;
|
||||
request.sparql_query = Some(raw_query);
|
||||
request.turtle = graph;
|
||||
request.prefixes = HashMap::from_iter(gl_graph::PREFIXES.iter().map(|(name, iri)| (name.clone(), iri.clone())));
|
||||
request.base = args.base.clone();
|
||||
@@ -122,8 +124,36 @@ fn main() -> color_eyre::Result<()> {
|
||||
}
|
||||
}
|
||||
|
||||
let span = debug_span!("Index Repository", rdf_sources = field::Empty, documents = field::Empty).entered();
|
||||
span.record("rdf_sources", rdf_source_count);
|
||||
let span = debug_span!("Index Repository", rdf_sources = rdf_source_count, triples = field::Empty, documents = field::Empty);
|
||||
let triple_count = async {
|
||||
let mut client = OntologyClient::connect("http://[::1]:3000").await.unwrap();
|
||||
let mut request = OntologyQueryRequest::default();
|
||||
|
||||
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;
|
||||
|
||||
let response = client.query(request).await.unwrap();
|
||||
let graph_with_inferences = RdfParser::from_format(RdfFormat::Turtle)
|
||||
.for_slice(&response.get_ref().results)
|
||||
.filter_map(Result::ok)
|
||||
.map(Triple::from)
|
||||
.collect::<Graph>();
|
||||
|
||||
Ok::<usize, crate::error::Error>(graph_with_inferences.len())
|
||||
}.instrument(span.clone()).await?;
|
||||
span.record("triples", triple_count);
|
||||
|
||||
Ok::<_, crate::error::Error>(writer)
|
||||
})?;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user