Github user afs commented on a diff in the pull request:
https://github.com/apache/jena/pull/314#discussion_r153753683
--- Diff:
jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetAssembler.java
---
@@ -26,25 +30,29 @@
import org.apache.jena.atlas.logging.Log ;
import org.apache.jena.query.Dataset ;
import org.apache.jena.query.DatasetFactory ;
-import org.apache.jena.rdf.model.Model ;
-import org.apache.jena.rdf.model.RDFNode ;
-import org.apache.jena.rdf.model.Resource ;
+import org.apache.jena.rdf.model.*;
import org.apache.jena.sparql.graph.GraphFactory ;
import org.apache.jena.sparql.util.FmtUtils ;
import org.apache.jena.sparql.util.graph.GraphUtils ;
+import org.apache.jena.system.Txn;
public class DatasetAssembler extends AssemblerBase implements Assembler {
public static Resource getType() {
return DatasetAssemblerVocab.tDataset ;
}
@Override
- public Object open(Assembler a, Resource root, Mode mode) {
+ public Dataset open(Assembler a, Resource root, Mode mode) {
Dataset ds = createDataset(a, root, mode) ;
return ds ;
}
public Dataset createDataset(Assembler a, Resource root, Mode mode) {
+ checkType(root, DatasetAssemblerVocab.tDataset);
+ // use TIM if quads are loaded or if all named Graphs are loaded
via data property
+ final boolean allNamedGraphsLoadViaData = multiValueResource(root,
pNamedGraph).stream().allMatch(g -> g.hasProperty(data));
--- End diff --
A SPARQL query would be quite nicely here!
The test needs to include checking and rejecting mixed cases like
`ja:defaultGraph` and `ja:data` on the dataset resource and both `ja:graph`
`ja:data` from the object of `ja:namedGraph`.
Similarly, `tMemoryDataset` needs to check for general vocab.
That is, two tests: "hasGeneralDatasetVocab" and "isMemoryDatasetVocab"
then check not true/true or false/false.
---