创建owl本体类的实例并将它们保存在rdf存储中

时间:2012-11-15 16:25:59

标签: rdf jena owl

我使用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>

2 个答案:

答案 0 :(得分:5)

您可以使用Jena Ontology API以编程方式创建实例。有两种方法可以做到这一点。两者都要求您提供OntClass objectOntModel

  1. OntClass对象上调用createIndividual方法。

    OntClass class = ontModel.createClass( yourNamespace + "SomeClass" );
    Individual instance = class.createIndividual( yourNamespace + "individual1");
    
  2. OntModel对象上调用createIndividual方法并传递OntClass个对象作为参数。

    OntClass class = ontModel.createClass( yourNamespace + "SomeClass");
    Individual individual = ontModel.createIndividual( yourNameSpace + "individual2", class);
    
  3. 有关详细信息,请访问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文件。