【问题标题】:SPARQL - How to select by individual?SPARQL - 如何按个人选择?
【发布时间】:2014-12-15 13:40:47
【问题描述】:

当我这样查询时:

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  }

有什么想法吗?

【问题讨论】:

  • 最好提供有关您的环境的更多详细信息。这样任何人都可以重现您的问题。例如:你的本体是什么?您在哪里以及如何存储您的个人?等等...

标签: sparql owl


【解决方案1】:

有两种选择。正如@fopa-léon-constantin 所说的那样。

您可以询问 J.K. Rowling 的 URI,也可以搜索姓名(字面意思)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 作为对象,则在此处定义。

【讨论】:

  • 感谢您的回答!我已经解决了这个问题。
【解决方案2】:

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

我希望您的查询是

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

【讨论】:

  • 此查询不是合法的 SPARQL 语法:ont:"J. K. Rowling" 不是 URI 文字值的合法表示法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-14
  • 1970-01-01
相关资源
最近更新 更多