Ontology Design Patterns and Problems: Practical Ontology Engineering using Protege-OWL
Advanced OWL 2.0 Ontology Visualization in OWLGrEd
-
Upload
lance-kaufman -
Category
Documents
-
view
42 -
download
1
description
Transcript of Advanced OWL 2.0 Ontology Visualization in OWLGrEd
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?