我在耶拿noob,閱讀這page,更具體地在圖5(iii) - 「直接推斷關係」,我發現我所需要的。基本上,我的OntModel需要遵守以下規則:「不能被允許的直接聲明,可以推斷」。但不幸的是,我不知道如何在耶拿實現這個想法。jena直接推斷圖
我的示例代碼:
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結構中看到這種變化?
非常感謝你們這些傢伙!!!!!