获取DBpedia类的所有属性

时间:2011-08-04 14:50:25

标签: sparql semantic-web dbpedia

如何获取特定类的属性列表?考虑班级dbpedia-owl:PersonPerson类的所有实例都有一些前缀为dbpprop:的属性。如何获取我们可能为dbpprop:类的所有实例找到的所有Person属性?

2 个答案:

答案 0 :(得分:28)

有效的是:

select distinct ?property where { 
   ?property <http://www.w3.org/2000/01/rdf-schema#domain> 
                             <http://dbpedia.org/ontology/Person> . }

在此查询中,您要求将dbpedia:Person作为rdfs:domain的所有属性。此查询需要模式定义才能工作,有时数据集并不能完全遵循模式。对于这些数据集,您可以尝试使用其他查询

select distinct ?property where {
         ?instance a <http://dbpedia.org/ontology/Person> . 
         ?instance ?property ?obj . }

此查询查看绑定每个属性的人的每个实例。它比第一个难得多,在dbpedia公共实例中你会得到一个时间。如果你想使用公共端点,那么你最好使用第一个。

答案 1 :(得分:5)

要获取所有传递属性,您可以询问此查询

select distinct ?property where{
{
  ?property rdfs:domain ?class . 
  dbpedia-owl:Person rdfs:subClassOf+ ?class.
} UNION {
  ?property rdfs:domain dbpedia-owl:Person.
}}

'rdfs:subClassOf'中的'+'是一个属性路径表达式[1],它也可以获取Person的所有超类。 这些属性对Person也有效。

另请注意,建议不要使用dbprop命名空间,因为数据是原始数据,而不是规范化为数据类型。

[1] http://www.w3.org/TR/2010/WD-sparql11-property-paths-20100126/

披露:我是DBpedia开发人员