SlideShare a Scribd company logo
1 of 27
Download to read offline
ESUG 2008 Adrian Kuhn 1
FAMEMeta-Modeling at Runtime
ESUG 2008 Adrian Kuhn 2
How to Model an Eternal Beer Store?
ESUG 2008 Adrian Kuhn 3
An eternal system can be extended at runtime.
ESUG 2008 Adrian Kuhn 4
An eternal application grows with your business.
ESUG 2008 Adrian Kuhn 5
ESUG 2008 Adrian Kuhn 6
instance of
Heineken
name = 'Heineken'
alc_vol = 5
price = 0.60
size = 0.33
ESUG 2008 Adrian Kuhn 7
Beer
properties = {
name : String,
alc_vol : Number,
price : Number,
size : Number }
instance of
Heineken : Beer
name = 'Heineken'
alc_vol = 5
price = 0.60
size = 0.33
inst
ESUG 2008 Adrian Kuhn 8
Beer : Fame-Class
properties = {
name:String, …, … }
instance of
Heineken : Beer
inst
Fame-Class
properties = {
properties:Property[] }
inst
name = 'Heineken'
…
ESUG 2008 Adrian Kuhn 9
Beer : Fame-Class
instance of
Heineken : Beer
FM3.Class : Fame-Class
instinst
inst
ESUG 2008 Adrian Kuhn 10
Metamodel
Model
Meta-Metamodel
conf
conforms to
conf
modeled by
ESUG 2008 Adrian Kuhn 11
ApplicationFame
Application Model
Application Metamodel
FM3 BackendFrontend
MSE
MSE
Architecture of a typical Fame-based system.
ESUG 2008 Adrian Kuhn 12
heineken : HNK.Beer
name = 'Heineken'
alc_vol = 5
in_stock = 1000
price = 0.60
vol = 0.33
joe : HNK.Customer
name = 'Joe Example'
address = 'Levittown'
orders = { anOrder, … }
anOrder : HNK.Order
total = 3.60
anOrder : HNK.Order
amount = 12
customer = joe
date = 2008-08-26 10:20
item = heineken
total = 7.20
ESUG 2008 Adrian Kuhn 13
((HNK.Beer (id: 1)
(name 'Heineken')
(alc_vol 5)
(in_stock 1000)
(price 0.6)
(vol 0.33))
(HNK.Order (id: 2)
(amount 12)
(customer (ref: 4))
(date '2008-08-26 10:20')
(item (ref: 1))
(HNK.Order (id: 3)
(amount 6)
(customer (ref: 4))
(date '2008-08-23 13:45')
(item (ref: 1))
(HNK.Customer (id: 3)
(name = 'Joe Example')
(address = 'Levittown')
(orders (ref: 2)))
MSE File of Model
ESUG 2008 Adrian Kuhn 14
HNK.Beer
name:String
alc_vol:Number
in_stock:Number
price:Number
vol:Number
HNK.Customer
name:String
address:String
orders:Order[]
HNK.Order
amount:Number
customer:Customer
date:String
item:Beer
/total:Number
ESUG 2008 Adrian Kuhn 15
((FM3.Package (id: 1) (name 'HNK')
(classes
(FM3.Class (name 'Beer')
(properties
(FM3.Property (name 'name')
(type (ref: 'String'))
(FM3.Property (name 'alc_vol')
(type (ref: 'Number'))
(FM3.Property (name 'in_stock')
(type (ref: 'Number'))
(FM3.Property (name 'price')
(type (ref: 'Number'))
(FM3.Property (name 'vol')
(type (ref: 'Number'))))
(FM3.Class (id: 2) (name 'Order')
(properties
(FM3.Property (name 'amount')
(type (ref: 'Number'))
(FM3.Property (name 'customer)
(type (ref: 3))
(FM3.Property (name 'date')
(type (ref: 'String'))
(FM3.Property (name 'item')
MSE File of Metamodel
ESUG 2008 Adrian Kuhn 16
FM3.Element FM3.Class
FM3.Package
FM3.Property
name:String
/fullname:String
derived:Boolean
keyed:Boolean
multivalued:Boolean
opposite
superclass
packageextension
type
FM3 Meta-Metamodel
ESUG 2008 Adrian Kuhn 17
FM3 Host-ClassesFM3 Instances
any Instances
FM3 Instances any Host-ClassesFront/Backend
Front/Backend
select
update
update
select pragma processing
refactor
bootstrapping
confconf
inst
inst
conf
Fame- and Smalltalk classes are causally
connected.
ESUG 2008 Adrian Kuhn 18
any InstancesFront/Backend
select
update
pragma processing
conf
inst
Runtime pragma processing makes the system
self-aware of its structure.
any Fame-Classes any Host-Classes
ESUG 2008 Adrian Kuhn 19
any InstancesFront/Backend
select
update
update
pragma processing
refactor
conf
inst
The system adapts to new data structures using
runtime code generation.
FM3 Instances any Host-ClassesFront/Backend
ESUG 2008 Adrian Kuhn 20
any Instances
FM3 Instances any Host-ClassesFront/Backend
Front/Backend
select
update
update
select pragma processing
refactor
bootstrapping
confconf
inst
inst
conf
The top-most layer is self-described.
FM3 Host-ClassesFM3 Instances
ESUG 2008 Adrian Kuhn 21
any Instances
any Host-Classes
"operate"
"update"
instance of"select"
Do objects dream of virtual sheep?
REPL loop
for applications
SOUL =
Select Operate
Update Loop
ESUG 2008 Adrian Kuhn 22
DEMONothing tops a running example.
ESUG 2008 Adrian Kuhn 23
Fame.Repository
Fame.TowerFM3.Package
FM3.Class
FM3.Property
FM3.Element
Fame.MSEPrinter
Fame.MetamodelInferencer
Fame.RepositoryBuilder
Fame.ParseClient
Fame.MetaRepository
Fame.Parser
accepts
accepts
contains
creates
creates
2
1
*
Core classes of the FAME framework.
ESUG 2008 Adrian Kuhn 24
MSE Files allow you to exchange any data.
any Instances
any Host-Classes
Backend
import
instance ofexport
ESUG 2008 Adrian Kuhn 25
any Instances
any Host-Classes
Frontend
update
instance ofdisplay
The FAME API allows you to browse any data.
ESUG 2008 Adrian Kuhn 26
Extend your application at runtime.
ESUG 2008 Adrian Kuhn 27
FAMEMeta-Modeling at Runtime
Available at http://smallwiki.unibe.ch/fame

More Related Content

Viewers also liked (19)

Diesel
DieselDiesel
Diesel
 
Buehnen Gmbh Hb6000 Master D2
Buehnen Gmbh Hb6000 Master D2Buehnen Gmbh Hb6000 Master D2
Buehnen Gmbh Hb6000 Master D2
 
ein Geschenk
ein Geschenkein Geschenk
ein Geschenk
 
Which Best
Which BestWhich Best
Which Best
 
BLONGS Y RESPONSABILIDAD SOCIAL
BLONGS Y RESPONSABILIDAD SOCIALBLONGS Y RESPONSABILIDAD SOCIAL
BLONGS Y RESPONSABILIDAD SOCIAL
 
PERIODISMO Y COMUNICACIÓN INSTITUCIONAL (clase 3)
PERIODISMO Y COMUNICACIÓN INSTITUCIONAL (clase 3)PERIODISMO Y COMUNICACIÓN INSTITUCIONAL (clase 3)
PERIODISMO Y COMUNICACIÓN INSTITUCIONAL (clase 3)
 
Shopleiter Magazin Nr. 8 - Cloud Commerce Special
Shopleiter Magazin Nr. 8 - Cloud Commerce SpecialShopleiter Magazin Nr. 8 - Cloud Commerce Special
Shopleiter Magazin Nr. 8 - Cloud Commerce Special
 
La presencia maternaldelabienaventurada_virgen_maria
La presencia maternaldelabienaventurada_virgen_mariaLa presencia maternaldelabienaventurada_virgen_maria
La presencia maternaldelabienaventurada_virgen_maria
 
Geschichte der Firmung
Geschichte der FirmungGeschichte der Firmung
Geschichte der Firmung
 
Martha Ruiz
Martha RuizMartha Ruiz
Martha Ruiz
 
Claude Olivier
Claude OlivierClaude Olivier
Claude Olivier
 
Adrianescudero
AdrianescuderoAdrianescudero
Adrianescudero
 
Kindergarten Artistry
Kindergarten ArtistryKindergarten Artistry
Kindergarten Artistry
 
Lp409b1
Lp409b1Lp409b1
Lp409b1
 
Virtualización UTPL
Virtualización UTPLVirtualización UTPL
Virtualización UTPL
 
Art
ArtArt
Art
 
Roberto Beltran
Roberto BeltranRoberto Beltran
Roberto Beltran
 
Adrian Escudero
Adrian EscuderoAdrian Escudero
Adrian Escudero
 
Cuando el fotografo era el pintor
Cuando el fotografo era el pintorCuando el fotografo era el pintor
Cuando el fotografo era el pintor
 

More from ESUG

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingESUG
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in PharoESUG
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapESUG
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...ESUG
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsESUG
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6ESUG
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsESUG
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector TuningESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FutureESUG
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the DebuggerESUG
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing ScoreESUG
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptESUG
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsESUG
 

More from ESUG (20)

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
 

Recently uploaded

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
 
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
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
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
 
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
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
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
 
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
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 

Recently uploaded (20)

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
 
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
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
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
 
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
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
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...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
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
 
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
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 

FAME - Meta-Modeling at Runtime

  • 1. ESUG 2008 Adrian Kuhn 1 FAMEMeta-Modeling at Runtime
  • 2. ESUG 2008 Adrian Kuhn 2 How to Model an Eternal Beer Store?
  • 3. ESUG 2008 Adrian Kuhn 3 An eternal system can be extended at runtime.
  • 4. ESUG 2008 Adrian Kuhn 4 An eternal application grows with your business.
  • 6. ESUG 2008 Adrian Kuhn 6 instance of Heineken name = 'Heineken' alc_vol = 5 price = 0.60 size = 0.33
  • 7. ESUG 2008 Adrian Kuhn 7 Beer properties = { name : String, alc_vol : Number, price : Number, size : Number } instance of Heineken : Beer name = 'Heineken' alc_vol = 5 price = 0.60 size = 0.33 inst
  • 8. ESUG 2008 Adrian Kuhn 8 Beer : Fame-Class properties = { name:String, …, … } instance of Heineken : Beer inst Fame-Class properties = { properties:Property[] } inst name = 'Heineken' …
  • 9. ESUG 2008 Adrian Kuhn 9 Beer : Fame-Class instance of Heineken : Beer FM3.Class : Fame-Class instinst inst
  • 10. ESUG 2008 Adrian Kuhn 10 Metamodel Model Meta-Metamodel conf conforms to conf modeled by
  • 11. ESUG 2008 Adrian Kuhn 11 ApplicationFame Application Model Application Metamodel FM3 BackendFrontend MSE MSE Architecture of a typical Fame-based system.
  • 12. ESUG 2008 Adrian Kuhn 12 heineken : HNK.Beer name = 'Heineken' alc_vol = 5 in_stock = 1000 price = 0.60 vol = 0.33 joe : HNK.Customer name = 'Joe Example' address = 'Levittown' orders = { anOrder, … } anOrder : HNK.Order total = 3.60 anOrder : HNK.Order amount = 12 customer = joe date = 2008-08-26 10:20 item = heineken total = 7.20
  • 13. ESUG 2008 Adrian Kuhn 13 ((HNK.Beer (id: 1) (name 'Heineken') (alc_vol 5) (in_stock 1000) (price 0.6) (vol 0.33)) (HNK.Order (id: 2) (amount 12) (customer (ref: 4)) (date '2008-08-26 10:20') (item (ref: 1)) (HNK.Order (id: 3) (amount 6) (customer (ref: 4)) (date '2008-08-23 13:45') (item (ref: 1)) (HNK.Customer (id: 3) (name = 'Joe Example') (address = 'Levittown') (orders (ref: 2))) MSE File of Model
  • 14. ESUG 2008 Adrian Kuhn 14 HNK.Beer name:String alc_vol:Number in_stock:Number price:Number vol:Number HNK.Customer name:String address:String orders:Order[] HNK.Order amount:Number customer:Customer date:String item:Beer /total:Number
  • 15. ESUG 2008 Adrian Kuhn 15 ((FM3.Package (id: 1) (name 'HNK') (classes (FM3.Class (name 'Beer') (properties (FM3.Property (name 'name') (type (ref: 'String')) (FM3.Property (name 'alc_vol') (type (ref: 'Number')) (FM3.Property (name 'in_stock') (type (ref: 'Number')) (FM3.Property (name 'price') (type (ref: 'Number')) (FM3.Property (name 'vol') (type (ref: 'Number')))) (FM3.Class (id: 2) (name 'Order') (properties (FM3.Property (name 'amount') (type (ref: 'Number')) (FM3.Property (name 'customer) (type (ref: 3)) (FM3.Property (name 'date') (type (ref: 'String')) (FM3.Property (name 'item') MSE File of Metamodel
  • 16. ESUG 2008 Adrian Kuhn 16 FM3.Element FM3.Class FM3.Package FM3.Property name:String /fullname:String derived:Boolean keyed:Boolean multivalued:Boolean opposite superclass packageextension type FM3 Meta-Metamodel
  • 17. ESUG 2008 Adrian Kuhn 17 FM3 Host-ClassesFM3 Instances any Instances FM3 Instances any Host-ClassesFront/Backend Front/Backend select update update select pragma processing refactor bootstrapping confconf inst inst conf Fame- and Smalltalk classes are causally connected.
  • 18. ESUG 2008 Adrian Kuhn 18 any InstancesFront/Backend select update pragma processing conf inst Runtime pragma processing makes the system self-aware of its structure. any Fame-Classes any Host-Classes
  • 19. ESUG 2008 Adrian Kuhn 19 any InstancesFront/Backend select update update pragma processing refactor conf inst The system adapts to new data structures using runtime code generation. FM3 Instances any Host-ClassesFront/Backend
  • 20. ESUG 2008 Adrian Kuhn 20 any Instances FM3 Instances any Host-ClassesFront/Backend Front/Backend select update update select pragma processing refactor bootstrapping confconf inst inst conf The top-most layer is self-described. FM3 Host-ClassesFM3 Instances
  • 21. ESUG 2008 Adrian Kuhn 21 any Instances any Host-Classes "operate" "update" instance of"select" Do objects dream of virtual sheep? REPL loop for applications SOUL = Select Operate Update Loop
  • 22. ESUG 2008 Adrian Kuhn 22 DEMONothing tops a running example.
  • 23. ESUG 2008 Adrian Kuhn 23 Fame.Repository Fame.TowerFM3.Package FM3.Class FM3.Property FM3.Element Fame.MSEPrinter Fame.MetamodelInferencer Fame.RepositoryBuilder Fame.ParseClient Fame.MetaRepository Fame.Parser accepts accepts contains creates creates 2 1 * Core classes of the FAME framework.
  • 24. ESUG 2008 Adrian Kuhn 24 MSE Files allow you to exchange any data. any Instances any Host-Classes Backend import instance ofexport
  • 25. ESUG 2008 Adrian Kuhn 25 any Instances any Host-Classes Frontend update instance ofdisplay The FAME API allows you to browse any data.
  • 26. ESUG 2008 Adrian Kuhn 26 Extend your application at runtime.
  • 27. ESUG 2008 Adrian Kuhn 27 FAMEMeta-Modeling at Runtime Available at http://smallwiki.unibe.ch/fame