2016-04-29 90 views
0

我想用SPARQL獲得科目rdf:value具有以下資源:http://purl.org/dc/terms/LCSH屬性提取值隨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> 

有沒有一種方法來提取rdf:resource,並用它來篩選的主題?

+0

這不是一個完整的rdf/xml片段。有一些(未顯示)*有*一組主題,每個主題由rdf:Description元素描述。 –

回答

1

的RDF/XML片斷是不完整的,所以我們不能寫一個完美的查詢,但你會想是這樣的:

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

如果你想,一個有點短,你可以這樣做:

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

如果你真的只在乎的東西,有RDF:價值特性,並LCSH的成員,你可以跳過第一個三乾脆:

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

謝謝你的工作!我還有一個問題,如果只想顯示rdf:description包含的所有rdf:nodeID的內容,我該怎麼辦? – Theasc721

+0

也就是說可以使用sparql直接顯示屬性嗎? – Theasc721

+0

@ theasc721我的代碼片段中沒有看到rdf:nodeId,但我記得,nodeId是rdf/xml序列化的一個工件,而不是實際的rdf數據的一部分。我建議使用像select * {?s?p?o}這樣的Brisas查詢來激發數據中的實際三元組,而不是rdf/xml序列化。或者將rdf/xml轉換爲turtle或n-triples。 –