3

我正在研究一个 DBpedia 数据集,并使用 Apache Jena 在本地 Jena TDB 数据集上执行 SPARQL。我只从DBpedia Downloads下载了一些文件,这样我就可以将数据集的大小保持在最低限度,但是当我执行以下类型的 SPARQL 查询时没有得到任何结果:

Select distinct * WHERE {
<http://dbpedia.org/ontology/Person> ?x ?y
} LIMIT 5

但是,如果我在Virtuoso 客户端上运行相同的查询,我会得到有效的结果。

哪个 .nt 文件包含以下形式的 URI 三元组:

http://dbpedia.org/ontology/Person
http://www.w3.org/1999/02/22-rdf-syntax-ns#type
http://www.w3.org/2002/07/owl#Class

意思是,需要将Downloads中的哪个 .nt 文件添加到我的本地 Jena TDB 数据集中?

PS 我的数据集中已经有本体信息框类型,其中包含形式为 $object rdf:type $class 的三元组。

4

2 回答 2

2

您可以做的一件事是找出三元组的来源是使用 a GRAPH,如

SELECT DISTINCT * WHERE {
GRAPH ?g { <http://dbpedia.org/ontology/Person> ?x ?y }
}
LIMIT 20

哪个,使用 Virtuoso 客户端,找到与没有它们的查询相同的三元组,但会显示哪些图三元组是从中获得的,例如,

http://dbpedia.org                   rdf:type owl:Class
http://dbpedia.org/resource/classes# rdf:type owl:Class

现在,我想这http://dbpedia.com是一个包含所有其他三元组的默认图,所以这里有趣的可能是http://dbpedia.org/resource/classes#. 根据 Ben Companjen 的回答,我尝试使用 Ontology 数据集,并在运行以下查询时(如您的查询,但没有LIMIT 5

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

SELECT DISTINCT * WHERE {
    <http://dbpedia.org/ontology/Person> ?p ?o
}  

我得到的结果是<http://dbpedia.org/ontology/Person> a owl:Class(它是倒数第二行)。如果LIMIT 5原始查询中存在 ,您可能看不到该特定结果。

$ /usr/local/lib/apache-jena-2.10.0/bin/arq \
    --data ~/Downloads/dbpedia_3.8.owl \
    --query dbpedia.sparql 
-------------------------------------------------------------
| p                   | o                                   |
=============================================================
| rdfs:label          | "person"@en                         |
| rdfs:label          | "persona"@es                        |
| rdfs:label          | "Person"@de                         |
| rdfs:label          | "pessoa"@pt                         |
| rdfs:label          | "personne"@fr                       |
| owl:equivalentClass | <http://schema.org/Person>          |
| rdfs:label          | "Πληροφορίες προσώπου"@el           |
| rdfs:label          | "Oseba"@sl                          |
| owl:equivalentClass | <http://xmlns.com/foaf/0.1/Person>  |
| rdf:type            | owl:Class                           |
| rdfs:subClassOf     | <http://dbpedia.org/ontology/Agent> |
-------------------------------------------------------------
于 2013-05-06T14:52:21.613 回答
1

You need the DBpedia ontology. That defines the classes and properties in the http://dbpedia.org/ontology/ namespace.

于 2013-05-06T12:15:30.037 回答