ApacheJena重命名资源不';不检查前缀
我正在尝试更改模型中资源的URI。 我正在使用它,但是当我将模型保存到文件中时,新的URI会被扩展(格式为ApacheJena重命名资源不';不检查前缀,jena,apache-jena,Jena,Apache Jena,我正在尝试更改模型中资源的URI。 我正在使用它,但是当我将模型保存到文件中时,新的URI会被扩展(格式为,而不是前缀:resource),即使模型中有前缀(@前缀:)。 有没有办法强迫Jena在替换资源的URI时使用前缀,或者有没有方法更新模型,在可能的情况下使用“prefix:”短版本重写每个URI 它不起作用,因为前缀后面的新URI中有“/”和“#”等符号。解决了用破折号“-”替换符号的问题RDF在绝对URI中工作-前缀仅用于显示表面外观。在内部,Jena使用绝对URI,而不是前缀名称。前
,而不是前缀:resource
),即使模型中有前缀(@前缀:
)。
有没有办法强迫Jena在替换资源的URI时使用前缀,或者有没有方法更新模型,在可能的情况下使用“prefix:”短版本重写每个URI 它不起作用,因为前缀后面的新URI中有“/”和“#”等符号。解决了用破折号“-”替换符号的问题RDF在绝对URI中工作-前缀仅用于显示表面外观。在内部,Jena使用绝对URI,而不是前缀名称。前缀在读取时扩展,在写入时用作缩写(如果可能,并非所有URI都可以缩写,这取决于语法)。显示如何编写模型以及数据的实际外观。细节很重要!当我编写模型时,我使用:
model model=ModelFactory.createDefaultModel()代码>大于model.setNsPrefix(前缀,名称空间)当我添加资源时:resource res=model.createResource(名称空间+资源\u ID);res.addProperty(someProperty,someObject)
如果我在文件上打印模型,res会像prefix:resId一样写入,但是当我使用ResourceUtils.renameResource(res,NAMESPACE+NEW_ID)时代码>当我在文件上打印模型时,res被展开。我知道jena使用扩展的URI,但我想使用“prefix:”以使文件更具可读性。我忘了说我是在servlet服务的实例中创建模型的,而不是读取模型并使用不同的web服务重命名资源,可能问题在于ResourceUsi.renameResource不知道以前的model.setNsPrefix,或者它不从模型中读取前缀,并且在不检查资源是否可以使用前缀以短方式写入的情况下工作。请提供完整的、最少的示例。这些常量的值等细节很重要。