Select 针对WIKIDATA的SPARQL查询结果集忽略偏移量

Select 针对WIKIDATA的SPARQL查询结果集忽略偏移量,select,sparql,wikidata,Select,Sparql,Wikidata,我希望检索10名加拿大公民,而结果集应该从最低的wikidata ID Q开始。。。它匹配(即搜索应“开始”于): 但目前似乎提供了武断的发现,例如(=冰球运动员丹尼·加尔) 我没有手动检查WIKIDATA Q id低于Q116544的加拿大公民的任何条目,但我假设有一些/许多条目 我需要添加什么才能获得预期的结果?由于订购价格昂贵,我不确定您为什么需要此功能,但我们现在开始: 初试 只需在?项上使用订购人: 选择不同的?项目?项目标签,其中{ ?项目wdt:P31 wd:Q5。 ?项目wdt:

我希望检索10名加拿大公民,而结果集应该从最低的wikidata ID Q开始。。。它匹配(即搜索应“开始”于):

但目前似乎提供了武断的发现,例如(=冰球运动员丹尼·加尔)

我没有手动检查WIKIDATA Q id低于Q116544的加拿大公民的任何条目,但我假设有一些/许多条目


我需要添加什么才能获得预期的结果?

由于订购价格昂贵,我不确定您为什么需要此功能,但我们现在开始:

初试 只需在
?项上使用
订购人

选择不同的?项目?项目标签,其中{
?项目wdt:P31 wd:Q5。
?项目wdt:P27 wd:Q16。
服务wikibase:标签{bd:serviceParam wikibase:语言“en”。}
} 
按ASC订购(?项目)
限制10偏移0
缺点是,排序是按字典顺序进行的

变通办法 使用以下函数从实体URI中提取编号:

  • 使用后提取值

    strafter(str(?item),”http://www.wikidata.org/entity/Q“”

  • 使用XPath构造函数转换为整数值

  • 绑定到变量

  • 最后查询:

    选择不同的?项目?项目标签,其中{
    ?项目wdt:P31 wd:Q5。
    ?项目wdt:P27 wd:Q16。
    服务wikibase:标签{bd:serviceParam wikibase:语言“en”。}
    绑定(xsd:integer)(strafter(str(?item),”http://www.wikidata.org/entity/Q(“”)作为?编号)
    } 
    按ASC订购(?编号)
    限制10偏移0
    
    由于订购价格昂贵,不确定您为什么需要此服务,但我们现在开始:

    初试 只需在
    ?项上使用
    订购人

    选择不同的?项目?项目标签,其中{
    ?项目wdt:P31 wd:Q5。
    ?项目wdt:P27 wd:Q16。
    服务wikibase:标签{bd:serviceParam wikibase:语言“en”。}
    } 
    按ASC订购(?项目)
    限制10偏移0
    
    缺点是,排序是按字典顺序进行的

    变通办法 使用以下函数从实体URI中提取编号:

  • 使用后提取值

    strafter(str(?item),”http://www.wikidata.org/entity/Q“”

  • 使用XPath构造函数转换为整数值

  • 绑定到变量

  • 最后查询:

    选择不同的?项目?项目标签,其中{
    ?项目wdt:P31 wd:Q5。
    ?项目wdt:P27 wd:Q16。
    服务wikibase:标签{bd:serviceParam wikibase:语言“en”。}
    绑定(xsd:integer)(strafter(str(?item),”http://www.wikidata.org/entity/Q(“”)作为?编号)
    } 
    按ASC订购(?编号)
    限制10偏移0
    
    谢谢!第一次尝试作为第一个结果wd:Q206提供,但在出现巨大差距后,wd:Q1000439。我认为两者之间也有结果。尽管这是一个代价高昂的查询(~20秒),但解决方法似乎很好。正如我所说的,第一个查询基于字符串而不是整数值进行排序,即
    11011。。19 2 20 21
    当然,分类很昂贵。谢谢!第一次尝试作为第一个结果wd:Q206提供,但在出现巨大差距后,wd:Q1000439。我认为两者之间也有结果。尽管这是一个代价高昂的查询(~20秒),但解决方法似乎很好。正如我所说的,第一个查询基于字符串而不是整数值进行排序,即
    11011。。19 2 20 21
    当然,分类是昂贵的。
        SELECT DISTINCT ?item ?itemLabel 
        WHERE { 
        ?item wdt:P31 wd:Q5 . 
        ?item wdt:P27 wd:Q16 . 
        SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . } 
        } 
        LIMIT 10 OFFSET 0