为什么体育“团队”是通过严格的人格查询在dbpedia中链接的“人”?

时间:2012-12-26 22:05:32

标签: sparql dbpedia

我有以下查询:

SELECT DISTINCT(?person1), ?person2
WHERE { 
   ?person1 ?p ?person2. 
   ?person1 a foaf:Person. 
   ?person2 a foaf:Person.
}
ORDER BY ?person1
LIMIT 1000
OFFSET 0

如果您在此处向下滚动查询结果:http://dbpedia.org/snorql/

你会看到冰上曲棍球队等等。

:%C3%81g%C3%BAst_Hauksson   :Iceland_national_under-21_football_team 
这些人为什么这样?我该如何删除它们?

我也得到如下结果:

:%C3%84ngelholms_FF__Jakob_Augustsson__1    :Jakob_Augustsson 
:%C3%84ngelholms_FF__Joakim_Alriksson__1    :Joakim_Alriksson 
:%C3%84ngelholms_FF__Johan_Eiswohld__1  :Johan_Eiswohld 

仅引用同一个人 - 有没有办法在原始查询中删除这些类型的自引用?

1 个答案:

答案 0 :(得分:1)

资源http://dbpedia.org/resource/Iceland_national_under-21_football_team的输入为foaf:Person(以及dbpedia-owl:Person等),这就是它出现在结果集中的原因。

查看这些语句,我发现此资源也是dbpedia-owl:SportsTeamMember,它是dbpedia-owl:Person的子类,owl:equivalentClass的{​​{1}}。这表明体育团队被推断为一个人。

DBpedia中的信息是使用模板从维基百科中提取的,如here所述。通常,映射模板将Wikipedia信息框和其他模板中的信息映射到DBpedia资源属性。然后,具有特定信息框(或其他映射,“普通”模板)的文章被称为特定的RDF类。 例如,Infobox football club映射模板映射会从具有此信息框的文章中创建类型为foaf:Person的资源。 (但这不适用于冰岛队。)

看起来映射Football squad player可能是冰岛队输入一个人的断言的原因。该模板用于列出团队成员,但用于创建DBpedia资源的Wikipedia页面的版本存在可能破坏该过程的拼写错误。我不完全确定,但它可以解释为什么不是所有国家足球队都打字dbpedia-owl:SoccerClub

您无法从DBpedia中删除特定语句,但您可以更正源维基百科文章中的错误,或更正,更新或创建DBpedia的映射。

要删除自引用,您可以在foaf:Person子句中添加FILTER语句,如下所示:

WHERE

如果您正在寻找WHERE { ?person1 ?p ?person2. ?person1 a foaf:Person. ?person2 a foaf:Person. FILTER (?person1 != ?person2). } 对之间特定类型的关系,您当然可以指定它们:

foaf:Person

编辑2:我后来意识到你要求一种不同类型的自我引用。从DBPedia: What's the meaning of '__1' (double underscores) in URIs?我知道这些是中间节点的URI,为避免必须使用空白节点而创建。例如,WHERE { ... ?person1 foaf:knows ?person2. ... } 是Jakob Augustsson(:%C3%84ngelholms_FF__Jakob_Augustsson__1中(的描述)的(带前缀的)URI。对于足球示例,您可以添加:%C3%84ngelholms_FF以排除这些结果。

编辑1:添加了一些超链接。

相关问题