如何编写SPARQL查询从Wikidata获取阿拉伯语维基百科条目标签
实现方法
可以直接通过查询阿拉伯语维基百科页面对应的schema:name属性获取你需要的词条标签,修改后的查询语句如下:
SELECT DISTINCT ?articleTitle ?item ?itemLabel ?itemDescription ?entity_type ?main_category (GROUP_CONCAT(DISTINCT(?altLabel); separator = ", ") AS ?altLabel_list) WHERE { ?item ?label "الرامة"@ar. ?item wdt:P31 ?entity_type . MINUS { ?item wdt:P31 wd:Q4167410} OPTIONAL{ ?item wdt:P910 ?main_category} ?article schema:about ?item; schema:isPartOf <https://ar.wikipedia.org/>; schema:name ?articleTitle. OPTIONAL { ?item skos:altLabel ?altLabel . FILTER (lang(?altLabel) = "ar") } SERVICE wikibase:label { bd:serviceParam wikibase:language "ar" .} } GROUP BY ?articleTitle ?item ?itemLabel ?itemDescription ?entity_type ?main_category
修改说明
- 新增
?articleTitle变量用来存储阿拉伯语维基百科的词条显示标签,查询运行后该字段会直接返回你示例中的الرامة (جنين)结果 - 在原有匹配维基百科页面的逻辑中增加了
schema:name ?articleTitle的规则,就可以直接获取页面的显示名称,不需要再返回URL - 如果你后续还需要保留维基百科的页面URL,只需要把
?article加回SELECT语句和GROUP BY语句的列表中即可
内容的提问来源于stack exchange,提问作者Mai
相关产品推荐
相关产品推荐

