3

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>
4

2 に答える 2

5

Jena Ontology API を使用してプログラムでインスタンスを作成できます。これには 2 つの方法があります。どちらも、OntClassオブジェクトOntModel

  1. createIndividualオブジェクトでメソッドを呼び出しOntClass ます。

    OntClass class = ontModel.createClass( yourNamespace + "SomeClass" );
    Individual instance = class.createIndividual( yourNamespace + "individual1");
    
  2. createIndividualオブジェクトでメソッドを呼び出し、オブジェクトを引数としてOntModel渡します。OntClass

    OntClass class = ontModel.createClass( yourNamespace + "SomeClass");
    Individual individual = ontModel.createIndividual( yourNameSpace + "individual2", class);
    

詳細については、Jena Ontology API の公式チュートリアルをご覧ください。

于 2012-11-15T19:36:20.987 に答える
2

アプローチ #1 Jena または Sesame を使用して OWL を解析すると、Model または Graph のトリプルの形でフクロウが得られます。そして、これらのトリプルはトリプレット ストアに格納できます。

アプローチ #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+"\"/>");

しかし、OWL ファイルがあるので、アプローチ #1 に従うことをお勧めします。

于 2012-11-16T10:22:45.247 に答える