tbloader vs SPARQL INSERT - Warum unterschiedliches Verhalten bei benannten Diagrammen?

Bei der Verbindung der Befehlszeilentools von ARQ, TDB und Named Graphs tritt ein merkwürdiges Verhalten auf. Wenn Daten über tdbloader in ein benanntes Diagramm importiert werden, können sie in einer SPARQL SELECT-Abfrage nicht über die GRAPH-Klausel abgefragt werden. Diese Abfrage ist jedoch möglich, wenn die Daten mit SPARQL INSERT in dasselbe Diagramm eingefügt werden.

Ich habe folgende Assembler-Beschreibungsdateitdb.ttl:

@prefix rdfs:   <http://www.w3.org/2000/01/rdf-schema#> .
@prefix rdf:    <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ja:     <http://jena.hpl.hp.com/2005/11/Assembler#> .
@prefix tdb:     <http://jena.hpl.hp.com/2008/tdb#> .


[] ja:loadClass "com.hp.hpl.jena.tdb.TDB" .
tdb:DatasetTDB  rdfs:subClassOf  ja:RDFDataset .
tdb:GraphTDB    rdfs:subClassOf  ja:Model .

[] rdf:type         tdb:DatasetTDB ;
    tdb:location "DB" ;
.

In der Datei befindet sich ein Datensatzdata.ttl:

<a> <b> <c>.

Jetzt füge ich diese Daten mit tdbloader und zweitens ein weiteres Triple mit SPARQL INSERT in das genannte Diagramm einDaten:

tdbloader --desc tdb.ttl --graph data data.ttl
update --desc tdb.ttl "INSERT DATA {GRAPH <data> {<d> <e> <f>.}}"

Jetzt können die Daten mit SPARQL abgefragt werden über:

$arq --desc tdb.ttl "SELECT *  WHERE{ GRAPH ?g {?s ?p ?o.}}"
----------------------------
| s   | p   | o   | g      |
============================
| <a> | <b> | <c> | <data> |
| <d> | <e> | <f> | <data> |
----------------------------

Alles scheint perfekt zu sein. Aber jetzt möchte ich nur diesen bestimmten benannten Graphen abfragenDaten:

$ arq --desc tdb.ttl "SELECT *  WHERE{ GRAPH <data> {?s ?p ?o.}}"
-------------------
| s   | p   | o   |
===================
| <d> | <e> | <f> |
-------------------

Warum fehlen die von tdbloader importierten Daten? Was ist los mit dieser Abfrage? Wie kann ich Ergebnisse aus beiden Importen erhalten?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage