问题标签 [wikidata-api]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wikipedia-api - 从 wikidata 网站而不是 API 获取搜索结果
我正在尝试使用 wikidata API,但在搜索查询“Jas 39 C Gripen”时遇到了一些问题。它会在 wikidata 网站上返回结果,但如果我使用 API 则不会。
在 wikidata 网站上,我得到了两个查询的搜索结果
https://www.wikidata.org/w/index.php?search=Jas+39+C+Gripen&title=Special:Search&fulltext=1
使用 API 的相同查询,不返回结果
我是否遗漏了一些参数或使用了错误的参数?对于许多其他查询,我从 API 获得结果。
sparql - Wikidata SPARQL - 国家及其(仍然存在的)邻国
我想从 Wikidata 中使用 SPARQL 查询一个国家的邻居,如下所示:
我的问题是,例如,在德国邻国的这个例子中,仍然显示了不再存在的国家,例如:
- 丹麦王国或
- 萨尔州。
已经试过了
我已经可以通过FILTER
声明减少数字了。
问题
- 如何使声明减少到9个国家?
- (也可以划分陆地边界和海上边界)
选择
- 在这个 API 上过滤对我来说也很好https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q35
- 与世界上所有国家/地区有邻国的数据库或列表或准备的HashMaps
geolocation - 在一次 Mediawiki API 调用中检索项目、其浏览量和地理属性
这是我不久前在Get location with Wikimedia API中提出的答案的全面而完整的版本。几天来,我碰巧浏览了所有的 Mediawiki API、GeoData API 和 Wikidata Query SPARQL 服务文档,在 Stackoverflow 和 Wikimedia 的几个讨论板上发布了我的问题,但没有找到令人满意的答案。
问题如下:我正在尝试使用 GeoData API 来执行上述任务 - 地理定位项目的国家和城市归属。我的任务的简短描述:获取使用坐标定义的特定位置周围的维基百科页面列表,获取一些页面属性(页面视图,主图像),然后获取国家和城市(人类可读 - 不是 ID)此页面项目属于。示例描述:假设我在圣家堂附近有一些地理坐标作为输入。我想在这个坐标周围 1 公里半径范围内收到 N 个维基百科页面的列表。我想接收每个页面的页面浏览量和主图像。我希望确定页面上描述的每个项目都位于西班牙巴塞罗那。
我发现 GeoData API 在根据项目的地理位置检索各种数据时非常干净、简单且用户友好。但是检索该项目的国家/城市从属关系存在困难。虽然理论上可以在单个请求中获取国家/地区(也并非总是如此,但仅在指定且不是以名称格式而是通过其字母指定)作为 GeoData API 本身的参数时,城市可能仅针对以下项目获取本身就是城市。另一方面,每个地理标记项目都存在此信息,例如可通过 Wikibase SPARQL 查询服务获得。但随后我需要对 WikiData 执行辅助请求,我希望通过各种方式避免这些请求。我设法尝试了所有方法:
从 Wikibase SPARQL 请求中调用 Wikimedia API(GeoData 扩展),但它似乎不起作用。
使用 Wikibase SPARQL 请求检索围绕特定坐标的 Wikidata 项目,但我无法从 Wikipedia 获取有关页面视图的信息。
使用“generator=geosearch”生成地理位置周围的页面列表,并将其传递给 Wikimedia API 的几个 props 和 pageprops 调用相关的 Wikidata 项目。但是我只获得了 Wikidata 属性的 ID,而我需要人类可读的标签。
api - 从维基百科/维基数据/链接数据中获取已消除歧义的同音词列表
"George Bush"
如果我在维基百科上手动搜索,我会得到这个页面,其中列出了带有简短描述的同音词。
我想将我的搜索提供给 api 并获取以下信息:
- 乔治·H·W·布什
- 乔治·W·布什
- 乔治·布什(圣经学者)
- 乔治·布什(足球运动员)
- 乔治·布什(赛车手)
- 乔治·P·布什
- 乔治华盛顿布什
只要我能明确地解析它,我不介意得到更多。
我的目标是让网站的用户能够标记公众人物,但我想限制他们的选择并避免歧义,所以这个列表可能会略有不同,任何其他带有 api 的体面数据库都可以。
我还没有弄清楚如何使用维基百科或维基数据来做到这一点,我只是设法在知道特定 ID/页面后进行查询,这里不是这种情况。
wikidata-api - Wikidata Api - 子实例和子类的距离树
给定一个作为 X 实例的实体,有一个 Wikidata API 允许查看所有 X 子实例和/或子类的树。示例:纽约是美国城市 (Q1093829) 的一个实例。如果 Q1093829 是某物的子类或某物的实例等等,我能否通过对 API 的一次调用知道,直到关系结束?
mediawiki - 从维基百科获取类别:重要文章
我正在尝试从维基百科为我正在从事的项目获取“类别树”。问题是我只想要更常见的主题和研究领域,所以我能找到的更大的转储包含太多的外围文章。
我最近发现了重要的文章页面,这些页面似乎正是我正在寻找的内容的集合。不幸的是,我真的不知道如何从这些页面中提取信息或过滤较大的转储以仅包含这些类别和文章。
明确地说,我的问题是:给定一个重要的文章级别(比如级别 4),我如何将给定列表的类别树和文章名称提取,例如人、艺术、物理科学等到 csv 或类似文件中然后我可以导入另一个程序。我不需要文章的实际内容,只需要名称(最好是对文章的引用,以便稍后获取更多信息)。
我也愿意接受有关如何更好地完成这项任务的建议。
谢谢!
lua - 如何检查Lua中是否存在表子字段?
我正在尝试使用 Wikidata 的 Lua 模型。
我需要在 Wikidata 的实体中搜索特定 ID:
主要问题是某些实体没有entity['claims']['P1629'][1]["mainsnak"]["datavalue"]["value"]["numeric-id"]
子字段。
所以 Lua 返回:
模块中的 Lua 错误:LoPwS_row 第 80 行:尝试索引字段“P1629”(零值)。
如果我做一个:
它不起作用,因为条件调用该字段,然后返回相同的错误。
如果字段存在,是否有一个简单的测试解决方案?谢谢!
full-text-search - wikidata API 中 wbsearchentities 的准确性
我目前正在使用 MediaWiki API(通过 SPARQL SERVICE wikidata:mwapi)使用wbsearchentities
端点从 Wikidata 查询实体。
但是,我注意到搜索结果不是那么好(例如搜索charlton
or heston
,不会在前 10 个结果中返回 Charlton Heston,这是意料之中的),而标准搜索端点query?list=search
效果更好。
我的问题是使用什么算法wbsearchentities
,为什么它的效果不如标准query?list=search
?
我目前的理解是wbsearchentities
只搜索标签,query?list=search
而是全文搜索,但它仍然不应该证明 IMO 结果中的这种差异是合理的。
干杯!
sparql - 如何按名称(模糊搜索)和第三方 ID 查询 wikidata
我希望利用 wikidata(必要时学习一点 Sparql)进行实体匹配,并希望:
- 通过名称和属性列表的名称查询实体(都是模糊搜索)=> 以确保在消除歧义的情况下!(猫是猫,不是蛋白质)
- 通过第三方的属性 ID(例如 wikipedia 的外部 ID,或 Google Knowledge Graph)查询实体。
__
关于第 1 点。
我在网络请求中偷偷摸摸并阅读了类似的内容:
我查看了文档https://www.wikidata.org/w/api.php 它充满了参数,但没有示例可以直观地看到它们的作用。
- 您能否举一个示例,通过 API REST 或直接在 Sparql 中结合实体名称的全文搜索和属性列表,以便获取匹配实体的 wikidata ID?
根据https://query.wikidata.org/中的示例
关于第 2 点。
我如何查询具有指定属性的实体 - 例如第三方的 ID,例如 Google Knolwedge Graph ID - Property P2671 / Freebase ID?
openrefine - 从协调列中获取其他语言的 wikidata 标签
我想通过获取这些语言的标签来使用 wikidata 协调将一列术语翻译成各种语言。使用 SPARQL,我将按语言过滤标签查询(这是在各种类似情况下建议的方法)。但是,我看不到如何使用 OpenRefine 协调来做同样的事情。
也许问题在于 wikidata API 是特定于语言的?