sparql - Wikidata SPARQL:获取子类但也返回父类
问题描述
我正在对 Wikidata 实体编写 SPARQL 查询,并且我想获取所有匹配“是实体 Q3 或其子类之一”的实体。
我知道如何仅通过以下查询获取子类:
SELECT DISTINCT ?item
WHERE {
{ ?item wdt:P279 wd:Q3 . }
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
但我还想Q3
在响应中包含原始父实体(此处)。我应该如何修改我的查询以便Q3
也返回?
解决方案
我最终自己找到了解决方案:我需要?
在查询中的属性之后添加一个(表示“0 或 1”)。
所以它变成:
SELECT DISTINCT ?item
WHERE {
{ ?item wdt:P279? wd:Q3 . } # here is the extra "?" after "wdt:P279"
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
现在这会正确返回 Q3 及其所有子类。
推荐阅读
- airflow - 气流任务实例突变未处理
- android - Android Auto DHU - 等待电话
- laravel - 在模型 Laravel 中的 null 自定义键上调用成员函数 addEagerConstraints()
- python-3.x - 多个 IP 地址匹配的正则表达式
- google-cloud-dataflow - 触发定时器回调
- c# - Piranha CMS 想用新数据扩展用户吗?
- json - 如何使用获取的 JSON 数据更新 ObservableMap 中的现有实例
- node.js - 找不到模块'http-simple-proxy' - 尽管一切设置正确
- ios - 如何在 iOS 上使用 XPath 进行抓取?
- typescript - 具有基于键的条件值的打字稿对象