我正在尝试将作为字符串提交的 Jena 规则添加到以下方法。但是没有添加规则,因为我可以验证写入 E://1_1_1 的本体没有新的变化有人可以帮我怎么做。其他可能相关的 SO 问题是26292160、349652;两者都与我的情况相似。
public String ValidateAndConfigureRule(String string) {
try{
GenericRuleReasoner reasoner = new GenericRuleReasoner(Rule.parseRules(string));
Model oModel = m.getOntology();
reasoner.setDerivationLogging(true);
reasoner.setOWLTranslation(true);
reasoner.setTraceOn(true);
reasoner.setTransitiveClosureCaching(true);
InfModel inf = ModelFactory.createInfModel(reasoner, oModel);
inf.write(new FileWriter("E://1_1_1"));
Model baseModel = ModelFactory.createDefaultModel();
baseModel.add(inf);
final OntModel model = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM_RULE_INF, baseModel);
ValidityReport validity = model.validate();
}
}
规则本身的格式是,
[ r1: (?x :objProp1 :ind_x) -> (?x :objProp2 :ind_y) ]
其中objProp
's 是对象属性,ind_x
,ind_y
是个体以及规则字符串中“:”的必要前缀。