如何以编程方式从维基数据实体获取所有可用信息?

2023-12-30

我对维基数据真的很陌生。我只是认为维基数据使用了大量的具体化。

假设我们想要获取奥巴马可用的所有信息。如果我们要从 DBpedia 执行此操作,我们只需使用一个简单的查询:select * where {<http://dbpedia.org/resource/Barack_Obama> ?p ?o .}这将返回以奥巴马为主题的所有属性和值。本质上结果与此页面相同:http://dbpedia.org/page/Barack_Obama而查询结果是我需要的格式。

我想知道如何对维基数据做同样的事情。这是奥巴马的维基数据页面:https://www.wikidata.org/wiki/Q76。假设我想要此页面上的所有声明。但这个页面上的语句几乎都是具体化的,有排名、限定词等。比如“学历”部分,不仅有学校,还有“开始时间”和“结束时间”由于奥巴马不再在这些学校就读,因此所有学校都排名正常。

我可以通过得到真实的陈述来得到所有的学校(使用https://query.wikidata.org https://query.wikidata.org):

SELECT ?school ?schoolLabel WHERE {
wd:Q76 wdt:P69 ?school .
   SERVICE wikibase:label {
    bd:serviceParam wikibase:language "en" .
   }
 }

上面的查询将简单地返回所有学校。

如果我想获取学校的开始时间和结束时间,我需要这样做:

SELECT ?school ?schoolLabel ?start ?end WHERE {
wd:Q76 p:P69 ?school_statement .
?school_statement ps:P69 ?school .
?school_statement pq:P580 ?start .
?school_statement pq:P582 ?end .
   SERVICE wikibase:label {
    bd:serviceParam wikibase:language "en" .
   }
 }

但问题是,如果不查看实际页面,我怎么知道 ?school_statement 有 pq:P580 和 pq:P582,即“开始时间”和“结束时间”?这一切都归结为一个问题:我如何获取所有信息(包括具体化)https://www.wikidata.org/wiki/Q76?

最终,我期望有一个这样的表:||predicate||object||objectLabel||qualifier1||qualifier1Value||qualifier2||qualifier2Value||...


你可能应该去维基数据 API https://www.wikidata.org/w/api.php(更具体地说模块)而不是 SPARQL 端点:

在你的情况下:

您应该找到您要查找的所有限定符数据:例如entities.Q76.claims.P69.1

{ mainsnak: 
   { snaktype: 'value',
     property: 'P69',
     datavalue: 
      { value: { 'entity-type': 'item', 'numeric-id': 3273124, id: 'Q3273124' },
        type: 'wikibase-entityid' },
     datatype: 'wikibase-item' },
  type: 'statement',
  qualifiers: 
   { P580: 
      [ { snaktype: 'value',
          property: 'P580',
          hash: 'a1db249baf916bb22da7fa5666d426954435256c',
          datavalue: 
           { value: 
              { time: '+1971-01-01T00:00:00Z',
                timezone: 0,
                before: 0,
                after: 0,
                precision: 9,
                calendarmodel: 'http://www.wikidata.org/entity/Q1985727' },
             type: 'time' },
          datatype: 'time' } ],
     P582: 
      [ { snaktype: 'value',
          property: 'P582',
          hash: 'a065bff95f5cb3026ebad306b3df7587c8daa2e9',
          datavalue: 
           { value: 
              { time: '+1979-01-01T00:00:00Z',
                timezone: 0,
                before: 0,
                after: 0,
                precision: 9,
                calendarmodel: 'http://www.wikidata.org/entity/Q1985727' },
             type: 'time' },
          datatype: 'time' } ] },
  'qualifiers-order': [ 'P580', 'P582' ],
  id: 'q76$464382F6-E090-409E-B7B9-CB913F1C2166',
  rank: 'normal' }

那么您可能会对以下方式感兴趣从这些结果中提取可读的结果 https://stackoverflow.com/questions/31266398/getting-readable-results-from-wikidata/31290824

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何以编程方式从维基数据实体获取所有可用信息? 的相关文章

  • 如何检索维基数据中的分类详细信息

    我有一个实例列表如下 myinstances word2vec tf idf dijkstra s algorithm 对于每个myinstance在上面的列表中 我想找到 1 What are the other instances of
  • 有没有API可以从wiki页面获取图像

    我想从维基百科页面获取主图像 我有所有维基百科实体名称 我从中创建维基链接并从该页面获取主图像 我尝试过 https github com richardasaurus wiki api https github com richardas
  • 具有任意属性的 SPARQL 属性路径查询

    SPARQL 属性路径 http www w3 org TR sparql11 query propertypaths任意长度的查询需要使用特定的属性 我想查询并查找从一个资源开始并以另一个资源结束的任何路径 例如 SELECT p WHE
  • 基于 SParQL 中的 URI 进行过滤 [重复]

    这个问题在这里已经有答案了 您可以在以下位置运行以下查询链接 MDB SPARQL 资源管理器 http www linkedmdb org snorql 的价值观 imdbID 最后一个变量 包含来自三个可能域 freebase com
  • Fuseki 1.0.1 SPARQL 更新返回 404

    我正在尝试学习更新 Fuseki 中的数据 但当我尝试时出现 404 错误 我显然没有做正确的事情 也许这是我的 INSERT 命令 不过我已经尝试过很多了 我正在使用 sparql tpl 上基于 Web 的 SPARQL 界面 我可以让
  • 计算OWL本体中子类的深度

    我正在寻找一个 SPARQL 查询 它可以返回 OWL 层次结构中指定子类的位置 我研究了几个例子 但我能达到的最好结果是计算指定超类与其子类之间的相对路径 感谢约书亚 泰勒 https stackoverflow com a 230949
  • 如何使用 DBpedia 属性构建主题层次结构?

    我试图通过遵循下面提到的两个 DBpedia 属性来构建主题层次结构 skos 更广泛的财产 dcterms 主题属性 我的目的是给这个词确定它的主题 例如 给出这个词 支持向量机 我想从中识别主题 例如分类算法 机器学习等 然而 有时我对
  • 带标签的维基数据 SPARQL 查询不起作用

    我不明白为什么通过这个查询我无法获得运动和流派标签 SELECT DISTINCT item itemLabel value inception creatorLabel image group concat genreLabel sepa
  • 投影中的变量“x”不存在于 GROUP BY 中

    我想计算城市和括号中的内容 但是 我也想获得另一个变量 但是当我将它添加到 SELECT 时 我得到 org openrdf query MalformedQueryException 投影中的变量 region name 不存在于 GRO
  • dbpedia SPARQL 查询获取给定城市的某些值

    我确信我想做的事情非常简单 但我似乎无法正确查询 我在数据集中有记录 其中包含城市名称等值 例如 纽约 及其相应的国家 地区代码 例如 美国 我还可以访问完整的国家 地区名称和国家 地区 ISO 代码 我想通过使用 where 子句从 db
  • GraphDB Free 8.8 Sparql INSERT 返回 400。不支持 INSERT?

    我正在使用 GraphDB Free 并尝试使用 sparql 将一些三元组插入到存储中 该查询看起来像一个简单的 INSERT Some Prefixes INSERT DATA subject predicate object 我使用
  • 为 RDBMS(MySQL 数据库)创建 SPARQL 端点的最佳方法

    我正在 想做 一些链接开放数据集的实验 特别是政府推出的实验 我有一个 RDBMS 更具体地说是 MySQL 我设计它时考虑了语义网络的想法 即我将信息存储为对象 谓词和定义对象的类 反过来 所有对象通过主语 gt 谓词 gt 宾语形式的语
  • sparql 主题的完整树

    例如 当我有一个人图时 例如约翰和约翰有工作地址 家庭地址 电话号码 关系等 是否有可能在不知道它是什么的情况下检索与 john 及其子类相关的所有内容 这样我就可以检索例如以下内容 John lt address lt house num
  • Jena 桌面 SPARQL 客户端 (TDB)?

    我正在开发一个使用 Jena 进行存储 带有 TDB 后端 的应用程序 我正在寻找类似 Squirrel 的东西 它可以让我看到正在存储的内容 运行查询等 这似乎是一个明显需要的东西 但我的 可能措辞不好 谷歌查询没有出现任何有希望的东西
  • 组图模式在 SPARQL 中如何工作

    首先 我不知道这是否真的称为组图模式 反正 请看看这个查询 select x y where x rdf type rs Recommendable union xd rs doesntexist y 有no rs doesntexist但
  • 从 RDF 节点拉出字符串

    在使用 Jena 的 SPARQL 查询时 我试图以更易读的格式获取数据 但是我不知道如何以正确的方式提取数据 就目前而言 输出是 http www w3 org TR 2003 PR owl guide 20031209 wine Sau
  • 在SPARQL中使用LIMIT时如何获取结果总数?

    我有一个 SPARQL 查询 它返回结果LIMIT共 20 个 在此查询中 我还想知道结果总数 而无需运行查询两次 一次运行LIMIT和一个没有LIMIT 例如 运行查询时 可能的结果总数为 500 个 其中LIMIT它一次只显示 20 个
  • Jena tdb 中的事务发生错误?

    我正在尝试将属性写入模型 然后查询它 我的代码的这一部分 String directory EMAILADDRESS create the dataset for the tdb store Dataset ds TDBFactory cr
  • 对同一属性的 SPARQL 结果进行分组?

    我有以下 SPARQL 查询 PREFIX rdfs
  • 如何以 JSON-LD 返回 SPARQL 结果?

    返回 SPARQL 查询结果的好方法是什么JSON LD http www w3 org TR 2014 REC json ld 20140116 最好靠近标准化 JSON 格式 http www w3 org TR 2013 REC sp

随机推荐