我希望使用SPARQL作为一个相对基本的任务:给定一个FOAF图,我想解析我在那里找到的元素,获取它们的标签(如果它们存在)然后,将它们用作新的图形,从中找到有关这些人的信息.
例如,您可以想象一个简单的用例,我想运行一个SPARQL查询来列出我最喜欢的食物(根据我的FOAF文件),以及我所有朋友最喜欢的食物.
这就是目前的情况.请注意,出于测试目的,目前我正在尝试使用下面的查询,通过?name3变量获取朋友的名字.运行此查询不会返回?graph和?name3的任何结果,即使我知道rdfs:seeAlso链接到一些有效的RDF文件,其中至少有两个应该具有name属性.感谢您提供的任何输入!
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?name1 ?name2 ?graph ?name3
FROM <my-rdf-file>
WHERE {
?person1 foaf:knows ?person2 .
?person1 foaf:name ?name1 .
?person2 foaf:name ?name2 .
OPTIONAL {
?person2 rdfs:seeAlso ?graph .
GRAPH ?graph {
?person3 foaf:name ?name3 .
}
}
}
Run Code Online (Sandbox Code Playgroud)