Hunter Domain

From TinyCog
Jump to: navigation, search

The "hunter domain" is a simulation test bed for TinyCog in order to test the following functionalities:

The domain consists of a 1000 x 1000 2D map with a number of "hunter" Agents who need to hunt if they are hungry. "Deer" needs to graze in order to feed, with several locations on the map providing better "grass" than others. Deer will learn about the best spots for grazing and how to avoid hunters. Hunters will learn to hunt in packs, in order to compensate for the limited range of their spears.

The "hunter domain" is implemented using the following components:

  • A Graphical User Interface:
    The 2D GUI is written in HTML5 using the [Sencha ExtJS] library and shows the various Agents (hunters & deer) and other Objects (grass, mountains, water) on a 1000x1000 map. The GUI allows to inspect the inner state of agents and other Agents and Objects, acting as a high-level debugging facility.
  • A HTTP interface:
    The interface uses the [SWI-Prolog HTTP Support Packages] and exposes the TinyCog data structures as JSON using a REST style API.
  • Hunter Domain Description Logic Ontology:
    A Description Logic model defines Agents and Objects with 2D position and other attributes required by the HTTP interface.
  • Hunter Domain Perception Pyramid:
    This is a special-purpose implementation of a Perception Pyramid for the simulated 2D world. This pyramid consists only of a Spatial Relations subsystem, because all other information (3D Reconstruction and Object Configurator) are unnecessary in the simulated environment.
  • Hunter Domain Primitive Tasks:
    We implement activities like "walking to a position" or "hurling a spear" as Primitive Tasks, so the Planner does not need to enter in the details of these activities.

The "hunter domain" requires a more detailed implementation of the following Subsystems, compared to the Hanoi Domain:


Implementation Status

Please see the [source code] and search for "hunter", the code is split among various files.