繁体   English   中英

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

[英]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

  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); 

有关更多信息,您可以访问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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM