Advanced OWL 2.0 Ontology Visualization in OWLGrEd
Kārlis ČERĀNSJūlija OVČIŅŅIKOVA
Renārs LIEPIŅŠArtūrs SPROĢIS
Institute of Mathematics and Computer Science, University of Latvia
OWLGrEd editor
• UML-style based graphical editor for OWL 2
• Classes• Association roles• Attributes• Objects• Generalizations
Thing{owl}
PersonpersonName:str ing
TeacherStudent
{d is jo int}
CoursecourseName:s tr ing
takes
isTakenBy
teaches
isTaughtBy
OWLGrEd editor
AcademicProgramprogramName:string{<name}
CoursecourseName:string{<name}
Thing{owl}name:string{func} Person
"All persons, including teachers and students"key = personIDpersonName:string{<name}personID:string[0..1]
Teachersalary:integer
{disjoint}
AcademicStaff=Teacher
Professor<salary some integer [>10000]
PermanentTeachingStaff<teaches some MandatoryCourse
<<equivalent>>
<<Comment>>"All persons, including teachers and students"
Assistant
{disjoint}
Student
MandatoryCourse<isTaught by only (Professor or (PermanentTeachingStaff and salary some integer [> 8000]))
relates
teaches {<relates} {<>takes}isTaughtBy
<<disjoint>>
teaches some [1..*]
takes {<relates} 1..10isTakenBy
enrolled {>takes o belongsTo}
belongsTo 1
includes
passed {<takes}
owlgred.lumii.lv
OWLGrEd interoperability with Protégé 4.2
Some desired extra notations
• AnnotationAssertion(A:isImportant A:Teacher "true")
• AnnotationAssertion(A:DBExpr A:AcademicProgram "XProgram")
• AnnotationAssertion(A:DBExpr A:Course "XCourse")
• AnnotationAssertion(A:isComposition A:includes "true")
• AnnotationAssertion(A:isDerivedUnion A:relates "true")
User Field mechanism: creating new fields, attaching semantics
CoursecourseName:string{DB: XCourse}
AcademicProgramprogramName:string{DB: XProgram}
TeacherPerson
belongsTo includes teaches
{<relates}isTaughtBy
/relates
Custom Ontology Visualizations with user field mechanism
• Ontology visualization profiles– Abstract fields (to be added to ontology visual
items)• field type;
• field appearance;
• visual effects;
• field semantics.
– Views• define appearance for existing and new fields
User Fields mechanism Meta-model AA#Profile
name:string
AA#Fieldname:stringdefaultValue:stringprefix:stringsuffix:stringdelimiter:stringpattern:stringisStereotypeField:booleandisplayPlaceBefore:stringpropertyEditorTab:stringpropertyEditorPlaceBefore:s tring
AA#Viewname:stringisDefault:boolean
AA#TagaxiomPattern:stringtagKey:string
<<EnumeratedClass>>
AAContextTypeid:stringnr:integertype:stringelTypeName:stringpath:s tringmode:stringhasMirror:boolean
AA#NodeStyleItem
AA#ChoiceItemcaption:stringnotation:s tring
<<EnumeratedClass>>
AA#RowTypetypeName:string
<<Comment>>"typeName expected one of:-InputField-InputField+Button-CheckBox-ComboBox-ListBox-TextArea-TextArea+Button-Empty"
AA#TagTypekey:stringnotation:s tring
AA#FieldStyleSetting
AA#ViewStyleSettingelementTypeName:stringaddMirror:booleancaseCompartTypeName:stringcaseChoiceItemName:string
AA#StyleSettingvalue:stringtarget:stringpath:s tringisElementStyleSetting:boolean
AA#ElemStyleItem
AA#Transletprocedure:string
<<EnumeratedClass>>
AA#TransletTasktaskName:string
<<Comment>>"taskName expected one of:-procGenerateItemClickBox-procStartValue-procFieldEntered-procCompose-procDecompose"
AA#CompartStyleItemitemName:stringitemType:stringforNodeCompart:booleanforEdgeCompart:booleanforAttribCompart:boolean
AA#AnyStyleItem
AA#ElemStyleItemitemName:stringitemType:string
AA#Dependency
AA#Configurationprofile *configuration 1
field*
profile
1
fieldType 1 field *
view *profile 1
field 1 choiceItem {<ordered} *
selfStyleSetting
*
field
1
styleSetting
*
choiceItem 1
styleSetting*
view1
tag *field 1
profile 1
tag*
choiceItem
1
tag*
translet*field 1
context1
fieldInContext {<ordered} *
context *configuration 1
superField {<ordered} 1
subField *
tagType*
configuration 1
task
1
translet*
dependency *
dependent 1
dependsOn1dependency *
styleSetting *elemStyleFeature 0..1
fieldStyleFeature 0..1styleSetting *
Style settings (from TDA Graph Diagram Engine)
Reference: Barzdins J., Cerans K., Kozlovics S., Rencis E., and Zarins, A. A Graph Diagram Engine for the Transformation-Driven Architecture, Proc. of 4th International Workshop of Model-Driven Development of Advanced User Interfaces, Florida, USA, 2009, pp.29-32.
Implementation: Transformation Driven Architecture
• Development of universally re-usable user interface engines; the graphical diagramming engine employs advanced layouting facilities.
• Logical activities based on metamodels and model transformations.
Use Cases – Semantic auto-layout for new diagrams
<<disjoint>>
<<disjoint>>
Person_IDIDValue:s tring
Professor Associate_Professor
Optional_Course
PersonpersonName:string
Student
Course<Mandatory_Course or Optional_CoursecourseName:string
Thing{owl}
Teacher<Assistant or Associate_Professor or Professor
Mandatory_Course
Assistant
Academic_Program
programName:string
isTaughtBy
only
belongsTo includes
enrolled
person
0..1
personID
takesisTakenBy
isTaughtBy
teaches
<<disjoint>>
Use Cases – Semantic auto-layout for new diagrams
Person_IDIDValue:s tring
Professor
Associate_Professor
PersonpersonName:string
Student
Course<Mandatory_Course or Optional_CoursecourseName:string
Thing{owl}
Teacher<Assistant or Associate_Professor or Professor
Academic_Program
programName:string
Optional_Course
Mandatory_Course
<<disjoint>>
Assistant
<<disjoint>>
isTaughtByonly
belongsToincludes
enrolled
person0..1
personID
takes
isTakenBy
isTaughtBy
teaches
<<disjoint>>
Created fully automatically
Use Cases – Database Connectivity Notation
ThingPerson IDIDValue:String
StudentTeacher CoursecourseName:String
Optional CourseMandatory Course
< isTaughtBy only ProfessorProfessor
Associate Professor
{disjoint}{complete}
Academic Program
programName:String
PersonpersonName:String
{disjoint}
Assistant
{disjoint} {complete}
belongsTo 0..1
includes
personID
person 0..1
takes {<>teaches}isTakenBy
teaches {<>takes}isTaughtBy
enrolled
A mini-university database schema
OWL ontology corresponding to the mini-University
Use Cases – Database Connectivity Notation
Teacher{DB: XTeacher}
Assistant{DB: [[Teacher]],Level='Assistant'}
AssociateProfessor{DB: [[Teacher]],Level='AssocProf'}
Proffessor{DB: [[Teacher]],Level='Professor'}
{disjoint} {complete}
{disjoint} {complete}
AcademicProgramprogramName:string{DB: PName}{DB: XProgram}
OptionalCourse{DB: [[Course]],isRequired=0}
MandatoryCourse<isTaughtBy only Professor{DB: [[Course]], isRequired=1}
{disjoint}
Thing
PersonpersonName:s tring{DB: [[Teacher]].TName}{DB: [[Student]].SName}
Student{DB: XStudent}
CoursecourseName:string{DB: CName}{DB: XCourse}
PersonIDIDValue:s tring{DB: [[T]].IDCode}{DB: [[S]].IDCode}{DB: T=XTeacher {uri=('PersonID',IDCode)}}}{DB: S=XStudent {uri=('PersonID',IDCode)}}}
enrolled{DB:->}
isTaughtBy teaches {<>takes}
{DB:=>}
isTakenBy takes {<>teacher}
{DB:=>XRegistration->}
person 0..1
personID{DB:[[Teacher]][AutoID->[[T]]}{DB:[[Student]][AutoID->[[S]]}
Use Cases – Integrity Constraints in RDF/OWL Database Schema Design
Teachersalary:integer
{(i) dis joint}
Assistant
<<(i) equivalent>>
PermanentTeachingStaff<teaches some MandatoryCourse
Person"All persons, including teacgers and students"personName:s tring{<name}personID:string[0..1]
MandatoryCourse<isTaughtby only(Professor or (PermanentTeachingStaff and salary some integer [>8000]))
CoursecourseName:string{<name}
Student
Thing{owl}name/i/:(c) string {(c) func}
<<Comment>>"All persons, including teacgers and students"
Professor<(c) salary some integer [>10000]
AcademicStaff=(i) Teacher
AcademicProgram(c) programName:string{<(i) name}
i
i
i
<<(i) dis joint>>
c
isTaughtBy
teaches
{<(i) relates}
{<>takes}
i
relates/i/
passed
{<(c) takes}
ic
teaches some [0..1]
isTakenBy
takes
{<(i) relates}
{<>(i) teaches}
(c)1..(c)10
belongsTo (c)1
includes
enrolled
(c)1
{>(c) takes or belondsTo}
i
It is natural to interpret some axioms as constraints
Conclusions
• OWLGrEd – owlgred.lumii.lv
• User Fields extensions
• Applications: – simple visual effects;– database connectivity notation;– integrity constraints.
• Use the extension for you own custom notation
Thank you!
Questions?