在dbpedia

时间:2016-04-13 14:51:31

标签: sparql

我目前正在python中开展一个项目,我想编写大量的荷兰新闻文章。我想扫描这些文章的新闻价值,其中包括名人新闻。为了做到这一点,我想让我们dbpedia创建一个歌手/演员/电视名人/其他'着名'人物的列表,以便在我的报纸文章中寻找这些名字。

因此,我正在寻找一种方法来设置一个SPARQL查询,该查询产生一个名人名单。我发现,例如在音乐家的情况下,我正在寻找的OWL应该是东西 - >人 - >艺术家 - >音乐艺术家(例如),但我无法弄清楚如何到达那里。如果我能够在给定的OntologyClass(例如,音乐艺术家或名人)中获得维基百科文章的标题列表,那将是理想的,最好是.json文件格式(据我所知,这是支持的一种)文件格式)。

显然,我已经尝试过自己设置一个SPARQL搜索,但到目前为止,我只收到错误消息(说实话我真的不能理解)而不是我想要的结果。任何人都可以告诉我如何设置如上所述的sparql查询(返回给定本体类中的名称列表)或者如何以其他方式检索这样的人员列表?

我希望顺便查询荷兰语版本的dbpedia,http://nl.dbpedia.org

不幸的是,我只走到这一步:

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX dbpedia-owl:<http://dbpedia.org/ontology/>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
SELECT ?name WHERE {
  ?label owl:type :MusicalArtist
}

1 个答案:

答案 0 :(得分:2)

您的查询

Arabic

此问题存在许多问题,其中一些问题将由端点或查询验证程序检测到。您在:MusicalArtist 中使用前缀,但您没有定义它。使用您的前缀,应该是 dbpedia-owl:MusicalArtist 。没有 owl:type 属性;你想要 rdf:type ,在SPARQL查询中可以缩写为 a (如“查找?艺术家那样 a 音乐艺术家” )。

如何做到这一点

我可能会使用类似以下的查询。这里有一些你可能需要做一些研究来理解,比如; 表示法,使用 langMatches lang ,以及投影中的 str ,但这些都非常简单,可以通过查看您可以在线找到的其他查询(例如,在Stack Overflow上)或咨询{{ 3}}。此查询适用于SPARQL 1.1 specification

处的标准DBpedia端点
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX dbpedia-owl:<http://dbpedia.org/ontology/>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
SELECT ?name WHERE {
  ?label owl:type :MusicalArtist
}

http://dbpedia.org/sparql

要以JSON格式获取结果,您可以选择“JSON”作为端点的结果类型,然后您将获得包含以下内容的文件:

select (str(?name_) as ?name) {
  ?artist a dbo:MusicalArtist ;
          rdfs:label ?name_ .
  filter langMatches(lang(?name_), "en")
}

要在Dutch DBpedia端点上使用此功能,您需要定义 dbo:前缀,该前缀未在此处预定义。此外,语言过滤可能没有帮助,因为可能没有那么多的英语结果。因此,您可能会得到类似的结果:

{ "head": { "link": [], "vars": ["name"] },
  "results": { "distinct": false, "ordered": true, "bindings": [
    { "name": { "type": "literal", "value": "AK 47 Mayanja" }},
    { "name": { "type": "literal", "value": "AR-Ab" }},
    { "name": { "type": "literal", "value": "A Pass" }},
    ...
    { "name": { "type": "literal", "value": "Vance Joy" }},
    { "name": { "type": "literal", "value": "Vince Gill" }},
    { "name": { "type": "literal", "value": "Wayne Hussey" }} ] } }