Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对SPARQL的基本理解_Sparql_Dbpedia - Fatal编程技术网

对SPARQL的基本理解

对SPARQL的基本理解,sparql,dbpedia,Sparql,Dbpedia,我试图理解SPARQL,并使用由提供的SPARQL工具。我已经阅读了文档,现在我想创建自己的查询。我想找到J.J.R.托尔金写的dbpedia中所有书籍的名称 因此,我设计了这个查询: SELECT ?name WHERE { ?name ?author "J._R._R._Tolkien". ?name ?mediaType "Print"} 结果是空的,但我至少希望这本书出现: 有人能告诉我,我在概念上的错误是什么吗?我认为最好的

我试图理解SPARQL,并使用由提供的SPARQL工具。我已经阅读了文档,现在我想创建自己的查询。我想找到J.J.R.托尔金写的dbpedia中所有书籍的名称

因此,我设计了这个查询:

    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实际上是唯一的标识符。对我来说,这是完全不清楚的,是一个冗余的三重模式。在这种情况下,它确实是冗余的。但是,由于很少直接指向单个资源,我把它放在这里是为了一个好习惯,因为我理解实际查询宁愿使用正则表达式或其他允许歧义的方式,而使用托尔金只是一个临时测试。但是谢谢你,我已经修改了我的答案来反映这一点。