从 WikiData ID 获取维基百科页面 ID

问题描述 投票:0回答:1

我想在单个 SPARQL 查询中从维基数据查询服务的维基数据 ID 获取维基百科页面 ID。

第一个 SPARQL 查询从标题页获取维基数据 ID (

wd:Q3131
):“Alpes-de-Haute-Provence”

SELECT ?item ?itemLabel ?itemDescription WHERE {
            ?url rdf:type schema:Article;
            schema:about ?item; schema:name ?name ;
            schema:isPartOf <https://fr.wikipedia.org/>;
            schema:name "Alpes-de-Haute-Provence"@fr.
          SERVICE wikibase:label {
            bd:serviceParam
            wikibase:language "fr,[AUTO_LANGUAGE],en"
          }
}

第二个 SPARQL 查询从维基数据 ID 获取维基百科页面 ID

SELECT ?pageid WHERE {
    VALUES (?item) {(wd:Q3131)} 
    [ schema:about ?item ; schema:name ?name ;
      schema:isPartOf <https://fr.wikipedia.org/> ]
     SERVICE wikibase:mwapi {
         bd:serviceParam wikibase:endpoint "fr.wikipedia.org" .
         bd:serviceParam wikibase:api "Generator" .
         bd:serviceParam mwapi:generator "allpages" .
         bd:serviceParam mwapi:gapfrom ?name .
         bd:serviceParam mwapi:gapto ?name .
         ?pageid wikibase:apiOutput "@pageid" .
    }
}

可以在单个 SPARQL 查询中完成此操作吗?

sparql wikipedia wikidata wikidata-query-service
1个回答
0
投票

@UninformedUser 提出的解决方案

SELECT ?item ?itemLabel ?itemDescription ?pageid WHERE {             
  ?url rdf:type schema:Article;             
  schema:about ?item; 
  schema:name ?name ;             
  schema:isPartOf <https://fr.wikipedia.org/>;             
  schema:name "Alpes-de-Haute-Provence"@fr.           
  SERVICE wikibase:label {             
    bd:serviceParam             
    wikibase:language "fr,[AUTO_LANGUAGE],en"           
  }
  SERVICE wikibase:mwapi {
    bd:serviceParam wikibase:endpoint "fr.wikipedia.org" .          
    bd:serviceParam wikibase:api "Generator" .          
    bd:serviceParam mwapi:generator "allpages" .          
    bd:serviceParam mwapi:gapfrom ?name .          
    bd:serviceParam mwapi:gapto ?name .          
    ?pageid wikibase:apiOutput "@pageid" .     
  } 
}
© www.soinside.com 2019 - 2024. All rights reserved.