Answers.Body: <p>First, <a href="https://en.wikipedia.org/wiki/Pascal_(programming_language)" rel="nofollow noreferrer">Pascal</a> is not a logic programming language. Logic programming refers to languages like <a href="https://en.wikipedia.org/wiki/Prolog" rel="nofollow noreferrer">Prolog</a> where you have a <a href="https://en.wikipedia.org/wiki/Declarative_programming" rel="nofollow noreferrer">declarative</a> style of programming compared to a <a href="https://en.wikipedia.org/wiki/Imperative_programming" rel="nofollow noreferrer">imperative</a> style like you have in Pascal. Maybe you mean <a href="https://en.wikipedia.org/wiki/Conditional_(computer_programming)#If.E2.80.93then.28.E2.80.93else.29" rel="nofollow noreferrer">if-statements</a> which are typical for imperative languages.</p>
  
  <p>Second, representation means a certain level of abstraction. For instance, a model represents a certain part of the reality. Imagine a cup on a table. If the agent has a representation of this situation, it has a symbol <code>table</code> and a symbol <code>cup</code> which represents the things in the real world. Now it can have a relation <code>on(cup, table)</code> which represents the situation that the cup is on the table. This type of abstraction can be easily represented in a logic language like <a href="https://en.wikipedia.org/wiki/Conditional_(computer_programming)#If.E2.80.93then.28.E2.80.93else.29" rel="nofollow noreferrer">first order logic</a>. Therefore, one uses logic programming languages like Prolog or other types of languages like <a href="https://en.wikipedia.org/wiki/Web_Ontology_Language" rel="nofollow noreferrer">OWL</a> to represent knowledge and perform reasoning. So the important term to which Brooks refers is <a href="https://en.wikipedia.org/wiki/Knowledge_representation_and_reasoning" rel="nofollow noreferrer">Knowledge Representation and Reasoning</a>.</p>
  
  <p>Third, if your agent only have sensor data like video or sonar data, then it knows only distances or pixels from the real world. That is not meant with representation. Brooks' Creatures have only this information and calculate with this data directly to perform an action without reasoning. In that sense also artificial neural networks have no representation.</p>
  
  <p>Finally, for an open source project to understand representation I would recommend the above mentioned OWL. You can look at the <a href="https://en.wikipedia.org/wiki/Prot%C3%A9g%C3%A9_(software)" rel="nofollow noreferrer">Protégé</a> editor for working with OWL. In an OWL ontology you can represent relations between things and reason about them.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-02-08T13:08:20.987Z
Answers.LastActivityDate: 2017-02-08T13:08:20.987Z
Answers.UserDisplayName: marli
Answers.Body: <p>In that paper, Brooks introduced the basis for what became known as his "subsumption architecture".  The idea was to get away from the 1980's popular approach of a single global representation of all the components of the problem space that had required the task of robot task planning to juggle every  constraint in the world into one giant disordered mess of states and state transitions.  Rather than represent every element in the world in a single model (The Representation), Brooks suggested it was preferable to build a hierarchy of submodels of the world (subsets of states and transitions) in which smaller tasks could be more readily planned.  Then as these rudimentary skills were mastered, they could be combined to address a hierarchy of bigger and more complex tasks (bigger tasks subsume smaller tasks and benefit from their already having been solved).</p>
  
  <p>Yes, representation did not fully go away, but it was redistributed hierarchically so that much of the state could be abstracted away from the higher level of the bigger problem that you need to solve.  Planning became like coordinating a hierarchical army of skills, where the general doesn't need to plan every movement of the private in order to manage a battle.  Instead, that general need only tell the colonels what to do, and the colonels tell the majors, and so on down to the privates.  Now the general solves problems by coodinating multiple sub-hierarchies available to him/her by delegating authority to coordinate behavior at the appropriate level of abstraction: like division, brigade, battalion, company, and squad.  That's Brooks' Subsumption Architecure: the general needs to represent a battle plan only as "the world according to colonels". </p>
  
  <p><a href="https://en.wikipedia.org/wiki/Subsumption_architecture" rel="nofollow noreferrer">https://en.wikipedia.org/wiki/Subsumption_architecture</a></p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-02-16T04:58:06.970Z
Answers.LastActivityDate: 2017-02-16T04:58:06.970Z
Answers.UserDisplayName: Randy
Body: <p>For a class, I'm reading Brooks' &quot;<a href="https://homeostasis.scs.carleton.ca/%7Esoma/adapsec/readings/brooks1991-representation.pdf" rel="nofollow noreferrer">Intelligence without representation</a>&quot;. The introduction is dedicated to slating <em>representation</em> as a focus for AI development.</p>
  <p>I've read that representation is the problem of representing information symbolically, in time for it to be useful. It's related to the reasoning problem, which is about reasoning about symbolic information.</p>
  <p>But I don't feel like I really understand it at any practical level. I think the idea is that when an agent is given a problem, it must describe this problem in some internal manner that is efficient and accurately describes the problem. This can then also be used to describe the primitive actions that can be taken to reach the solution. I think this then relates to Logic Programming (e.g. Pascal?),</p>
  <p>Is my understanding of <em>representation</em> correct? Just what does representation look like in practice? Are there any open-source codebases that might make a good example?</p>
  
Tags: <terminology><papers><knowledge-representation>
Title: What does Brooks mean by "representation"?
UserDisplayName: Jansky
ThreadText: # What does Brooks mean by "representation"?
  
  (Asked by: username_0 on 2017-02-07)
  
  For a class, I'm reading Brooks' "[Intelligence without representation](https://homeostasis.scs.carleton.ca/%7Esoma/adapsec/readings/brooks1991-representation.pdf)". The introduction is dedicated to slating *representation* as a focus for AI development.
  
  I've read that representation is the problem of representing information symbolically, in time for it to be useful. It's related to the reasoning problem, which is about reasoning about symbolic information.
  
  But I don't feel like I really understand it at any practical level. I think the idea is that when an agent is given a problem, it must describe this problem in some internal manner that is efficient and accurately describes the problem. This can then also be used to describe the primitive actions that can be taken to reach the solution. I think this then relates to Logic Programming (e.g. Pascal?),
  
  Is my understanding of *representation* correct? Just what does representation look like in practice? Are there any open-source codebases that might make a good example?
  
  **Tags:** terminology, papers, knowledge-representation
  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_1 on 2017-02-08. Score: 1 | Accepted answer
  
  First, [Pascal](https://en.wikipedia.org/wiki/Pascal_(programming_language)) is not a logic programming language. Logic programming refers to languages like [Prolog](https://en.wikipedia.org/wiki/Prolog) where you have a [declarative](https://en.wikipedia.org/wiki/Declarative_programming) style of programming compared to a [imperative](https://en.wikipedia.org/wiki/Imperative_programming) style like you have in Pascal. Maybe you mean [if-statements](https://en.wikipedia.org/wiki/Conditional_(computer_programming)#If.E2.80.93then.28.E2.80.93else.29) which are typical for imperative languages.
  
  Second, representation means a certain level of abstraction. For instance, a model represents a certain part of the reality. Imagine a cup on a table. If the agent has a representation of this situation, it has a symbol `table` and a symbol `cup` which represents the things in the real world. Now it can have a relation `on(cup, table)` which represents the situation that the cup is on the table. This type of abstraction can be easily represented in a logic language like [first order logic](https://en.wikipedia.org/wiki/Conditional_(computer_programming)#If.E2.80.93then.28.E2.80.93else.29). Therefore, one uses logic programming languages like Prolog or other types of languages like [OWL](https://en.wikipedia.org/wiki/Web_Ontology_Language) to represent knowledge and perform reasoning. So the important term to which Brooks refers is [Knowledge Representation and Reasoning](https://en.wikipedia.org/wiki/Knowledge_representation_and_reasoning).
  
  Third, if your agent only have sensor data like video or sonar data, then it knows only distances or pixels from the real world. That is not meant with representation. Brooks' Creatures have only this information and calculate with this data directly to perform an action without reasoning. In that sense also artificial neural networks have no representation.
  
  Finally, for an open source project to understand representation I would recommend the above mentioned OWL. You can look at the [Protégé](https://en.wikipedia.org/wiki/Prot%C3%A9g%C3%A9_(software)) editor for working with OWL. In an OWL ontology you can represent relations between things and reason about them.
  
  
  ---
  
  ### Answer by username_2 on 2017-02-16. Score: 1
  
  In that paper, Brooks introduced the basis for what became known as his "subsumption architecture". The idea was to get away from the 1980's popular approach of a single global representation of all the components of the problem space that had required the task of robot task planning to juggle every constraint in the world into one giant disordered mess of states and state transitions. Rather than represent every element in the world in a single model (The Representation), Brooks suggested it was preferable to build a hierarchy of submodels of the world (subsets of states and transitions) in which smaller tasks could be more readily planned. Then as these rudimentary skills were mastered, they could be combined to address a hierarchy of bigger and more complex tasks (bigger tasks subsume smaller tasks and benefit from their already having been solved).
  
  Yes, representation did not fully go away, but it was redistributed hierarchically so that much of the state could be abstracted away from the higher level of the bigger problem that you need to solve. Planning became like coordinating a hierarchical army of skills, where the general doesn't need to plan every movement of the private in order to manage a battle. Instead, that general need only tell the colonels what to do, and the colonels tell the majors, and so on down to the privates. Now the general solves problems by coodinating multiple sub-hierarchies available to him/her by delegating authority to coordinate behavior at the appropriate level of abstraction: like division, brigade, battalion, company, and squad. That's Brooks' Subsumption Architecure: the general needs to represent a battle plan only as "the world according to colonels".
  
  <https://en.wikipedia.org/wiki/Subsumption_architecture>
  
  
  ---
  
  