我正在尝试了解 Jena 和 GenericRuleReasoner 的工作原理。我从 Apache Jena 教程中获取了这个。
[transitiveRule: (?A demo:p ?B), (?B demo:p ?C) -> (?A > demo:p ?C) ]
[symmetricRule: (?Y demo:p ?X) -> (?X demo:p ?Y) ]
如果我想添加另一个语句
[testPrintRule: (?X demo:p ?Y) -> print(?Y, "for testing")] //Print only this
我可以只在打印命令中列出语句吗?打印语句在控制台中打印。我想在我的 UI 中显示。
这就是我目前在耶拿为获得三分球所做的事情。如果我错了,我很抱歉,我是初学者。
Property p = ReadOntology.model.getProperty(ns + "demo:p");
List rules = Rule.rulesFromURL(FileLocations.getRulesLoc());
Reasoner reasoner = new GenericRuleReasoner( rules );
InfModel infModel = ModelFactory.createInfModel( reasoner, ReadOntology.model);
StmtIterator train = infModel.listStatements(null, p, (RDFNode)null);