2012-05-07 3 views
5

Ich brauche RDF zu erstellen, die wie folgt aussieht:Wie bekomme ich verschachtelte RDF/XML aus Jena?

<rdf:Description rdf:about='uri1'> 
    <namespace:level1> 
    <rdf:Description> 
     <namespace:blankNode rdf:resource='uri2'/> 
     <namespace:text></namespace:text> 
    </rdf:Description> 
    </namespace:level1> 
</rdf:Description> 

<rdf:Description rdf:about="uri2"> 
    some properties here 
</rdf:Description> 

Wie Sie sehen können, gibt verschachtelte Strukturen sind, sowie leere Knoten. (Ich weiß nicht, ob das ist die genaue Terminologie für die „blankNode“ Eigenschaft in meiner Struktur.) Wenn ich

model.write(System.out, "RDF/XML-ABBREV"); 

dann auch die leere Knoten verschachtelt ist, was ich nicht will. Gibt es eine Möglichkeit, diese Art von Struktur mit Jena zu bekommen? Oder gibt es eine andere Bibliothek für Java, die damit besser umgehen kann?

Antwort

6

Ich denke, Sie gehen in die falsche Richtung.

Nesting ist ein Konzept, das nur Sinn macht, wenn man über Bäume spricht. Aber bei RDF geht es nicht um Bäume, es geht um Tripel. Vergessen Sie eine Weile die Struktur des XML und denken Sie an die Tripel, die im XML kodiert sind. Ich finde model.write(System.out, "N-TRIPLES"); am nützlichsten dafür.

Sie müssen zuerst verstehen, welche Tripel Sie möchten, dass Ihre RDF/XML-Datei ausgedrückt wird. Solange es die richtigen Tripel ausdrückt, ist es egal, ob der eine Knoten in den anderen verschachtelt ist oder in welcher Reihenfolge die Dinge erscheinen. Dies sind rein "kosmetische" Fragen, wie das Einrücken.

+0

Danke für die Erklärung! Es ist für ein Schulprojekt, also wurden mir die Anforderungen für die Struktur gegeben :). Aber ich habe jetzt mit meinem Professor gesprochen und es geändert. – user1355348

+0

Stimmen Sie vollständig mit cygri überein, versuchen Sie auch model.write (System.out, "TURTLE"); (eine "menschlichere" Serialisierung) und vergessen Sie, etwas über RDF zu lernen, wenn Sie sich die RDF/XML-Serialisierung ansehen. Es ist gut zu verlangen, dass "seltsame Anforderungen" geändert werden. ;-) – castagna

+0

Gute Arbeit zum "Erleuchten" Ihres Professors! Du verdienst definitiv eine +1 dafür ;-) – cygri