= Geometric reasoning and symbol grounding in SPARK =

All the properties are send to the ontology server ONLY when they change.

== Scene status ==
{{{
In the robot's model:
  [Object ID] isMoving true|false
}}}
== Spatial relationships ==
At each SPARK iteration, all the following relationships are tested:

{{{
for R in [isIn, isOn, isNextTo]
  for obj1, obj2 in Objects:
    check(obj1 R obj2)
}}}


{{{
for R in [relativePosition]:
  for obj in Objects, agent in Agents:
    check(obj1 R agent)
}}}

``relativePosition`` are summarized in this figure:

{{attachment:relative_position.jpg|SPARK relative positions|width="300"}}

Updates to the spatial relationships are only sent to the robot's model.

== Visibility/Reachability ==
{{{
In EACH agents' model:
  [Object ID] isVisible true|false
  [Object ID] isReachable true|false
}}}
== Agent focus tracking ==
{{attachment:looksat_pointsat.png|Explaning looksAt, pointsAt, focusesOn|width="300"}}

Computed facts:

{{{
In the robot's model:
  [Agent ID] pointsAt [Object ID]
  [Agent ID] looksAt [Object ID]
}}}