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