我是耶拿的菜鸟,正在阅读这个页面,更具体地说,在图 5(iii) -“直接推断关系”中,我找到了我需要的东西。基本上,我的 OntModel 需要遵守以下规则:“不能允许可以推断的直接语句”。但不幸的是,我不知道如何在耶拿实现这个想法。
我的示例代码是:
String baseUri="http://entidades.owl";
OntModel base = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM);
OntClass studant = base.createClass(baseUri +"#Student");
OntClass person = base.createClass(baseUri +"#Person");
OntClass ser = base.createClass(baseUri +"#ThingLive");
Property isA = base.createTransitiveProperty(baseUri+"#IsA", true);
nome.addDomain(person);
base.add(new StatementImpl(studant, isA, person));
base.add(new StatementImpl(person, isA, ser));
base.createIndividual(baseUri+"#JonhDoe",studant);
base.createIndividual(baseUri+"#JonhDoe",person);
base.createIndividual(baseUri+"#JonhDoe",ser);
base.write(System.out);
OntModel model = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM_MICRO_RULE_INF,base);
model.write(System.out);
出色地,
我尝试将“isA”属性构建为“transitiveProperty”,但推理器无法识别它。我该如何解决?
如果我改变: base.add(new StatementImpl(studant, isA, person)); base.add(new StatementImpl(person, isA, ser));
至:
person.addSubClass(学生); ser.addSubClass(person);
推理器能够完美地推断,但不幸的是 OntModel “base”和 OntModel “model”向我展示了相同的 RDF。我认为“模型”应该向我展示反映的最小 RDF 图。
我该怎么做才能看到 RDF 结构的这种变化?
十分感谢大家!!!!!