使用 SPARQL 查询 Jena 制作的 RDF 属性

Querying RDF Properties Made by Jena with SPARQL

所以,我一直在 Scala 中使用 Jena 来尝试感受它,我遇到了一个简单的问题。假设您使用 var myProperty = model.createProperty("myProperty") 之类的代码创建了一个 属性,然后使用 model.createLiteralStatement(model.createResource(), myProperty, "test") 之类的代码将其添加到您的模型中,并且您只是希望使用 SPARQL 查询检索此语句,您将如何进行关于它?

我试过以下方法:

var sparqlQuery = "SELECT ?value " +
  "WHERE " +
  "{?subject " + "<myProperty>" +  " ?value." +
  "}"
val query = QueryFactory.create(sparqlQuery)
var queryExec: QueryExecution = QueryExecutionFactory.create(query, model) 
val results = queryExec.execSelect

但遗憾的是,结果是空的。我在这里做错了什么?

在查询中,<myProperty>是一个相对URI。解析器会将其扩展为完整(绝对)URI,可能会将当前目录添加为解析的基础。

它将不匹配 createProperty("myProperty")

数据应具有绝对 URI(例如 createProperty("http://example/myProperty") 并且查询应符合 <http://example/myProperty>

您可以在查询中使用前缀。