在指向资源时获取RDF谓词的值

时间:2016-08-27 17:57:00

标签: sparql rdf jena arq

我想获得一个资源对象(参见" hasAgentWithRole"谓词如下)。

该文件(简化以说明我的问题):

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:ns0="http://purl.org/dc/terms/"
  xmlns:ns1="http://tw.rpi.edu/schema/">
  <rdf:Description rdf:about="http://abstractsearch.agu.org/meetings/2014/FM/S54A-06">
    <ns0:identifier>ID</ns0:identifier>
    <ns1:hasAgentWithRole rdf:resource="http://abstractsearch.agu.org/meetings/2014/FM/S54A-06/author1"/>
  </rdf:Description>
</rdf:RDF>

查询:

PREFIX  ns1:  <http://tw.rpi.edu/schema/>
SELECT  ?author_uri
WHERE
{ <http://abstractsearch.agu.org/meetings/2014/FM/S54A-06> ns1:hasAgentWithRole ?author_uri}

我想获取hasAgentWithRole谓词中包含的资源值:http://abstractsearch.agu.org/meetings/2014/FM/S54A-06/author1

但是,我当前使用arq的查询会引发IRIImplException:

enter image description here

1 个答案:

答案 0 :(得分:2)

错误是否真的出现在问题中显示的当前数据和查询中?从异常开始,您可以看到结果集中存在一些格式错误的IRI file:///C:/Users/abartoli/...我猜它不是您数据中的资源。这意味着你有一些具有相对IRI的资源,如果没有给出基础IRI,它将解析为文档。