使用WikiDataQueryService查询Wikidata的字符串向量
提供了电影名称的矢量,我想知道它们的类型 由于我是R用户,我最近发现了与我所寻找的完全相同的示例:使用WikiDataQueryService查询Wikidata的字符串向量,r,sparql,wikidata,R,Sparql,Wikidata,提供了电影名称的矢量,我想知道它们的类型 由于我是R用户,我最近发现了与我所寻找的完全相同的示例: library(WikidataQueryServiceR) query_wikidata('SELECT DISTINCT ?genre ?genreLabel WHERE { ?film wdt:P31 wd:Q11424. ?film rdfs:label "The Cabin in the Woods"@en. ?film wdt:P136 ?genre. SERVIC
library(WikidataQueryServiceR)
query_wikidata('SELECT DISTINCT
?genre ?genreLabel
WHERE {
?film wdt:P31 wd:Q11424.
?film rdfs:label "The Cabin in the Woods"@en.
?film wdt:P136 ?genre.
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}')
## 5 rows were returned by WDQS
不幸的是,此查询使用静态文本,因此我想用向量替换森林中的小屋。为此,我尝试了以下代码:
library(WikidataQueryServiceR)
example <- "The Cabin in the Woods" # Single string for testing purposes.
query_wikidata(paste('SELECT DISTINCT ?human ?humanLabel ?sex_or_gender ?sex_or_genderLabel WHERE {
?human wdt:P31 wd:Q5.
?human rdfs:label', example, '@en.
?human wdt:P21 ?sex_or_gender.
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
OPTIONAL { ?human wdt:P2561 ?name. }
}', sep = ""))
库(WikiDataQueryService)
示例您是否尝试输出SPARQL查询-
rdfs:label之后没有空格
- 森林中的小屋周围没有引号
在R代码中,而不是
?人类rdfs:label',示例'@en。
第7行应为:
?人类RDF:标签“”,示例“”@en。
虽然query\u wikidata()
可以接受字符串向量,但我建议改用SPARQL 1.1,以避免请求过多
库(WikiDataQueryService)
示例:你的答案非常有效!你说得对,我忘了那些引号和空格。不过,我不理解您回答的第二部分关于SPARQL值的内容。@ccamara,SPARQL 1.1values
是一种提供内联数据的方法。这允许执行单个大查询,而不是许多小查询(稍微相关)。然而,如果查询很大,则请求应该是POST,而不是GET。WikipediaQueryService支持开发版本中的POST请求。但是,我仍然收到请求URI太长(HTTP 414)
,例如,示例