2016-05-16 51 views
2

我必須創建一個Q &可以使用SPARQL和DBpedia回答問題的系統。目前,我必須使用不存在的屬性對DBpedia進行許多無用的查詢。我試圖獲得所有屬性並將其放入一個txt文件中,但是我沒有得到它的前綴。從DBPedia獲取所有(荷蘭語)屬性,包括前綴

我SPARQL查詢如下:

select distinct str(COALESCE(?property2, ?property)) as ?property where 
{ 
?instance a <%s> . 
?instance ?property ?obj . 
OPTIONAL{?property rdfs:label ?property2} 
} 

其中s是一個鏈接從DBpedia中像下面這樣得到很好(我這樣做是使用Python)標籤:

"http://dbpedia.org/ontology/Amphibian" 
"http://dbpedia.org/ontology/AmusementParkAttraction" 
"http://dbpedia.org/ontology/AnatomicalStructure" 
"http://dbpedia.org/ontology/Animal" 

的輸出我從查詢中獲得(CSV格式)是:

"prijzengeld loopbaan ($)" "Verluste" "casualties" "pertes" 
"verliezen" "Kategorie" "categorie" 

我想擁有前綴s ^包括在內,因此,例如:

  • prop-nl:
  • dbpedia-owl:

尤其是prop-nl很重要,因爲我必須使用荷蘭的屬性名稱。

+0

財產的答案(查詢)是URI;這就是你真正想要的,不是嗎?人類可讀的前綴,如「prop-nl」,「dbpedia-owl」等,僅僅是某些文本的縮寫。 DBpedia實際上改變了一些預定義的屬性,所以'dbpedia-owl:foo'用於在公共端點上工作,但現在它不會;你必須使用'dbo:foo'。但是''總是可以工作的。 –

+0

但是,如果這就是你想要做的,你可能會在[SPARQL查詢中獲得所有具有名稱空間前綴定義的類標籤]的答案(http://stackoverflow.com/questions/17939197/sparql-query-to-get- all-class-label-with-namespace-prefix-defined/17949002) –

+0

謝謝!因此,不要只是詢問屬性的名稱(如prop-nl:jaar),我可以做?所以我想因此我不需要前綴?我想我會這樣做,而不是使用您提供的鏈接手動縮短URI。謝謝! – DanielsWrath

回答

2

?property(在其中的部分查詢)是URI;這就是你真正想要的,不是嗎?人類可讀的前綴,如「prop-nl」,「dbpedia-owl」等,僅僅是某些文本的縮寫。 DBpedia實際上改變了它們的一些預定義屬性,所以dbpedia-owl:foo用於在公共端點上工作,但現在它不會;你必須使用dbo:foo。但<http://dbpedia.org/ontology/foo>將始終有效。 ?

但是,如果這是你想要做什麼,你可能會發現在SPARQL query to get all class label with namespace prefix defined