2016-05-03 33 views
-1

我想從FOAF本體中獲取一些信息。我嘗試了以下SPARQL查詢,但它沒有返回任何結果。我嘗試了這個查詢來熟悉FOAF,但我真正想要做的是找到一個特定的人知道的所有人(使用屬性foaf:knows)。我該怎麼做呢?FOAF的SPARQL查詢不返回任何結果

PREFIX foaf:<http://xmlns.com/foaf/0.1/> 
SELECT ?name ?mbox 
WHERE { ?x foaf:name ?name . 
     ?x foaf:mbox ?mbox . 
} 
+0

您運行關於哪個知識庫的查詢? FOAF本體本身就是模式。 – AKSW

+0

我使用了Virtuoso SPARQL查詢編輯器,並將http://xmlns.com/foaf/0.1/放入默認數據集中。我錯了嗎 ? @AKSW – Dihya

+0

從我的角度來看,您只加載FOAF詞彙表,但不加載任何實例數據。 – AKSW

回答

1

語義網由不同的組件組成。知識以RDF三元組表示。這些三元組基於主題 - 謂詞 - 對象語法描述資源。例如,"John is a Male"可以表示爲RDF三元組。

在RDF之上,我們可以使用RDFS和OWL來指定這些數據的限制和其他信息。由於RDFS,我可以指定"Male is a subclass of Person",因此可以推斷出"John is a Person"。 RDFS和OWL有助於定義本體。一個本體是一個詞彙表(可以是一般的或特定的域)來表示數據。例如,我可能想創建一個本體CAT來表示貓的數據。

在這種情況下,我會創建我的CAT詞彙表來定義"Cat is a subclass of Animal""hasOwner is a property that links a cat to a Person"以及其他一些屬性。然後,我可以實例化一些人在貓上創建數據。例如說說"Baccara is a Cat""Baccara hasOwner John"

FOAF基本上是一個詞彙表示數據的人,特別是這些人之間的聯繫。 FOAF詞彙給出了一些屬性和類來輕鬆處理關於人的信息。但它沒有提供任何信息,只有「結構」/「模型」/「模式」來組織信息。 FOAF數據集中沒有個人。這就是爲什麼你的查詢沒有返回結果。由於FOAF數據集中沒有人,因此查詢返回任何內容都是正常的。

您可能希望基於FOAF詞彙表構建您自己的RDF數據集。爲此,如果您熟悉RDF/XML或Turtle,可以嘗試使用Protégé之類的工具,或者使用文本編輯器更輕鬆地進行操作。

否則,如果您只需要熟悉FOAF,就可以查詢模型。例如,您可能希望獲得代理的所有子類:前FOAF去任何進一步

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX foaf: <http://xmlns.com/foaf/0.1/> 
SELECT distinct ?c 
WHERE { ?c rdfs:subClassOf foaf:Agent } 

我建議你閱讀語義Web組件(特別是RDF和RDFS,以及它們之間的差異)位。另外,學習SPARQL的一個很好的練習在於查詢DBpedia:http://dbpedia.org/sparql

+1

一對更有用的學習工具... [OpenLink結構化數據編輯器(OSDE)](http://osde.openlinksw.com/)(使用一個[URIBurner.com上的實例](http://linkeddata.uriburner.com/rdf-editor/))適用於創建和編輯RDF數據文檔。另外,[iSPARQL,交互式SPARQL查詢生成器](http://oat.openlinksw.com/index.html?isparql)位於[http://dbpedia.org/isparql/](http://dbpedia。 org/isparql /)等等。 – TallTed

+0

根據FOAF本體論,是否有包含實例的知識庫?我用dbpedia來例證一個人的「描述」。如果我想讓人們知道一個人「知道」,我不知道是否有知識庫可以回答這個問題? @TallTed – Dihya

+0

本身沒有FOAF知識庫。儘管如此,許多數據集和來源包括基於FOAF的數據;例如,您可以[查詢LOD雲緩存](http://lod.openlinksw.com/sparql?default-graph-uri=&query=PREFIX++foaf%3A++%3Chttp%3A%2F%2Fxmlns.com% 2Ffoaf%2F0.1%2F%3E%0D%0ASELECT + DISTINCT + * +%0D%0AWHERE%0D%0A ++ {+%3FS ++ FOAF%3Aknows ++%3Fo +} +%0D%0AORDER + BY +%3FS +%3Fo%0D由我的僱主[OpenLink Software](http://www.openlinksw.com/)提供的%0ALIMIT + 1000&should-sponge =&format = text%2Fhtml&CXML_redir_for_subjs = 121&CXML_redir_for_hrefs =&timeout = 30000&debug = on)。 – TallTed