r - SPARQL 中不带前缀的查询

标签 r sparql

我有一个入门级问题,我的书无法帮助解决,而且我也让一位同事感到困惑。我可以在不指定前缀的情况下使用 RDF 吗?如何在 SPARQL 查询中指定谓词?

我在 R 的 RRDF 包中执行此操作,但如果我将商店设置为

A=new.rdf(ontology=F)
add.triple(A,"Ian","sonOf","Daddy")
add.triple(A,"Ian","sonOf","Mummy")
add.triple(A,"Ian","likes","Chocolate")

我收到以下消息

## Error: com.hp.hpl.jena.query.QueryParseException: Lexical error
at line 1, column 40. Encountered: " " (32), after : "sonOf"

到查询

sparql.rdf(A, "select ?son ?parent where {?son sonOf ?parent}")

我可以这样使用sonOf吗?我必须先设置自己的架构吗?我是否在做一些根本性错误的事情?如果我的所有数据都驻留在同一数据源上,我是否必须使用前缀?

最佳答案

RDF 谓词始终是一个 URI(从技术上讲,实际上是一个 IRI,但我们先把它放在一边)。

可以指定为前缀名称:

  namespace:sonOf

或 IRIRef,例如:

  <http://my.namespace.com#sonOf>

但我认为它不能像您尝试的那样作为一个简单的标签给出。

如果您使用前缀名称样式,则必须定义前缀并将其绑定(bind)到命名空间,以便可以根据您的输入构造有效的 URI。

(正式语法在 SPARQL Specification 中给出。)

关于r - SPARQL 中不带前缀的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20542536/

相关文章:

c - Rcpp 中单个 "for"循环的意外性能

r - assign( ... , envir = ... ) 和 environment( ... ) = 之间的区别

r - 使用 ddply 在新数据帧中强制多个输出

r - scale_y_discrete 忽略中断/标签

prolog - 使用 append/3 谓词创建 SPARQL 参数化查询

rdf - 如何从 SPARQL 中的术语列表中获取基本术语关联

java - 在java中使用sparql查询检索对象属性范围内的多个类(Protege 3.4.8)

date - SPARQL 计算两个日期之间的差异

date - 如何在 SPARQL 中转换日期格式?

r - Shiny 的 Flexdashboard 响应式(Reactive)仪表未更新