我试图列出在我安装的wikibase上创建的所有属性,使用基于这安装的docker。
现在,希望列出此wikibase中可用的所有属性,类似于通过以下方法获得该列表:
<wikibase.url>wiki/Special:ListProperties我还使用以下SPARQL查询通过SPARQL提取了该列表:
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX schema: <http://schema.org/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
SELECT DISTINCT
?property
?propertyType
?propertyLabel
?propertyAltLabel
WHERE {
?property a wikibase:Property ;
rdfs:label ?propertyLabel ;
wikibase:propertyType ?propertyType .
OPTIONAL {?property skos:altLabel ?propertyAltLabel .}
}但是,运行SPARQL查询成本很高,而且我需要经常运行该查询,因此我非常希望将该属性列表传递给核心wikibase API。
这有可能吗?
发布于 2020-09-26 15:40:34
如果您知道目标wiki上属性的命名空间号(如果wiki有一个项目:命名空间,通常是122个,或者如果像维基数据一样,项目位于主名称空间中,则为120个),那么您可以使用核心allpages:https://www.wikidata.org/w/api.php?action=query&list=allpages&apnamespace=120
要同时获得标签,请使用它作为生成器,并将其与实体术语API (在1.35中新增;看起来还没有文档化,但请参阅T257658):https://www.wikidata.org/w/api.php?action=query&generator=allpages&gapnamespace=120&prop=entityterms&wbetterms=label:
https://stackoverflow.com/questions/64079134
复制相似问题