在SPARQL中获取特定人的性别。。。?

在SPARQL中获取特定人的性别。。。?,sparql,dbpedia,Sparql,Dbpedia,我对这些话题很陌生。我阅读了sparql文档,并试图了解某个人的性别。比如说我想要拉里•佩奇性别。我能够获得lary_页面的所有属性(基于以下页面:),但它没有任何称为性别的属性。那么我怎样才能知道某个人的性别。。。???有谁能告诉我答案吗?DBpedia不是一个特别完整的数据集。很有可能,对于你正在看的人来说,根本没有定义任何类型的性别属性——类似于中的答案中概述的情况 即使有,也要记住,它可以由各种属性和值表示,因此您必须检查所有属性和值,以至少使用定义它的数据。快速检查至少会显示以下属性,

我对这些话题很陌生。我阅读了sparql文档,并试图了解某个人的性别。比如说我想要拉里•佩奇性别。我能够获得lary_页面的所有属性(基于以下页面:),但它没有任何称为性别的属性。那么我怎样才能知道某个人的性别。。。???有谁能告诉我答案吗?

DBpedia不是一个特别完整的数据集。很有可能,对于你正在看的人来说,根本没有定义任何类型的性别属性——类似于中的答案中概述的情况

即使有,也要记住,它可以由各种属性和值表示,因此您必须检查所有属性和值,以至少使用定义它的数据。快速检查至少会显示以下属性,这些属性可能存储您感兴趣的信息:

请注意,其中一些可能会链接到其他资源,如or,而另一些则只包含字符串,如
男性
女性
(FOAF规范明确规定

通常但不一定是“男性”或“女性”

)


例如,以下查询返回的性别为:

同样,以下查询列出了许多人的姓名和性别:

SELECT ?pn ?gl
WHERE {
  ?person dbpedia-owl:gender ?g.
  ?person a dbpedia-owl:Person.
  ?person dbpprop:name ?pn.
  {
    ?person dbpedia-owl:gender dbpedia:Male.
  } UNION {
    ?person dbpedia-owl:gender dbpedia:Female.
  }.
  ?g rdfs:label ?gl.
  FILTER(lang(?gl) = "en").
}
但是,此查询只能捕获设置了相应类型和性别属性的人员。Larry Page将永远不会与当前数据集一起出现在该列表中,因为它没有相应的性别属性。作为另一个实际示例,请参见这个非常类似的查询,它返回一个不同的(非空)列表:

另一个查询返回另一个列表:

SELECT ?pn ?gl
WHERE {
  ?person ?gender ?gl.
  ?person a dbpedia-owl:Person.
  ?person dbpprop:name ?pn.
  FILTER((?gl = "Female"@en) || (?gl = "Male"@en)).
}
EDIT:DBpedia的默认名称空间前缀在编写此答案后已更改。映射如下:

  • dbpedia
    ->
    http://dbpedia.org/resource/
    (现在是
    dbr
  • dbpediaowl
    ->
    http://dbpedia.org/ontology/
    (现在是
    dbo
  • dbpprop
    ->
    http://dbpedia.org/property/
    (现在为dbp)

干杯。我正在使用DBPEDIA本体。我尝试了不同的方法,但我无法得到某个人的性别。如果可能的话,请您提供一个简单的查询,以获取特定人员的性别(使用我的示例,我的意思是获取Larry_页面的性别)。请提供示例。我被困在这里。@Amar:没有通用的方法来获取给定人的性别-正如我在回答中解释的,它需要寻找各种属性(因此,简单的查询肯定不够),在某些情况下-可能,拉里·佩奇就是其中之一——这可能是完全不可能的,因为有关此人性别的相关信息根本不包含在DBpedia数据中。@Amar:我添加了一个示例,但我不确定它是否是您想要的。@fanbondi:DBpedia的默认名称空间前缀似乎已更改。对于当前列表。似乎
dbpedia owl
已重命名为
dbo
dbpedia
已重命名为
dbr
。例如,如果在第一个查询中进行这些替换,则结果集不是空的。我刚刚用我的答案中的前两个查询尝试了这个方法,它成功了。@fanbondi:我编辑了我的答案,将使用过的前缀映射到实际的URI前缀。请注意,在您的特定情况下,一个可能的混淆源是您链接到的SNORQL前端包含了附加的
前缀dbpedia:
声明,它声明的
dbpedia
前缀与以前不同(与我在本回答中使用的前缀不同)。在这个答案中,
dbpedia
映射到
http://dbpedia.org/resource/
,而不是
http://dbpedia.org/
SELECT ?pn ?gl
WHERE {
  ?person dbpedia-owl:gender ?g.
  ?person a dbpedia-owl:Person.
  ?person dbpprop:name ?pn.
  {
    ?person dbpedia-owl:gender dbpedia:Man.
  } UNION {
    ?person dbpedia-owl:gender dbpedia:Woman.
  }.
  ?g rdfs:label ?gl.
  FILTER(lang(?gl) = "en").
}
SELECT ?pn ?gl
WHERE {
  ?person ?gender ?gl.
  ?person a dbpedia-owl:Person.
  ?person dbpprop:name ?pn.
  FILTER((?gl = "Female"@en) || (?gl = "Male"@en)).
}