2016-05-16 53 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