2015-08-16 18 views
1

examples section for DBpedia article,有一個例子查詢如何知道DBpedia中某個實體的確切名稱/ URI?

PREFIX dbprop: <http://dbpedia.org/property/> 
PREFIX db: <http://dbpedia.org/resource/> 
SELECT ?who, ?WORK, ?genre WHERE { 
db:Tokyo_Mew_Mew dbprop:author ?who . 
?WORK dbprop:author ?who . 
OPTIONAL { ?WORK dbprop:genre ?genre } . 
} 

約manga系列東京貓貓。但是,我怎麼會知道它的URI是

http://dbpedia.org/resource/Tokyo_Mew_Mew 

和「作者」屬性URI是

http://dbpedia.org/property/author 

等等?

有沒有這些URI或某些搜索引擎?

爲了比較,在維基數據項目中,我可以在他們的主站點上進行搜索,並推斷出東京喵喵URI後綴是Q392125,因爲它與Web URL的最後部分一致。

如何對DBpedia做同樣的事情?

回答

2

執行此操作的一種方法是使用SPARQL查詢。在這個特殊的例子中,你事先知道的是你正在尋找一種叫做「東京喵喵」的東西。一個簡單的查詢,像這樣:

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
    SELECT ?x 
    WHERE { 
     ?x rdfs:label ?name . 
     FILTER(bif:contains(?name, "Tokyo Mew Mew*")) 
    } 

(小免責聲明:在編寫的時候,DBpedia的網站正在維護中,所以我一直無法覈實這些查詢是100%正確的)

可能會給你想要的結果。順便說一下,此查詢中的bif:contains位是SPARQL語言的特定於Virtuoso的擴展,它對優化的全文搜索進行了優化。

然而,這樣的搜索當然有可能檢索到多於一個可能的命中。在這種情況下,您可以擴展查詢來縮小結果範圍。例如,在這個例子中,因爲你知道你正在尋找一個漫畫,你可以擴展您的查詢,包括這個:

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
    PREFIX dbo: <http://dbpedia.org/ontology/> 
    SELECT ?x 
    WHERE { 
     ?x a dbo:Comic . 
     ?x rdfs:label ?name . 
     FILTER(bif:contains(?name, "Tokyo Mew Mew*")) 
    } 

如果您發現使用SPARQL對這種事情有點令人生畏,DBPedia提供other ways to access the dataset,包括faceted search interface,您可以使用它來瀏覽數據。

您也可以猜測URI的內容,然後手動查看您是否正確。例如,在許多情況下,DBPedia URI將只是您要​​查找的名稱,並粘貼到名稱空間'http://dbpedia.org.org/resource/'(空格替換爲下劃線)。關聯數據的好處在於您可以轉到該地址並查看返回的內容。因此,對於Tokoy Mew Mew,URI http://dbpedia.org/resource/Tokyo_Mew_Mew是一個很好的猜測,當你用瀏覽器訪問這個URI時,你會得到這個URI所代表的內容的概述,在這種情況下,這就是你確切的東西尋找。

如果事實證明它不是您要查找的確切人物,那麼該頁面上通常會有一個條目,告訴其他條目對您登陸的資源是否有歧義。點擊它並瀏覽一下通常會讓你很快找到你正在尋找的資源。更一般地說,通過瀏覽器瀏覽DBPedia資源是熟悉數據結構的好方法,因爲您可以快速瞭解哪些屬性和關係可用,鍵入層次結構是什麼樣的等等。

如果您使用本手冊的browsig技術,有一點需要注意:DBPedia將資源請求重定向到,該資源爲。所以如果你輸入'http://dbpedia.org/resource/Tokyo_Mew_Mew',你將被重定向到'http://dbpedia.org/page/Tokyo_Mew_Mew。然而,數據資源所需的實際URI是第一個。

+0

但是你怎麼知道漫畫的標題存儲在'rdf:label'中?例如,我如何知道人的年齡屬性URI?你在哪裏拿'dbo:Comic' URI? –

+0

@SuzanCioc它不是'rdf:label',它是'rdfs:label'(注意's')。當您查看該頁面時,例如[Tokyo Mew Mew](http://dbpedia.org/resource/Tokyo_Mew_Mew),您可以看到該資源具有的所有屬性,並且可以在該頁面中獲取該屬性。大多數情況下,它們的名稱相當透明。 –

+0

對不起,這是一個錯字 –

3

除了Jeen Broekstra's fairly comprehensive answer,請注意DBpedia信息是從維基百科數據中提取的。在一般情況下,如果有一個維基百科的文章名爲Foobar的,與URL

                https://en.wikipedia.org/wiki/Foobar

那麼相應的DBpedia中的資源是

                http://dbpedia.org/resource/Foobar

瀏覽交互式那(注意,在瀏覽器中,你會被重定向到一個/頁/網址,而不是/資源/ URL),你可以看到屬性。有特性的三個主要系列:

  • 原始信息框的屬性與命名空間http://dbpedia.org/property/,這是一種「髒」,在某種意義上說,他們只是原始數據值。您可能會得到一些相互關聯的鏈接,但大多數情況下您會擁有文字值,並且這些鏈接可能不會被標準化,消毒等。
  • 具有命名空間http://dbpedia.org/ontology/的信息框本體屬性。這些是更復雜的信息框映射的結果,並且這些數據更清晰,並且如果可用,通常優先於原始信息框屬性。
  • 其他一切。這些往往是從公知的詞彙,如都柏林核心,FOAF,RDFS,OWL等等
1

確切算法轉換在http://wiki.dbpedia.org/uri-encoding 被描述在大多數情況下,維基百科頁給DBpedia的URI/IRI它是完全相同的名稱(如上所述),但特殊字符處理可能會改變一點。

(免責聲明:DBpedia dev)

相關問題