colex: a web-based collaborative conflict lexicon
DESCRIPTION
Slides presented at the International Workshopon Model Comparison in Practice 2010 in Malaga, Spain.TRANSCRIPT
Colex: A Web-based Collaborative Conflict Lexicon
Petra Brosch, Philip Langer, Martina Seidl, Konrad Wieland, Manuel Wimmer
Department of Telecooperation
Johannes Kepler University Linz
Altenberger Straße 69
4040 Linz, Austria
Petra Brosch, Philip Langer, Martina Seidl, Konrad Wieland, Manuel Wimmer
International Workshop on Model Comparison in Practice (IWMCP)
July 1, 2010, Malaga, Spain
Philip Langer
Motivation
� How to develop a Model Versioning Systems with…
� precise conflict detection and
� supportive conflict resolution?
2
Motivation
� How to develop a Model Versioning Systems with…
� precise conflict detection and
� supportive conflict resolution?
for (KindOfConflict conflictKind : allKindsOfConflict) {
// Detection
EList<Idea> ideas = brain.thinkAboutDetection(conflictKind);
for (Idea idea : ideas) {
null
3
if (brain.thinkAboutInfoNeeded(idea, diffModel) != null) {
DetectionPrototype p = students.implement(idea);
}
}
// Resolution
ideas = brain.thinkAboutResolution(conflictKind);
for (Idea idea : ideas) {
if (brain.thinkAboutInfoNeeded(idea, conflictKind) != null) {
ResolutionPrototype p2 = students.implement(idea);
}
}
}
Motivation
� How to develop a Model Versioning Systems with…
� precise conflict detection and
� supportive conflict resolution?
allKindsOfConflict = ?;
for (KindOfConflict conflictKind : allKindsOfConflict) {// Detection
EList<Idea> ideas = brain.thinkAboutTheirDetection(conflictKind);
for (Idea idea : ideas) {
4
for (Idea idea : ideas) {
if (brain.thinkAboutInfoNeeded(idea, diffModel) != null) {
DetectionPrototype p = students.implement(idea);
}
}
// Resolution
ideas = brain.thinkAboutResolution(conflictKind);
for (Idea idea : ideas) {
if (brain.thinkAboutTheirResolution(conflictKind) != null) {
ResolutionPrototype p2 = students.implement(idea);
}
}
}
Motivation
� How to develop a Model Versioning Systems with…
� precise conflict detection and
� supportive conflict resolution?
5
Having a Conflict Categorization…
� Conflict detection
� Which knowledge is necessary to detect a certain kind of conflict?
� How is this knowledge specified/gathered/recorded?
� Conflict resolution
� Which kind of conflicts might be resolved automatically?
� How to provide appropriate support for manually resolving a certain kind of
conflict?
� Common terminology and common understanding
� Development of a benchmark� Makes them comparable!
� Helps to develop even better model versioning systems!
6
Conflict Categorization 1.0
� Based on temporal dimension
Change
Generic
Atomic
Specific
Atomic
Specific
Composite
• Add• Delete• Update
• Move• Rename• ...
• Convert to Singleton• Extract Superclass• ...
Changes
• Update/Update
A
C
V0
AA
AC
AA C
A
A
7
Conflic
ts
Overlapping
Changes
Contradicting
Equivalent
Inconsis
tencie
s
Syntax Semantic
• Update/Update• Delete/Update• ...
• Dangling Reference• ...
• Equivalent Concept• ...
• Add/Add• ...
V0’ V0’’
V0’+V0’’
V1
AA
A
A A
C
Conflict Categorization 1.0
� Based on temporal dimension
Change
Generic
Atomic
Specific
Atomic
Specific
Composite
• Add• Delete• Update
• Move• Rename• ...
• Convert to Singleton• Extract Superclass• ...
Changes
• Update/Update
A
C
V0
AA
AC
AA C
A
A
Contradiction or equivalence on which layer?
• Modeling Language?
8
Conflic
ts
Overlapping
Changes
Contradicting
Equivalent
Inconsis
tencie
s
Syntax Semantic
• Update/Update• Delete/Update• ...
• Dangling Reference• ...
• Equivalent Concept• ...
• Add/Add• ...
V0’ V0’’
V0’+V0’’
V1
AA
A
A A
C• Modeling Language?
• Modeled Domain?
�Completely different
information needed for
detection
� No generally applicable
detection strategy
Conflict Categorization 1.0
� Based on temporal dimension
Change
Generic
Atomic
Specific
Atomic
Specific
Composite
• Add• Delete• Update
• Move• Rename• ...
• Convert to Singleton• Extract Superclass• ...
Changes
• Update/Update
A
C
V0
AA
AC
AA C
A
A
The semantics of semantics?
• Based on Conradi et al, Mens
• Oriented on compiler phases
9
Conflic
ts
Overlapping
Changes
Contradicting
Equivalent
Inconsis
tencie
s
Syntax Semantic
• Update/Update• Delete/Update• ...
• Dangling Reference• ...
• Equivalent Concept• ...
• Add/Add• ...
V0’ V0’’
V0’+V0’’
V1
AA
A
A A
C
• Oriented on compiler phases
�Models are not (always)
compiled
�Semantics is (informally)
defined by a model’s intended
use!
�What does it help for realizing
a MVS anyway?
Conflict Categorization 2.0
� Goal
� Help for developing Model Versioning Systems
� Categorization according to reasons causing conflicts
� Layer of contradiction or equivalence
� Violation of …
� Meta-metamodel, metamodel, OCL constraints
� Operation (refactoring) contracts
� Common knowledge
� Domain knowledge
� Hints on necessary knowledge
� to detect and
� to resolve a conflict
10
Conflict Categorization 2.0
Domain Knowledge
• Update/Update• Delete/Update
Language Knowledge
• Update/Update• Delete/Update
• Add/Add• Update/Update• ...
• Add/Add• Update/Update• ...
Contradicting
Equivalent
Ato
mic
Overl
ap
pin
g
Ch
an
ges
11
Metamodel
Operation
Contract
• Well-formednessRule• Abstract Syntax
Vio
lati
on
s
User-def ined
Knowledge
Common
Knowledge
• Upper Ontology• Thesaurus• ...
• Use Case Description• Requirement Specification • ...
Co
mp
osit
e /
Ato
mic
• Refactorings• Model Completion
Domain Knowledge
• Update/Update• Delete/Update
Language Knowledge
• Update/Update• Delete/Update
• Add/Add• Update/Update• ...
• Add/Add• Update/Update• ...
Contradicting
Equivalent
Ato
mic
Overl
ap
pin
g
Ch
an
ges
Conflict Categorization 2.0Language
specification
Change-based view
Domain specification
Existing kinds of changes
Metamodel
Operation
Contract
• Well-formednessRule• Abstract Syntax
Vio
lati
on
s
User-def ined
Knowledge
Common
Knowledge
• Upper Ontology• Thesaurus• ...
• Use Case Description• Requirement Specification • ...
Co
mp
osit
e /
Ato
mic
• Refactorings• Model Completion
12
Mergedmodel
Contracts of composite operations
Domain Knowledge
• Update/Update• Delete/Update
Language Knowledge
• Update/Update• Delete/Update
• Add/Add• Update/Update• ...
• Add/Add• Update/Update• ...
Contradicting
Equivalent
Ato
mic
Overl
ap
pin
g
Ch
an
ges
Co
mp
osit
e /
Ato
mic
Overlapping equivalent changes: Language Knowledge
V0
V0’
Employee
contract
Company* 1
Employee Company* *{nonunique}
Metamodel
Operation
Contract
• Well-formednessRule• Abstract Syntax
Vio
lati
on
s
User-def ined
Knowledge
Common
Knowledge
• Upper Ontology• Thesaurus• ...
• Use Case Description• Requirement Specification • ...
Co
mp
osit
e /
Ato
mic
• Refactorings• Model Completion
13
V0’’
Contract
Contract
Company
*1
Employee
*1
Domain Knowledge
• Update/Update• Delete/Update
Language Knowledge
• Update/Update• Delete/Update
• Add/Add• Update/Update• ...
• Add/Add• Update/Update• ...
Contradicting
Equivalent
Ato
mic
Overl
ap
pin
g
Ch
an
ges
Co
mp
osit
e /
Ato
mic
Violation of Operation Condition
V0
V0’
Researcher
getLectures()
Assistent Professor
Researcher
getLectures() getLectures()
Metamodel
Operation
Contract
• Well-formednessRule• Abstract Syntax
Vio
lati
on
s
User-def ined
Knowledge
Common
Knowledge
• Upper Ontology• Thesaurus• ...
• Use Case Description• Requirement Specification • ...
Co
mp
osit
e /
Ato
mic
• Refactorings• Model Completion
14
V0’’
Assistent Professor
Assistent
getLectures()
Professor
getLectures()
Researcher
ProjectAss
Domain Knowledge
• Update/Update• Delete/Update
Language Knowledge
• Update/Update• Delete/Update
• Add/Add• Update/Update• ...
• Add/Add• Update/Update• ...
Contradicting
Equivalent
Ato
mic
Overl
ap
pin
g
Ch
an
ges
Co
mp
osit
e /
Ato
mic
Violation of User-defined Domain Knowledge
V0
V0’
:A CM
turnOn()
makeCoffee()ON
ON
:A CM
turnOn()
makeCoffee()ON
Metamodel
Operation
Contract
• Well-formednessRule• Abstract Syntax
Vio
lati
on
s
User-def ined
Knowledge
Common
Knowledge
• Upper Ontology• Thesaurus• ...
• Use Case Description• Requirement Specification • ...
Co
mp
osit
e /
Ato
mic
• Refactorings• Model Completion
15
V0’’
makeCoffee()
OFF
turnOff()
:A CM
turnOn()
makeCoffee()ON
makeTea()ON
cf. inter-diagram
consistency
COLEX – Conflict Lexicon
Motivation
� Categorization and common terminology is …
� … hardly established by one group
� … extracted from a large set of examples
� Colex
� Collaborative conflict lexicon
� We kindly invite to contribute and establish
� Huge set of model versioning examples
� Common categorization
� Benchmark for Model Versioning Systems
� Foster collaboration
� Tagging, rating, and discussion
� Common benefit is ensured by applying the Creative Commons License
� http://creativecommons.org/licenses/by/3.0/
16
COLEX – Conflict Lexicon
http://www.modelversioning.org/colex
demo
17
demo
Conclusion and Future Work
http://www.modelversioning.org/colex
� Comprehensive list of conflicts
� Extract kinds
� Replace the ?allKindsOfConflict = ?;
� Common terminology
� Find pseudonyms
� Term hierarchy
� Benchmark
� Compare existing
approaches
18
Thank you for your attention!
Questions?
• http://www.modelversioning.org/colex
The End
Backup / Examples
20
COLEX – Conflict Lexicon
http://www.modelversioning.org/colex
� Description
� Scenario
� Issue
� Models
� Origin/Left/Right
� Diagram and XMI
� Tags� Tags
� Use your terminology
� To settle a common
terminology
� Permanent links
� Entries are versioned
� BibTeX export
� Conflict relationships
� Related to…
� Duplicate of…21
COLEX – Conflict Lexicon
� Detection strategies
� Resolution strategies
� Comments
� Fosters discussion
� Currently ~45 conflicts
� We kindly invite to
� Contribute conflicts,
� Add tags,
� Rate,
� Discuss,
� …
22
Violation of the metamodel
Concrete Syntax
Domain Knowledge
• Update/Update• Delete/Update
Language Knowledge
• Update/Update• Delete/Update
• Add/Add• Update/Update• ...
• Add/Add• Update/Update• ...
Contradicting
Equivalent
Ato
mic
Ove
rla
pp
ing
Ch
an
ge
s
Co
mp
osi
te /
Ato
mic
V0
V0’
A
a
A
23
Metamodel
Operation
Condition
• Well-formedness Rule• Abstract Syntax
Vio
lati
on
sUser-defined
Knowledge
Common
Knowledge
• Upper Ontology• Thesaurus• ...
• Use Case Description• Requirement Specification • ...
Co
mp
osi
te /
Ato
mic
• Refactorings• Model Completion
V0’’
A
b
A
c
Overlapping contradicting changes: Domain Knowledge
V0
V0’
Person
gender: Boolean
Person
Domain Knowledge
• Update/Update• Delete/Update
Language Knowledge
• Update/Update• Delete/Update
• Add/Add• Update/Update• ...
• Add/Add• Update/Update• ...
Contradicting
Equivalent
Ato
mic
Ove
rla
pp
ing
Ch
an
ge
s
Co
mp
osi
te /
Ato
mic
24
V0’’
female: Boolean
Person
gender: GenderType
GenderType
MALEFEMALE
Metamodel
Operation
Condition
• Well-formedness Rule• Abstract Syntax
Vio
lati
on
sUser-defined
Knowledge
Common
Knowledge
• Upper Ontology• Thesaurus• ...
• Use Case Description• Requirement Specification • ...
Co
mp
osi
te /
Ato
mic
• Refactorings• Model Completion
Violation of the metamodel
Concrete Syntax
Domain Knowledge
• Update/Update• Delete/Update
Language Knowledge
• Update/Update• Delete/Update
• Add/Add• Update/Update• ...
• Add/Add• Update/Update• ...
Contradicting
Equivalent
Ato
mic
Ove
rla
pp
ing
Ch
an
ge
s
Co
mp
osi
te /
Ato
mic
V0
V0’
S1
S2
S3
S1
25
Metamodel
Operation
Condition
• Well-formedness Rule• Abstract Syntax
Vio
lati
on
sUser-defined
Knowledge
Common
Knowledge
• Upper Ontology• Thesaurus• ...
• Use Case Description• Requirement Specification • ...
Co
mp
osi
te /
Ato
mic
• Refactorings• Model Completion
V0’’
S1
S3
S2
S3
Violation of Common Knowledge
V0
V0’
Circle Square
Shape
Rectangle
Circle
Shape
Rhomboid
Domain Knowledge
• Update/Update• Delete/Update
Language Knowledge
• Update/Update• Delete/Update
• Add/Add• Update/Update• ...
• Add/Add• Update/Update• ...
Contradicting
Equivalent
Ato
mic
Ove
rla
pp
ing
Ch
an
ge
s
Co
mp
osi
te /
Ato
mic
26
V0’’
Circle Quadrangle
Shape
Square Rectangle
Circle
Square Rectangle
Rhomboid
Metamodel
Operation
Condition
• Well-formedness Rule• Abstract Syntax
Vio
lati
on
sUser-defined
Knowledge
Common
Knowledge
• Upper Ontology• Thesaurus• ...
• Use Case Description• Requirement Specification • ...
Co
mp
osi
te /
Ato
mic
• Refactorings• Model Completion
Outline
1. Motivation
2. Conflict Categorization 1.0
3. Conflict Categorization 2.0
4. Colex: Collaborative cOnflict LEXicon
5. Conclusion
27