transformation of prot©g© ontologies into the eclipse modeling
TRANSCRIPT
1
Transformation of ProtégéOntologies into the Eclipse
Modeling Framework
Deepak SharmaDivision of Biomedical Informatics
Mayo Clinic
2
Outline
• Motivation• Eclipse Modeling Framework (EMF) • EMF at work• LexGrid Model & FMA Mapping• FMA Transformation Example• Conclusion
3
Outline
• Motivation• Eclipse Modeling Framework (EMF) • EMF at work• LexGrid Model & FMA Mapping• FMA Transformation Example• Conclusion
4
Outline
Lots of things to talk about in short time
5
Outline
6
Motivation
Why do a transformation?• Native form of FMA cannot be readily integrated
into grid, databases and other terminologies• Need to transform content into a format and
structure that is readily accessible via:• Standard API’s• SQL• …
• The Mayo LexGrid model is one such candidate
7
Motivation
Why EMF ?• Easy & Simple to:
• Use EMF Transformation• Integrate EMF with Protégé• Use EMF as a hub
• Successful FMA transformation
8
What is EMF ?
Eclipse Modeling Framework
• Framework & Code Generation tool
• Available with Eclipse
• Modeling EMF Programming
9
Eclipse Modeling Framework
EMF XML Schema
UML Java
10
Eclipse Modeling Framework
• Model in XMI (XML Metadata Interchange) format
• EMF Project• ECORE• GENMODEL
• Generated Code can be customized• Easy to Update & Regenerate
11
EMF
12
Eclipse Modeling Frameworkhttp://www.eclipse.org/emf/
13
EMF at work
•Output
•Mapping
•Protégé Content
•Model & Representation
14
EMF at work
•Output
•Mapping
•Protégé Content
•Model & Representation
LexGrid XML Document
FMA to LexGrid Model
FMA
LexGrid Model in XML Schema
15
EMF at workModel Representation
16
EMF at workModel Representation
XML Schema
UML
17
EMF at workModel Representation
XML Schema
UML
18
EMF at workModel Representation (XSD)
19
EMF at workModel Representation (XSD)
20
EMF at workCreate an EMF Project
21
EMF at workCreate an EMF Project
22
EMF at workCreate an EMF Project
23
EMF at workCreate an EMF Project
24
EMF at workCreate an EMF Project
25
EMF at workEMF Project Components
26
EMF at workEMF Project Components
27
EMF at workEMF Project Components
CORE
GENMODEL
28
EMF at workEMF CORE Component
29
EMF at workEMF CORE Component
30
EMF at workEMF GENMODEL Component
31
EMF at workEMF GENMODEL Component
32
EMF at workGenerate Implementation
33
EMF at workGenerate Implementation
Generates Implementation
34
EMF at workImplementation
35
EMF at workImplementation
Generated Implementation
36
EMF at workXML Schema Snapshot
37
EMF at workGenerated Implementation
38
EMF at workGenerated Implementation
39
EMF at workGenerated Implementation
More implementation
classes snapshots
Later in this presentation
40
EMF at work
• Customize the implementation• Before & After Generation
• Make EMF implementation available by either :
• Create and include as an Archive• Application dependent on EMF
implementation classes.
41
EMF at work
• Customize the implementation• Before & After Generation
• Make EMF implementation available by either :
• Create and include as an Archive• Application dependent on EMF
implementation classes.
42
EMF at work
43
EMF at work
44
LexGrid Model
• Developed by Mayo Biomedical Informatics Group
• Formal model of terminology• Explicit definition of entities &
objects used in LexGrid tooling• Supports non-semantic entities (from
the toolkit perspective) as name/value pair
45
LexGrid ModelInformation Model (partial)
cd codingSchemes
describable
codingScheme
concepts::conceptsdescribable
relations::relations
describable
relations::association
relations::associationInstance
associatableElement
relations::associationTarget
versionableAndDescribable
concepts::codedEntry
concepts::property
concepts::comment
concepts::definition
concepts::presentation
0..1+concepts 0..*+relations
1..*+association
0..*+sourceConcept
0..*+targetConcept
1..*+concept
0..*+property
46
LexGrid ModelCoding Scheme Node
cd codingSchemes
describable
codingScheme
concepts::conceptsdescribable
relations::relations
describable
relations::association
relations::associationInstance
associatableElement
relations::associationTarget
versionableAndDescribable
concepts::codedEntry
concepts::property
concepts::comment
concepts::definition
concepts::presentation
0..1+concepts 0..*+relations
1..*+association
0..*+sourceConcept
0..*+targetConcept
1..*+concept
0..*+property
47
LexGrid ModelInformation Model (partial)
cd codingSchemes
describable
codingScheme
concepts::conceptsdescribable
relations::relations
describable
relations::association
relations::associationInstance
associatableElement
relations::associationTarget
versionableAndDescribable
concepts::codedEntry
concepts::property
concepts::comment
concepts::definition
concepts::presentation
0..1+concepts 0..*+relations
1..*+association
0..*+sourceConcept
0..*+targetConcept
1..*+concept
0..*+property
48
LexGrid ModelCoded Entry
cd codingSchemes
describable
codingScheme
concepts::conceptsdescribable
relations::relations
describable
relations::association
relations::associationInstance
associatableElement
relations::associationTarget
versionableAndDescribable
concepts::codedEntry
concepts::property
concepts::comment
concepts::definition
concepts::presentation
0..1+concepts 0..*+relations
1..*+association
0..*+sourceConcept
0..*+targetConcept
1..*+concept
0..*+property
49
LexGrid ModelInformation Model (partial)
cd codingSchemes
describable
codingScheme
concepts::conceptsdescribable
relations::relations
describable
relations::association
relations::associationInstance
associatableElement
relations::associationTarget
versionableAndDescribable
concepts::codedEntry
concepts::property
concepts::comment
concepts::definition
concepts::presentation
0..1+concepts 0..*+relations
1..*+association
0..*+sourceConcept
0..*+targetConcept
1..*+concept
0..*+property
50
LexGrid ModelConcept Property
cd codingSchemes
describable
codingScheme
concepts::conceptsdescribable
relations::relations
describable
relations::association
relations::associationInstance
associatableElement
relations::associationTarget
versionableAndDescribable
concepts::codedEntry
concepts::property
concepts::comment
concepts::definition
concepts::presentation
0..1+concepts 0..*+relations
1..*+association
0..*+sourceConcept
0..*+targetConcept
1..*+concept
0..*+property
51
LexGrid ModelCodedEntry Node
Concept Code
Concept Name
Property Name
Property Value
52
LexGrid ModelAssociation Node
cd relations
describable
association
+ «XSDattribute» association: localName+ «XSDattribute» forwardName: tsCaseIgnoreIA5String+ «XSDattribute» isAntiReflexive [0..1]: tsBoolean [0..1]+ «XSDattribute» isAntiSymmetric [0..1]: tsBoolean [0..1]+ «XSDattribute» isAntiTransitive [0..1]: tsBoolean [0..1]+ «XSDattribute» isFunctional [0..1]: tsBoolean [0..1]+ «XSDattribute» isReflexive [0..1]: tsBoolean [0..1]+ «XSDattribute» isReverseFunctional [0..1]: tsBoolean [0..1]+ «XSDattribute» isSymmetric [0..1]: tsBoolean [0..1]+ «XSDattribute» isTransitive [0..1]: tsBoolean [0..1]+ «XSDattribute» isTranslationAssociation [0..1]: tsBoolean [0..1]+ «XSDattribute» reverseName: tsCaseIgnoreIA5String+ «XSDattribute» targetCodingScheme [0..1]: localName [0..1]
associationInstance
+ «XSDattribute» sourceCodingScheme [0..1]: localName [0..1]+ «XSDattribute» sourceConcept: conceptCode
associatableElement
associationTarget
+ «XSDattribute» targetCodingScheme [0..1]: localName [0..1]+ «XSDattribute» targetConcept: conceptCode
describable
relations
0..*+sourceConcept
0..*+targetConcept
1..*+association
53
LexGrid ModelAssociation Node
cd relations
describable
association
+ «XSDattribute» association: localName+ «XSDattribute» forwardName: tsCaseIgnoreIA5String+ «XSDattribute» isAntiReflexive [0..1]: tsBoolean [0..1]+ «XSDattribute» isAntiSymmetric [0..1]: tsBoolean [0..1]+ «XSDattribute» isAntiTransitive [0..1]: tsBoolean [0..1]+ «XSDattribute» isFunctional [0..1]: tsBoolean [0..1]+ «XSDattribute» isReflexive [0..1]: tsBoolean [0..1]+ «XSDattribute» isReverseFunctional [0..1]: tsBoolean [0..1]+ «XSDattribute» isSymmetric [0..1]: tsBoolean [0..1]+ «XSDattribute» isTransitive [0..1]: tsBoolean [0..1]+ «XSDattribute» isTranslationAssociation [0..1]: tsBoolean [0..1]+ «XSDattribute» reverseName: tsCaseIgnoreIA5String+ «XSDattribute» targetCodingScheme [0..1]: localName [0..1]
associationInstance
+ «XSDattribute» sourceCodingScheme [0..1]: localName [0..1]+ «XSDattribute» sourceConcept: conceptCode
associatableElement
associationTarget
+ «XSDattribute» targetCodingScheme [0..1]: localName [0..1]+ «XSDattribute» targetConcept: conceptCode
describable
relations
0..*+sourceConcept
0..*+targetConcept
1..*+association
Source concept
Target
(concept / Data)
54
LexGrid ModelAssociation Node
55
LexGrid ModelAssociation Node
Body (has regional parts)HeadNeckUpper limbRight Upper limbLeft Upper limbLower limbRight Lower limbLeft Lower limbTrunk
Targets
Source
56
LexGrid Modelhttp://informatics.mayo.edu
57
FMA (Protégé)
58
FMA (Protégé)Root Nodes
•Anatomical entity
•Attribute entity
•Anatomical transformation entity
•Dimensional entity
•Spatial association value
•Miscellaneous term
•Biological entity
“Concept name”Has > 130,000 instances
correspond to FMA concept names & add
more information to them
59
FMA Mapping to LexGrid
• Both Protégé CLS and ProtégéInstance map to LexGrid Coded Entry
• Meta-Class / CLS / Instance distinction in FMA model is pragmatic decision – not “ontological”
• Most FMA classes are both• Exception is “Concept name”,
which is strictly descriptive
60
FMA MappingClasses and Instances
61
FMA Mapping to LexGrid
PropertyString with other values
PresentationString with values “Preferred name”, “name”, “Synonyms”, “Eng-Equivalent”
LexGridSlot type in FMASlot Type decides Category
62
FMA Mapping to LexGrid
PropertyOtherProperty {true | false}Boolean
AssociationProtégé CLS or Instance
Comment:Documentation
Definition“definition”LexGridSlot type in FMA
Slot Type decides Category
63
FMA Mapping to LexGrid
Presentation or its attributes
“Authority”“Source”“Language”“TA ID”“Eponym”, …
LexGridSlot type in FMA(Instances of
‘Concept name’)
Slot Type decides Category
64
EMF at work
65
EMF at work
66
EMF at work
NOW
Create objects using Generated
EMF Classes
AND
Generate XML output file
67
EMF at workGenerated Implementation Classes
Generated Implementation
68
EMF at workGenerated Implementation Classes
69
EMF at workGenerated Implementation Classes
70
EMF at workGenerated Implementation Classes
71
EMF at workFactory Classes
72
EMF at workCreate Coding Scheme
Creates Coding Scheme
73
EMF at workCreate Concept
74
EMF at workCreate Relation
75
EMF at workXML Serialization
These classes are from ECORE frameworke.g.
package org.eclipse.emf.ecore.xmi.impl
76
EMF at work
77
FMA (LexGrid XML Snapshot)
78
FMA (LexGrid XML Snapshot)
79
Transformation Example
• Concept “Body”• LexGrid Editor tool (Mayo)• Observe Mappings:
• FMA Content with Protégé• Transformed LexGrid content with
LexGrid Editor
80
Concept “Body” (FMA)
81
“Body” (FMA) - Attributes
82
Concept “Body” (LexGrid)
83
Concept “Body” (LexGrid)
84
Concept “Body” (LexGrid)
85
Concept “Body” (LexGrid)
CONCEPTS
BASICS
RELATIONS
86
Concept “Body” (LexGrid)
87
“Body” (FMA) - Attributes
88
“Body” (FMA) - Attributes
89
“Body” (FMA) - Attributes
90
“Body” (FMA) - Attributes
91
“Body” (LexGrid) - Attributes
92
“Body” (LexGrid) - Attributes
93
“Body” (FMA) - Relations
94
“Body” (LexGrid) - Relations
95
“Body” (LexGrid) - Relations
96
Current Status
• Transformation tool is a Java application
• Possible to make a Protégé plug-in• Need to Isolate “Mapping to LexGrid
Model” from EMF implementation
97
EMF at work
98
EMF at work
99
Current StatusEMF as a Hub
Available at http://informatics.mayo.edu
100
Conclusion
• Easily used EMF to work with user model and generate code
• Successfully • Converted FMA content to LexGrid
Model• Used EMF to create LexGrid XML
output document• EMF as a hub
101
Thanks!
• Harold Solbrig
• Thomas Johnson
• Dr. Christopher Chute
102
Thanks!
Protégé Conference Organizers
103
Questions ?
104
Questions ?
http://informatics.mayo.edu
Deepak SharmaDivision of Biomedical InformaticsMayo [email protected]