如何在SPARQL中构建主题搜索

如何在SPARQL中构建主题搜索,sparql,Sparql,我试图在古腾堡项目()中找到所有关于作家威廉·莎士比亚的书。 我可以使用此查询返回莎士比亚是作者的所有项目: PREFIX dc:<http://purl.org/dc/elements/1.1/> PREFIX foaf:<http://xmlns.com/foaf/0.1/> SELECT ?bookTitle WHERE { ?author foaf:name "Shakespeare, William, 1564-1616". ?book dc:creator

我试图在古腾堡项目()中找到所有关于作家威廉·莎士比亚的书。 我可以使用此查询返回莎士比亚是作者的所有项目:

PREFIX dc:<http://purl.org/dc/elements/1.1/>
PREFIX foaf:<http://xmlns.com/foaf/0.1/>

SELECT ?bookTitle
WHERE {
?author foaf:name "Shakespeare, William, 1564-1616".
?book dc:creator ?author;
      dc:title ?bookTitle
}
前缀dc:
前缀foaf:
选择?书名
在哪里{
?作者foaf:姓名“莎士比亚,威廉,1564-1616”。
?书籍dc:创作者?作者;
dc:书名?书名
}
但我更愿意用dcterms:主题来获取有关莎士比亚的批评书籍的列表

我非常感谢你的帮助

我同意这一点,在编写第一个查询之后,编写第二个查询会有很大的困难,这是令人惊讶的。无论如何,这一变化相对微不足道。我同时使用
dc:subject
dcterms:subject
进行了检查,古腾堡数据似乎与
dc:subject
一起存储,所以我在这个查询中使用了它,而不是
dcterms:subject
。这就是问题所在;您只需将
dc:subject
添加到模式中,并删除author约束。几个前缀使查询更容易编写,结果也更容易读取

PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX gp: <http://wifo5-04.informatik.uni-mannheim.de/gutendata/resource/people/>
PREFIX gs: <http://wifo5-04.informatik.uni-mannheim.de/gutendata/resource/subject/>
PREFIX gr: <http://wifo5-04.informatik.uni-mannheim.de/gutendata/resource/>

SELECT ?book ?author ?bookTitle WHERE {
?book dc:creator ?author ;
      dc:title ?bookTitle ;
      dc:subject gs:Shakespeare_William_1564-1616 .
}

看起来你在这里并没有做太多的努力,假设你真的写了你发布的查询,我很惊讶你不能按预期更改它。将作者姓名替换为变量(或完全删除该三元组),并添加一个附加三元组,以
?book
作为主语,以
dcterms:subjects
作为谓词,以您提供的URI作为对象。如果您已经尝试了这个方法,但它不起作用,那么显示不起作用的查询
--------------------------------------------------------------------------------------------
| book          | author                                        | bookTitle                |
============================================================================================
| gr:etext14827 | gp:Guizot_François_Pierre_Guillaume_1787-1874 | "Étude sur Shakspeare"   |
| gr:etext5429  | gp:Johnson_Samuel_1709-1784                   | "Preface to Shakespeare" |
--------------------------------------------------------------------------------------------