我必须创建一个问答系统,我可以使用它使用SPARQL和DBpedia回答问题。当前,我必须使用不存在的属性对DBpedia进行许多无用的查询。我试图获取所有属性并将其放在txt文件中,但是我没有得到前缀。

我的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"


我想包含前缀,例如:


prop-nl:
dbpedia-owl:
等等


特别是prop-nl很重要,因为我必须使用荷兰属性名称。

最佳答案

属性(在查询的where部分)是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中找到答案

关于python - 从DBPedia获取所有(荷兰)属性,包括前缀,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37254021/

10-13 01:02