Transcript
Page 1: 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

Page 2: Advanced OWL 2.0 Ontology Visualization in OWLGrEd

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

Page 3: Advanced OWL 2.0 Ontology Visualization in OWLGrEd

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

Page 4: Advanced OWL 2.0 Ontology Visualization in OWLGrEd

OWLGrEd interoperability with Protégé 4.2

Page 5: Advanced OWL 2.0 Ontology Visualization in OWLGrEd

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

Page 6: Advanced OWL 2.0 Ontology Visualization in OWLGrEd

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

Page 7: Advanced OWL 2.0 Ontology Visualization in OWLGrEd

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 *

Page 8: Advanced OWL 2.0 Ontology Visualization in OWLGrEd

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.

Page 9: Advanced OWL 2.0 Ontology Visualization in OWLGrEd

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.

Page 10: Advanced OWL 2.0 Ontology Visualization in OWLGrEd

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>>

Page 11: Advanced OWL 2.0 Ontology Visualization in OWLGrEd

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

Page 12: Advanced OWL 2.0 Ontology Visualization in OWLGrEd

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

Page 13: Advanced OWL 2.0 Ontology Visualization in OWLGrEd

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]]}

Page 14: Advanced OWL 2.0 Ontology Visualization in OWLGrEd

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

Page 15: Advanced OWL 2.0 Ontology Visualization in OWLGrEd

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

Page 16: Advanced OWL 2.0 Ontology Visualization in OWLGrEd

Thank you!

Questions?


Recommended