对SPARQL的基本理解
我试图理解SPARQL,并使用由提供的SPARQL工具。我已经阅读了文档,现在我想创建自己的查询。我想找到J.J.R.托尔金写的dbpedia中所有书籍的名称 因此,我设计了这个查询:对SPARQL的基本理解,sparql,dbpedia,Sparql,Dbpedia,我试图理解SPARQL,并使用由提供的SPARQL工具。我已经阅读了文档,现在我想创建自己的查询。我想找到J.J.R.托尔金写的dbpedia中所有书籍的名称 因此,我设计了这个查询: SELECT ?name WHERE { ?name ?author "J._R._R._Tolkien". ?name ?mediaType "Print"} 结果是空的,但我至少希望这本书出现: 有人能告诉我,我在概念上的错误是什么吗?我认为最好的
SELECT ?name WHERE { ?name ?author "J._R._R._Tolkien".
?name ?mediaType "Print"}
结果是空的,但我至少希望这本书出现:
有人能告诉我,我在概念上的错误是什么吗?我认为最好的方法是查看他的DBpedia页面,然后选择所需的属性。在你的情况下,两个好的候选人是著名的作家和作家。这是一个对这两种方法的查询,有效地使用了后者
PREFIX : <http://dbpedia.org/resource/>
PREFIX o: <http://dbpedia.org/ontology/>
PREFIX p: <http://dbpedia.org/property/>
SELECT DISTINCT ?is_author_of #?has_notable_work
FROM <http://dbpedia.org/>
WHERE {
:J._R._R._Tolkien rdf:type o:Writer ;
#o:notableWork ?has_notable_work ;
^p:author ?is_author_of .
}
我已经使用rdf:type o:Writer来减少可能出现的歧义,如果在dbpedia中使用单个资源的URI,则使用none,^来获得正确的方向。我更喜欢《是作者》和《值得注意》而不是《书》和《流行》这本书,因为我不确定他是哪一类作品的作者。我最好的方法是查看他的DBpedia页面,然后选择所需的属性。在你的情况下,两个好的候选人是著名的作家和作家。这是一个对这两种方法的查询,有效地使用了后者
PREFIX : <http://dbpedia.org/resource/>
PREFIX o: <http://dbpedia.org/ontology/>
PREFIX p: <http://dbpedia.org/property/>
SELECT DISTINCT ?is_author_of #?has_notable_work
FROM <http://dbpedia.org/>
WHERE {
:J._R._R._Tolkien rdf:type o:Writer ;
#o:notableWork ?has_notable_work ;
^p:author ?is_author_of .
}
我已经使用rdf:type o:Writer来减少可能出现的歧义,如果在dbpedia中使用单个资源的URI,则使用none,^来获得正确的方向。我更喜欢《是作者》和《值得注意》而不是《书》和《流行》这本书,因为我不确定他是哪一类作品的作者。首先,我建议阅读一些关于RDF的内容,特别是“主谓宾”原则和资源、文字等。其次,一旦您了解了RDF的基础知识——SPARQL是一种基于RDF的数据查询语言——您就会发现,您需要为编写的关系使用一个谓词,您需要在正在处理的数据集中找出这个关系的方向,通常使用J._R._R._TolkienI的资源URI更有效。我是SPARQL的新手,发现这非常有帮助。首先,我建议阅读一些关于RDF的内容,特别是“主谓宾语”的原则以及资源、文字等。其次,一旦您了解了RDF的基础知识——SPARQL是一种基于RDF的数据查询语言——您就会发现,您需要为编写的关系使用一个谓词,您需要在正在处理的数据集中找出这个关系的方向,通常使用J的资源URI会更有效。托尔基尼是SPARQL的新手,他发现这非常有帮助。在使用资源URI时,rdf:type o:Writer应该如何减少任何歧义,而资源URI实际上是唯一标识符。对我来说,这是完全不清楚的,是一个冗余的三重模式。在这种情况下,它确实是冗余的。但是,由于很少直接指向单个资源,我把它放在这里是为了一个好习惯,因为我理解实际查询宁愿使用正则表达式或其他允许歧义的方式,而使用托尔金只是一个临时测试。但是谢谢,我已经修改了我的答案来反映这一点。当您使用资源URI时,rdf:type o:Writer应该如何减少任何歧义,而资源URI实际上是唯一的标识符。对我来说,这是完全不清楚的,是一个冗余的三重模式。在这种情况下,它确实是冗余的。但是,由于很少直接指向单个资源,我把它放在这里是为了一个好习惯,因为我理解实际查询宁愿使用正则表达式或其他允许歧义的方式,而使用托尔金只是一个临时测试。但是谢谢你,我已经修改了我的答案来反映这一点。