【发布时间】:2011-10-20 02:11:31
【问题描述】:
如何获取特定类的属性列表?考虑类dbpedia-owl:Person。 Person 类的所有实例都有一些以dbpprop: 为前缀的属性。如何获取所有dbpprop: 属性,我们可以为Person 类的所有实例找到这些属性?
【问题讨论】:
标签: sparql semantic-web dbpedia
如何获取特定类的属性列表?考虑类dbpedia-owl:Person。 Person 类的所有实例都有一些以dbpprop: 为前缀的属性。如何获取所有dbpprop: 属性,我们可以为Person 类的所有实例找到这些属性?
【问题讨论】:
标签: sparql semantic-web dbpedia
有效的是:
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 公共实例中你会得到一个超时。因此,如果您想使用公共端点,最好使用第一个。
【讨论】:
distinct?可能我还没有真正理解这个关键字的作用。
要获取所有传递属性,您可以询问此查询
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 开发人员
【讨论】:
select * where {dbr:Paris ?p ?o}