This commit is contained in:
Alex Wied
2026-06-29 15:20:02 -04:00
parent ee5deb87c1
commit 59c8dffb01
10 changed files with 149 additions and 141 deletions
+10 -8
View File
@@ -4,7 +4,7 @@ use oxigraph::store::Store;
use crate::error;
use crate::rdf::vocab::owl;
pub fn same_as(store: Store) -> error::Result<Store> {
pub fn same_as(store: &mut Store) -> error::Result<()> {
let additional_quads = store
.quads_for_pattern(None, Some(owl::SAME_AS), None, None)
.filter_map(Result::ok)
@@ -42,11 +42,11 @@ pub fn same_as(store: Store) -> error::Result<Store> {
if new_size > old_size {
same_as(store)
} else {
Ok(store)
Ok(())
}
}
pub fn super_classes(dataset: &mut Dataset) {
pub fn super_classes(store: &mut Store) -> error::Result<()> {
let query = SparqlEvaluator::new()
.parse_query(
r#"PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
@@ -61,7 +61,7 @@ CONSTRUCT {
.expect("Unable to parse superclass query");
let mut additional_quads = Dataset::new();
if let QueryResults::Graph(graph) = query.on_queryable_dataset(&*dataset).execute().unwrap()
if let QueryResults::Graph(graph) = query.on_store(&store).execute().unwrap()
{
additional_quads.extend(graph.filter_map(Result::ok).map(|triple| {
Quad::new(
@@ -73,12 +73,14 @@ CONSTRUCT {
}));
}
let old_size = dataset.len();
dataset.extend(&additional_quads);
let new_size = dataset.len();
let old_size = store.len()?;
store.extend(&additional_quads)?;
let new_size = store.len()?;
if new_size > old_size {
super_classes(dataset)
super_classes(store)
} else {
Ok(())
}
}