SPARQL - 如何按个人选择?

时间:2014-12-15 13:40:47

标签: sparql owl

当我这样查询时:

SELECT ?subject ?object WHERE { ?subject ont:has_author  ?object}

我可以得到结果:

subject:harry potter,object:J.K. Rowling

(注:J. K.罗琳是班上的一员。)

但是当我这样查询时,我得不到结果。

SELECT ?subject  WHERE { ?subject ont:has_author  J. K. Rowling  }

任何想法为什么?

2 个答案:

答案 0 :(得分:0)

有两种选择。一个是@ fopa-léon-constantin说的。

你可以要求J. K.罗琳的URI,或者你可以搜索名字(字面意思)J. K.罗琳。

取决于你使用什么样的SPARQL查询引擎,但这里有两个例子。 第一个取决于你有J. K.罗琳的URI。

SELECT ?subject  WHERE { ?subject ont:has_author  ont:J_K_Rowling}

如果你想用字符串搜索她的名字,那么第二个就完成了。

SELECT ?subject  
WHERE { 
       ?subject ont:has_author ?author
       FILTER (str(?author) = "J. K. Rowling")
}

通过查看您正在使用的本体,您应该知道应该使用哪种方法。 在那里定义ont:has_author是否有文字或URI作为对象。

答案 1 :(得分:-1)

可能是因为您没有指定个人J. K. Rowling的名称空间。

我希望你的查询是

SELECT ?subject  WHERE { ?subject ont:has_author  ont:"J. K. Rowling"}