Github user afs commented on a diff in the pull request:

    https://github.com/apache/jena/pull/314#discussion_r155532515
  
    --- 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 --
    
    We can't change the predicates due to existing deployed assemblers.  We can 
check for consistency e.g. currently, this works:
    ```
    <#dataset> rdf:type ja:MemoryDataset ;
       ja:data <file:D.trig>;
       ja:namedGraph [ ];
    .
    ```
    (loops on properties of the object of `namedGraph` so if there are none ...)
    as does this:
    ```
    <#dataset> rdf:type ja:MemoryDataset ;
       ja:data <file:D.trig>;
       ja:defaultGraph [ a ja:MemoryModel ];
    .
    
    ```
    (ignores `ja:defaultGraph`)


---

Reply via email to