SlideShare a Scribd company logo
1 of 19
Joint Language and Domain Engineering Tobias Walter Fernando Silva Parreiras (WeST) Steffen Staab (WeST) Jürgen Ebert ECMFA 2010
Objectives ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Scenario ,[object Object],Cisco 7603:
Scenario ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Roles in Language and Domain Engineering Language Engineering and Use Domain Engineering Language User Language Designer Language Metamodel uses specifies Domain Model builds Domain Designer builds
Language Engineering and Language Use ,[object Object],[object Object],[object Object],class  Device{ reference  hasSlot [1-*]: Slot; } class  Slot{ reference  hasCard [0-*]: Card; } class  Card{ } ,[object Object],[object Object],[object Object],instance  cicso7603  instanceOf  Device{ hasSlot slot1; } instance  slot1  instanceOf  Slot{ hasCard supervisor360; } instance  supervisor360  instanceOf  Card{  } linguistic instanceOf Language Designer Language User
Domain Engineering ,[object Object],[object Object],[object Object],instance  cicso7603 { hasSlot slot1; } instance  slot1 hasCard supervisor360; } ,[object Object],[object Object],[object Object],ontological hasType type  Supervisor  extends  CiscoCard { } instance  supervisor360  hasType  CiscoCard{  } hasType  CiscoSlot{ type  Cisco {  reference hasSlot [1-*]: CiscoSlot; } type  CiscoSlot { reference hasCard [0-*]: CiscoCard; } type  CiscoCard { } ,[object Object],Domain Designer
Challenges (1) ,[object Object],[object Object],[object Object],type  Cisco {  reference  hasCard [1-*]: CiscoCard; } type  CiscoCard { } Inconsistent structure of domain models for physical devices
Join of Language and Domain Engineering class  Device{ reference  hasSlot [1-*]: Slot:  } class  Slot{ } type  Cisco {  reference  hasSlot [1-*]: CiscoSlot; } type  CiscoSlot { } metatype  Device{ } metatype  Slot{ } metainstance  SlotInstance  { } metainstance  DeviceInstance  { } instance  cicso7603  hasType  Cisco{ hasSlot slot1; } instance  slot1 { } ,[object Object],[object Object],hasMetatype  Device hasMetatype  Slot metareference  hasSlot [1-*]: Slot;  linguistic instanceOf linguistic instanceOf Domain Designer Language Designer
Joint Model Hierarchy Ontology-based Metamodeling Language with concepts for metatypes ,  metainstances ,  types ,  instances … M3 Layer Metametamodel M2 Layer Metamodel M1 Layer Domain model metatype metainstance type instance O2 ontological type layer O1 ontological instance layer linguistic instanceOf linguistic instanceOf ontological hasType ontological hasMetaType linguistic instanceOf
Challenges (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],instance  cicso7603 { hasSlot slot1; } What domain type does an instance have?
Description Logics ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Knowledge Base TBox ABox Inference Engine Application
Integrated Semantic Expressions (1) ,[object Object],metatype  Device metareference  hasSlot [1-*]: Slot; } metatype  Slot { metareference  hasCard [0-*]: Card; } metatype  Card { } metainstance  DeviceInstance  hasMetatype  Device { metalink  hasSlot [1-*]: SlotInstance; } metainstance  SlotInstance  hasMetatype  Slot { metalink  hasCard [0-*]: CardInstance; } metainstance  CardInstance  hasMetatype  Card { } { { { equivalentWith   restrictionOn  hasSlot  with some  restrictionOn  hasCard  with some  Card  { DSL Designer
Integrated Semantic Expressions (2) ,[object Object],type  Cisco  equivalentWith   reference  hasSlot [1-*]: CiscoSlot; } type  CiscoSlot { reference  hasCard [0-*]: CiscoCard; } type  CiscoCard { } type  Supervisor instance  cicso7603 { hasSlot slot1; } instance  cisco7604 } instance  slot1  hasType  CiscoSlot { hasCard supervisor360; } instance  supervisor720  hasType  CiscoCard { } instance  supervisor360  hasType  CiscoCard { } restrictionOn  hasSlot  with some  restrictionOn  hasCard  with some  Supervisor  { { equivalentWith   oneOf (supervisor720, supervisor360)  { } { } hasType   restrictionOn  hasSlot  with some  restrictionOn  hasCard  with some  Supervisor  { {
Services ,[object Object],type  Cisco  equivalentWith   restrictionOn  hasSlot  with some  restrictionOn  hasCard  with some  Supervisor {  reference  hasSlot [1-*]: CiscoSlot; } type  CiscoSlot { reference  hasCard [0-*]: CiscoCard; } type  CiscoCard { } type  Supervisor  equivalentWith   oneOf (supervisor720, supervisor360) { } instance  cicso7603  hasSlot slot1; } instance  slot1  hasType  CiscoSlot { hasCard supervisor360; } instance  supervisor720  hasType  CiscoCard { } instance  supervisor360  hasType  CiscoCard { } instance  cisco7604  hasType   restrictionOn  hasSlot  with some  restrictionOn  hasCard  with some  Supervisor { } Classify individuals to get its type hastype  Cisco  { { Check consistency of instances instance  cisco7604  hasType   restrictionOn  hasSlot  with some  restrictionOn  hasCard  with some  Supervisor { }
Benefits of DL in Domain and Language Engineering ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Future Work & Conclusion ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],In the future Domain Designer Language Designer
Finally ,[object Object],[object Object],www.most-project.eu
M3 Metametamodel

More Related Content

What's hot

Xml processing-by-asfak
Xml processing-by-asfakXml processing-by-asfak
Xml processing-by-asfakAsfak Mahamud
 
Introduction to NHibernate
Introduction to NHibernateIntroduction to NHibernate
Introduction to NHibernateDublin Alt,Net
 
NHibernate (The ORM For .NET Platform)
NHibernate (The ORM For .NET Platform)NHibernate (The ORM For .NET Platform)
NHibernate (The ORM For .NET Platform)Samnang Chhun
 

What's hot (6)

Scam 08
Scam 08Scam 08
Scam 08
 
A3 from sql to orm
A3 from sql to ormA3 from sql to orm
A3 from sql to orm
 
NHibernate
NHibernateNHibernate
NHibernate
 
Xml processing-by-asfak
Xml processing-by-asfakXml processing-by-asfak
Xml processing-by-asfak
 
Introduction to NHibernate
Introduction to NHibernateIntroduction to NHibernate
Introduction to NHibernate
 
NHibernate (The ORM For .NET Platform)
NHibernate (The ORM For .NET Platform)NHibernate (The ORM For .NET Platform)
NHibernate (The ORM For .NET Platform)
 

Similar to Joint Language and Domain Engineering

Runtime Environment Of .Net Divya Rathore
Runtime Environment Of .Net Divya RathoreRuntime Environment Of .Net Divya Rathore
Runtime Environment Of .Net Divya RathoreEsha Yadav
 
BizTalk Server Teach me something new about Flat Files (or not)
BizTalk Server Teach me something new about Flat Files (or not)BizTalk Server Teach me something new about Flat Files (or not)
BizTalk Server Teach me something new about Flat Files (or not)BizTalk360
 
DC-2008 Architecture Forum Open session
DC-2008 Architecture Forum Open sessionDC-2008 Architecture Forum Open session
DC-2008 Architecture Forum Open sessionMikael Nilsson
 
ITU - MDD - Textural Languages and Grammars
ITU - MDD - Textural Languages and GrammarsITU - MDD - Textural Languages and Grammars
ITU - MDD - Textural Languages and GrammarsTonny Madsen
 
Approaching to domain driven development
Approaching to domain driven developmentApproaching to domain driven development
Approaching to domain driven developmentdaxnet
 
Full econstruct end results overview
Full econstruct end results overviewFull econstruct end results overview
Full econstruct end results overviewReinout van Rees
 
.NET and C# introduction
.NET and C# introduction.NET and C# introduction
.NET and C# introductionPeter Gfader
 
Digital System Design-Gatelevel and Dataflow Modeling
Digital System Design-Gatelevel and Dataflow ModelingDigital System Design-Gatelevel and Dataflow Modeling
Digital System Design-Gatelevel and Dataflow ModelingIndira Priyadarshini
 
Artefactos biz talk 2006
Artefactos biz talk 2006Artefactos biz talk 2006
Artefactos biz talk 2006Sandro Pereira
 
Automated Syntactic Mediation for Web Service Integration
Automated Syntactic Mediation for Web Service IntegrationAutomated Syntactic Mediation for Web Service Integration
Automated Syntactic Mediation for Web Service IntegrationMartin Szomszor
 
What you need to know about .NET Core 3.0 and beyond
What you need to know about .NET Core 3.0 and beyondWhat you need to know about .NET Core 3.0 and beyond
What you need to know about .NET Core 3.0 and beyondJon Galloway
 
Description and Discovery of Type Adaptors for Web Services Workflow
Description and Discovery of Type Adaptors for Web Services WorkflowDescription and Discovery of Type Adaptors for Web Services Workflow
Description and Discovery of Type Adaptors for Web Services WorkflowMartin Szomszor
 
WSDL-Design-and-Generation-in-EASparx
WSDL-Design-and-Generation-in-EASparxWSDL-Design-and-Generation-in-EASparx
WSDL-Design-and-Generation-in-EASparxFrank Ning
 
9 d57206b cryptography & network security
9 d57206b cryptography & network security9 d57206b cryptography & network security
9 d57206b cryptography & network securityVinod Kumar Gorrepati
 
.Net Framework Introduction
.Net Framework Introduction.Net Framework Introduction
.Net Framework IntroductionAbhishek Sahu
 
SAP integration sample payloads for Azure Logic Apps
SAP integration sample payloads for Azure Logic AppsSAP integration sample payloads for Azure Logic Apps
SAP integration sample payloads for Azure Logic AppsDavid Burg
 

Similar to Joint Language and Domain Engineering (20)

Runtime Environment Of .Net Divya Rathore
Runtime Environment Of .Net Divya RathoreRuntime Environment Of .Net Divya Rathore
Runtime Environment Of .Net Divya Rathore
 
BizTalk Server Teach me something new about Flat Files (or not)
BizTalk Server Teach me something new about Flat Files (or not)BizTalk Server Teach me something new about Flat Files (or not)
BizTalk Server Teach me something new about Flat Files (or not)
 
DC-2008 Architecture Forum Open session
DC-2008 Architecture Forum Open sessionDC-2008 Architecture Forum Open session
DC-2008 Architecture Forum Open session
 
ITU - MDD - Textural Languages and Grammars
ITU - MDD - Textural Languages and GrammarsITU - MDD - Textural Languages and Grammars
ITU - MDD - Textural Languages and Grammars
 
Approaching to domain driven development
Approaching to domain driven developmentApproaching to domain driven development
Approaching to domain driven development
 
Full econstruct end results overview
Full econstruct end results overviewFull econstruct end results overview
Full econstruct end results overview
 
.NET and C# introduction
.NET and C# introduction.NET and C# introduction
.NET and C# introduction
 
Day6
Day6Day6
Day6
 
Digital System Design-Gatelevel and Dataflow Modeling
Digital System Design-Gatelevel and Dataflow ModelingDigital System Design-Gatelevel and Dataflow Modeling
Digital System Design-Gatelevel and Dataflow Modeling
 
Introduction to HDLs
Introduction to HDLsIntroduction to HDLs
Introduction to HDLs
 
Artefactos biz talk 2006
Artefactos biz talk 2006Artefactos biz talk 2006
Artefactos biz talk 2006
 
Automated Syntactic Mediation for Web Service Integration
Automated Syntactic Mediation for Web Service IntegrationAutomated Syntactic Mediation for Web Service Integration
Automated Syntactic Mediation for Web Service Integration
 
What you need to know about .NET Core 3.0 and beyond
What you need to know about .NET Core 3.0 and beyondWhat you need to know about .NET Core 3.0 and beyond
What you need to know about .NET Core 3.0 and beyond
 
Description and Discovery of Type Adaptors for Web Services Workflow
Description and Discovery of Type Adaptors for Web Services WorkflowDescription and Discovery of Type Adaptors for Web Services Workflow
Description and Discovery of Type Adaptors for Web Services Workflow
 
Introduction to Visual Studio.NET
Introduction to Visual Studio.NETIntroduction to Visual Studio.NET
Introduction to Visual Studio.NET
 
WSDL-Design-and-Generation-in-EASparx
WSDL-Design-and-Generation-in-EASparxWSDL-Design-and-Generation-in-EASparx
WSDL-Design-and-Generation-in-EASparx
 
.Net 3.5
.Net 3.5.Net 3.5
.Net 3.5
 
9 d57206b cryptography & network security
9 d57206b cryptography & network security9 d57206b cryptography & network security
9 d57206b cryptography & network security
 
.Net Framework Introduction
.Net Framework Introduction.Net Framework Introduction
.Net Framework Introduction
 
SAP integration sample payloads for Azure Logic Apps
SAP integration sample payloads for Azure Logic AppsSAP integration sample payloads for Azure Logic Apps
SAP integration sample payloads for Azure Logic Apps
 

Joint Language and Domain Engineering

  • 1. Joint Language and Domain Engineering Tobias Walter Fernando Silva Parreiras (WeST) Steffen Staab (WeST) Jürgen Ebert ECMFA 2010
  • 2.
  • 3.
  • 4.
  • 5. Roles in Language and Domain Engineering Language Engineering and Use Domain Engineering Language User Language Designer Language Metamodel uses specifies Domain Model builds Domain Designer builds
  • 6.
  • 7.
  • 8.
  • 9.
  • 10. Joint Model Hierarchy Ontology-based Metamodeling Language with concepts for metatypes , metainstances , types , instances … M3 Layer Metametamodel M2 Layer Metamodel M1 Layer Domain model metatype metainstance type instance O2 ontological type layer O1 ontological instance layer linguistic instanceOf linguistic instanceOf ontological hasType ontological hasMetaType linguistic instanceOf
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.

Editor's Notes

  1. The complete box is called a chassis. The chassis consists of different cards, for example: Supervisor Engine 720 card for different IP and security features SPA Interface Card for 1-Gbps broadband connections (OSM Card) Hot Swap Controller for swapping cards at runtime (OSM Card)
  2. The complete box is called a chassis. The chassis consists of different cards, for example: Supervisor Engine 720 card for different IP and security features SPA Interface Card for 1-Gbps broadband connections (OSM Card) Hot Swap Controller for swapping cards at runtime (OSM Card)
  3. DSL User: builds domain models Uses Language metamodel to create domain models Language Designer Specifies metamodels which is provided to the langugae user Consider both engineering approaches: there is already an overlap. Language user and domain designer are building a domain model next slides: consider domain model using a language and domain model in domain engineering
  4. Language engineering (definition of abstract syntax) mainly takes place at the M2 layer Create prescriptive metamodel – which prescribes structure and design of domain models. Language Use at M1 layer Result: Domain model consisting of linguistic instances (instances+links)
  5. Domain engineering begins with considering existing domain information which is represented by existing instances in the domain. The idea is to describe these existing elements in the domain by types, relations connecting two instances, or attributes. Furthermore, (exitsing) instances should be assigned by / marked by a type. This should be realized by a separate hasType relation. Domain model is extended by new types and instances After applying the domain engineering, we have a (formal) domain model, which consists of the description of instances (by types, links) and it consists of the types itself.
  6. Different domain designers might create different conceptualizations of the same domain. Need of a prescribing language that prescribes the core of the domain. Facility to extend the set of domain types in domain models (which is still not possible, since a usual modeling language only allows for creating instances)
  7. Split class into metatype and metainstance (separate the concerns of a class) Definde hasMetatype to restrict the use of the hasType relation in the domain model Create metareference (allows for intantiation twice)
  8. 2 dimensions Why is the metamodeling language called „ontology-based“? Leads to the next slide and fulfills new challenges.
  9. Services for productively modeling Classification: Domain designers often find instances that have no type. They automatically classify them. Consistency checking: domain instances wrt. domain types; domain model wrt. language metamodel Define a semantic for hasType and instanceOf
  10. Define that each Device has at least one card (not possible with multiplicities at refereces, because there could be slots which are not occupied)
  11. 1. Each Cisco has plugged in super visor card (via a slot) 2. the type supervisor only consists of two domain instances 3. instance cisco7604 has an anonymous type
  12. 12