SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Domain Specific Modelling as Theory Building Tony Clark t.n.clark@mdx.ac.uk BalbirBarn b.barn@mdx.ac.uk School of Engineering and Information Systems University Of Middlesex London, UK
Overview Motivation  Peter Naur: Programming as Theory Building Current State of Technologies A Language for Model Based Theory Building Examples
How do we understand a domain?
Naur’s Thesis: Features Programming is Theory Building. Understand the domain as a theory. Theories consist of information bearing statements about a domain that are true (or false). No such thing as the ideal  theory because: many consistent (incomplete) theories. theories are personal. theories consist of information necessary for stakeholder.
Naur’s Thesis: Benefit Claims Core IPR is in theories. Theories are more abstract than programs. Maintain system using theories. Introduce new people using theory not code. Theories are reusable (code fails to be). Theories allow questions to be articulated. Theories capture different views of a system.
Understanding is Theory Building
What do we currently do? Just look at the code. Misunderstandings because:  the domain is weakly represented in the modelling language. unable to articulate questions. (Tools for) DSLsare syntax-bound and semantics-free. Meaning is bound up with translations to code. Modularity cannot be applied to understanding: have to state the whole thing – no real views.
Naur’s Thesis Applied to DSM What’s the difference between modelling and programming? If programming is the construction of a theory that is then mapped to an implementation (theory) then:Modelling smells like programming to me. What’s the difference between modelling and domain specific modelling? A theory building framework gives us a context in which this can be analyzed.
What is a theory? theorem: true or false statements. theory: collections of theorems. axioms: statements that are givens. rules: ways of constructing theorems. mappings: between theories (and theorems) combinations: composing theories (and theorems). initial: an initial theory maps to all the others. terminal: every theory maps to a terminal theory.
What is a Domain Specific Theory? Suppose our questioner wants to understand when it follows that an influencing agent has an effect on an influenced agent. Questions might include: do the two agents have to be linked? does it depend on the states of the agents? if the influencer state satisfies the pre, must the influenced state satisfy the post? A theory is built by continued diligent questioning of the domain (expert or empirically).
Modelling Languages
Modelling Theories Traditional natural semantics-style deduction rules have their modelling counterpart. :y :x :z :T :D :Rule :Theory :T T(x,y,z) :a :c :x D T(a,x,c)
Abstract Syntax for Theories
Theory Semantics
Concrete Syntax for Model Based Theories Use enhanced object diagrams. Use a textual syntax consisting of class-models and rules.
The Domain (Again)
Abstract Syntax for DSM
Semantic Domain
Domain Question Given any collection of agents in any states and given influencing relationships between the agents – are the relationships satisfied or not?
Defining the Influencer Theory context influence_language::semantics theory influence {         import OCL;         import influence_language::syntax::AS;         import influence_language::semantics::SD;         relation I {       influences:Set(Influence);       state:Set(AgentState)         }         rule IR(Seq(evalOCL),Seq(I))<->I {        }   }
Defining an Axiom context influence_language           ::semantics::influence::IR   clause {     -> (I)[influences=Set{};state=S]   }
Defining a Rule context influence_language::semantics::influence::IR   clause {     (evalOCL)[             exp=p1; target=a1;       env=b1->including((Bind)[name='target';value=a2])]         (evalOCL)[             exp=p2; target=a2;       env=b2->including((Bind)[name='source';value=a1])]       ->          (I)[influences=Set{                  (Influence)[from=a1;to=a2;pre=p1;post=p2]};                  state={(AgentState)[agent=a1;vars=b1],                                 (AgentState)[agent=a2;vars=b2]                               }->including(S)]     }
Defining Induction context influence_language           ::semantics::influence::IR   clause {     (I)[influences=P;state=S]     (I)[influences=Q;state=S]     ->        (I)[influences=P->union(Q);state=S] }
Implementation Language: Concrete Syntax XModel ::= Fun*                            // programs Fun    ::= Name '(' Args ')' '{' Exp '}'   // function definitions Args::= Name (',' Name)* | Empty        // argument lists Exp    ::= Exp '.' Name                    // field reference              |   OCL                             // OCL expressions              |   'case' Name Name '{' Arm* '}'   // case analysis              |   'let' Bind* 'in' Exp            // local bindings              |   Name '(' Args ')'               // function call              |   Name                            //var reference Arm    ::= String String '->' Exp          // string detection Bind   ::= Name '=' Exp                   // local binding
Implementation Language
Implementation Theory context XL::semantics   theory run {        import OCL;        import XL::syntax::CS;        import XL::semantics::SD;        relation R {      prog:XModel;      exp:Exp;      val:Value;      env:Set(Bind)        }         relation RS {      prog:XModel;      exps:List(Exp);      vals:List(Value);      env:Set(Bind)        }     }
Mapping to An Implementation The domain theory can answer many questions. When mapping to an implementation it is usual to focus on one question. Select: given states for all agents, an operation and an action, can the agent use the action to perform the operation?
Mapping to Code(1)
Mapping to Code(2)
Implementation Language Theory Mapping Model Influencer Theory Implementation Theory
Model the Theory Mapping
Combinations of Theory Views Consider a Library that allows readers to register, books to be borrowed and fines to be paid. There are several views: temporal, registration, borrowing, payment. Each view is a separate theory in terms of a different view. What is the complete theory?
Complete Theory Register Theory Borrow Theory Repay Theory Time Theory WFF Theory
Conclusion Understanding is theory building. Modelling and programming are essentially the same. Modelling aims to be initial. Programming needs to be terminal. Modelling languages should support theories. Theories need to support: translation through mappings. different views through combination. patterns through parameterization.

Weitere ähnliche Inhalte

Was ist angesagt?

Python Data-Types
Python Data-TypesPython Data-Types
Python Data-TypesAkhil Kaushik
 
Scheme Programming Language
Scheme Programming LanguageScheme Programming Language
Scheme Programming LanguageReham AlBlehid
 
Functional Programming You Already Know - Kevlin Henney - Codemotion Rome 2015
Functional Programming You Already Know - Kevlin Henney - Codemotion Rome 2015Functional Programming You Already Know - Kevlin Henney - Codemotion Rome 2015
Functional Programming You Already Know - Kevlin Henney - Codemotion Rome 2015Codemotion
 
NLP_KASHK:Minimum Edit Distance
NLP_KASHK:Minimum Edit DistanceNLP_KASHK:Minimum Edit Distance
NLP_KASHK:Minimum Edit DistanceHemantha Kulathilake
 
Babar: Knowledge Recognition, Extraction and Representation
Babar: Knowledge Recognition, Extraction and RepresentationBabar: Knowledge Recognition, Extraction and Representation
Babar: Knowledge Recognition, Extraction and RepresentationPierre de Lacaze
 
Expert system with python -2
Expert system with python  -2Expert system with python  -2
Expert system with python -2Ahmad Hussein
 
Introduction to logic and prolog - Part 1
Introduction to logic and prolog - Part 1Introduction to logic and prolog - Part 1
Introduction to logic and prolog - Part 1Sabu Francis
 
PROLOG: Recursion And Lists In Prolog
PROLOG: Recursion And Lists In PrologPROLOG: Recursion And Lists In Prolog
PROLOG: Recursion And Lists In PrologDataminingTools Inc
 
Compiler Construction | Lecture 9 | Constraint Resolution
Compiler Construction | Lecture 9 | Constraint ResolutionCompiler Construction | Lecture 9 | Constraint Resolution
Compiler Construction | Lecture 9 | Constraint ResolutionEelco Visser
 
Regular Expressions
Regular ExpressionsRegular Expressions
Regular ExpressionsAkhil Kaushik
 
Solid Deconstruction
Solid DeconstructionSolid Deconstruction
Solid DeconstructionKevlin Henney
 
A Survey of Various Methods for Text Summarization
A Survey of Various Methods for Text SummarizationA Survey of Various Methods for Text Summarization
A Survey of Various Methods for Text SummarizationIJERD Editor
 
09 logic programming
09 logic programming09 logic programming
09 logic programmingsaru40
 
Lexical analyzer
Lexical analyzerLexical analyzer
Lexical analyzerkiran acharya
 
An Introduction : Python
An Introduction : PythonAn Introduction : Python
An Introduction : PythonRaghu Kumar
 
Python Programming - XI. String Manipulation and Regular Expressions
Python Programming - XI. String Manipulation and Regular ExpressionsPython Programming - XI. String Manipulation and Regular Expressions
Python Programming - XI. String Manipulation and Regular ExpressionsRanel Padon
 

Was ist angesagt? (20)

Python Data-Types
Python Data-TypesPython Data-Types
Python Data-Types
 
Scheme Programming Language
Scheme Programming LanguageScheme Programming Language
Scheme Programming Language
 
Functional Programming You Already Know - Kevlin Henney - Codemotion Rome 2015
Functional Programming You Already Know - Kevlin Henney - Codemotion Rome 2015Functional Programming You Already Know - Kevlin Henney - Codemotion Rome 2015
Functional Programming You Already Know - Kevlin Henney - Codemotion Rome 2015
 
Text Summarization
Text SummarizationText Summarization
Text Summarization
 
NLP_KASHK:Minimum Edit Distance
NLP_KASHK:Minimum Edit DistanceNLP_KASHK:Minimum Edit Distance
NLP_KASHK:Minimum Edit Distance
 
Babar: Knowledge Recognition, Extraction and Representation
Babar: Knowledge Recognition, Extraction and RepresentationBabar: Knowledge Recognition, Extraction and Representation
Babar: Knowledge Recognition, Extraction and Representation
 
Expert system with python -2
Expert system with python  -2Expert system with python  -2
Expert system with python -2
 
Prolog 7-Languages
Prolog 7-LanguagesProlog 7-Languages
Prolog 7-Languages
 
Introduction to logic and prolog - Part 1
Introduction to logic and prolog - Part 1Introduction to logic and prolog - Part 1
Introduction to logic and prolog - Part 1
 
PROLOG: Recursion And Lists In Prolog
PROLOG: Recursion And Lists In PrologPROLOG: Recursion And Lists In Prolog
PROLOG: Recursion And Lists In Prolog
 
Compiler Construction | Lecture 9 | Constraint Resolution
Compiler Construction | Lecture 9 | Constraint ResolutionCompiler Construction | Lecture 9 | Constraint Resolution
Compiler Construction | Lecture 9 | Constraint Resolution
 
Regular Expressions
Regular ExpressionsRegular Expressions
Regular Expressions
 
Solid Deconstruction
Solid DeconstructionSolid Deconstruction
Solid Deconstruction
 
Pointers in C Programming
Pointers in C ProgrammingPointers in C Programming
Pointers in C Programming
 
A Survey of Various Methods for Text Summarization
A Survey of Various Methods for Text SummarizationA Survey of Various Methods for Text Summarization
A Survey of Various Methods for Text Summarization
 
Syntaxdirected
SyntaxdirectedSyntaxdirected
Syntaxdirected
 
09 logic programming
09 logic programming09 logic programming
09 logic programming
 
Lexical analyzer
Lexical analyzerLexical analyzer
Lexical analyzer
 
An Introduction : Python
An Introduction : PythonAn Introduction : Python
An Introduction : Python
 
Python Programming - XI. String Manipulation and Regular Expressions
Python Programming - XI. String Manipulation and Regular ExpressionsPython Programming - XI. String Manipulation and Regular Expressions
Python Programming - XI. String Manipulation and Regular Expressions
 

Ă„hnlich wie Dsm as theory building

Information extraction for Free Text
Information extraction for Free TextInformation extraction for Free Text
Information extraction for Free Textbutest
 
Compiler Construction | Lecture 8 | Type Constraints
Compiler Construction | Lecture 8 | Type ConstraintsCompiler Construction | Lecture 8 | Type Constraints
Compiler Construction | Lecture 8 | Type ConstraintsEelco Visser
 
Declare Your Language: Syntax Definition
Declare Your Language: Syntax DefinitionDeclare Your Language: Syntax Definition
Declare Your Language: Syntax DefinitionEelco Visser
 
Fosdem 2013 petra selmer flexible querying of graph data
Fosdem 2013 petra selmer   flexible querying of graph dataFosdem 2013 petra selmer   flexible querying of graph data
Fosdem 2013 petra selmer flexible querying of graph dataPetra Selmer
 
Language Technology Enhanced Learning
Language Technology Enhanced LearningLanguage Technology Enhanced Learning
Language Technology Enhanced Learningtelss09
 
Scala as a Declarative Language
Scala as a Declarative LanguageScala as a Declarative Language
Scala as a Declarative Languagevsssuresh
 
Functional Programming You Already Know
Functional Programming You Already KnowFunctional Programming You Already Know
Functional Programming You Already KnowKevlin Henney
 
Tricks in natural language processing
Tricks in natural language processingTricks in natural language processing
Tricks in natural language processingBabu Priyavrat
 
Scala 3 Is Coming: Martin Odersky Shares What To Know
Scala 3 Is Coming: Martin Odersky Shares What To KnowScala 3 Is Coming: Martin Odersky Shares What To Know
Scala 3 Is Coming: Martin Odersky Shares What To KnowLightbend
 
C++ Notes by Hisham Ahmed Rizvi for Class 12th Board Exams
C++ Notes by Hisham Ahmed Rizvi for Class 12th Board ExamsC++ Notes by Hisham Ahmed Rizvi for Class 12th Board Exams
C++ Notes by Hisham Ahmed Rizvi for Class 12th Board Examshishamrizvi
 
GDSC SSN - solution Challenge : Fundamentals of Decision Making
GDSC SSN - solution Challenge : Fundamentals of Decision MakingGDSC SSN - solution Challenge : Fundamentals of Decision Making
GDSC SSN - solution Challenge : Fundamentals of Decision MakingGDSCSSN
 
Crash-course in Natural Language Processing
Crash-course in Natural Language ProcessingCrash-course in Natural Language Processing
Crash-course in Natural Language ProcessingVsevolod Dyomkin
 
Theory of computing
Theory of computingTheory of computing
Theory of computingBipul Roy Bpl
 
CPPDS Slide.pdf
CPPDS Slide.pdfCPPDS Slide.pdf
CPPDS Slide.pdfFadlie Ahdon
 

Ă„hnlich wie Dsm as theory building (20)

Information extraction for Free Text
Information extraction for Free TextInformation extraction for Free Text
Information extraction for Free Text
 
Compiler Construction | Lecture 8 | Type Constraints
Compiler Construction | Lecture 8 | Type ConstraintsCompiler Construction | Lecture 8 | Type Constraints
Compiler Construction | Lecture 8 | Type Constraints
 
Erlang session1
Erlang session1Erlang session1
Erlang session1
 
Declare Your Language: Syntax Definition
Declare Your Language: Syntax DefinitionDeclare Your Language: Syntax Definition
Declare Your Language: Syntax Definition
 
Fosdem 2013 petra selmer flexible querying of graph data
Fosdem 2013 petra selmer   flexible querying of graph dataFosdem 2013 petra selmer   flexible querying of graph data
Fosdem 2013 petra selmer flexible querying of graph data
 
Language Technology Enhanced Learning
Language Technology Enhanced LearningLanguage Technology Enhanced Learning
Language Technology Enhanced Learning
 
Scala as a Declarative Language
Scala as a Declarative LanguageScala as a Declarative Language
Scala as a Declarative Language
 
AI: Logic in AI
AI: Logic in AIAI: Logic in AI
AI: Logic in AI
 
AI: Logic in AI
AI: Logic in AIAI: Logic in AI
AI: Logic in AI
 
AI Lab Manual.docx
AI Lab Manual.docxAI Lab Manual.docx
AI Lab Manual.docx
 
Functional Programming You Already Know
Functional Programming You Already KnowFunctional Programming You Already Know
Functional Programming You Already Know
 
Tricks in natural language processing
Tricks in natural language processingTricks in natural language processing
Tricks in natural language processing
 
Scala 3 Is Coming: Martin Odersky Shares What To Know
Scala 3 Is Coming: Martin Odersky Shares What To KnowScala 3 Is Coming: Martin Odersky Shares What To Know
Scala 3 Is Coming: Martin Odersky Shares What To Know
 
AI applications in education, Pascal Zoleko, Flexudy
AI applications in education, Pascal Zoleko, FlexudyAI applications in education, Pascal Zoleko, Flexudy
AI applications in education, Pascal Zoleko, Flexudy
 
C++ Notes by Hisham Ahmed Rizvi for Class 12th Board Exams
C++ Notes by Hisham Ahmed Rizvi for Class 12th Board ExamsC++ Notes by Hisham Ahmed Rizvi for Class 12th Board Exams
C++ Notes by Hisham Ahmed Rizvi for Class 12th Board Exams
 
GDSC SSN - solution Challenge : Fundamentals of Decision Making
GDSC SSN - solution Challenge : Fundamentals of Decision MakingGDSC SSN - solution Challenge : Fundamentals of Decision Making
GDSC SSN - solution Challenge : Fundamentals of Decision Making
 
Text Mining Analytics 101
Text Mining Analytics 101Text Mining Analytics 101
Text Mining Analytics 101
 
Crash-course in Natural Language Processing
Crash-course in Natural Language ProcessingCrash-course in Natural Language Processing
Crash-course in Natural Language Processing
 
Theory of computing
Theory of computingTheory of computing
Theory of computing
 
CPPDS Slide.pdf
CPPDS Slide.pdfCPPDS Slide.pdf
CPPDS Slide.pdf
 

Mehr von ClarkTony

The Uncertain Enterprise
The Uncertain EnterpriseThe Uncertain Enterprise
The Uncertain EnterpriseClarkTony
 
Actors for Behavioural Simulation
Actors for Behavioural SimulationActors for Behavioural Simulation
Actors for Behavioural SimulationClarkTony
 
Context-Aware Content-Centric Collaborative Workflow Management for Mobile De...
Context-Aware Content-Centric Collaborative Workflow Management for Mobile De...Context-Aware Content-Centric Collaborative Workflow Management for Mobile De...
Context-Aware Content-Centric Collaborative Workflow Management for Mobile De...ClarkTony
 
LEAP A Language for Architecture Design, Simulation and Analysis
LEAP A Language for Architecture Design, Simulation and AnalysisLEAP A Language for Architecture Design, Simulation and Analysis
LEAP A Language for Architecture Design, Simulation and AnalysisClarkTony
 
A Common Basis for Modelling Service-Oriented and Event-Driven Architecture
A Common Basis for Modelling Service-Oriented and Event-Driven ArchitectureA Common Basis for Modelling Service-Oriented and Event-Driven Architecture
A Common Basis for Modelling Service-Oriented and Event-Driven ArchitectureClarkTony
 
Context Aware Reactive Applications
Context Aware Reactive ApplicationsContext Aware Reactive Applications
Context Aware Reactive ApplicationsClarkTony
 
Model Slicing
Model SlicingModel Slicing
Model SlicingClarkTony
 
Patterns 200711
Patterns 200711Patterns 200711
Patterns 200711ClarkTony
 
Kings 120711
Kings 120711Kings 120711
Kings 120711ClarkTony
 
Iswim for testing
Iswim for testingIswim for testing
Iswim for testingClarkTony
 
Iswim for testing
Iswim for testingIswim for testing
Iswim for testingClarkTony
 
Kiss at oopsla 09
Kiss at oopsla 09Kiss at oopsla 09
Kiss at oopsla 09ClarkTony
 
Mcms and ids sig
Mcms and ids sigMcms and ids sig
Mcms and ids sigClarkTony
 
Ocl 09
Ocl 09Ocl 09
Ocl 09ClarkTony
 
Scam 08
Scam 08Scam 08
Scam 08ClarkTony
 
Reverse engineering and theory building v3
Reverse engineering and theory building v3Reverse engineering and theory building v3
Reverse engineering and theory building v3ClarkTony
 
Onward presentation.en
Onward presentation.enOnward presentation.en
Onward presentation.enClarkTony
 
Hcse pres
Hcse presHcse pres
Hcse presClarkTony
 
Formalizing homogeneous language embeddings
Formalizing homogeneous language embeddingsFormalizing homogeneous language embeddings
Formalizing homogeneous language embeddingsClarkTony
 
Filmstrip testing
Filmstrip testingFilmstrip testing
Filmstrip testingClarkTony
 

Mehr von ClarkTony (20)

The Uncertain Enterprise
The Uncertain EnterpriseThe Uncertain Enterprise
The Uncertain Enterprise
 
Actors for Behavioural Simulation
Actors for Behavioural SimulationActors for Behavioural Simulation
Actors for Behavioural Simulation
 
Context-Aware Content-Centric Collaborative Workflow Management for Mobile De...
Context-Aware Content-Centric Collaborative Workflow Management for Mobile De...Context-Aware Content-Centric Collaborative Workflow Management for Mobile De...
Context-Aware Content-Centric Collaborative Workflow Management for Mobile De...
 
LEAP A Language for Architecture Design, Simulation and Analysis
LEAP A Language for Architecture Design, Simulation and AnalysisLEAP A Language for Architecture Design, Simulation and Analysis
LEAP A Language for Architecture Design, Simulation and Analysis
 
A Common Basis for Modelling Service-Oriented and Event-Driven Architecture
A Common Basis for Modelling Service-Oriented and Event-Driven ArchitectureA Common Basis for Modelling Service-Oriented and Event-Driven Architecture
A Common Basis for Modelling Service-Oriented and Event-Driven Architecture
 
Context Aware Reactive Applications
Context Aware Reactive ApplicationsContext Aware Reactive Applications
Context Aware Reactive Applications
 
Model Slicing
Model SlicingModel Slicing
Model Slicing
 
Patterns 200711
Patterns 200711Patterns 200711
Patterns 200711
 
Kings 120711
Kings 120711Kings 120711
Kings 120711
 
Iswim for testing
Iswim for testingIswim for testing
Iswim for testing
 
Iswim for testing
Iswim for testingIswim for testing
Iswim for testing
 
Kiss at oopsla 09
Kiss at oopsla 09Kiss at oopsla 09
Kiss at oopsla 09
 
Mcms and ids sig
Mcms and ids sigMcms and ids sig
Mcms and ids sig
 
Ocl 09
Ocl 09Ocl 09
Ocl 09
 
Scam 08
Scam 08Scam 08
Scam 08
 
Reverse engineering and theory building v3
Reverse engineering and theory building v3Reverse engineering and theory building v3
Reverse engineering and theory building v3
 
Onward presentation.en
Onward presentation.enOnward presentation.en
Onward presentation.en
 
Hcse pres
Hcse presHcse pres
Hcse pres
 
Formalizing homogeneous language embeddings
Formalizing homogeneous language embeddingsFormalizing homogeneous language embeddings
Formalizing homogeneous language embeddings
 
Filmstrip testing
Filmstrip testingFilmstrip testing
Filmstrip testing
 

KĂĽrzlich hochgeladen

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
WhatsApp 9892124323 âś“Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 âś“Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 âś“Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 âś“Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 

KĂĽrzlich hochgeladen (20)

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
WhatsApp 9892124323 âś“Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 âś“Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 âś“Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 âś“Call Girls In Kalyan ( Mumbai ) secure service
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

Dsm as theory building

  • 1. Domain Specific Modelling as Theory Building Tony Clark t.n.clark@mdx.ac.uk BalbirBarn b.barn@mdx.ac.uk School of Engineering and Information Systems University Of Middlesex London, UK
  • 2. Overview Motivation Peter Naur: Programming as Theory Building Current State of Technologies A Language for Model Based Theory Building Examples
  • 3. How do we understand a domain?
  • 4. Naur’s Thesis: Features Programming is Theory Building. Understand the domain as a theory. Theories consist of information bearing statements about a domain that are true (or false). No such thing as the ideal theory because: many consistent (incomplete) theories. theories are personal. theories consist of information necessary for stakeholder.
  • 5. Naur’s Thesis: Benefit Claims Core IPR is in theories. Theories are more abstract than programs. Maintain system using theories. Introduce new people using theory not code. Theories are reusable (code fails to be). Theories allow questions to be articulated. Theories capture different views of a system.
  • 7. What do we currently do? Just look at the code. Misunderstandings because: the domain is weakly represented in the modelling language. unable to articulate questions. (Tools for) DSLsare syntax-bound and semantics-free. Meaning is bound up with translations to code. Modularity cannot be applied to understanding: have to state the whole thing – no real views.
  • 8. Naur’s Thesis Applied to DSM What’s the difference between modelling and programming? If programming is the construction of a theory that is then mapped to an implementation (theory) then:Modelling smells like programming to me. What’s the difference between modelling and domain specific modelling? A theory building framework gives us a context in which this can be analyzed.
  • 9. What is a theory? theorem: true or false statements. theory: collections of theorems. axioms: statements that are givens. rules: ways of constructing theorems. mappings: between theories (and theorems) combinations: composing theories (and theorems). initial: an initial theory maps to all the others. terminal: every theory maps to a terminal theory.
  • 10. What is a Domain Specific Theory? Suppose our questioner wants to understand when it follows that an influencing agent has an effect on an influenced agent. Questions might include: do the two agents have to be linked? does it depend on the states of the agents? if the influencer state satisfies the pre, must the influenced state satisfy the post? A theory is built by continued diligent questioning of the domain (expert or empirically).
  • 12. Modelling Theories Traditional natural semantics-style deduction rules have their modelling counterpart. :y :x :z :T :D :Rule :Theory :T T(x,y,z) :a :c :x D T(a,x,c)
  • 15. Concrete Syntax for Model Based Theories Use enhanced object diagrams. Use a textual syntax consisting of class-models and rules.
  • 19. Domain Question Given any collection of agents in any states and given influencing relationships between the agents – are the relationships satisfied or not?
  • 20. Defining the Influencer Theory context influence_language::semantics theory influence { import OCL; import influence_language::syntax::AS; import influence_language::semantics::SD; relation I { influences:Set(Influence); state:Set(AgentState) } rule IR(Seq(evalOCL),Seq(I))<->I { } }
  • 21. Defining an Axiom context influence_language ::semantics::influence::IR clause { -> (I)[influences=Set{};state=S] }
  • 22. Defining a Rule context influence_language::semantics::influence::IR clause { (evalOCL)[ exp=p1; target=a1; env=b1->including((Bind)[name='target';value=a2])] (evalOCL)[ exp=p2; target=a2; env=b2->including((Bind)[name='source';value=a1])] -> (I)[influences=Set{ (Influence)[from=a1;to=a2;pre=p1;post=p2]}; state={(AgentState)[agent=a1;vars=b1], (AgentState)[agent=a2;vars=b2] }->including(S)] }
  • 23. Defining Induction context influence_language ::semantics::influence::IR clause { (I)[influences=P;state=S] (I)[influences=Q;state=S] -> (I)[influences=P->union(Q);state=S] }
  • 24. Implementation Language: Concrete Syntax XModel ::= Fun* // programs Fun ::= Name '(' Args ')' '{' Exp '}' // function definitions Args::= Name (',' Name)* | Empty // argument lists Exp ::= Exp '.' Name // field reference | OCL // OCL expressions | 'case' Name Name '{' Arm* '}' // case analysis | 'let' Bind* 'in' Exp // local bindings | Name '(' Args ')' // function call | Name //var reference Arm ::= String String '->' Exp // string detection Bind ::= Name '=' Exp // local binding
  • 26. Implementation Theory context XL::semantics theory run { import OCL; import XL::syntax::CS; import XL::semantics::SD; relation R { prog:XModel; exp:Exp; val:Value; env:Set(Bind) } relation RS { prog:XModel; exps:List(Exp); vals:List(Value); env:Set(Bind) } }
  • 27. Mapping to An Implementation The domain theory can answer many questions. When mapping to an implementation it is usual to focus on one question. Select: given states for all agents, an operation and an action, can the agent use the action to perform the operation?
  • 30. Implementation Language Theory Mapping Model Influencer Theory Implementation Theory
  • 31. Model the Theory Mapping
  • 32. Combinations of Theory Views Consider a Library that allows readers to register, books to be borrowed and fines to be paid. There are several views: temporal, registration, borrowing, payment. Each view is a separate theory in terms of a different view. What is the complete theory?
  • 33. Complete Theory Register Theory Borrow Theory Repay Theory Time Theory WFF Theory
  • 34. Conclusion Understanding is theory building. Modelling and programming are essentially the same. Modelling aims to be initial. Programming needs to be terminal. Modelling languages should support theories. Theories need to support: translation through mappings. different views through combination. patterns through parameterization.