我在本体文件中有许多类,并且在xml文件中具有不同名称的相同数量的类。我已经从XML文件创建了一个RDF三元组存储。现在我需要将三重存储中的类名更改为Ontology中的类。
有没有人可以通过使用SPARQL查询来了解如何使等效? 如果SPARQL查询无法完成,那么最好的方法是什么?
-----------这是RDF的一小部分-------
<rdf:RDF
xmlns:j.0="http://link/myLink/myOntology.rdf#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" >
<rdf:Description rdf:about="http://myDomain/myLink/%a=class/class9/">
<j.0:hadP>Sea Power</j.0:hadP>
<j.0:hadP>Steel city</j.0:hadP>
<j.0:hadP>Singer1</j.0:hadP>
<j.0:hadV>20</j.0:hadV>
<j.0:hadP>City</j.0:hadP>
<j.0:hadP>Singer2</j.0:hadP>
<j.0:hadP>Singer3</j.0:hadP>
<j.0:hadV>80</j.0:hadV>
<j.0:hadVEvent>web:V</j.0:hadVEvent>
<j.0:hadP>Park</j.0:hadP>
<j.0:hadP>Arctic</j.0:hadP>
<j.0:hadP>Guns</j.0:hadP>
<rdf:type rdf:resource="http://link/myLink/myOntology.rdf#**ClassName**"/>
<j.0:hadP>City Center</j.0:hadP>
<j.0:hadV>100</j.0:hadV>
<j.0:hadV>40</j.0:hadV>
</rdf:Description>
</rdf:RDF>
我想将名称(ClassName)更改为其他名称,例如(ClassA)。我可以通过编写SPARQL QUERY来做到这一点吗?
作为一个工具包,我正在使用gena 我不确定我所询问的是否可能!
答案 0 :(得分:0)
通常,Jena资源是不可变的:一旦创建了Resource
对象,就无法更改它。这意味着您无法更改任何资源的URI,包括类。
您要做的是更新模型以显示重命名的效果。假设您要将资源R
重命名为S
。对于每个三元组:
R P O
你需要添加一个新的三元组:
S P O
并删除旧的R P O
三元组。同样,应删除每个三元组Q P R
并添加三元组Q P S
。
Jena API中有一个实用程序可以为您执行此操作:ResourceUtils.renameResource
。如果您想坚持使用SPARQL,则必须执行相同的添加和删除三元组过程,但您可以通过SPARQL Update supported in Jena进行此操作。