21

如何获取特定类的属性列表?考虑类dbpedia-owl:Person。该类的所有实例Person都有一些以 . 为前缀的属性dbpprop:。我怎样才能获得dbpprop:我们可以为Person类的所有实例找到的所有属性?

4

2 回答 2

28

有效的是:

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

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

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

这个查询查看绑定了它产生的每个属性的每个人的实例。它比第一个要困难得多,并且在 dbpedia 公共实例中你会得到一个超时。因此,如果您想使用公共端点,最好使用第一个。

于 2011-08-04T17:07:51.657 回答
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 开发人员

于 2013-12-16T19:29:39.993 回答