2012-05-14 9 views
3

Я пытаюсь использовать фреймворк Jena для редактирования существующей онтологии, построенной с помощью Protoge 4.2. т. е. изменять значения свойств или добавлять отдельных лиц или классы, а затем делать рассуждения. Предположим, что в онтологии мы имеем такое правило, что: hasAge (? P,? Age)^swrlb: moreThan (? Age, 18) -> Adult (? P). Я хотел бы иметь возможность изменить свойство hasAge на стороне Йены и посмотреть, является ли кто-то взрослым или нет. Не могли бы вы предоставить мне пример кода? Любая помощь приветствуется.Рассуждение с гранулой в правилах SWRL в Jena Framework

ответ

0

Предполагая, что:

  • вы знаете, как заполнить вашу модель, прочитав в онтологии, что вы построили
  • Вы поставили Пелле на пути к классам
  • Вы замените МРИ ниже с теми, от ваших домен
  • Вы утверждения позволили

следующий фрагмент кода добавит возраста к отра 1 x-test://individual и утверждать, что свойство, которое будет введено SWIRL, выполнено.

// create an empty ontology model using Pellet spec 
final OntModel model = ModelFactory.createOntologyModel(PelletReasonerFactory.THE_SPEC); 

// read the file 
model.read(ont); 

// Grab a resource and and property, and then set the property on that individual 
final Resource Adult = ResourceFactory.createResource("x-domain://Adult"); 
final Property hasAge = ResourceFactory.createProperty("x-domain://hasAge"); 
final Resource res = model.createResource("x-test://individual"); 
res.addLiteral(hasAge, 19); 

// Test that the swirl rule has executed 
assert(res.hasProperty(RDF.type, Adult));