我使用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>
答案 0 :(得分:5)
您可以使用Jena Ontology API以编程方式创建实例。有两种方法可以做到这一点。两者都要求您提供OntClass
object和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);
有关详细信息,请访问official tutorial for Jena Ontology API
答案 1 :(得分:2)
方法#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 +”\“/&gt;”);
但我建议使用方法#1,因为你有一个OWL文件。