ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
The code above is Prolog code for the Lisp-based Prolog interpreter CRAM uses. Have a look at cram_reasoning for more information.
All symbols prefixed with a questionmark are variables in the Lisp-Prolog-interpreter. That's actually pretty common syntax in most Lisp-based reasoning systems.
The code you pasted defines a predicate that holds for all designators that contain the properties (type navigation)
and (goal <some goal>)
and binds a variable to the actual goal.
action-desig? is a predicate that holds only for action designators. The predicate action-desig on the other hand is used by the method reference
to resolve the designator.
If you want to use designators and maybe even implement your own, you will definitely have to learn some Prolog.