簡體   English   中英

SPARQL - 過濾評論。 label 並抽象為英文並保留 integer 以及 uri 值

[英]SPARQL - Filter comment. label and abstract to english and keep integer as well as uri values

我正在嘗試從 DBPedia 獲取有關某些資源的可用信息。 但是,我想過濾掉 label,評論和摘要只有英文。

我原來的查詢是:

SELECT ?property ?value (lang(?value ) as ?lang) { <http://dbpedia.org/resource/England> ?property ?value . }

為了過濾英文結果,我將其修改為:

SELECT ?property ?value (lang(?value ) as ?lang) { <http://dbpedia.org/resource/England> ?property ?value .  FILTER(LANG(?value) = "en") }

但是,這樣做我會丟失很多條目和信息,例如人口、密度、position、緯度、經度等等。

我想知道,是否有辦法獲取所有可用條目,但過濾abstractlabelcomment僅使用英文。

我試圖將我的查詢修改為以下內容:

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?property ?value (lang(?value ) as ?lang) { <http://dbpedia.org/resource/England> ?property ?value .   FILTER(LANG(?rdfs:label) = "en")}

不幸的是,我沒有得到任何結果,因為查詢是錯誤的。 任何幫助將不勝感激。

經過徹底的研究,我已經回答了我自己的問題。 您可以使用FILTER function 來獲取帶有或不帶有任何@en或可用language部分的所有值。 為此,您可以使用以下部分:

FILTER(LANG(?value) = "" || LANGMATCHES(LANG(?value), "en")

但是,這會導致丟失所有可用的uri和其他links 如果還想獲得除英文過濾結果之外的所有鏈接,還需要與開頭的 function 類似的startsWith 它在 SPARQL 語言中的等價物稱為strstarts 我已在查詢中將以下部分添加到FILTER中,並且我已經獲得了所有最初需要的結果。

strstarts(str(?value), 'http'))

所以這是結果查詢。 提示我已刪除 PREFIXES,因為我的查詢中不需要它們

 SELECT ?property ?value { <http://dbpedia.org/resource/England> ?property ?value .
      FILTER(LANG(?value) = "" || LANGMATCHES(LANG(?value), "en") || strstarts(str(?value), 'http'))}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM