【问题标题】:Sparql dbpedia querySparql 数据库百科查询
【发布时间】:2015-07-09 08:07:47
【问题描述】:

我想进行查询 (SPARQL) 以从 dbpedia DB 中进行选择:

  • 我查询的目的是获取任何给定名称的定义:

例子:我想找到名字Victor的定义

PREFIX foaf: <http://xmlns.com/foaf/0.1/>
CONSTRUCT { <http://example.org/person#Alice> foaf:description ?x }
FROM <http://example.org/foaf/people>
WHERE { ?x foaf:name ?name }
ORDER BY desc(?name)
LIMIT 10

我认为没有名为 description 的 foaf 属性,所以我需要返回此属性的查询

【问题讨论】:

  • 你试过什么?是什么让您无法发送该查询?您所说的“名称定义”是什么意思,您具体要查找哪些属性?
  • 我试过这个:PREFIX foaf: xmlns.com/foaf/0.1> CONSTRUCT { example.org/person#Alice> foaf:description ?x } FROM example.org/foaf/people> WHERE { ?x foaf:name ?name } ORDER BY desc(?name) LIMIT 10 我的意思是定义:你的名字是什么意思?就像以利亚的定义:“耶和华是我的上帝”。 Elijah 在英语中的另一种形式是 Elijah /ɨˈlaɪdʒə/。这个名字最显着地属于希伯来先知以利亚。谢谢
  • 您能以格式化的方式将该信息编辑到您的问题中吗?

标签: sparql dbpedia


【解决方案1】:

DBpedia 数据集具有名称的含义。这是使用 SPARQL 查询它们的一种方法:

PREFIX  dbpedia-owl:  <http://dbpedia.org/ontology/>
PREFIX      dbpprop:  <http://dbpedia.org/property/>
SELECT  ?name 
        ?meaning
  WHERE 
    {
      ?s                a  dbpedia-owl:Name
       ;     dbpprop:name  ?name 
       ;  dbpprop:meaning  ?meaning 
       .  FILTER (str(?name) = "Victor")
    }

或者,如果您想要 RDF 三元组,请使用 CONSTRUCT 查询:

PREFIX  dbpedia-owl:  <http://dbpedia.org/ontology/>
PREFIX      dbpprop:  <http://dbpedia.org/property/>
CONSTRUCT { ?s  dbpprop:meaning  ?meaning }
WHERE 
  {
    ?s                a  dbpedia-owl:Name 
     ;     dbpprop:name  ?name 
     ;  dbpprop:meaning  ?meaning 
     .  FILTER (str(?name) = "Victor")
  }

我认为FOAF词汇最适合描述个人、组织、文件等,而不是更抽象的概念,比如名字的含义,所以这里只是使用原始的DBpedia词汇。

【讨论】:

    猜你喜欢
    • 2014-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-15
    • 1970-01-01
    • 2016-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多