2017-05-29 42 views
0

我试图更改模型中资源的URI。 我使用ResourceUtils.renameResource它的工作原理,但是当我的模型保存在一个文件中,新的URI扩展(具有形式<http://prefix.com/resource>代替prefix:resource)即使是在模型(@prefix prefix: <http://prefix.com/>)的前缀。 有没有办法强制Jena在更换资源的URI时使用前缀,或者在可能的情况下使用带有“prefix:”的短版本更新模型来更新每个URI的模型?apache jena重命名资源不检查前缀

+0

RDF在绝对URI中起作用 - 前缀仅用于表面外观。在内部,Jena在绝对URI中工作,而不是前缀名称。前缀在读取时扩展,在写入时用于缩写(如果可能的话 - 不是所有的URI都可以缩写 - 并且取决于语法)。 – AndyS

+0

显示您如何编写模型以及数据的实际外观。细节很重要! – AndyS

+0

当我写我使用该模型: '模型模型= ModelFactory.createDefaultModel();' 比 'model.setNsPrefix(PREFIX,NAMESPACE);' ,当我添加资源: '资源解析度=模型。 createResource(NAMESPACE + RESOURCE_ID); res.addProperty(someProperty,someObject);' 如果我打印的文件模型,RES是这样写的前缀:渣油但是当我使用 'ResourceUtils.renameResource(RES,NAMESPACE + NEW_ID);' 当我打印在一个文件上的模型,res被扩展。 我知道jena使用扩展的URI,但我想使用“prefix:”以使文件更易于阅读。 – Giuseppedes

回答

0

它没有工作,因为在前缀之后的新URI中有符号像“/”和“#”。用破折号“ - ”解决了这个符号的问题。