.
This commit is contained in:
+2
-1
@@ -23,4 +23,5 @@ tokio.workspace = true
|
||||
tonic.workspace = true
|
||||
tracing.workspace = true
|
||||
tracing-appender.workspace = true
|
||||
tracing-subscriber.workspace = true
|
||||
tracing-subscriber.workspace = true
|
||||
url.workspace = true
|
||||
@@ -8,6 +8,9 @@ pub(crate) struct QueryArgs {
|
||||
|
||||
#[arg(short, long, value_name = "QUERY PATH")]
|
||||
pub(crate) query_path: PathBuf,
|
||||
|
||||
#[arg(short, long, value_name = "BASE IRI")]
|
||||
pub(crate) base: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Args)]
|
||||
|
||||
@@ -11,7 +11,10 @@ pub(crate) enum Error {
|
||||
Storage(#[from] oxigraph::store::StorageError),
|
||||
|
||||
#[error(transparent)]
|
||||
IriParse(#[from] oxigraph::model::IriParseError),
|
||||
ParseIri(#[from] oxigraph::model::IriParseError),
|
||||
|
||||
#[error(transparent)]
|
||||
ParseUrl(#[from] url::ParseError),
|
||||
|
||||
#[error(transparent)]
|
||||
RdfSyntax(#[from] oxigraph::io::RdfSyntaxError),
|
||||
@@ -36,4 +39,7 @@ pub(crate) enum Error {
|
||||
|
||||
#[error(transparent)]
|
||||
Join(#[from] tokio::task::JoinError),
|
||||
|
||||
#[error(transparent)]
|
||||
TonicTransport(#[from] tonic::transport::Error),
|
||||
}
|
||||
+21
-12
@@ -7,13 +7,14 @@ mod theme;
|
||||
mod widget;
|
||||
mod windows;
|
||||
|
||||
use std::collections::HashMap;
|
||||
use crate::app::Publisher;
|
||||
use crate::args::{AppArgs, Command};
|
||||
use clap::Parser;
|
||||
use gl_search::{Schema, SearchIndex};
|
||||
use iced::futures::StreamExt;
|
||||
use ldp::middleware::BasicAuthMiddleware;
|
||||
use ldp::reqwest::{Client, Url};
|
||||
use ldp::reqwest::Client;
|
||||
use ldp::reqwest_middleware::ClientBuilder;
|
||||
use ldp::traverse::Traverse;
|
||||
use oxigraph::model::Dataset;
|
||||
@@ -22,6 +23,7 @@ use tracing_subscriber::fmt::format::FmtSpan;
|
||||
use tracing_subscriber::layer::SubscriberExt;
|
||||
use tracing_subscriber::util::SubscriberInitExt;
|
||||
use tracing_subscriber::{EnvFilter, fmt};
|
||||
use url::Url;
|
||||
use gl_graph::index::index_ontology;
|
||||
use gl_graph::language;
|
||||
use gl_inference::proto::ontology_client::OntologyClient;
|
||||
@@ -53,6 +55,12 @@ fn main() -> color_eyre::Result<()> {
|
||||
Some(String::from_utf8(std::fs::read(dataset_path)?)?)
|
||||
} else { None };
|
||||
|
||||
let mut request = OntologyQueryRequest::default();
|
||||
request.sparql_query = 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();
|
||||
|
||||
let runtime = tokio::runtime::Builder::new_multi_thread()
|
||||
.enable_all()
|
||||
.name("inference-client")
|
||||
@@ -60,11 +68,6 @@ fn main() -> color_eyre::Result<()> {
|
||||
|
||||
runtime.block_on(async {
|
||||
let mut client = OntologyClient::connect("http://[::1]:3000").await.unwrap();
|
||||
|
||||
let mut request = OntologyQueryRequest::default();
|
||||
request.sparql_query = raw_query;
|
||||
request.turtle = graph;
|
||||
|
||||
let response = client.query(request).await.unwrap();
|
||||
println!("{}", response.get_ref().results);
|
||||
});
|
||||
@@ -87,14 +90,15 @@ fn main() -> color_eyre::Result<()> {
|
||||
.build()?;
|
||||
|
||||
runtime.block_on(async {
|
||||
let mut client = OntologyClient::connect("http://[::1]:3000").await.unwrap();
|
||||
let documents = index_ontology(&mut client, &language::ENGLISH_OR_UNTAGGED).await.unwrap();
|
||||
let mut client = OntologyClient::connect("http://[::1]:3000").await?;
|
||||
let documents = index_ontology(&mut client, &language::ENGLISH_OR_UNTAGGED).await?;
|
||||
debug_span!("Index Ontology", documents = field::Empty).in_scope(|| {
|
||||
for document in documents {
|
||||
writer.add_document(document).unwrap();
|
||||
}
|
||||
});
|
||||
});
|
||||
Ok::<_, crate::error::Error>(())
|
||||
})?;
|
||||
|
||||
let mut writer = runtime.block_on(async move {
|
||||
let http_client = ClientBuilder::new(Client::new())
|
||||
@@ -104,18 +108,23 @@ fn main() -> color_eyre::Result<()> {
|
||||
))
|
||||
.build();
|
||||
|
||||
let starting_url = Url::parse("http://fedora.quill.lan/rest/").unwrap();
|
||||
let starting_url = Url::parse("http://fedora.quill.lan/rest/")?;
|
||||
let mut dataset = Dataset::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()),
|
||||
Ok(rdf_source) => {
|
||||
dataset.extend(rdf_source.dataset());
|
||||
rdf_source_count += 1;
|
||||
},
|
||||
Err(err) => error!(?err),
|
||||
}
|
||||
}
|
||||
|
||||
let span = debug_span!("Index Repository", rdf_sources = field::Empty, documents = field::Empty).entered();
|
||||
Ok::<_, gl_search::SearchError>(writer)
|
||||
span.record("rdf_sources", rdf_source_count);
|
||||
Ok::<_, crate::error::Error>(writer)
|
||||
})?;
|
||||
|
||||
debug_span!("Commit").in_scope(|| writer.commit())?;
|
||||
|
||||
Reference in New Issue
Block a user