SlideShare une entreprise Scribd logo
1  sur  15
Télécharger pour lire hors ligne
Background slides for
invited challenge demo at Rule-ML 2017
A software agent controlling 2 robot arms in
co-operating concurrent tasks
Robotic agent programming in QuLog and TeleoR
Keith Clark
Imperial College & University of Queensland
Joint work with
Peter Robinson
University of Queensland
1
QuLog - LP+FP+AR Language
•  Flexibly typed, multi-threaded, higher order
•  Relation and function defining rules
•  Function calls and set expression arguments in relation calls
•  Function rule guards can query relations
•  Relation rules more declarative than Prolog, closer to predicate
logic
•  Relations are typed and moded
•  Dynamic relations defined only by facts
•  Used for the agent’s Belief Store
•  Top layer of action rules
•  Update dynamic relations, fork threads, do I/O, communicate with
other Qulog, C, Python or Java processes
•  Inter-process comms uses our Pedro pub/sub and addressed
message router
•  Threads execute actions calling funs and rels as needed
•  Rel and fun rules cannot call actions
2
TeleoR
•  Development of Nilsson’s T-R robotic agent language of
guard ~> action
rules sequenced in parameterized procedures.
•  guard is a QuLog deductive query to the BS
•  action is a tuple of robotic actions executed in parallel or
a T-R procedure call, maybe a recursive call
•  TeleoR has forms of rules and actions not in T-R
–  Extra rules for more fine grained behaviour control
–  Can combine robotic action with QuLog action sequence:
action ++ qact1 ;...; qact1
–  This allows communication and updates of BS as parallel non-robotic actions
•  Compile time guarantee:
–  all rule actions are correctly typed and fully instantiated when a rule is fired
•  The concept of task atomic procedures:
–  Used for multi-tasking sharing one or more robotic resources
–  No interference, no starvation, deadlock free
–  Compiler generates code that uses BS for co-ordination 3
Deductive Belief Store
Dynamic facts
Relation and function rules
?
Percepts
Handler
Message
Handler
ag@host
Percept fact
Interpretations of
Sensor data
Mid-level
Action control
messages
Incoming Messages
and replies
Control
Thread
?
Atomic re-evaluation
of rule guards after
each atomic update
Atomic
Updates
Multi-threaded Agent Architecture
Only outgoing Messages
4
pedro Other Agents
Pub/Sub and Addressed Message Router
TeleoR +
QuLog
QuLog
One arm block tower building
5
Task Ontology
6
def block::= 1..9
durative pickup(block), put_on_block(block), put_on_table()
percept on(block,block), on_table(block), holding(block)
rel sub_tower(list(block)), tower(list(block))
sub_tower([B]) <= on_table(B)
sub_tower([B1,B2,..Blocks]) <=
on(B1,B2) &
sub_tower([B2,..Blocks])
tower([B,..Blocks]) <=
not on(_,B) &
sub_tower([B,..Blocks])
Nilsson’s universal conditional top-
level plan for block tower building
7
tel makeTower(list(block))
makeTower(Blocks){
tower(Blocks) ~> () % Goal is achieved
sub_tower(Blocks) & Blocks=[B,..] ~> make_clear(B)
Blocks=[B] ~> move_to_table(B)
Blocks=[B1,B2,..Bs] & tower([B2,..Bs]) ~> move_to_block(B1,B2)
Blocks=[B,..Bs] ~> makeTower(Bs)
}
Action achieves
Mutually recursive procedures
8
tel make_clear(block)
make_clear(Block){
not on(_,Block) ~> () % Goal is achieved
on(OnBlock,Block) ~> move_to_table(OnBlock)
}
tel move_to_table(block)
move_to_table(OnBlock){
on_table(OnBlock) ~> () % Goal is achieved
holding(OnBlock) ~> put_on_table()
not on(_, OnBlock) & not holding(_) ~> pickup(OnBlock)
not holding(_) ~> make_clear(OnBlock)
holding(_) ~> put_on_table()
}
Interleaving the building of several
towers
9
Just need to add:
task_start makeTower
task_atomic move_to_table, move_to_block
Baxter concurrent tower building
10
TR
procedures
Sensor
data
Control
actions
for
different
robotic
resources
BeliefStore
Dynamic
Facts
Percepts
Handler
TR
Evaluatio
n ThreadsAll
incoming
messages
Message
Handler Task1
Using
R1,R2
Task2
Using
R3
Outgoing
messages
Multi-tasking architecture
Task3
Waiting for
R1,R3
Task4
Waiting for
R1,R5Fixed
Facts &
Rules
?
Elements of the two arm tower
builder program
12
def table ::= table1 | shared | table2
def block ::= ...
def arm ::= arm1 | arm2
def resource::= arm || table % resource a reserved type name
durative pickup(arm, block, table), put_on_block(arm, block, table),
put_on_table(arm, table)
tel makeTower(arm, list(block), table)
makeTower(Arm,Blks,Tbl){ % Tbl is where tower must be built,
tower(Blks, Tbl) ~> {}
sub_tower(Blks, Tbl) & Blocks=[B,..] ~>
makeClear(Arm, B, Tbl)
Blks=[B,.. Bs] & tower(Bs, Tbl) ~>
moveAcrossToBlock(Arm, B, firstOf(Bs), Tbl)
Blks=[B] ~> moveAcrossToTable(Arm, B, Tbl)
Blks=[B,.. Bs] ~> makeTower(Arm, Bs, Tbl)
}
Entire control program 40 TeleoR rules clustered into 6 procedures.
Auxiliary procedures
13
tel moveAcrossToTable(arm, block, table)
% Will fetch a block from wherever it is and put it onto the table
% May need two calls to proc below using different arms to first
% move the block to shared then to destination table
task_atomic oneArmMoveToTable(arm, block, table, table)
% Has 3 resource args. an arm and two tables which might be the same
oneArmMoveToTable(Arm, Blk, FromTab, ToTab){
on(Blk, ToTab) ~> ()
clear(Blk) ~> clearOneArmMoveToTable(Arm, Blk, FromTab, ToTab)
not holding(Arm,_) ~> makeClear(Arm, Blk, FromTab)
holding(Arm,_) ~> put_on_table(Arm, FromTab)
}
TeleoR semantics and
implementation
14
• Formal State Transition Semantics
• Optimized Reference Implementation
• Runtime system that implements state transition
semantics
• Compile time analysis ensures rule guards are not
re-evaluated on BS update if no relevant change made
• Currently compiled to multi-threaded Qu-Prolog
• Will soon be compiled to specialized Abstract Machine Code
similar to but simpler than Warren’s Prolog AMC
Sources and software
15
Clark & Robinson, Robotic Agent Programming in TeleoR, ICRA 2015, IEEE
Clark & Robinson, Multi-tasking Robotic Agent Programming in TeleoR,
Research Report, on www.doc.ic.ac.uk/~klc
Clark et al, A Framework for Integrating Symbolic and Sub-symbolic
Representations, IJCAI 2016, AAAI Press
Programming Communicating Multi-tasking Robotic Agents:
A Teleo-Reactive Rule Based Approach, Springer, Early 2018
first 5 chapters at teleoreactiveprograms.net
including a formal operational semantics of Nilsson’s TR lang.
Clark & Robinson, Engineering Agent Applications in QuLog, Springer, 2017/8,
TeleoR and QuLog Software for Unix, Linux and OS X at
http://staff.itee.uq.edu.au/pjr/HomePages/QulogHome.html
Collaboration and users welcomed

Contenu connexe

Tendances

PYTHON -Chapter 2 - Functions, Exception, Modules and Files -MAULIK BOR...
PYTHON -Chapter 2 - Functions,   Exception, Modules  and    Files -MAULIK BOR...PYTHON -Chapter 2 - Functions,   Exception, Modules  and    Files -MAULIK BOR...
PYTHON -Chapter 2 - Functions, Exception, Modules and Files -MAULIK BOR...Maulik Borsaniya
 
Intro to Functions Python
Intro to Functions PythonIntro to Functions Python
Intro to Functions Pythonprimeteacher32
 
Codefreeze eng
Codefreeze engCodefreeze eng
Codefreeze engDevexperts
 
CNIT 127: Ch 2: Stack overflows on Linux
CNIT 127: Ch 2: Stack overflows on LinuxCNIT 127: Ch 2: Stack overflows on Linux
CNIT 127: Ch 2: Stack overflows on LinuxSam Bowne
 
Distributed System by Pratik Tambekar
Distributed System by Pratik TambekarDistributed System by Pratik Tambekar
Distributed System by Pratik TambekarPratik Tambekar
 
Making fitting in RooFit faster
Making fitting in RooFit fasterMaking fitting in RooFit faster
Making fitting in RooFit fasterPatrick Bos
 
Implementation of 'go-like' language constructions in scala [english version]
Implementation of 'go-like' language constructions in scala [english version] Implementation of 'go-like' language constructions in scala [english version]
Implementation of 'go-like' language constructions in scala [english version] Ruslan Shevchenko
 
4th European Lisp Symposium: Jobim: an Actors Library for the Clojure Program...
4th European Lisp Symposium: Jobim: an Actors Library for the Clojure Program...4th European Lisp Symposium: Jobim: an Actors Library for the Clojure Program...
4th European Lisp Symposium: Jobim: an Actors Library for the Clojure Program...Antonio Garrote Hernández
 
Towards Chainer v1.5
Towards Chainer v1.5Towards Chainer v1.5
Towards Chainer v1.5Seiya Tokui
 
BWB Meetup: Storm - distributed realtime computation system
BWB Meetup: Storm - distributed realtime computation systemBWB Meetup: Storm - distributed realtime computation system
BWB Meetup: Storm - distributed realtime computation systemAndrii Gakhov
 
The theory of concurrent programming for a seasoned programmer
The theory of concurrent programming for a seasoned programmerThe theory of concurrent programming for a seasoned programmer
The theory of concurrent programming for a seasoned programmerRoman Elizarov
 
Activate 2019: Tweaking the Base Score: Lucene/Solr Similarities Explained
Activate 2019: Tweaking the Base Score: Lucene/Solr Similarities ExplainedActivate 2019: Tweaking the Base Score: Lucene/Solr Similarities Explained
Activate 2019: Tweaking the Base Score: Lucene/Solr Similarities ExplainedRadu Gheorghe
 
Tweaking the Base Score: Lucene/Solr Similarities Explained
Tweaking the Base Score: Lucene/Solr Similarities ExplainedTweaking the Base Score: Lucene/Solr Similarities Explained
Tweaking the Base Score: Lucene/Solr Similarities ExplainedSematext Group, Inc.
 
CNIT 127 Ch 5: Introduction to heap overflows
CNIT 127 Ch 5: Introduction to heap overflowsCNIT 127 Ch 5: Introduction to heap overflows
CNIT 127 Ch 5: Introduction to heap overflowsSam Bowne
 
parallel programming in tthe PVM-advanced system architecture
parallel programming in tthe PVM-advanced system architectureparallel programming in tthe PVM-advanced system architecture
parallel programming in tthe PVM-advanced system architectureRoslinJoseph
 

Tendances (20)

PYTHON -Chapter 2 - Functions, Exception, Modules and Files -MAULIK BOR...
PYTHON -Chapter 2 - Functions,   Exception, Modules  and    Files -MAULIK BOR...PYTHON -Chapter 2 - Functions,   Exception, Modules  and    Files -MAULIK BOR...
PYTHON -Chapter 2 - Functions, Exception, Modules and Files -MAULIK BOR...
 
Intro to Functions Python
Intro to Functions PythonIntro to Functions Python
Intro to Functions Python
 
Python Loop
Python LoopPython Loop
Python Loop
 
Return Oriented Programming
Return Oriented ProgrammingReturn Oriented Programming
Return Oriented Programming
 
Codefreeze eng
Codefreeze engCodefreeze eng
Codefreeze eng
 
(Ds+alg) 3
(Ds+alg)   3(Ds+alg)   3
(Ds+alg) 3
 
CNIT 127: Ch 2: Stack overflows on Linux
CNIT 127: Ch 2: Stack overflows on LinuxCNIT 127: Ch 2: Stack overflows on Linux
CNIT 127: Ch 2: Stack overflows on Linux
 
Distributed System by Pratik Tambekar
Distributed System by Pratik TambekarDistributed System by Pratik Tambekar
Distributed System by Pratik Tambekar
 
Making fitting in RooFit faster
Making fitting in RooFit fasterMaking fitting in RooFit faster
Making fitting in RooFit faster
 
Implementation of 'go-like' language constructions in scala [english version]
Implementation of 'go-like' language constructions in scala [english version] Implementation of 'go-like' language constructions in scala [english version]
Implementation of 'go-like' language constructions in scala [english version]
 
Fork Join (BeJUG 2012)
Fork Join (BeJUG 2012)Fork Join (BeJUG 2012)
Fork Join (BeJUG 2012)
 
4th European Lisp Symposium: Jobim: an Actors Library for the Clojure Program...
4th European Lisp Symposium: Jobim: an Actors Library for the Clojure Program...4th European Lisp Symposium: Jobim: an Actors Library for the Clojure Program...
4th European Lisp Symposium: Jobim: an Actors Library for the Clojure Program...
 
Towards Chainer v1.5
Towards Chainer v1.5Towards Chainer v1.5
Towards Chainer v1.5
 
BWB Meetup: Storm - distributed realtime computation system
BWB Meetup: Storm - distributed realtime computation systemBWB Meetup: Storm - distributed realtime computation system
BWB Meetup: Storm - distributed realtime computation system
 
The theory of concurrent programming for a seasoned programmer
The theory of concurrent programming for a seasoned programmerThe theory of concurrent programming for a seasoned programmer
The theory of concurrent programming for a seasoned programmer
 
Fork/Join for Fun and Profit!
Fork/Join for Fun and Profit!Fork/Join for Fun and Profit!
Fork/Join for Fun and Profit!
 
Activate 2019: Tweaking the Base Score: Lucene/Solr Similarities Explained
Activate 2019: Tweaking the Base Score: Lucene/Solr Similarities ExplainedActivate 2019: Tweaking the Base Score: Lucene/Solr Similarities Explained
Activate 2019: Tweaking the Base Score: Lucene/Solr Similarities Explained
 
Tweaking the Base Score: Lucene/Solr Similarities Explained
Tweaking the Base Score: Lucene/Solr Similarities ExplainedTweaking the Base Score: Lucene/Solr Similarities Explained
Tweaking the Base Score: Lucene/Solr Similarities Explained
 
CNIT 127 Ch 5: Introduction to heap overflows
CNIT 127 Ch 5: Introduction to heap overflowsCNIT 127 Ch 5: Introduction to heap overflows
CNIT 127 Ch 5: Introduction to heap overflows
 
parallel programming in tthe PVM-advanced system architecture
parallel programming in tthe PVM-advanced system architectureparallel programming in tthe PVM-advanced system architecture
parallel programming in tthe PVM-advanced system architecture
 

Similaire à A software agent controlling 2 robot arms in co-operating concurrent tasks

Operating system NachOS
Operating system NachOSOperating system NachOS
Operating system NachOSPrasannPatel4
 
Software Architectures, Week 2 - Decomposition techniques
Software Architectures, Week 2 - Decomposition techniquesSoftware Architectures, Week 2 - Decomposition techniques
Software Architectures, Week 2 - Decomposition techniquesAngelos Kapsimanis
 
Neural Networks with Google TensorFlow
Neural Networks with Google TensorFlowNeural Networks with Google TensorFlow
Neural Networks with Google TensorFlowDarshan Patel
 
Introduction to OpenSees by Frank McKenna
Introduction to OpenSees by Frank McKennaIntroduction to OpenSees by Frank McKenna
Introduction to OpenSees by Frank McKennaopenseesdays
 
CS 542 -- Concurrency Control, Distributed Commit
CS 542 -- Concurrency Control, Distributed CommitCS 542 -- Concurrency Control, Distributed Commit
CS 542 -- Concurrency Control, Distributed CommitJ Singh
 
Verilog_Cheat_sheet_1672542963.pdf
Verilog_Cheat_sheet_1672542963.pdfVerilog_Cheat_sheet_1672542963.pdf
Verilog_Cheat_sheet_1672542963.pdfsagar414433
 
Verilog_Cheat_sheet_1672542963.pdf
Verilog_Cheat_sheet_1672542963.pdfVerilog_Cheat_sheet_1672542963.pdf
Verilog_Cheat_sheet_1672542963.pdfsagar414433
 
dokumen.tips_verilog-basic-ppt.pdf
dokumen.tips_verilog-basic-ppt.pdfdokumen.tips_verilog-basic-ppt.pdf
dokumen.tips_verilog-basic-ppt.pdfVelmathi Saravanan
 
Real-time Inverted Search in the Cloud Using Lucene and Storm
Real-time Inverted Search in the Cloud Using Lucene and StormReal-time Inverted Search in the Cloud Using Lucene and Storm
Real-time Inverted Search in the Cloud Using Lucene and Stormlucenerevolution
 
.NET Multithreading/Multitasking
.NET Multithreading/Multitasking.NET Multithreading/Multitasking
.NET Multithreading/MultitaskingSasha Kravchuk
 
RTOS Material hfffffffffffffffffffffffffffffffffffff
RTOS Material hfffffffffffffffffffffffffffffffffffffRTOS Material hfffffffffffffffffffffffffffffffffffff
RTOS Material hfffffffffffffffffffffffffffffffffffffadugnanegero
 

Similaire à A software agent controlling 2 robot arms in co-operating concurrent tasks (20)

Slides chapters 28-32
Slides chapters 28-32Slides chapters 28-32
Slides chapters 28-32
 
Operating system NachOS
Operating system NachOSOperating system NachOS
Operating system NachOS
 
Unit 1
Unit  1Unit  1
Unit 1
 
Advance python
Advance pythonAdvance python
Advance python
 
Software Architectures, Week 2 - Decomposition techniques
Software Architectures, Week 2 - Decomposition techniquesSoftware Architectures, Week 2 - Decomposition techniques
Software Architectures, Week 2 - Decomposition techniques
 
Neural Networks with Google TensorFlow
Neural Networks with Google TensorFlowNeural Networks with Google TensorFlow
Neural Networks with Google TensorFlow
 
Biopython: Overview, State of the Art and Outlook
Biopython: Overview, State of the Art and OutlookBiopython: Overview, State of the Art and Outlook
Biopython: Overview, State of the Art and Outlook
 
embedded C.pptx
embedded C.pptxembedded C.pptx
embedded C.pptx
 
Critical section operating system
Critical section  operating systemCritical section  operating system
Critical section operating system
 
Introduction to OpenSees by Frank McKenna
Introduction to OpenSees by Frank McKennaIntroduction to OpenSees by Frank McKenna
Introduction to OpenSees by Frank McKenna
 
Clojure 7-Languages
Clojure 7-LanguagesClojure 7-Languages
Clojure 7-Languages
 
CS 542 -- Concurrency Control, Distributed Commit
CS 542 -- Concurrency Control, Distributed CommitCS 542 -- Concurrency Control, Distributed Commit
CS 542 -- Concurrency Control, Distributed Commit
 
Verilog Cheat sheet-2 (1).pdf
Verilog Cheat sheet-2 (1).pdfVerilog Cheat sheet-2 (1).pdf
Verilog Cheat sheet-2 (1).pdf
 
Verilog_Cheat_sheet_1672542963.pdf
Verilog_Cheat_sheet_1672542963.pdfVerilog_Cheat_sheet_1672542963.pdf
Verilog_Cheat_sheet_1672542963.pdf
 
Verilog_Cheat_sheet_1672542963.pdf
Verilog_Cheat_sheet_1672542963.pdfVerilog_Cheat_sheet_1672542963.pdf
Verilog_Cheat_sheet_1672542963.pdf
 
dokumen.tips_verilog-basic-ppt.pdf
dokumen.tips_verilog-basic-ppt.pdfdokumen.tips_verilog-basic-ppt.pdf
dokumen.tips_verilog-basic-ppt.pdf
 
Real-time Inverted Search in the Cloud Using Lucene and Storm
Real-time Inverted Search in the Cloud Using Lucene and StormReal-time Inverted Search in the Cloud Using Lucene and Storm
Real-time Inverted Search in the Cloud Using Lucene and Storm
 
Apache Storm Tutorial
Apache Storm TutorialApache Storm Tutorial
Apache Storm Tutorial
 
.NET Multithreading/Multitasking
.NET Multithreading/Multitasking.NET Multithreading/Multitasking
.NET Multithreading/Multitasking
 
RTOS Material hfffffffffffffffffffffffffffffffffffff
RTOS Material hfffffffffffffffffffffffffffffffffffffRTOS Material hfffffffffffffffffffffffffffffffffffff
RTOS Material hfffffffffffffffffffffffffffffffffffff
 

Plus de RuleML

Aggregates in Recursion: Issues and Solutions
Aggregates in Recursion: Issues and SolutionsAggregates in Recursion: Issues and Solutions
Aggregates in Recursion: Issues and SolutionsRuleML
 
Port Clearance Rules in PSOA RuleML: From Controlled-English Regulation to Ob...
Port Clearance Rules in PSOA RuleML: From Controlled-English Regulation to Ob...Port Clearance Rules in PSOA RuleML: From Controlled-English Regulation to Ob...
Port Clearance Rules in PSOA RuleML: From Controlled-English Regulation to Ob...RuleML
 
RuleML 2015: When Processes Rule Events
RuleML 2015: When Processes Rule EventsRuleML 2015: When Processes Rule Events
RuleML 2015: When Processes Rule EventsRuleML
 
RuleML 2015: Ontology Reasoning using Rules in an eHealth Context
RuleML 2015: Ontology Reasoning using Rules in an eHealth ContextRuleML 2015: Ontology Reasoning using Rules in an eHealth Context
RuleML 2015: Ontology Reasoning using Rules in an eHealth ContextRuleML
 
RuleML 2015: Semantics of Notation3 Logic: A Solution for Implicit Quantifica...
RuleML 2015: Semantics of Notation3 Logic: A Solution for Implicit Quantifica...RuleML 2015: Semantics of Notation3 Logic: A Solution for Implicit Quantifica...
RuleML 2015: Semantics of Notation3 Logic: A Solution for Implicit Quantifica...RuleML
 
Challenge@RuleML2015 Developing Situation-Aware Applications for Disaster Man...
Challenge@RuleML2015 Developing Situation-Aware Applications for Disaster Man...Challenge@RuleML2015 Developing Situation-Aware Applications for Disaster Man...
Challenge@RuleML2015 Developing Situation-Aware Applications for Disaster Man...RuleML
 
Rule Generalization Strategies in Incremental Learning of Disjunctive Concepts
Rule Generalization Strategies in Incremental Learning of Disjunctive ConceptsRule Generalization Strategies in Incremental Learning of Disjunctive Concepts
Rule Generalization Strategies in Incremental Learning of Disjunctive ConceptsRuleML
 
RuleML 2015 Constraint Handling Rules - What Else?
RuleML 2015 Constraint Handling Rules - What Else?RuleML 2015 Constraint Handling Rules - What Else?
RuleML 2015 Constraint Handling Rules - What Else?RuleML
 
RuleML2015 The Herbrand Manifesto - Thinking Inside the Box
RuleML2015 The Herbrand Manifesto - Thinking Inside the Box RuleML2015 The Herbrand Manifesto - Thinking Inside the Box
RuleML2015 The Herbrand Manifesto - Thinking Inside the Box RuleML
 
RuleML2015 PSOA RuleML: Integrated Object-Relational Data and Rules
RuleML2015 PSOA RuleML: Integrated Object-Relational Data and RulesRuleML2015 PSOA RuleML: Integrated Object-Relational Data and Rules
RuleML2015 PSOA RuleML: Integrated Object-Relational Data and RulesRuleML
 
Industry@RuleML2015: Norwegian State of Estate A Reporting Service for the St...
Industry@RuleML2015: Norwegian State of Estate A Reporting Service for the St...Industry@RuleML2015: Norwegian State of Estate A Reporting Service for the St...
Industry@RuleML2015: Norwegian State of Estate A Reporting Service for the St...RuleML
 
A Service for Improving the Assignments of Common Agriculture Policy Funds to...
A Service for Improving the Assignments of Common Agriculture Policy Funds to...A Service for Improving the Assignments of Common Agriculture Policy Funds to...
A Service for Improving the Assignments of Common Agriculture Policy Funds to...RuleML
 
Datalog+-Track Introduction & Reasoning on UML Class Diagrams via Datalog+-
Datalog+-Track Introduction & Reasoning on UML Class Diagrams via Datalog+-Datalog+-Track Introduction & Reasoning on UML Class Diagrams via Datalog+-
Datalog+-Track Introduction & Reasoning on UML Class Diagrams via Datalog+-RuleML
 
RuleML2015: Binary Frontier-guarded ASP with Function Symbols
RuleML2015: Binary Frontier-guarded ASP with Function SymbolsRuleML2015: Binary Frontier-guarded ASP with Function Symbols
RuleML2015: Binary Frontier-guarded ASP with Function SymbolsRuleML
 
RuleML2015: API4KP Metamodel: A Meta-API for Heterogeneous Knowledge Platforms
RuleML2015: API4KP Metamodel: A Meta-API for Heterogeneous Knowledge PlatformsRuleML2015: API4KP Metamodel: A Meta-API for Heterogeneous Knowledge Platforms
RuleML2015: API4KP Metamodel: A Meta-API for Heterogeneous Knowledge PlatformsRuleML
 
RuleML2015: Rule-Based Exploration of Structured Data in the Browser
RuleML2015: Rule-Based Exploration of Structured Data in the BrowserRuleML2015: Rule-Based Exploration of Structured Data in the Browser
RuleML2015: Rule-Based Exploration of Structured Data in the BrowserRuleML
 
RuleML2015: Ontology-Based Multidimensional Contexts with Applications to Qua...
RuleML2015: Ontology-Based Multidimensional Contexts with Applications to Qua...RuleML2015: Ontology-Based Multidimensional Contexts with Applications to Qua...
RuleML2015: Ontology-Based Multidimensional Contexts with Applications to Qua...RuleML
 
RuleML2015: Compact representation of conditional probability for rule-based...
RuleML2015:  Compact representation of conditional probability for rule-based...RuleML2015:  Compact representation of conditional probability for rule-based...
RuleML2015: Compact representation of conditional probability for rule-based...RuleML
 
RuleML2015: Learning Characteristic Rules in Geographic Information Systems
RuleML2015: Learning Characteristic Rules in Geographic Information SystemsRuleML2015: Learning Characteristic Rules in Geographic Information Systems
RuleML2015: Learning Characteristic Rules in Geographic Information SystemsRuleML
 
RuleML2015: Using Substitutive Itemset Mining Framework for Finding Synonymou...
RuleML2015: Using Substitutive Itemset Mining Framework for Finding Synonymou...RuleML2015: Using Substitutive Itemset Mining Framework for Finding Synonymou...
RuleML2015: Using Substitutive Itemset Mining Framework for Finding Synonymou...RuleML
 

Plus de RuleML (20)

Aggregates in Recursion: Issues and Solutions
Aggregates in Recursion: Issues and SolutionsAggregates in Recursion: Issues and Solutions
Aggregates in Recursion: Issues and Solutions
 
Port Clearance Rules in PSOA RuleML: From Controlled-English Regulation to Ob...
Port Clearance Rules in PSOA RuleML: From Controlled-English Regulation to Ob...Port Clearance Rules in PSOA RuleML: From Controlled-English Regulation to Ob...
Port Clearance Rules in PSOA RuleML: From Controlled-English Regulation to Ob...
 
RuleML 2015: When Processes Rule Events
RuleML 2015: When Processes Rule EventsRuleML 2015: When Processes Rule Events
RuleML 2015: When Processes Rule Events
 
RuleML 2015: Ontology Reasoning using Rules in an eHealth Context
RuleML 2015: Ontology Reasoning using Rules in an eHealth ContextRuleML 2015: Ontology Reasoning using Rules in an eHealth Context
RuleML 2015: Ontology Reasoning using Rules in an eHealth Context
 
RuleML 2015: Semantics of Notation3 Logic: A Solution for Implicit Quantifica...
RuleML 2015: Semantics of Notation3 Logic: A Solution for Implicit Quantifica...RuleML 2015: Semantics of Notation3 Logic: A Solution for Implicit Quantifica...
RuleML 2015: Semantics of Notation3 Logic: A Solution for Implicit Quantifica...
 
Challenge@RuleML2015 Developing Situation-Aware Applications for Disaster Man...
Challenge@RuleML2015 Developing Situation-Aware Applications for Disaster Man...Challenge@RuleML2015 Developing Situation-Aware Applications for Disaster Man...
Challenge@RuleML2015 Developing Situation-Aware Applications for Disaster Man...
 
Rule Generalization Strategies in Incremental Learning of Disjunctive Concepts
Rule Generalization Strategies in Incremental Learning of Disjunctive ConceptsRule Generalization Strategies in Incremental Learning of Disjunctive Concepts
Rule Generalization Strategies in Incremental Learning of Disjunctive Concepts
 
RuleML 2015 Constraint Handling Rules - What Else?
RuleML 2015 Constraint Handling Rules - What Else?RuleML 2015 Constraint Handling Rules - What Else?
RuleML 2015 Constraint Handling Rules - What Else?
 
RuleML2015 The Herbrand Manifesto - Thinking Inside the Box
RuleML2015 The Herbrand Manifesto - Thinking Inside the Box RuleML2015 The Herbrand Manifesto - Thinking Inside the Box
RuleML2015 The Herbrand Manifesto - Thinking Inside the Box
 
RuleML2015 PSOA RuleML: Integrated Object-Relational Data and Rules
RuleML2015 PSOA RuleML: Integrated Object-Relational Data and RulesRuleML2015 PSOA RuleML: Integrated Object-Relational Data and Rules
RuleML2015 PSOA RuleML: Integrated Object-Relational Data and Rules
 
Industry@RuleML2015: Norwegian State of Estate A Reporting Service for the St...
Industry@RuleML2015: Norwegian State of Estate A Reporting Service for the St...Industry@RuleML2015: Norwegian State of Estate A Reporting Service for the St...
Industry@RuleML2015: Norwegian State of Estate A Reporting Service for the St...
 
A Service for Improving the Assignments of Common Agriculture Policy Funds to...
A Service for Improving the Assignments of Common Agriculture Policy Funds to...A Service for Improving the Assignments of Common Agriculture Policy Funds to...
A Service for Improving the Assignments of Common Agriculture Policy Funds to...
 
Datalog+-Track Introduction & Reasoning on UML Class Diagrams via Datalog+-
Datalog+-Track Introduction & Reasoning on UML Class Diagrams via Datalog+-Datalog+-Track Introduction & Reasoning on UML Class Diagrams via Datalog+-
Datalog+-Track Introduction & Reasoning on UML Class Diagrams via Datalog+-
 
RuleML2015: Binary Frontier-guarded ASP with Function Symbols
RuleML2015: Binary Frontier-guarded ASP with Function SymbolsRuleML2015: Binary Frontier-guarded ASP with Function Symbols
RuleML2015: Binary Frontier-guarded ASP with Function Symbols
 
RuleML2015: API4KP Metamodel: A Meta-API for Heterogeneous Knowledge Platforms
RuleML2015: API4KP Metamodel: A Meta-API for Heterogeneous Knowledge PlatformsRuleML2015: API4KP Metamodel: A Meta-API for Heterogeneous Knowledge Platforms
RuleML2015: API4KP Metamodel: A Meta-API for Heterogeneous Knowledge Platforms
 
RuleML2015: Rule-Based Exploration of Structured Data in the Browser
RuleML2015: Rule-Based Exploration of Structured Data in the BrowserRuleML2015: Rule-Based Exploration of Structured Data in the Browser
RuleML2015: Rule-Based Exploration of Structured Data in the Browser
 
RuleML2015: Ontology-Based Multidimensional Contexts with Applications to Qua...
RuleML2015: Ontology-Based Multidimensional Contexts with Applications to Qua...RuleML2015: Ontology-Based Multidimensional Contexts with Applications to Qua...
RuleML2015: Ontology-Based Multidimensional Contexts with Applications to Qua...
 
RuleML2015: Compact representation of conditional probability for rule-based...
RuleML2015:  Compact representation of conditional probability for rule-based...RuleML2015:  Compact representation of conditional probability for rule-based...
RuleML2015: Compact representation of conditional probability for rule-based...
 
RuleML2015: Learning Characteristic Rules in Geographic Information Systems
RuleML2015: Learning Characteristic Rules in Geographic Information SystemsRuleML2015: Learning Characteristic Rules in Geographic Information Systems
RuleML2015: Learning Characteristic Rules in Geographic Information Systems
 
RuleML2015: Using Substitutive Itemset Mining Framework for Finding Synonymou...
RuleML2015: Using Substitutive Itemset Mining Framework for Finding Synonymou...RuleML2015: Using Substitutive Itemset Mining Framework for Finding Synonymou...
RuleML2015: Using Substitutive Itemset Mining Framework for Finding Synonymou...
 

Dernier

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
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
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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
 
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
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
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
 

Dernier (20)

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
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
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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
 
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
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
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
 

A software agent controlling 2 robot arms in co-operating concurrent tasks

  • 1. Background slides for invited challenge demo at Rule-ML 2017 A software agent controlling 2 robot arms in co-operating concurrent tasks Robotic agent programming in QuLog and TeleoR Keith Clark Imperial College & University of Queensland Joint work with Peter Robinson University of Queensland 1
  • 2. QuLog - LP+FP+AR Language •  Flexibly typed, multi-threaded, higher order •  Relation and function defining rules •  Function calls and set expression arguments in relation calls •  Function rule guards can query relations •  Relation rules more declarative than Prolog, closer to predicate logic •  Relations are typed and moded •  Dynamic relations defined only by facts •  Used for the agent’s Belief Store •  Top layer of action rules •  Update dynamic relations, fork threads, do I/O, communicate with other Qulog, C, Python or Java processes •  Inter-process comms uses our Pedro pub/sub and addressed message router •  Threads execute actions calling funs and rels as needed •  Rel and fun rules cannot call actions 2
  • 3. TeleoR •  Development of Nilsson’s T-R robotic agent language of guard ~> action rules sequenced in parameterized procedures. •  guard is a QuLog deductive query to the BS •  action is a tuple of robotic actions executed in parallel or a T-R procedure call, maybe a recursive call •  TeleoR has forms of rules and actions not in T-R –  Extra rules for more fine grained behaviour control –  Can combine robotic action with QuLog action sequence: action ++ qact1 ;...; qact1 –  This allows communication and updates of BS as parallel non-robotic actions •  Compile time guarantee: –  all rule actions are correctly typed and fully instantiated when a rule is fired •  The concept of task atomic procedures: –  Used for multi-tasking sharing one or more robotic resources –  No interference, no starvation, deadlock free –  Compiler generates code that uses BS for co-ordination 3
  • 4. Deductive Belief Store Dynamic facts Relation and function rules ? Percepts Handler Message Handler ag@host Percept fact Interpretations of Sensor data Mid-level Action control messages Incoming Messages and replies Control Thread ? Atomic re-evaluation of rule guards after each atomic update Atomic Updates Multi-threaded Agent Architecture Only outgoing Messages 4 pedro Other Agents Pub/Sub and Addressed Message Router TeleoR + QuLog QuLog
  • 5. One arm block tower building 5
  • 6. Task Ontology 6 def block::= 1..9 durative pickup(block), put_on_block(block), put_on_table() percept on(block,block), on_table(block), holding(block) rel sub_tower(list(block)), tower(list(block)) sub_tower([B]) <= on_table(B) sub_tower([B1,B2,..Blocks]) <= on(B1,B2) & sub_tower([B2,..Blocks]) tower([B,..Blocks]) <= not on(_,B) & sub_tower([B,..Blocks])
  • 7. Nilsson’s universal conditional top- level plan for block tower building 7 tel makeTower(list(block)) makeTower(Blocks){ tower(Blocks) ~> () % Goal is achieved sub_tower(Blocks) & Blocks=[B,..] ~> make_clear(B) Blocks=[B] ~> move_to_table(B) Blocks=[B1,B2,..Bs] & tower([B2,..Bs]) ~> move_to_block(B1,B2) Blocks=[B,..Bs] ~> makeTower(Bs) } Action achieves
  • 8. Mutually recursive procedures 8 tel make_clear(block) make_clear(Block){ not on(_,Block) ~> () % Goal is achieved on(OnBlock,Block) ~> move_to_table(OnBlock) } tel move_to_table(block) move_to_table(OnBlock){ on_table(OnBlock) ~> () % Goal is achieved holding(OnBlock) ~> put_on_table() not on(_, OnBlock) & not holding(_) ~> pickup(OnBlock) not holding(_) ~> make_clear(OnBlock) holding(_) ~> put_on_table() }
  • 9. Interleaving the building of several towers 9 Just need to add: task_start makeTower task_atomic move_to_table, move_to_block
  • 10. Baxter concurrent tower building 10
  • 12. Elements of the two arm tower builder program 12 def table ::= table1 | shared | table2 def block ::= ... def arm ::= arm1 | arm2 def resource::= arm || table % resource a reserved type name durative pickup(arm, block, table), put_on_block(arm, block, table), put_on_table(arm, table) tel makeTower(arm, list(block), table) makeTower(Arm,Blks,Tbl){ % Tbl is where tower must be built, tower(Blks, Tbl) ~> {} sub_tower(Blks, Tbl) & Blocks=[B,..] ~> makeClear(Arm, B, Tbl) Blks=[B,.. Bs] & tower(Bs, Tbl) ~> moveAcrossToBlock(Arm, B, firstOf(Bs), Tbl) Blks=[B] ~> moveAcrossToTable(Arm, B, Tbl) Blks=[B,.. Bs] ~> makeTower(Arm, Bs, Tbl) } Entire control program 40 TeleoR rules clustered into 6 procedures.
  • 13. Auxiliary procedures 13 tel moveAcrossToTable(arm, block, table) % Will fetch a block from wherever it is and put it onto the table % May need two calls to proc below using different arms to first % move the block to shared then to destination table task_atomic oneArmMoveToTable(arm, block, table, table) % Has 3 resource args. an arm and two tables which might be the same oneArmMoveToTable(Arm, Blk, FromTab, ToTab){ on(Blk, ToTab) ~> () clear(Blk) ~> clearOneArmMoveToTable(Arm, Blk, FromTab, ToTab) not holding(Arm,_) ~> makeClear(Arm, Blk, FromTab) holding(Arm,_) ~> put_on_table(Arm, FromTab) }
  • 14. TeleoR semantics and implementation 14 • Formal State Transition Semantics • Optimized Reference Implementation • Runtime system that implements state transition semantics • Compile time analysis ensures rule guards are not re-evaluated on BS update if no relevant change made • Currently compiled to multi-threaded Qu-Prolog • Will soon be compiled to specialized Abstract Machine Code similar to but simpler than Warren’s Prolog AMC
  • 15. Sources and software 15 Clark & Robinson, Robotic Agent Programming in TeleoR, ICRA 2015, IEEE Clark & Robinson, Multi-tasking Robotic Agent Programming in TeleoR, Research Report, on www.doc.ic.ac.uk/~klc Clark et al, A Framework for Integrating Symbolic and Sub-symbolic Representations, IJCAI 2016, AAAI Press Programming Communicating Multi-tasking Robotic Agents: A Teleo-Reactive Rule Based Approach, Springer, Early 2018 first 5 chapters at teleoreactiveprograms.net including a formal operational semantics of Nilsson’s TR lang. Clark & Robinson, Engineering Agent Applications in QuLog, Springer, 2017/8, TeleoR and QuLog Software for Unix, Linux and OS X at http://staff.itee.uq.edu.au/pjr/HomePages/QulogHome.html Collaboration and users welcomed