我無法找到一些體面的簡單代碼示例,使用SWRL和Jena與 Pellet或至少使用SWRL?我已經在Pellet文檔中研究了一些示例,但沒有關於使用SWRL的示例。網絡上的大多數例子都不完整,令人困惑。在Jena和Pellet中使用SWRL
我發現的唯一解決方案是使用Jess規則引擎,但它不是免費的並且處於商業許可下。我發現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));
我已經用Protege 4.3測試了一些SWRL規則嗎?它會和Pellet一起工作嗎?其次,什麼是SWRL的替代方案 –
@AliAhmadProtégé4.3就Pellet而言,據我所知。有基於SPARQL的[SPIN](http://spinrdf.org/)[rules](http://www.w3.org/Submission/2011/SUBM-spin-overview-20110222/)。 (我沒有用過這些,也不能真正對它們發表評論。) –
@alex手頭上,我不確定protege 4是否支持SWRL,但我認爲它。但是,我不認爲默認顯示適當的選項卡。它需要打開(像「Show View」之類的菜單),它沒有一個明顯的名字,它只是被稱爲「規則」。 –