ORO: the OpenRobots Ontology
Server documentation - build on 2024-01-23
oro-server is a Java-based knowledge base for cognitive robotic
applications. It is developped at the LAAS-CNRS by Séverin Lemaignan
(severin.lemaignan@laas.fr)

oro-server features
oro-server relies on RDF/OWL ontologies to represent and store knowledge, and runs several active processes that offer, amongst other things, reasonning facilities, support for bio-inspired memory models, concepts of "cognitive events", categorization and explicit modeling of other agents.

The main communication channel with oro-server is a simple socket interface. However several bridges and wrapper to higher-level framework are available (including a C++ object-oriented abstraction, Python, TCL bindings, a ROS node, a YARP connector). New ones can be easily created on request.
List of available methods
(Last updated on 2011-10-24 10:56:23)- administration
- makeHtmlDoc(): returns a list of available methods in HTML format for inclusion in documentation.
- listMethods(): returns the list of available methods with their signatures and short descriptions as a map.
- stats(): returns some statistics on the server
- listSimpleMethods(): returns a raw list of available methods.
- reset(): Reload the base ontologies, discarding all inserted of removed statements, in every models
- list(String): Lists on the serveur stdout all facts matching a given pattern.
- save(): exports the current ontology model to an OWL file. The file will be saved to the current directory with an automaticallygenerated name.
- save(String): exports the current ontology model to an OWL file. The provided path must be writable by the server.
- agent
- getInfosForAgent(String, String): returns the set of asserted and inferred statements whose the given node is part of. It represents the usages of a resource.
- agents
- checkConsistencyForAgent(String): Check the consistency of a specific agent model.
- safeAddForAgent(String, Set): try to add news statements to a specific agent model in long term memory, if they don't lead to inconsistencies (return false if at least one stmt wasn't added).
- safeAddForAgent(String, Set, String): try to add news statements to a specific agent model with a specific memory profile, if they don't lead to inconsistencies (return false if at least one stmt wasn't added).
- discriminateForAgent(String, Set): returns a list of properties that helps to differentiate individuals for a specific agent.
- findForAgent(String, String, Set): tries to identify a resource given a set of partially defined statements in an specific agent model.
- findForAgent(String, String, Set, Set): tries to identify a resource given a set of partially defined statements and restrictions in an specific agent model.
- listAgents(): Returns the set of agents I'm aware of (ie, for whom I have a cognitive model).
- lookupForAgent(String, String): lookup a concept in a specific agent model.
- addForAgent(String, Set): adds one or several statements (triplets S-P-O) to a specific agent model, in long term memory.
- addForAgent(String, Set, String): adds one or several statements (triplets S-P-O) to a specific agent model associated with a memory profile.
- clearForAgent(String, Set): removes statements from a specific agent model.
- removeForAgent(String, Set): removes one or several statements. Deprecated. Use clearForAgent instead.
- save(String, String): exports the cognitive model of a given agent to an OWL file. The provided path must be writable by the server.
- updateForAgent(String, Set): updates one or several statements (triplets S-P-O) in a specific agent model, in long term memory.
- base
- safeAdd(Set): try to add news statements in long term memory, if they don't lead to inconsistencies (return false if at least one stmt wasn't added).
- safeAdd(Set, String): try to add news statements with a specific memory profile, if they don't lead to inconsistencies (return false if at least one stmt wasn't added).
- check(Set): checks that one or several statements are asserted or can be inferred from the ontology
- checkConsistency(): checks that the ontology is semantically consistent
- checkConsistency(Set): checks that a set of statements are consistent with the current model
- help(): returns a human-friendly list of available methods with their signatures and short descriptions.
- getLabel(String): return the label of a concept, if available.
- lookup(String): try to identify a concept from its id or label, and return it, along with its type (class, instance, object_property, datatype_property).
- lookup(String, String): try to identify a concept from its id or label and its type (class, instance, object_property, datatype_property).
- revise(Set, String):
- add(Set): adds one or several statements (triplets S-P-O) to the robot model, in long term memory.
- add(Set, String): adds one or several statements (triplets S-P-O) to the robot model associated with a memory profile.
- clear(Set): removes statements in the given set
- remove(Set): removes one or several statements (triplets S-P-O) from the ontology.
- update(Set): update the value of a functional property.
- concept comparison
- discriminate(Set): returns a list of properties that helps to differentiate individuals.
- getDifferences(String, String): given two concepts, return the list of relevant differences (types, properties...) between these concepts.
- getSimilarities(String, String): given two concepts, return the list of relevant similarities (types, properties...) between these concepts.
- events
- registerEventForAgent(String, String, String, String, List): registers an event on a specific agent model. Expected parameters are: agent, type, triggering type, variable, event pattern.
- registerEventForAgent(String, String, String, List): registers an event on a specific agent model. Expected parameters are: agent, type, triggering type, event pattern.
- registerEvent(String, String, String, List): registers an event. Expected parameters are: type, triggering type, variable, event pattern.
- registerEvent(String, String, List): registers an event. Expected parameters are: type, triggering type, event pattern.
- clearEvent(String, String): Remove one specific event from a specific model.
- clearEventsForAgent(String): Remove all events associated to a specific model.
- clearEvent(String): Remove one specific event from the main model.
- clearEvents(): Remove all events associated to the main model.
- querying
- find(String, Set): tries to identify a resource given a set of partially defined statements about this resource.
- find(String, Set, Set): tries to identify a resource given a set of partially defined statements plus restrictions about this resource.
- getInfos(String): returns the set of asserted and inferred statements whose the given node is part of. It represents the usages of a resource.
- query(String, String): performs one SPARQL query on the ontology
- getResourceDetails(String): returns a serialized ResourceDescription object that describe all the links of this resource with others resources (sub and superclasses, instances, properties, etc.).
- getResourceDetails(String, String): returns a serialized ResourceDescription object that describe all the links of this resource with others resources (sub and superclasses, instances, properties, etc.). The second parameter specify the desired language (following RFC4646).
- taxonomy
- getClassesOf(String): returns a map of {class name, label} (or {class name, class name without namespace} is no label is available) of asserted and inferred classes of a given individual.
- getDirectClassesOf(String): returns a map of {class name, label} (or {class name, class name without namespace} is no label is available) of asserted and inferred direct classes of a given individual.
- getDirectInstancesOf(String): returns a map of {instance name, label} (or {instance name, instance name without namespace} is no label is available) of asserted and inferred direct instances of a given class.
- getDirectSubclassesOf(String): returns a map of {class name, label} (or {class name, class name without namespace} is no label is available) of all asserted and inferred direct subclasses of a given class.
- getDirectSuperclassesOf(String): returns a map of {class name, label} (or {class name, class name without namespace} is no label is available) of all asserted and inferred direct superclasses of a given class.
- getInstancesOf(String): returns a map of {instance name, label} (or {instance name, instance name without namespace} is no label is available) of asserted and inferred instances of a given class.
- getSubclassesOf(String): returns a map of {class name, label} (or {class name, class name without namespace} is no label is available) of all asserted and inferred subclasses of a given class.
- getSuperclassesOf(String): returns a map of {class name, label} (or {class name, class name without namespace} is no label is available) of all asserted and inferred superclasses of a given class.
Where to go then?
- If you just want to use the server, a good source of examples is the
OpenRobotsOntologyTest
class which contains over 35 unit tests, covering most of the API. - The socket communication protocol is documented here:
SocketConnector
- If you're
interested in the server internal's,
OroServer
is the main entry point to the software.
Package | Description |
---|---|
laas.openrobots.ontology |
Base package, that mainly stores the oro-server entry class,
OroServer . |
laas.openrobots.ontology.backends |
Provides the actual underlying ontology-based storage.
|
laas.openrobots.ontology.connectors |
Provides external connectors to communicate with the server.
|
laas.openrobots.ontology.exceptions |
Stores all the exceptions used by oro-server.
|
laas.openrobots.ontology.helpers | |
laas.openrobots.ontology.json | |
laas.openrobots.ontology.modules | |
laas.openrobots.ontology.modules.alterite |
Allows explicit representation of other agents with independant models of
the world.
|
laas.openrobots.ontology.modules.base | |
laas.openrobots.ontology.modules.categorization |
Provides methods to extract similarities, differences and categories from
a set of concepts.
|
laas.openrobots.ontology.modules.events |
Provides the cognitive event manager module.
|
laas.openrobots.ontology.modules.memory |
Provides the memory management module (including fact forgetting and
reinforcement learning.
|
laas.openrobots.ontology.service |
This package stores all the classes related to service declaration.
A service is: a method tagged with the RPCMethod annotation... |
laas.openrobots.ontology.tests |
Provides unit-tests suites fro oro-server.
|
laas.openrobots.ontology.types |
Stores some type and serialization-related classes.
|