我唯一能做的就是这个链接:
https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q568&format=jsonfm
Run Code Online (Sandbox Code Playgroud)
但这会产生大量无用的数据.我需要的是获取给定项的所有语句,但我看不到上面查询中的任何语句.
这将是:
{ "instance of" : "chemical element",
"element symbol" : "Li",
"atomic number" : 3,
"oxidation state" : 1,
"subclass of" : ["chemical element", "alkali metal"]
// etc...
}
Run Code Online (Sandbox Code Playgroud)
是否有这样的API或我必须刮网页?
我正在尝试从维基百科转储中提取中间语言链接。这些链接似乎已移至 WikiData 项目,并且仅通过 API 提供访问权限。
此分支解释了如何处理该问题并建议切换到 API: 从导出的维基百科文章中检索中间语言链接?
然而,我的研究范围似乎太大,无法使用 Web API(数百万个查询)。有谁知道是否可以从 API 之外的任何地方提取这些链接?解析任意大小的转储比查询 API 更可取。
我使用的维基百科转储: http ://dumps.wikimedia.org/backup-index.html
我使用的维基数据转储: http://dumps.wikimedia.org/wikidatawiki/latest/
在其中一个查询维基数据的示例中,我找到了以下查询,其中包括SELECT后行中的p:P6/v:P6.这是什么意思?
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX p: <http://www.wikidata.org/prop/>
PREFIX v: <http://www.wikidata.org/prop/statement/>
SELECT ?p ?w ?l ?wl WHERE {
wd:Q30 p:P6/v:P6 ?p . #-- This line
?p wdt:P26 ?w .
OPTIONAL {
?p rdfs:label ?l filter (lang(?l) = "en") .
}
OPTIONAL {
?w rdfs:label ?wl filter (lang(?wl) = "en").
}
}
Run Code Online (Sandbox Code Playgroud) 您如何请求Item具有的所有属性集?
具体来说,我正在寻找每个项目的英文标签,这是项目属性的价值.
例如" 地球 ":
{
"Challenger Deep",
"Solar System",
"oblate spheroid",
"geoid",
"World Ocean",
"Afro-Eurasia",
...
}
Run Code Online (Sandbox Code Playgroud)
我现在正在使用维基数据工具包库,但我会提出建议.
如果查询返回的Wikidata资源没有以我过滤的语言提供的可用标签,则获得一个空单元格。
SELECT *
WHERE
{
?country wdt:P31 wd:Q6256.
?country rdfs:label ?country_name
FILTER(LANG(?country_name) = 'jbo').
}
Run Code Online (Sandbox Code Playgroud)
如果第一种语言失败,如何请求以任何一种可用语言返回标签?
如果我运行此SPARQL查询
#defaultView:BubbleChart
#TEMPLATE={"template":"Overall causes of death ranking of ?thing ","variables":{"?thing": {"query":"SELECT ?id (COUNT(?id) AS ?count) WHERE { ?sub wdt:P509 ?y. ?sub wdt:P31 ?id. } GROUP BY ?id "} } }
SELECT ?cid ?cause (COUNT(*) AS ?count) WHERE {
BIND(wd:Q5 AS ?thing)
?pid wdt:P31 ?thing.
?pid wdt:P509 ?cid.
OPTIONAL {
?cid rdfs:label ?cause.
FILTER((LANG(?cause)) = "en")
}
}
GROUP BY ?cid ?cause
ORDER BY DESC(?count) ?cause
LIMIT 50
Run Code Online (Sandbox Code Playgroud)
在维基数据查询编辑器中,我可以选择使用菜单下载> SVG图像将气泡图下载为SVG文件
当我以编程方式执行相同的SPARQL脚本时,我正在寻找一种生成或检索此SVG文件的URL的方法.在这种情况下,仅返回原始数据(作为JSON).
{"head":{"vars":["cid","cause","count"]},"results":{"bindings":[{"cid":{"type":"uri","值":" http://www.wikidata.org/entity/Q12152 "},"原因":{"xml:lang":"en","type":"literal","value":"心肌梗塞"},"count":{"datatype":" http://www.w3.org/2001/XMLSchema#integer ","type":"literal","value":"5837"}},{" cid":{"type":"uri","value":" http://www.wikidata.org/entity/Q12192 "},"cause":{"xml:lang":"en","type" …
我有一个我想要应用于特定实体的属性列表mathematics: wd:Q395
.在这种情况下:
instanceOf: 'wdt:P31'
subclassOf: 'wdt:P279'
Run Code Online (Sandbox Code Playgroud)
结果是:
数学是学科的实例,数学是精确科学和形式科学的子类
我不想做两个不同的查询,而是一次性完成它们:
SELECT ?field ?fieldLabel ?propertyApplied
WHERE {
wd:Q395 wdt:P31 | wdt:P279 ?field.
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
BIND("" AS ?propertyApplied)
}
Run Code Online (Sandbox Code Playgroud)
如何知道应用哪个属性填充右栏?(例如,在学术学科旁边,我希望它出现的例子)
我试过这个,但看起来很奇怪,结果重复了一遍.
SELECT ?instanceOf ?subclassOf ?instanceOfLabel ?subclassOfLabel
WHERE {
OPTIONAL { wd:Q395 wdt:P31 ?instanceOf. }
OPTIONAL { wd:Q395 wdt:P279 ?subclassOf. }
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
Run Code Online (Sandbox Code Playgroud)
此代码给出了成吉思汗的后裔达到一定深度(作为可以更改为表格的图表):
PREFIX bd: <http://www.bigdata.com/rdf#>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wikibase: <http://wikiba.se/ontology#>
#defaultView:Graph
PREFIX gas: <http://www.bigdata.com/rdf/gas#>
SELECT DISTINCT ?depth ?item ?itemLabel ?pic #?linkTo
WHERE {
SERVICE gas:service {
gas:program gas:gasClass "com.bigdata.rdf.graph.analytics.SSSP" ;
gas:in wd:Q720 ;
gas:traversalDirection "Forward" ;
gas:out ?item ;
gas:out1 ?depth ;
gas:maxIterations 4 ;
gas:linkType wdt:P40 .
}
# OPTIONAL { ?item wdt:P40 ?linkTo }
OPTIONAL { ?item wdt:P18 ?pic }
SERVICE wikibase:label {bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" }
}
ORDER BY ?depth
Run Code Online (Sandbox Code Playgroud)
是否可以修改此代码以获得成吉思汗和特定后代(例如Baltu,Q7070636)之间的最短路径,包括中间的人以及他们之间的关系类型(linkType)?一般来说:如何获得两个特定节点之间的最短路径,并得到一个包含这些节点之间的节点以及所有这些节点之间的关系类型(限于一定深度)的表?
wikidata ×10
sparql ×5
wikidata-api ×4
wikipedia ×2
api ×1
blazegraph ×1
dump ×1
hyperlink ×1
items ×1
java ×1
labels ×1
linked-data ×1
rdf ×1