2017-05-29 43 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中有符號像「/」和「#」。用破折號「 - 」解決了這個符號的問題。