SPARQL和查询的[property]
我试图在DBpedia中使用SPARQL从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: <
查询数据。但是,我试图匹配的属性被列为的子属性(示例:)
但是,在进行查询时,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}
)。