This is an example class expression for use in a demo application:
Lecturer
and (hasResearch some (relatedTo some Semantic_Web))
and (teaches at-least 3 Course)
and (hasTitle value "Assist.Prof.")
And I create OWLAPI objects using these methods (I create an OWL object from String).
OWLClass lecturer = m.createOWLClassFromString("Lecturer");
OWLObjectProperty hasResearch = m.createOWLObjectPropertyFromString("hasResearch");
OWLObjectProperty teaches = m.createOWLObjectPropertyFromString("teaches");
OWLNamedIndividual sWeb = m.createOWLNamedIndividualFromString("Semantic_Web");
OWLClass course = m.createOWLClassFromString("Course");
OWLDataProperty hasTitle = m.createOWLDataPropertyFromString("hasTitle");
How to implement this class expression in Java?
[edit # 1] I got the implementation:
OWLClass lecturer = m.createOWLClassFromString("Lecturer");
OWLObjectProperty hasResearch = m.createOWLObjectPropertyFromString("hasResearch");
OWLObjectProperty isRelatedToResearch = m.createOWLObjectPropertyFromString("isRelatedToResearch");
OWLObjectProperty teaches = m.createOWLObjectPropertyFromString("teaches");
OWLNamedIndividual sWeb = m.createOWLIndividualFromString("Semantic_Web");
OWLClass course = m.createOWLClassFromString("Course");
OWLClass researchArea = m.createOWLClassFromString("ResearchArea");
OWLDataProperty hasTitle = m.createOWLDataPropertyFromString("hasTitle");
OWLDatatype dt = m.getDataFactory().getRDFPlainLiteral();
OWLLiteral asstprof = m.getDataFactory().getOWLLiteral("Asst. Prof. Dr.",dt);
OWLClassExpression relateToSomeResearchArea = df.getOWLObjectSomeValuesFrom(isRelatedToResearch, researchArea);
OWLClassExpression hasResearchRelateToSomeResearchArea = df.getOWLObjectSomeValuesFrom(hasResearch,relateToSomeResearchArea);
OWLClassExpression teachesAtLeastThreeCourse = df.getOWLObjectMinCardinality(3, teaches, course);
OWLClassExpression hasTitleAsstProf = df.getOWLDataHasValue(hasTitle, asstprof);
Set s1 = new HashSet();
s1.add(lecturer);
s1.add(hasResearchRelateToSomeResearchArea);
s1.add(teachesAtLeastThreeCourse);
s1.add(hasTitleAsstProf);
OWLObjectIntersectionOf iof = df.getOWLObjectIntersectionOf(s1);
System.out.println(iof.getNestedClassExpressions());
source
share