Philosophers have been talking about metaphysics since Aristotle. Logicians have used metalanguages for 80 years. And, in the last 50 years, computer scientists have produced metaobjects, metaclasses and metamodels. “Going meta” is now even part of the popular culture. What is this all about?
It is about the incredibly powerful human ability to reflect on what we are doing. Bringing this capability to our modeling languages, we can create languages able to express their own definitions. But, with real semantic formalization, we also open up the possibility of creating tools that can reflect on the very models they are being used to create. What might this mean for the next generation of modeling languages and tools?
This presentations goes meta, to reflect on reflection and try to figure it out.
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
The Very Model of a Modern Metamodeler
1. The Very Model of a Modern Metamodeler
MODELSWARD 2019, Prague, Czech Republic
22 February 2019
Ed Seidewitz
Chief Technology Officer
Model Driven Solutions
3. Page 3
Metaphysics
22 February 2018
Wrote a series of books collectively called Physics
(Φυσικὴ, “On nature”).
Followed by unnamed books later collectively called
Metaphysics (μετά Φυσικὴ, “After Physics”).
Metaphysics is a reflection on the “why of things”.
Nature
Reflections on nature
(“2nd philosophy”)
Reflections on
reflections on nature
(“1st philosophy”)
Aristotle 4th century BC
“Meta”
4. Page 4
Metalanguage
22 February 2018
David Hilbert 1862 – 1943
In 1920, introduced metamathematics, a project to
use mathematical methods to study mathematics.
A metalanguage was used to discuss the language
of mathematics.
Mathematical logicians now commonly use
metalanguage to mean the language used to define
a formal logic language.
World
Mathematics
(language)
Metamathematics
(metalanguage)
5. Page 5
Metacircularity (1)
22 February 2018
Kurt Gödel 1906 – 1978
In 1931, published two incompleteness theorems.
Used Gödel numbering to reduce number theory
proofs to arithmetic operations.
Proved the existence of a theorem stating This
theorem cannot be proved, which, if false, is
inconsistent, and, if true, cannot be proved in
number theory!
World
Mathematics
(language)
Metamathematics
(metalanguage)
6. Page 6
Metacircularity (2)
22 February 2018
https://www.flickr.com/photos/null0/272015955/ (cropped)
CC BY-SA 2.0
John McCarthy 1927 – 2011
In 1960, published Recursive Functions of Symbolic
Expressions and Their Computation by Machine, on
the design of Lisp, a “list processing” language.
Encoding Lisp meta-expressions as symbolic
expressions (lists), Lisp can be implemented in itself
metacircularly.
Lisp programmers actually use S-expressions.
Lists
Lisp program
(S-expressions)
Lisp definition
(M-expressions)
Machine code
Steve Russell 1937 – present
Implemented Lisp eval on the IBM 704.
https://commons.wikimedia.org/wiki/File:Len_Shustek,_CHM_2011.jpg (cropped)
CC BY-SA 2.0
7. Page 7
Metaclass
22 February 2018
Smalltalk 1980
Developed in the 1970s at Xerox PARC by Alan
Kay, Dan Ingalls, Adele Goldberg and others.
Object-oriented programming language in which
“everything is an object.”
The first publicly released version, Smalltalk-80,
introduced metaclasses.
Objects Class Metaclass
instance of instance of
Bytecode
8. Page 8
Metaobject
22 February 2018
Metaobject Protocol 1991
A metaobject protocol (MOP) gives “users the ability
to incrementally modify [a programming] language’s
behavior an implementation.”
This is done by allowing extensions to the
metaobjects that represent language elements.
The Art of the Metaobject Protocol, by Kiczales, des
Rivières and Bobrow, describes the MOP for the
Common Lisp Object System (CLOS).
Objects Class Metaclass
instance of instance of
Metaobject extension Metaclass extension
9. Page 9
Metamodel
22 February 2018
Meta Object Facility (MOF) 1999 – 2016
MOF is “the basis for metamodel [abstract syntax]
definition in [Object Management Group’s] family of
[modeling] languages”.
Since MOF 2.0, “based on a simplification of [the]
class modeling capabilities” of UML.
Date: November 2016
OMG Meta Object Facility (MOF) Core Specification
Version 2.5.1
OMG Document Number: formal/2016-11-01
Standard document URL: http://www.omg.org/spec/MOF/2.5.1
Associated Normative Machine-Readable Files:
http://www.omg.org/spec/MOF/20131001/MOF.xmi
Associated Non-normative Machine-Readable Files:
http://www.omg.org/spec/MOF/20131001/CMOFConstraints.ocl
http://www.omg.org/spec/MOF/20131001/EMOFConstraints.ocl
“Real world”
system
Model
(in UML)
Metamodel
(for UML)
“instance of” “instance of”
M0 M1 M2 M3
Four metalayer architecture
(deemphasized in MOF 2.x)
Meta-metamodel
(for MOF)
“instance of”
10. Page 10
Metasemantic Protocol
22 February 2018
ad/2017-12-02 RFP Template: ab/15-06-01
OMG RFP 9 December 2017 1
Object Management Group
109 Highland Avenue
Needham, MA 02494
USA
Telephone: +1-781-444-0404
Facsimile: +1-781-444-0320
rfp@omg.org
Systems Modeling Language (SysML®) v2
Request For Proposal (RFP)
OMG Document: ad/2017-12-02
Letters of Intent due: 24 September, 2018
Submissions due: 4 November, 2019
Systems Modeling Language (SysML) v2 2017 – ?
Since 2006, SysML has been the OMG-standard
UML profile for systems engineering.
In 2017, OMG issue a Request for Proposals (RFP)
for SysML version 2.
To meet user needs, SysML v2 requires a
syntactically and semantically user-extensible
metamodel.
“Real world”
system
Model
(in SysML)
Metamodel
(for SysML)
“instance of” “instance of”
Semantic extension Semantic model library
Builds on Kernel Modeling Language (KerML) work by Bock, Cole, Galey and others.
11. Page 11
System Model
22 February 2018
2435.0
A block is a class whose
instances are objects.
A value type is a class
whose instances are values.
An object has identity
and has properties that
can change over time.
A value does not have identity
separate from its value and is
immutable over time.
Both classes and
features have instances.
12. Page 12
2435.0
Semantic Model Library
22 February 2018
Library model
System model
System
“Block” and “value type” are just
syntactic markers for classes
that descend from the library
classes Object and Value.
Features of classes also
specialize (“subset”) general
library features.
13. Page 13
Quantities and Units Domain Model Library
22 February 2018
Base
Quantities
and Units
The base library model can be
extended with library models for
specific subject domains.
An individual is a model
of a class constrained to
a single instance.
Generic functions
on numeric values
can also operate on
quantity values.
14. Page 14
Quantities Units Usage
22 February 2018
Library model
System model
System 2435.0
The domain library adds
modeling capabilities to
the base language.
15. Page 15
Gone “Meta”!
General-purpose modeling languages…
…with rigourous semantics
…allowing for domain-specific specialization
…through semantic model libraries and
metasemantic protocols
22 February 2018
We need to
activate our
metacomic
protocol!