Создать экземпляры классов онтологии сов и сохранить их в rdf store

Я создал онтологию OWL с помощью Protege. Я хочу использовать свою онтологию OWL и создать тройки RDF для сохранения в хранилище троек с помощью Jena.

Я знаю, как читать / писать 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>

person Mohamed Kharrat    schedule 15.11.2012    source источник


Ответы (2)


Вы можете создавать экземпляры программно, используя Jena Ontology API. Это можно сделать двумя способами. Оба требуют, чтобы вы предоставили объект OntClass < / a> и _2 _

  1. Позвоните в createIndividual для объекта OntClass.

    OntClass class = ontModel.createClass( yourNamespace + "SomeClass" );
    Individual instance = class.createIndividual( yourNamespace + "individual1");
    
  2. Вызовите _ 6_ объект OntModel и передайте объект OntClass в качестве аргумента.

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

Для получения дополнительной информации вы можете посетить официальное руководство по Jena Ontology API

person toniedzwiedz    schedule 15.11.2012
comment
Спасибо, но это всего лишь интансы, как их использовать, не создавайте троек rdf с помощью этих экземпляров. - person Mohamed Kharrat; 16.11.2012

Подход №1. Когда вы разбираете OWL с помощью Jena или Sesame, вы получите сову в виде троек либо в модели, либо в графике. И эти тройки можно хранить в магазине троек.

Подход № 2 Вы можете решить эту проблему, создав экземпляры в виде троек. Ниже приведен пример кода Java. Обратите внимание, что я не тестировал этот код, и это просто для понимания.

StringBuilder sb = новый 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 ("соответствие: Treatmensub rdf: resource = \" http://www.healthcare.com/patient/drug##id_pa_ "+ id +" pr "+" _ "+ название препарата +" \ "/>");

но я предлагаю использовать подход №1, поскольку у вас есть файл OWL.

person Swamy    schedule 16.11.2012