[英]Create instance of classes of owl ontology and save them in rdf store
我使用Protege生成了OWL本体。 我想使用我的OWL本体并使用Jena创建RDF三元组以保存在三重存储中。
我知道如何读/写RDF,但我不知道如何为那些OWL类创建实例。 例如:
我有OWL本体样本
<owl:Class rdf:about="Person"/>
<owl:Class rdf:about="Animal"/>
<owl:DatatypeProperty rdf:about="salary">
<rdfs:domain rdf:resource="Person"/>
<rdfs:range rdf:resource="&xsd;real"/>
</owl:DatatypeProperty>
需要RDF就是这样的
<Person rdf:about="Jack">
<salary>1234</salary>
</Person>
您可以使用Jena Ontology API以编程方式创建实例。 有两种方法可以做到这一点。 两者都要求您提供OntClass
对象和OntModel
在OntClass
对象上调用createIndividual
方法。
OntClass class = ontModel.createClass( yourNamespace + "SomeClass" ); Individual instance = class.createIndividual( yourNamespace + "individual1");
在OntModel
对象上调用createIndividual
方法,并将OntClass
对象作为参数传递。
OntClass class = ontModel.createClass( yourNamespace + "SomeClass"); Individual individual = ontModel.createIndividual( yourNameSpace + "individual2", class);
有关更多信息,您可以访问Jena Ontology API的官方教程
方法#1当您使用Jena或Sesame解析OWL时,您将在模型或图形中以三元组的形式获得猫头鹰。 这些三元组可以存储在三元组商店中。
方法#2您可以通过以三元组的形式创建实例来解决此问题。 以下是示例java代码。 请注意,我没有测试此代码,这只是为了理解。
StringBuilder sb = new StringBuilder();
sb.append(“xmlns:drug = \\” http://www.healthcare.com/patient/drug# \\“”); sb.append(“xmlns:rdf = \\” http://www.w3.org/1999/02/22-rdf-syntax-ns# \\“”);
sb.append(“compliance:treatmensub rdf:resource = \\” http://www.healthcare.com/patient/drug##id_pa_ “+ id +” pr “+”_“+ drugname +”\\“/>”);
但我建议使用方法#1,因为你有一个OWL文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.