This commit is contained in:
2026-08-12 14:11:47 -04:00
parent 79894f654d
commit f852da4f4e
48 changed files with 4379 additions and 779 deletions
+11 -30
View File
@@ -4,15 +4,13 @@ use crate::rdf::term_helper::{TermHelper, TermHelperMut};
use crate::widget::iri_input::iri_input;
use crate::widget::navigation_area::navigation_area;
use gl_graph::CurieHelper;
use gl_graph::inference::InferenceEngine;
use gl_search::language;
use gl_search::{Schema, SearchDocument, SearchIndex, Value};
use gl_graph::language;
use gl_search::{Schema, SearchIndex};
use http::StatusCode;
use iced::alignment::Horizontal;
use iced::keyboard::{Event, key};
use iced::widget::button::Style;
use iced::widget::grid::Sizing;
use iced::widget::text::Wrapping;
use iced::widget::{
button, center, column, combo_box, container, grid, mouse_area, opaque, operation, pick_list,
row, scrollable, space, stack, table, text, text_input, toggler,
@@ -30,7 +28,6 @@ use oxigraph::model::{
BaseDirection, Dataset, Graph, NamedNode, NamedOrBlankNode, NamedOrBlankNodeRef, Quad, Term,
TripleRef,
};
use oxigraph::store::Store;
use tracing::{debug_span, error, trace};
#[derive(Clone, Debug)]
@@ -52,7 +49,7 @@ pub(crate) enum Message {
HoverRow(QuadKey),
UnhoverRow(QuadKey),
QueryUpdated(String),
SetSearchResults(Vec<SearchDocument>),
SetSearchResults(Vec<()>),
QueryTypeUpdated(LabeledIri),
SearchResultClicked(NamedNode),
DatatypeUpdated(QuadKey, Option<String>),
@@ -97,14 +94,13 @@ struct SearchState {
action: SearchResultClickAction,
entity_selection: Option<LabeledIri>,
query: String,
results: Vec<SearchDocument>,
results: Vec<()>,
}
pub(crate) struct Publisher {
http_client: ClientWithMiddleware,
curie_helper: CurieHelper,
ontology: Ontology,
inference_engine: InferenceEngine,
abbreviated_datatypes: Vec<String>,
window_id: window::Id,
url_input: String,
@@ -135,8 +131,6 @@ impl Publisher {
.expect("Failed to build ontology")
});
let inference_engine = InferenceEngine::new(ontology.store().clone());
let index = SearchIndex::builder()
.with_path("/home/alex/.local/share/org.graphofliberty.desktop/index")
.build()
@@ -172,7 +166,6 @@ impl Publisher {
http_client,
curie_helper,
ontology,
inference_engine,
abbreviated_datatypes,
window_id: id,
url_input: starting_url.to_string(),
@@ -359,7 +352,7 @@ impl Publisher {
.index
.query(category_id, query.as_str(), Schema::all_fields(), 25)
.expect("Unable to complete search");
task = Task::done(Message::SetSearchResults(results));
task = Task::done(Message::SetSearchResults(vec![]));
};
}
Message::SetSearchResults(results) => {
@@ -555,19 +548,6 @@ impl Publisher {
self.show_inferred_properties = value;
}
Message::RunInference => {
let dataset = self
.document
.dataset()
.quads
.iter()
.map(|(_, quad)| quad)
.collect();
let engine = self.inference_engine.clone();
task = Task::perform(
tokio::task::spawn_blocking(move || engine.run(&dataset).unwrap()),
|dataset| Message::SetInferredTriples(dataset.unwrap()),
);
}
Message::SetInferredTriples(dataset) => {
self.inferred_triples = Graph::from_iter(&dataset);
@@ -810,8 +790,8 @@ impl Publisher {
)
.on_select(|selection| Message::QueryTypeUpdated(selection));
let mut columns = vec![table::column(text("CURIE"), |document: &SearchDocument| {
let iri = document
let mut columns = vec![table::column(text("CURIE"), |_| {
/*let iri = document
.get_first(Schema::iri_field())
.and_then(|value| value.as_str())
.unwrap_or_default();
@@ -823,7 +803,8 @@ impl Publisher {
button(text(abbreviated_iri).wrapping(Wrapping::Word))
.on_press(Message::SearchResultClicked(NamedNode::new_unchecked(iri)))
.style(button::text)
.style(button::text)*/
text("")
})];
let fields = if let Some(selection) = search_state.entity_selection.as_ref() {
@@ -834,7 +815,7 @@ impl Publisher {
vec![]
};
for field in fields.into_iter() {
/*for field in fields.into_iter() {
let field_name = field.name.clone();
columns.push(
table::column(text(field.label), move |document: &SearchDocument| {
@@ -854,7 +835,7 @@ impl Publisher {
})
.width(Length::Fixed(256.0)),
);
}
}*/
let results_table = if columns.is_empty() {
None