Мне не удалось найти несколько приличных простых примеров использования SWRL и Jena с Pellet или, по крайней мере, использования SWRL? Я изучил несколько примеров в документации Pellet, но там нет примера использования SWRL. Большинство примеров в Интернете неполные и запутанные.
Единственное решение, которое я нашел, было с Jess Rule Engine, но оно платное и находится под коммерческой лицензией. Я обнаружил, что Pellet поддерживает правила SWRL, но не смог найти работающий пример.
Единственный пример, который я нашел, это это, но я его не понимаю:
OWLOntologyManager m = create();
OWLOntology o = m.createOntology(example_iri);
// Get hold of references to class A and class B.
OWLClass clsA = df.getOWLClass( IRI.create(example_iri + "#A" ));
OWLClass clsB = df.getOWLClass(IRI.create(example_iri + "#B" ));
SWRLVariable var = df.getSWRLVariable(IRI.create(example_iri + "#x" ));
SWRLClassAtom body = df.getSWRLClassAtom(clsA, var);
SWRLClassAtom head = df.getSWRLClassAtom(clsB, var);
SWRLRule rule = df.getSWRLRule(Collections.singleton(body),
Collections.singleton(head));
m.applyChange(new AddAxiom(o, rule));