On 07/05/2021 20:44, Brandon Sara wrote:
I’ve found what I believe is a bug. If you try to run compaction via the
fuseki-main `/$/compact/{ds}` endpoint on an `ja:RDFDataset` that has a
defaultGraph of `ja:InfModel`, compaction will not execute because the
resulting `DatasetGraphMapLink` type does not inherit `DatasetGraphSwitchable`
nor `DatasetGraphWrapper`. I am able to run compaction just fine with the
command line tool on this dataset, it is just being restricted from running
when a request comes through `ActionCompact`.
Correct - while DatasetGraphWrapper might be possible,
DatasetGraphMapLink is an independent ass
There are many ways datasets can be build out of dataets and models.
But you don't need to.
You can have a service that exposes the dataset directly.
# Service 1
<#data> rdf:type fuseki:Service ;
fuseki:name "withInference" ;
fuseki:dataset <#inf-dataset> .
<#inf-dataset>
....
:tdbGraph rdf:type tdb2:GraphTDB2 ;
tdb2:dataset <#storage> .
# Service 2
## storage
<#tdb> rdf:type fuseki:Service ;
fuseki:name "storage" ;
# No operations or endpoints.
fuseki:dataset <#dataset> ;
.
<#storage> rdf:type tdb2:DatasetTDB2 ;
tdb2:location "DB2"
.
then compact admin operations to
http://localhost:3030/$/compact/storage
Andy
I have written a test that can be used to duplicate the issue:
https://github.com/bsara/jena/blob/compact-with-inference/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestConfigFile.java#L300-L323
I would try and fix the issue myself, but I know very little about the inner
workings and intricacies of compaction, graph types, and how it all interacts.