SPARQL-如何按个人选择?

SPARQL-如何按个人选择?,sparql,owl,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 } 你知道为什么吗?可能是因为你没有指定

当我这样询问时:

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  }

你知道为什么吗?

可能是因为你没有指定J.K.罗琳个人的名字空间

我希望你的提问是正确的

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

有两种选择。一个是康斯坦丁说的@fopa-lé

您可以询问J.K.Rowling的URI,也可以搜索名字literal J.K.Rowling

SELECT ?subject  WHERE { ?subject ont:has_author  ont:J_K_Rowling}
这稍微取决于您使用哪种SPARQL查询引擎,但下面是两个示例。 第一个取决于您是否拥有J.K.Rowling的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作为对象

最好提供更多有关您的环境的详细信息。这样任何人都可以重现你的问题。例如:你的本体是什么?您在哪里以及如何存储您的个人信息?等等…这个查询不是合法的SPARQL语法:ont:J.K.罗琳不是URI或文字值的合法符号。谢谢你的回答!我已经解决了这个问题。