Title: Modeling for Semantic Interoperability
1Modeling for Semantic Interoperability
- Vocabularies and Common Data ElementsCross-cuttin
g WorkspaceFace-to-Face Meeting - June 16-17, 2005
- Nafis Zebarjadi zebarjadin_at_saic.com
2Agenda
- Creating the Logical Model
- Naming Best Practices
- Semantic Connector
3Learning Objectives
- Upon completion of this session, you will be able
to - Explain modeling constraints imposed by caCORE
SDK tools - Analyze a UML model and correct potential
problems - Apply best practices for naming domain
objects/attributes - Generate a valid XMI file for use by SDK tools
- Describe the semantic connector workflow
- Discuss the various parts of a semantic connector
report
4Creating the Logical Model
5Creating the Logical Model
- Class diagram models target domain
- Logical model is basis for semantic integration
- Also used to generate caCORE-like system
- Focus on attributes and relationships of domain
objects
6Creating the Logical Model
- caCORE framework does NOT constrain domain
modeling - Constraints are imposed by SDK transformation
tools - User must specify desired packages for code
generation - Provides flexibility in modeling
- Enables evolutionary development
- Constraints ensure
- Completeness of model
- Correct code generation
- Ability to perform semantic integration
7Creating the Logical Model
- Constraint 1 Allowable UML Elements
- Model can contain any element, BUT
- Only class elements recognized by SDK tools
- Classes may contain both attributes and
operations - Operations will be disregarded
- Attributes should be typed
8Creating the Logical Model
- Constraint 2 Allowable Relationships
- UML Loader registers
- association relationships
- inheritance relationships (generalizations)
- Aggregations and compositions
- allowed in model
- treated same as simple associations
9Creating the Logical Model
- Constraint 3 Attribute Types
- Attribute types must be Java primitive data types
- Complex types should be modeled as associations
- Enumerated lists not supported by UML Loader
- Recommendation
- Define Java primitives in model
- Note enumerated value domains
10Creating the Logical Model
- Constraint 3 Attribute Types (continued)
11Creating the Logical Model
- Constraint 4 Association End Role Names
- Association ends must be given a role name
- Indicates role of objects on either end
- Also used to generate method names by SDK
- Naming convention
- Use associated class name
- If multiplicity gt 1, append Collection
- What is best practice?
12Creating the Logical Model
- Constraint 5 Association End Multiplicity
- Multiplicity must be explicitly defined
- Determines use of collections as necessary
- Constraint 6 Association End Navigability
- Direction of association must be explicitly
defined - Determines visibility of related objects
13Creating the Logical Model
- Example Associations (Constraints 4, 5, 6)
14Creating the Logical Model
- Constraint 7 Description
- ALL classes and attributes need description
- Good practice
- Required for semantic interoperability
- Method of description varies with modeling tool
15Creating the Logical Model
- Constraint 8 Logical Model Package
- Elements must reside in Logical Model package
- Semantic Connector will ignore all other packages
16Creating the Logical Model
- Review SDK Modeling Constraints
- Only UML class
- Associations generalizations
- Attribute types must be Java primitive data types
- Each association end must be given a name
- Association end multiplicity
- Association end navigability
- Each class and attribute must have a description
- Model must exist in Logical Model
- Review SDK Modeling Constraints
- Only UML ____ elements are recognized
- __________ and ____________ are registered by
UML Loader - Attribute types must be ____________________
- Each association end must be given a _____
- Association end ________ must be specified
- Association end _________ must be specified
- Each class and attribute must have a _________
- Model must exist in ____________ package
17Naming Best Practices
18Naming Best Practices
- Be Consistent!
- Choose a convention and use it throughout your
models and, if possible, across the entire
organization.
19Naming Best Practices
- Adopt a case convention
- For example
- UpperCamelCase for ClassNamelowerCamelCase for
attributeNameUNDERLINED_CAPS for CONSTANT_NAME
20Naming Best Practices
- Avoid using class identifiers in attribute names
- Use id, name instead of geneId, chromosomeName
21Naming Best Practices
- Avoid using abbreviations and acronyms
- Use DatabaseReference instead of DbRef
- BUT its okay to use id instead of
identifier,SNP instead of SingleNucleotidePolymor
phism - (Be smart!)
22Naming Best Practices
- Avoid technical jargon
- Use Microarray instead of Chip
23Naming Best Practices
- Use Singular/Plural Names as Appropriate
- Class and attribute names are ALWAYS
singularGene instead of Genes, location instead
of locations - Add Collection to association end names when
multiplicity gt 10..1 location, gene0..
taxonCollection
24Naming Best Practices
- Review
- ___________
- Adopt a ____ convention
- Avoid using ____ identifiers in attribute ______
- ___________ and ________ should be avoided
- Avoid technical _____
- _____ pluralize class and attribute names
- Add _________ to association ends with
multiplicity gt 1
- Review
- Be consistent!
- Adopt a case
- Avoid using class
names - Abbreviations acronyms
- Avoid technical jargon
- Never
- Add Collection
25Semantic Connection
26Running the Semantic Connector
- Submit the annotated XMI file to NCICB
- To NCICB_at_pop.nci.nih.gov
- Include For semantic connection in the subject
line - Your model will be run through the Semantic
Connector - A semantic connector report will be generated
- Comma-separated file (CSV)
- Relates terms from diagram to EVS concepts
- Report will be curated, verified and sent to you
for approval and submission for loading
27Semantic Connector Workflow
?
?
?
?
28Generating XMI for Semantic Interoperability
- Requirements for XMI file
- XMI 1.1
- UML 1.3
- Unisys/Rose extensions
- Export tagged values
- Include Logical Model package
- Exclude diagrams
29Semantic Connector Workflow
?
?
?
?
30Semantic Connector Report
- Semantic Connector Report BEFORE Human
Verification
31Semantic Connector Report
- Semantic Connector Report AFTER Human
Verification
32Annotated Model
33Questions?
34Further Reading
- caCORE SDK Programmers Guide
- ftp//ftp1.nci.nih.gov/pub/cacore/SDK/caCORE_SDK1.
0_Programmers_Guide.pdf - Chapter 5 Generating a caCORE-like System
- XMI Page at Object Management Group (OMG)
- http//www.omg.org/technology/documents/formal/xmi
.htm - Introduction to XMI
- Official specifications