SPARQL和查询的[property]

SPARQL和查询的[property],sparql,ontology,dbpedia,virtuoso,Sparql,Ontology,Dbpedia,Virtuoso,我试图在DBpedia中使用SPARQL从查询数据。但是,我试图匹配的属性被列为的子属性(示例:) 但是,在进行查询时,dbp:childrenOf,dbo:childrenOf,以及类似的其他查询都不起作用。我该如何申请那笔财产 谢谢 下面是我的示例查询: PREFIX dbo: <http://dbpedia.org/ontology/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX rdfs: <

我试图在DBpedia中使用SPARQL从
查询数据。但是,我试图匹配的属性被列为的子属性(示例:)

但是,在进行查询时,
dbp:childrenOf
dbo:childrenOf
,以及类似的其他查询都不起作用。我该如何申请那笔财产

谢谢

下面是我的示例查询:

PREFIX   dbo:  <http://dbpedia.org/ontology/>
PREFIX  foaf:  <http://xmlns.com/foaf/0.1/>
PREFIX  rdfs:  <http://www.w3.org/2000/01/rdf-schema#>        
PREFIX  type:  <http://dbpedia.org/class/yago/>
PREFIX   dbp:  <http://dbpedia.org/property/> 

SELECT DISTINCT ?person ?birthDate ?birthPlace ?parents
WHERE {  
           ?person  a               dbo:Person .
         { ?person  rdfs:label      "Angelina Jolie"@en }
  UNION  { ?person  dbp:name        "Angelina Jolie"@en } .

           ?person  dbo:birthDate   ?birthDate.
           ?person  dbo:birthPlace  ?bp.
           ?bp      rdfs:label      ?birthPlace.
OPTIONAL { ?person  dbp:childrenOf  ?parents}
   FILTER (LANG(?birthPlace)='en')
}
前缀dbo:
前缀foaf:
前缀rdfs:
前缀类型:
前缀dbp:
选择不同的?人?出生日期?出生地?父母
何处{
?个人dbo:个人。
{?person-rdfs:label“Angelina-Jolie”@en}
工会{个人dbp:姓名“安吉丽娜·朱莉”@en}。
?个人dbo:生日?生日。
?个人dbo:出生地?bp。
?bp rdfs:标签?出生地。
可选{个人dbp:childrenOf?父母}
过滤器(LANG(?出生地)='en')
}

我试图修正的一行是
可选
子句。

不幸的是,我认为安吉丽娜的任何孩子都没有维基百科页面(因此没有DBpedia页面),因此你很难用这个特定的例子来解析任何答案

下面是一个稍微不同的查询版本,用于检索不同人的父母-

PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>        
PREFIX type: <http://dbpedia.org/class/yago/>
PREFIX dbp: <http://dbpedia.org/property/> 

SELECT DISTINCT ?person ?birthDate ?birthPlace ?parents
WHERE {  
      ?person a dbo:Person .

      {?person rdfs:label "Ras Barker"@en}
      UNION 
      {?person dbp:name "Ras Barker"@en}
      UNION 
      {?person dbo:birthName "Ras Barker"@en}

      OPTIONAL { ?person dbo:birthDate ?birthDate. }
      OPTIONAL { ?person dbo:birthPlace ?bp . ?bp rdfs:label ?birthPlace. }
      #OPTIONAL { ?person dbo:parent ?parents }
      OPTIONAL { ?parents dbo:child ?person }
      FILTER (LANG(?birthPlace)='en')
}
前缀dbo:
前缀foaf:
前缀rdfs:
前缀类型:
前缀dbp:
选择不同的?人?出生日期?出生地?父母
何处{
?个人dbo:个人。
{?person rdfs:标签为“Ras Barker”@en}
联合
{?个人dbp:name“Ras Barker”@en}
联合
{?个人dbo:出生名“Ras Barker”@en}
可选{?个人dbo:生日?生日。}
可选{个人dbo:出生地?bp。?bp rdfs:标签?出生地。}
#可选{?person dbo:parent?parents}
可选{父母dbo:child?person}
过滤器(LANG(?出生地)='en')
}

我选择使用
dbo
谓词
child
,而不是
childrenOf
(不确定是否使用了该谓词)。并将与出生相关的内容包装到
OPTIONAL
子句中,因为您不能100%依赖实例数据,因为这些谓词已经就位。

但是childrenOF指的是dbr:JonVoight,他确实有一个页面(不是寻找Angelina的孩子,而是他们的父母)。在这种情况下,交换最后一个可选子句可能会有所帮助。将此-OPTIONAL{person dbo:parent?parents}替换为-OPTIONAL{parents dbo:child?person},只是为了在原始查询()中澄清这不是正在使用的真正谓词。它可以工作:)谢谢!。请将它添加到原始asnwert中,以接受它作为解决方案。您正在查看的属性实际上是
dbp:children
——但它在该页面上被反向使用,表示朱莉是她父母的
dbp:children
(即
{dbr:Jon_Voight dbp:children dbr:Angelina_Jolie.dbr:Marcheline_Bertrand dbp:children dbr:Angelina_Jolie}
)。