簡體   English   中英

DBpedia Sparql按頁面模板

[英]DBpedia Sparql by page template

我試圖使用SPARQL語法在dbpedia上運行查詢,以查找特定模板的所有頁面。 似乎沒有用,我正在使用dbpprop:wikiPageUsesTemplate尋找所有頁面。 有誰知道如何糾正此問題以正確查找模板?

SELECT ?name ?member_Of ?country ?lat ?lng ?link
WHERE {
?x dbpprop:wikiPageUsesTemplate "dbpedia:Template:Infobox_settlement" .
?x a <http://dbpedia.org/ontology/Settlement> .
?x foaf:name ?name .
?x dbpedia-owl:isPartOf ?member_Of.
?x dbpedia-owl:country ?country.
?x geo:lat ?lat .
?x geo:long ?lng .
?x foaf:isPrimaryTopicOf ?link .
}
LIMIT 2500 OFFSET 0

我也嘗試僅通過dbprop運行它,但無濟於事。

SELECT * WHERE {  ?page dbpprop:wikiPageUsesTemplate <http://dbpedia.org/resource/Template:Infobox_settlement> .  ?page dbpedia:name ?name .}

如果有人嘗試做類似的事情,也可以通過Wiki API,在其中您可以對所有結果進行pagananate。 http://en.wikipedia.org/w/api.php?action=query&list=embeddedin&eititle=Template:Infobox_settlement

至少有兩個問題:(i)您需要在地方而不是字符串上使用IRI; (ii)您需要使用DBpedia使用的屬性。

使用IRI

?x a <http://dbpedia.org/ontology/Settlement> .

?x foaf:isPrimaryTopicOf ?link .

您已經證明自己知道URI需要用<>完整編寫,或者用前綴縮寫。 然而,

?x dbpprop:wikiPageUsesTemplate "dbpedia:Template:Infobox_settlement" .

當然是行不通的。 這是合法的SPARQL,因為字符串可以是三元組的對象,但是您幾乎可以肯定需要IRI。

使用DBpedia的詞匯

帶有dbpprop:wikiPageUsesTemplate的查詢不會返回任何結果:

select distinct ?template where {
 [] dbpprop:wikiPageUsesTemplate ?template
}

SPARQL結果

這是很容易檢查,並迅速確認沒有數據可能匹配您的查詢。 您在哪里找到此物業? 您看到它在某處使用過嗎? 我不確定您是否可以基於信息框模板查詢DBpedia。 DBpedia與Wikipedia不同,即使Wikipedia API支持它,也並不意味着DBpedia具有對應的內容。 一張紙條DBpedia的數據集屬性 ,上面寫着:

http://xx.dbpedia.org/property/wikiPageUsesTemplate(將更改為http://dbpedia.org/ontology/wikiPageUsesTemplate)

但后者的屬性似乎也未在端點上使用。 有關更多詳細信息 ,請參閱 對Sparql查詢語法的 答案以獲取具有特定信息框的頁面

暫無
暫無

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

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