从一系列项目中设置查询的 SPARQL
Set SPARQL of queries from a series of items
我目前有一组约 100 个关于艺术家 [Q1234、Q2345、Q3456,...] 的维基数据项,我必须使用它们来提取不同的属性(place/date of birth/death、标签等)
我尝试遍历列表并为每个列表创建一个查询,但我目前遇到了一些阻塞,因为许多返回错误 429(请求太多)。
Failed to load resource: the server responded with a status of 429 ()
index.html:1 Access to XMLHttpRequest at 'https://query.wikidata.org/sparql?query='...' from origin 'http://127.0.0.1:51881' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
有没有一种方法可以直接在查询中插入项目集?
var subquery = 'SELECT DISTINCT ?nameLabel ?cityBLabel ?countryBLabel ?cityDLabel ?countryDLabel ?dateBLabel ?dateDLabel \n' +
'WHERE\n' +
'{\n' +
' :' + item + ' rdfs:label ?name; \n' +
' wdt:P19 ?cityB; \n' +
' wdt:P20 ?cityD; \n' +
' wdt:P569 ?dateB; \n' +
' wdt:P570 ?dateD. \n' +
' ?cityB wdt:P17 ?countryB .\n' +
' ?cityD wdt:P17 ?countryD .\n' +
' SERVICE wikibase:label { bd:serviceParam wikibase:language "en". } \n' +
' FILTER(LANGMATCHES(LANG(?name), "EN")) \n' +
'}\n';
例如在上面的查询中,不是为每个 item
创建和 运行ning 一个查询,是否有一个 SPARQL 命令,我可以在其中包含整个集合([Q1234,Q2345, Q3456,... ]) 并让它在一个 运行?
中遍历所有这些
谢谢!
我目前有一组约 100 个关于艺术家 [Q1234、Q2345、Q3456,...] 的维基数据项,我必须使用它们来提取不同的属性(place/date of birth/death、标签等) 我尝试遍历列表并为每个列表创建一个查询,但我目前遇到了一些阻塞,因为许多返回错误 429(请求太多)。
Failed to load resource: the server responded with a status of 429 ()
index.html:1 Access to XMLHttpRequest at 'https://query.wikidata.org/sparql?query='...' from origin 'http://127.0.0.1:51881' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
有没有一种方法可以直接在查询中插入项目集?
var subquery = 'SELECT DISTINCT ?nameLabel ?cityBLabel ?countryBLabel ?cityDLabel ?countryDLabel ?dateBLabel ?dateDLabel \n' +
'WHERE\n' +
'{\n' +
' :' + item + ' rdfs:label ?name; \n' +
' wdt:P19 ?cityB; \n' +
' wdt:P20 ?cityD; \n' +
' wdt:P569 ?dateB; \n' +
' wdt:P570 ?dateD. \n' +
' ?cityB wdt:P17 ?countryB .\n' +
' ?cityD wdt:P17 ?countryD .\n' +
' SERVICE wikibase:label { bd:serviceParam wikibase:language "en". } \n' +
' FILTER(LANGMATCHES(LANG(?name), "EN")) \n' +
'}\n';
例如在上面的查询中,不是为每个 item
创建和 运行ning 一个查询,是否有一个 SPARQL 命令,我可以在其中包含整个集合([Q1234,Q2345, Q3456,... ]) 并让它在一个 运行?
谢谢!