2016-04-29 15 views
0

Ich möchte SPARQL verwenden, um Themen rdf:value zu erhalten, die folgende Ressource: http://purl.org/dc/terms/LCSHExtract Attributwerte mit SPARQL

<dcterms:subject> 
    <rdf:Description rdf:nodeID="N4192a7fb1dd6438c94649f7afd192f09"> 
     <rdf:value>United States. Declaration of Independence</rdf:value> 
     <dcam:memberOf rdf:resource="http://purl.org/dc/terms/LCSH"/> 
    </rdf:Description> 
</dcterms:subject> 
<dcterms:subject> 
    <rdf:Description rdf:nodeID="N887b24b564624253b374ee7c95f0ed51"> 
     <rdf:value>United States -- History -- Revolution, 1775-1783 -- Sources</rdf:value> 
     <dcam:memberOf rdf:resource="http://purl.org/dc/terms/LCSH"/> 
    </rdf:Description> 
</dcterms:subject> 
<dcterms:subject> 
    <rdf:Description rdf:nodeID="N1b3ed5adb91b4b0c8aa1215180fdfa96"> 
     <rdf:value>JK</rdf:value> 
     <dcam:memberOf rdf:resource="http://purl.org/dc/terms/LCC"/> 
    </rdf:Description> 
</dcterms:subject> 
<dcterms:subject> 
    <rdf:Description rdf:nodeID="Nc5deb6e74cc6462fbeeb8c1871983f09"> 
     <dcam:memberOf rdf:resource="http://purl.org/dc/terms/LCC"/> 
     <rdf:value>KF</rdf:value> 
    </rdf:Description> 
</dcterms:subject> 

Gibt es eine Möglichkeit, die rdf:resource zu extrahieren und es verwenden, um die Themen zu filtern?

+0

Dies ist kein vollständiges rdf/xml-Snippet. Es gibt etwas (nicht gezeigt), das * eine Reihe von Themen hat, die jeweils durch ein rdf: Description-Element beschrieben werden. –

Antwort

1

Die RDF/XML-Schnipsel nicht abgeschlossen ist, so können wir eine perfekte Abfrage nicht schreiben, aber Sie werden so etwas wie dies wollen:

select ?value { 
    ?x dcterms:subject ?subject . 
    ?subject rdf:value ?value . 
    ?subject dcam:memberOf <http://purl.org/dc/terms/LCSH> . 
} 

Wenn Sie das ein bisschen kürzer machen wollen, Sie tun können:

select ?value { 
    ?x dcterms:subject [ 
     rdf:value ?value ; 
     dcam:memberOf <http://purl.org/dc/terms/LCSH> ] 
} 

und wenn Sie wirklich nur über die Dinge kümmern, die rdf haben:

select ?value { 
    ?x rdf:value ?value ; 
     dcam:memberOf <http://purl.org/dc/terms/LCSH> 
} 
: Werteigenschaften und sind Mitglieder der LCSH könnten Sie das erste triple insgesamt überspringen
+0

Vielen Dank, es hat funktioniert! Ich habe eine andere Frage, wie würde ich tun, wenn ich zum Beispiel nur den Inhalt aller rdf: nodeID zeigen möchte, die in rdf: description enthalten sind? – Theasc721

+0

Mit anderen Worten ist es möglich, Attribute direkt mit sparql anzuzeigen? – Theasc721

+0

@ theasc721 Ich sehe rdf: nodeId nicht in Ihrem Snippet, aber wie ich mich erinnere, ist nodeId ein Artefakt der rdf/xml-Serialisierung, nicht Teil der eigentlichen rdf-Daten. Ich würde Aufregung mit Brisas-Abfragen wie 'select * {? S? P? O}' vorschlagen, um die tatsächlichen Tripel in den Daten zu sehen, nicht die rdf/xml-Serialisierung. Oder wandle das rdf/xml in Turtle oder N-Tripel um. –