JRobin - LES PUC-Rio
Download
Report
Transcript JRobin - LES PUC-Rio
Model-Driven Engineering
of Intelligent Agents
Jacques Robin
Ontologies
Reasoning
Components
Agents
Simulations
Outline
Model-driven engineering
Model-driven software components
Model-driven components for intelligent agents
The ORCAS project: automated reasoning components
The IATE project: agent environment product line
Model-Driven Engineering
Abstraction
Scale
Current Standard Practice:
Object-Oriented Development
UML + NL
Requirements
UML
Model
Source
Code
Virtual
Machine
Code
Binary
Code
Executability
Scale
Model-Driven Engineering
Abstraction
Scale
Today’s MDD:
Extreme Modeling
UML/OCL
Requirements
UML/OCL
Specification
PIM
UML/OCL
Realization
PIM
Profiled
UML/OCL
Realization
PSM
Source
Code
Virtual
Machine
Code
Binary
Code
Executability
Scale
Model-Driven Engineering
Abstraction
Scale
Model
Refinement
Patterns
UML/OCL
Requirements
Model
Translation
Patterns
UML/OCL
Specification
PIM
UML/OCL
Realization
PIM
Tomorrow’s MDD:
UML Programming
Profiled
UML/OCL
Realization
PSM
Source
Code
Virtual
Machine
Code
Binary
Code
Executability
Scale
Model-Driven Software Components:
the KobrA method
Comprehensive, prescriptive methodology
Coherently integrates most software reuse concepts
+ Aspect-Oriented Development
+ Built-in Component Contract
Test Generator
Model-Driven Software Components:
the KobrA method
Full Life-Cycle
Components
Intra and interdiagram consistency
and completeness
rules
Recursive
decomposition of
components in subcomponents
Realization models
fully refined, code
generation through
pure translation
Component-Based
Multi-Agent Simulation Engineering
Inference
Engine
Component
Knowledge
Base
Generator
Domain
Knowledge
Base
Environment
Simulator
Component
IATE
Simulation
Independent
Domain
Model
Environment
Characteristics’
Model
Perceptions, Actions
Perceptions, Actions
Agent N Component
Agent 1 Component
Domain
Knowledge
Base
Inference Engine Component
Domain
Independent
Knowledge
Base
Inference
Engine
Component
Inference
Engine
Component
Inference Engine
Component
Domain
Independent
Knowledge
Base
ORCAS
Domain
Knowledge
Base
ORCAS motivation: why automated
reasoning still so rarely used today?
Too costly to develop AR services from scratch for specific
applications:
AR services are large, conceptually very complex software
They require hard to find software engineers with strong AI background
Too costly to integrate available AR software in larger systems:
Rarely based on mainstream IT standards (e.g., exotic Prolog extensions)
Rarely comes with adequate middleware, (e.g., only API to C)
Single software rarely provides all AR services required by application
Too costly to customize or extend available AR software for
specific applications:
Never comes with models or test suite (at best with source code)
Often comes without reasoning explanation GUI
Never integrated with standard CASE tool or IDE
ORCAS: long-term goal
and methodology
Automated Reasoning:
• Adaptive Constraint Handling Rules
Challenging
Testbed
• Transaction Frame Logic
Software Engineering:
• Model-Driven Development
• Component-Based Development
• Aspect-Oriented Development
Usability
Extensibility
• Built-in Contract Testing
KobrA Method:
• Customized for Automated Reasoning
• Upgraded to Latest OMG Standards
Reusable Reasoning Components:
• w/ Full Artifact Suite: UML Requirement, Analysis and Design Models, AspectJ Code, Test Suite
• For Deduction, Abduction, Induction, Belief Revision, Constraint Solving, Optimization
• In Logical, Probabilistic, Decision-Theoretic Settings
• w/ Object-Oriented, First-Order Rewrite Rules Automatically Generated from UML models
ORCAS: 4-layer
model-driven development
Knowledge
Level
KobrA
UML/OCL/QVT
Model
UML/OCL/QVT
to CHORD
Compiler
Formalization
Level
Implementation
Level
CHORD
Base
AspectJ/Java
or Aspect#/C#
Source Code
CHORD to
AspectJ/Java
or Aspect#/C#
Compiler
Deployment
Level
.Jar or DLL
Component
AspectJ Weaver
& Java Compiler
or Aspect# Weaver
& C# Compiler
Applies to both:
Domain-dependent application knowledge base development
Domain-independent inference engine development
CHORD: Motivation
ORCAS’s middle-tier knowledge representation formalism:
Object-Oriented Rule-Based Constraint Programming
Why constraint programming?
Showed to subsume most other reasoning tasks:
Deduction, Abduction [Abdennadher & Schutz], Belief Revision [Wolf],
and Optimization [Dechter]
In Logical [Abdennadher & Schutz], Probabilistic [Angelopoulos]
and Decision-Theoretic [Dechter] settings
Why rule-based?
Rules easier to specify and revise than algorithms for non-programmers domain
experts
Declarative semantics in formal logic allows model checking
Declarativeness allows fast prototyping (i.e., agile development)
Why object-oriented?
Easier compilation from object-oriented UML/OCL upper-tier
Easier compilation to object-oriented Java, C# or C++ lower-tier
Reuse through inheritance
Integrating two versatile formal
knowledge representation languages
CHORD = CHRD Rules + Frame Logic Objects
CHRD
Constraint Handling Rules w/ Disjunction
Subsumes:
•
•
•
•
•
•
•
Prolog, Deductive DB
Production Systems
Term Rewriting Systems
Concurrent Constraint Logic Programs
Truth-Maintenance Systems
Abductive Logic Programs
(Semantic Web) Description Logics
Transaction Frame Logic
Subsumes:
•
•
•
•
•
•
•
•
Prolog, Deductive DB
Tabled Logic Programs
High-Order Logic Programs
Object-Oriented Logic Programs
Transactional, Relational DB
Object-Oriented, Object-Relational DB
Semi-Structured XML DB
Semantic Web RDF DB
Available Implementations: Prolog, Java
Available Implementations:
Logic-Based Formal Semantics
• Prolog, Java, C++
Logic-Based Formal Semantics
CHRD in a nutshell
Knowledge representation language for theorem proving integrating
term rewriting, forward chaining and backtracking
Based on subset of first-order predicate logic
Distinguishes between two classes of predicate symbols:
Locally defined predicates (in subject CHR component)
Externally defined predicates (in server CHR components)
Extends CHR that was created for declarative programming of
constraint solvers
CHRD program: logical conjunction of rewrite rules (clauses)
Two types of rules:
Constraint simplification rules (logical equivalences, rewrite rules)
Constraint propagation rules (logical implications, production rules)
CHRD: simplification rules
head guard | body
l10(…,U,…) … ln0 (…,V,…) e1(…,W,…) em(…,X,…) |
(p11(…,Yi,…) … p1p(…, Yj,…)) … (pk1(…,Yk,…) … pkq(…,Yl,…))
Example:
min(X,Y,Z) int(Z) int(Y) int(Y) X Y | Z = X.
Logical declarative semantics:
…,U,…,V,…,W,…X,… (e1(…,W,…) em(…,X,…))
(l10(…,U, …) … ln0 (…,V, …)
( …,Yi,…,Yj,… p11(…,Yi,…) … p1p(…, Yj,…))
…
…,Yk,… Yj,… pk1(…,Yk,…) … pkq(…,Yl,…))))
Operational semantics:
If external solver component query returns true on guard
then substitute constraints matching head in local constraint store
with constraints in rule body modulo variable substitution
Otherwise try other rules
CHRD: propagation rules
head guard | body
l10(…,U,…) … ln0 (…,V,…) e1(…,W,…) em(…,X,…) |
(p11(…,Yi,…) … p1p(…, Yj,…)) … (pk1(…,Yk,…) … pkq(…,Yl,…))
Example:
min(X,Y,Z) int(Z) int(Y) int(Y) | Z X Z X.
Logical declarative semantics:
…,U,…,V,…,W,…X,… (e1(…,W,…) em(…,X,…))
(l10(…,U, …) … ln0 (…,V, …)
( …,Yi,…,Yj,… p11(…,Yi,…) … p1p(…, Yj,…))
…
…,Yk,… Yj,… pk1(…,Yk,…) … pkq(…,Yl,…))))
Operational semantics:
If external solver component query returns true on guard
then add to local constraint store constraints in rule body
modulo variable substitution needed to match rule head
with constraints already in the store
Otherwise try other rules
Transaction Frame Logic:
object-oriented terms
Extends Prolog with object-oriented terms:
Class definition (hierarchy + signature):
c1::c2[..., ai *=> ti ,..., mj(tj1,...,tjk) *=>> til ,...].
e.g.: person[name => string, children(person) *=>> person].
man::person[sex -> male].
• c1 subclass of c2
• ti type of attribute ai of class c1
• til return type of method mj of c1
• tj1,...,tjk parameter types of method mj of c1
Object creation:
o:c[..., ai -> vi ,..., mj(vj1,...,vjk) -> vil ,...].
e.g.: al:man[name -> “Al”, children(ann) -> dan].
• o object instance of class of c
• vi value of attribute ai of o
• vil return value of method mj of o when
invoked with input parameter values vj1,...,vjk
FLOOM:
Frame Logic
Object-Oriented
Molecules
Transaction Frame Logic: high-order
OO syntax and update predicates
Allows logical variable in any position:
?- person[name -> N, children(P1) *->> P2].
?- Object:Class[Attibute -> john, Method(Parameter) *->> terry].
Allows path expressions, similar to OCL navigation expressions:
?- person.name = N, person.children(P1) = P2.
Extends Prolog w/ new, backtrackable update predicates:
P:person[setAge(A)] :- btdelete{P.age}, btinsert{P[age -> A]}.
ORCAS: component assembly
as rule base composition
Aspect Java Contract Test
Generator Companion
Component for OBNFL
Generic Java
Generic Java
CHRD Base
CHRD Base
Compiler
Verifier
Aspect Java Component for OBNFL:
Object-Oriented
Bayesian Network Full Learning
Object-Oriented
CHORD(BNFL)
Bayesian Network
Rule Bases
Full Learning:
Aspect J CHRD
Structure &
CHORD(BILP)
CHORD(BNPL)
Parameters
Rule Bases
Rule Bases
CHORD(BNI)
Reasoning Explanation GUI
Rule Bases
CHORD(RLEI)
Rule Bases
CHRD(OO(FL))
Rule Base
ORCAS: partnerships
CT-Info CNPq
Partners
Profa. Patrícia Tedesco, CIn-UFPE
Prof. Luis Menezes, UPE
Prof. Jones Albuquerque, UFRPE
Focus
Application case studies to intelligent agent tutoring system
(intersection with IATE), and marine ecology simulation (Simulare
project)
ORCAS: partnerships
CT-Info FINEP
Partners
Profa. Patrícia Machado, Prof. Jorge Figuereido,
Prof. Franklin Ramalho, DSC-UFCG
Prof. Luis Menezes, UPE
Jynx Playware (soccer and business simulation game company)
CESAR
Focus
Generation of built-in contract testing components from functional
component
Automated generation of Transaction Frame Logic programs from UML
and OCL models (as a preliminary step towards generation of CHORD
programs)
Application case studies to simulation games
ORCAS: partnerships
CAPES/DAAD PROBRAL
Partners:
Prof. Silvio Meira, CIn-UFPE
Prof. Luis Menezes, UPE
Prof. Thom Frühwirth and PhD. student Marc Meister, Ulm Universität
Prof. Colin Atkinson and PhD. student Matthias Guthiel, Mannheim Universität
Dr. Armin Wolf, Fraunhofer Gesellschaft Institute FIRST, Berlin
Focus
Design of CHORD (syntax and formal semantics)
Upgrade of KobrA process to latest OMG standards (UML2, OCL2, MOF2)
Extension of KobrA process to specify GUIs
Adaptation and extension of KobrA process for ORCAS components
CASE tool for KobrA with model checking facilities
First adaptive implementation of CHRD engine (compiled to Aspect J)
Application case study on cost-saving surgery scheduling and allocation in large
hospital
ORCAS: current status and next steps
Direct collaborators:
PhD. candidate Jairson Vitorino, CIn-UFPE
Undergraduate research assistant Marcos Aurelio Silva, CIn-UFPE
Prof. Luis Menezes, UPE
Current status:
KobrA model of preliminary, non-adaptive CHRD engine version
Aspect J / Java implementation of the model
Reasoning trace implemented as aspect
First implementation as compiler to Java
Novel, more efficient operational semantics
Next steps:
Improve reasoning trace GUI
Switch from chronological backtracking to conflict-directed
backjumping for disjunctive rule and finite domain labeling search
IATE: Goals
Build an extensible, fully parametric, multi-agent environment that
can serve as reusable kernel for:
Multi-Agent System (MAS) and Artificial Intelligence (AI) tutoring
environments;
MAS and AI controlled experiments environments;
MAS and AI based team ball sport computer games.
The environment:
Simulates a single base domain, a futuristic fusion team ball sport
(rollerslam)
In all its possible variations in terms of: observability, determinism,
dynamicity, physics modeling granularity, agent communication, as well as
the size and diversity of agent action, agent perception, object and
location sets.
Evaluate and extend MDA PIM transformation techniques to
automatically generate product line of such environment
Motivation: AI and MAS teaching
MAS Environment
Internal Agent Architecture
Observable environment
Reflex agent
Deterministic environment
Past environment model agent
Continuous environment
Goal agent
Utility agent
Real-time environment
Future environment model agent
Relational environment
Learning agent
Cooperative environment
Knowledge Representation
Ontological commitment
Epistemological commitment
Variable domains
Reasoning Paradigm
Deduction
Belief revision
Abduction
Inheritance
Constraint solving
Analogy
Induction
Motivation: AI and MAS education
Didactic value of single domain illustrative example problems in
multiple versions at progressive sophistication levels
Most existing problems:
Fixed characteristics relevant to illustrate only a few techniques
Examples:
Partially observable
Discrete
Deterministic
Sequential
Mono-agent
Ontologically poor
Partially observable
Continous
Non-deterministic
Real-Time
Multi-agent
Ontologically poor
IATE Motivation: AI and MAS
experiments and competitions
Fully parametric environment ideal benchmark generator to:
Compare architectures, reasoning paradigms and knowledge
representation languages
Pin-point which environment characteristics requires switching
technique
What are the scalability phase transitions
Current competitions:
Planning: restricted to very narrow technique and problem sets
RoboCup: comparing “Cadillacs vs. Dinosaurs”, everything all at once,
no general scientific insight
IATE current status and next steps
Direct collaborators:
PhD. candidate Fábio Moura, CIn-UFPE
New undergraduate research assistant
Current status:
Preliminary versions of:
MAS environment MOF metamodel and UML Profile
Simplest rollerslam simulation UML model (instance of metamodel)
Next steps:
More complex rollerslam simulation UML models
Environment characteristics’ UML models
Simulation independent rollerslam UML model
Transformation rules to generate:
Simplest and more complex rollerslam simulation models
from simulation independent rollerslam models
and environment characteristics’ model
Repeat iteration for soccer simulations
MAS Environment Meta-model and UML Profile