これは、デモ アプリケーションで使用するクラス式の例です。
Lecturer
and (hasResearch some (relatedTo some Semantic_Web))
and (teaches at-least 3 Course)
and (hasTitle value "Assist.Prof.")
そして、これらのメソッドを介して OWLAPI オブジェクトを作成します (文字列から OWL オブジェクトを作成します)。
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");
Java でそのクラス式を実装するにはどうすればよいですか?
[編集 #1] 実装を取得しました:
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());