SPARQL匹配文字与** ANY **语言标签没有遇到超时
我需要选择具有“物种(Q7432)”的“分类等级(P105)”的实体,其具有与诸如“Topinambur”之类的文字字符串匹配的标签.
我在https://query.wikidata.org上测试查询; PREFIX wd: <http://www.wikidata.org/entity/> PREFIX wdt: <http://www.wikidata.org/prop/direct/> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT * WHERE { ?entity rdfs:label "Topinambur"@de . ?entity wdt:P105 wd:Q7432. } LIMIT 100 这里的问题是我的必要条件是不指定语言,但底层数据集(wikidata)中标签的词法形式有语言标签,所以我需要一种方法来获得任何语言的文字平等. 我尝试了一些可能的解决方案,但我没有找到任何不会导致以下结果的查询: 在这里我尝试的列表(..我总是得到TIMEOUT): 1)基于this answer我试过: SELECT * WHERE { ?entity rdfs:label ?label FILTER ( str( ?label ) = "Topinambur") . ?entity wdt:P105 wd:Q7432. } LIMIT 100 2)根据我尝试的其他一些文档: SELECT * WHERE { ?entity wdt:P105 wd:Q7432. ?entity rdfs:label ?label FILTER regex(?label,"^Topinambur") . } LIMIT 100 3)和 SELECT * WHERE { ?entity wdt:P105 wd:Q7432. ?entity rdfs:label ?label . FILTER langMatches( lang(?label),"*" ) FILTER (?label = "Topinambur") } LIMIT 100 我正在寻找的是一个高性能的解决方案或一些SPARQL语法,它不会结束TIMEOUT消息. PS:参考http://www.rfc-editor.org/rfc/bcp/bcp47.txt我不明白语言范围或““wildcards“在某种程度上是否有帮助. 编辑 我通过使用virtuoso查询编辑器在DbPedia中成功测试了(没有下降超时)类似的查询: PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX dbo: <http://dbpedia.org/ontology/> SELECT ?resource WHERE { ?resource rdfs:label ?label . FILTER ( str( ?label ) = "Topinambur"). ?resource rdf:type dbo:Species } LIMIT 100 我仍然非常有兴趣了解我在维基数据上遇到的性能问题以及使用的最佳语法. 解决方法
This answer提出三种选择:
>更具体. 另一种选择是在wikidata.dbpedia.org使用Virtuoso全文搜索功能: SELECT ?s WHERE { ?resource rdfs:label ?label . ?label bif:contains "'topinambur'" . BIND ( IRI ( REPLACE ( STR(?resource),"http://wikidata.dbpedia.org/resource","http://www.wikidata.org/entity" ) ) AS ?s ) } Try it! 似乎即使是下面的查询也可以在wikidata.dbpedia.org上运行而不会陷入超时: PREFIX dbo: <http://dbpedia.org/ontology/> SELECT ?resource WHERE { ?resource rdfs:label ?label . FILTER ( STR(?label) = "Topinambur" ) . } Try it! 两小时前我在removed上发表了关于维基数据的声明: wd:Q161378 rdfs:label "topinambur"@ru . 我不是植物学家,但是’topinambur’在Russian绝对不是一个词. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |