是否有人可以帮助我使用" OWL API" ??
生成此ObjectPropertyRange<ObjectPropertyRange>
<Annotation>
<AnnotationProperty abbreviatedIRI="owl:backwardCompatibleWith"/>
<IRI>#ProgramLanguage</IRI>
</Annotation>
<ObjectProperty IRI="#specifiedBy"/>
<ObjectMaxCardinality cardinality="1">
<ObjectProperty IRI="#specifiedBy"/>
<Class IRI="#Grammars"/>
</ObjectMaxCardinality>
</ObjectPropertyRange>
这是我过去3天的表现....
<ObjectPropertyRange>
<ObjectProperty IRI="#has"/>
<ObjectMaxCardinality cardinality="1">
<ObjectProperty IRI="#has"/>
<Class IRI="#Quantity"/>
</ObjectMaxCardinality>
</ObjectPropertyRange>
从这段代码......
OWLClassExpression expression=df.getOWLObjectMaxCardinality(relations.max, objectProperty,range.getNNF());
OWLSubClassOfAxiom subClassOfAxiom=df.getOWLSubClassOfAxiom(df.getOWLClass(IRI.create(relations.class2)), expression);
OWLObjectPropertyRangeAxiom owlObjectPropertyRangeAxiom=df.getOWLObjectPropertyRangeAxiom(objectProperty,subClassOfAxiom.getSuperClass());
manager.addAxiom(new_ontology,owlObjectPropertyRangeAxiom);
答案 0 :(得分:1)
提供完整的代码段:
OWLDataFactory df = ...
OWLAnnotationProperty p=df.getOWLAnnotationProperty(IRI.create("urn:test#backwardCompatibleWith"));
OWLAnnotation ann=df.getOWLAnnotation(p, IRI.create("urn:test#languageDesign"));
OWLObjectProperty op=df.getOWLObjectProperty(IRI.create("urn:test#produces"));
OWLClass c = df.getOWLClass(IRI.create("urn:test#ProgramLanguage"));
OWLObjectPropertyRangeAxiom axiom=df.getOWLObjectPropertyRangeAxiom(op, c, Collections.singleton(ann));
此时,将公理添加到本体并以首选格式保存。从示例中,我猜测了OWL / XML。
问题和答案可在https://github.com/owlcs/owlapi/issues/235获取,以获取进一步的评论,讨论以及任何其他不适合StackOverflow格式的活动。
关于添加注释时提及不受支持的操作,请注意OWLDataFactory创建的所有对象都是不可变的。创建对象时必须添加注释,之后不能将它们添加到现有对象中。