我正在尝试使用sparql搜索来检索dbpedia的beforedBy和followedBy属性的书名。例如。http://dbpedia.org/page/Harry_Potter_and_the_Goblet_of_Fire-该查询将返回之前和之后的书名。因此,如果我输入书名“ Chamber of Secrets”,那本书在归还之前和之后都会得到。
香港专业教育学院试图观看有关sparql的几个视频,并浏览了https://km.aifb.kit.edu/projects/spartiqulator/examples.htm上的示例,但似乎无法生成有效的查询。
我尝试了以下方法,但是会产生语法错误。我不确定如何以正确的方式链接我尝试过滤的属性,例如rdf:和dbp等。
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX res: <http://dbpedia.org/resource/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT ?uri
WHERE {
?uri rdf:type dbo:Book .
?uri dbp:precededBy res:'Harry Potter and the Chamber of Secrets' .
}
运行以下命令,但没有结果。
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX res: <http://dbpedia.org/resource/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT ?uri
WHERE {
?uri rdf:type dbo:Book .
?uri dbp:followedBy 'Harry Potter and the Order of the Phoenix' .
}
如果您想同时了解密室的beforedBy和followedBy,则可以使用以下查询:
SELECT *
WHERE {
dbr:Harry_Potter_and_the_Chamber_of_Secrets
dbp:precededBy ?precededBy;
dbp:followedBy ?followedBy.
}
请注意,该名称的格式与Wikipedia URL中的格式类似,用下划线而不是空格。
另请注意,如果一本书没有两者之一,则不会返回任何内容。您可以使用它OPTIONAL
来解决此问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句