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
- {@linkplain laas.openrobots.ontology.OroServer#makeHtmlDoc() makeHtmlDoc()}: returns a list of available methods in HTML format for inclusion in documentation.
- {@linkplain laas.openrobots.ontology.OroServer#listMethods() listMethods()}: returns the list of available methods with their signatures and short descriptions as a map.
- {@linkplain laas.openrobots.ontology.OroServer#stats() stats()}: returns some statistics on the server
- {@linkplain laas.openrobots.ontology.OroServer#listSimpleMethods() listSimpleMethods()}: returns a raw list of available methods.
- {@linkplain laas.openrobots.ontology.OroServer#reset() reset()}: Reload the base ontologies, discarding all inserted of removed statements, in every models
- {@linkplain laas.openrobots.ontology.backends.OpenRobotsOntology#list(String) list(String)}: Lists on the serveur stdout all facts matching a given pattern.
- {@linkplain laas.openrobots.ontology.backends.OpenRobotsOntology#save() save()}: exports the current ontology model to an OWL file. The file will be saved to the current directory with an automaticallygenerated name.
- {@linkplain laas.openrobots.ontology.backends.OpenRobotsOntology#save(String) save(String)}: exports the current ontology model to an OWL file. The provided path must be writable by the server.
- agent
- {@linkplain laas.openrobots.ontology.modules.alterite.AlteriteModule#getInfosForAgent(String, String) 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
- {@linkplain laas.openrobots.ontology.modules.alterite.AlteriteModule#checkConsistencyForAgent(String) checkConsistencyForAgent(String)}: Check the consistency of a specific agent model.
- {@linkplain laas.openrobots.ontology.modules.alterite.AlteriteModule#safeAddForAgent(String, Set) 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).
- {@linkplain laas.openrobots.ontology.modules.alterite.AlteriteModule#safeAddForAgent(String, Set, String) 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).
- {@linkplain laas.openrobots.ontology.modules.alterite.AlteriteModule#discriminateForAgent(String, Set) discriminateForAgent(String, Set)}: returns a list of properties that helps to differentiate individuals for a specific agent.
- {@linkplain laas.openrobots.ontology.modules.alterite.AlteriteModule#findForAgent(String, String, Set) findForAgent(String, String, Set)}: tries to identify a resource given a set of partially defined statements in an specific agent model.
- {@linkplain laas.openrobots.ontology.modules.alterite.AlteriteModule#findForAgent(String, String, Set, Set) findForAgent(String, String, Set, Set)}: tries to identify a resource given a set of partially defined statements and restrictions in an specific agent model.
- {@linkplain laas.openrobots.ontology.modules.alterite.AlteriteModule#listAgents() listAgents()}: Returns the set of agents I'm aware of (ie, for whom I have a cognitive model).
- {@linkplain laas.openrobots.ontology.modules.alterite.AlteriteModule#lookupForAgent(String, String) lookupForAgent(String, String)}: lookup a concept in a specific agent model.
- {@linkplain laas.openrobots.ontology.modules.alterite.AlteriteModule#addForAgent(String, Set) addForAgent(String, Set)}: adds one or several statements (triplets S-P-O) to a specific agent model, in long term memory.
- {@linkplain laas.openrobots.ontology.modules.alterite.AlteriteModule#addForAgent(String, Set, String) addForAgent(String, Set, String)}: adds one or several statements (triplets S-P-O) to a specific agent model associated with a memory profile.
- {@linkplain laas.openrobots.ontology.modules.alterite.AlteriteModule#clearForAgent(String, Set) clearForAgent(String, Set)}: removes statements from a specific agent model.
- {@linkplain laas.openrobots.ontology.modules.alterite.AlteriteModule#removeForAgent(String, Set) removeForAgent(String, Set)}: removes one or several statements. Deprecated. Use clearForAgent instead.
- {@linkplain laas.openrobots.ontology.modules.alterite.AlteriteModule#save(String, String) save(String, String)}: exports the cognitive model of a given agent to an OWL file. The provided path must be writable by the server.
- {@linkplain laas.openrobots.ontology.modules.alterite.AlteriteModule#updateForAgent(String, Set) updateForAgent(String, Set)}: updates one or several statements (triplets S-P-O) in a specific agent model, in long term memory.
- base
- {@linkplain laas.openrobots.ontology.modules.base.BaseModule#safeAdd(Set) 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).
- {@linkplain laas.openrobots.ontology.modules.base.BaseModule#safeAdd(Set, String) 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).
- {@linkplain laas.openrobots.ontology.modules.base.BaseModule#check(Set) check(Set)}: checks that one or several statements are asserted or can be inferred from the ontology
- {@linkplain laas.openrobots.ontology.modules.base.BaseModule#checkConsistency() checkConsistency()}: checks that the ontology is semantically consistent
- {@linkplain laas.openrobots.ontology.modules.base.BaseModule#checkConsistency(Set) checkConsistency(Set)}: checks that a set of statements are consistent with the current model
- {@linkplain laas.openrobots.ontology.OroServer#help() help()}: returns a human-friendly list of available methods with their signatures and short descriptions.
- {@linkplain laas.openrobots.ontology.modules.base.BaseModule#getLabel(String) getLabel(String)}: return the label of a concept, if available.
- {@linkplain laas.openrobots.ontology.modules.base.BaseModule#lookup(String) 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).
- {@linkplain laas.openrobots.ontology.modules.base.BaseModule#lookup(String, String) lookup(String, String)}: try to identify a concept from its id or label and its type (class, instance, object_property, datatype_property).
- {@linkplain laas.openrobots.ontology.modules.alterite.AlteriteModule#revise(Set, String) revise(Set, String)}:
- {@linkplain laas.openrobots.ontology.modules.base.BaseModule#add(Set) add(Set)}: adds one or several statements (triplets S-P-O) to the robot model, in long term memory.
- {@linkplain laas.openrobots.ontology.modules.base.BaseModule#add(Set, String) add(Set, String)}: adds one or several statements (triplets S-P-O) to the robot model associated with a memory profile.
- {@linkplain laas.openrobots.ontology.modules.base.BaseModule#clear(Set) clear(Set)}: removes statements in the given set
- {@linkplain laas.openrobots.ontology.modules.base.BaseModule#remove(Set) remove(Set)}: removes one or several statements (triplets S-P-O) from the ontology.
- {@linkplain laas.openrobots.ontology.modules.base.BaseModule#update(Set) update(Set)}: update the value of a functional property.
- concept comparison
- {@linkplain laas.openrobots.ontology.modules.categorization.CategorizationModule#discriminate(Set) discriminate(Set)}: returns a list of properties that helps to differentiate individuals.
- {@linkplain laas.openrobots.ontology.modules.categorization.CategorizationModule#getDifferences(String, String) getDifferences(String, String)}: given two concepts, return the list of relevant differences (types, properties...) between these concepts.
- {@linkplain laas.openrobots.ontology.modules.categorization.CategorizationModule#getSimilarities(String, String) getSimilarities(String, String)}: given two concepts, return the list of relevant similarities (types, properties...) between these concepts.
- events
- {@linkplain laas.openrobots.ontology.modules.alterite.AlteriteModule#registerEventForAgent(String, String, String, String, List) registerEventForAgent(String, String, String, String, List)}: registers an event on a specific agent model. Expected parameters are: agent, type, triggering type, variable, event pattern.
- {@linkplain laas.openrobots.ontology.modules.alterite.AlteriteModule#registerEventForAgent(String, String, String, List) registerEventForAgent(String, String, String, List)}: registers an event on a specific agent model. Expected parameters are: agent, type, triggering type, event pattern.
- {@linkplain laas.openrobots.ontology.modules.events.EventModule#registerEvent(String, String, String, List) registerEvent(String, String, String, List)}: registers an event. Expected parameters are: type, triggering type, variable, event pattern.
- {@linkplain laas.openrobots.ontology.modules.events.EventModule#registerEvent(String, String, List) registerEvent(String, String, List)}: registers an event. Expected parameters are: type, triggering type, event pattern.
- {@linkplain laas.openrobots.ontology.modules.alterite.AlteriteModule#clearEvent(String, String) clearEvent(String, String)}: Remove one specific event from a specific model.
- {@linkplain laas.openrobots.ontology.modules.alterite.AlteriteModule#clearEventsForAgent(String) clearEventsForAgent(String)}: Remove all events associated to a specific model.
- {@linkplain laas.openrobots.ontology.modules.events.EventModule#clearEvent(String) clearEvent(String)}: Remove one specific event from the main model.
- {@linkplain laas.openrobots.ontology.modules.events.EventModule#clearEvents() clearEvents()}: Remove all events associated to the main model.
- querying
- {@linkplain laas.openrobots.ontology.modules.base.BaseModule#find(String, Set) find(String, Set)}: tries to identify a resource given a set of partially defined statements about this resource.
- {@linkplain laas.openrobots.ontology.modules.base.BaseModule#find(String, Set, Set) find(String, Set, Set)}: tries to identify a resource given a set of partially defined statements plus restrictions about this resource.
- {@linkplain laas.openrobots.ontology.modules.base.BaseModule#getInfos(String) getInfos(String)}: returns the set of asserted and inferred statements whose the given node is part of. It represents the usages of a resource.
- {@linkplain laas.openrobots.ontology.modules.base.BaseModule#query(String, String) query(String, String)}: performs one SPARQL query on the ontology
- {@linkplain laas.openrobots.ontology.modules.base.BaseModule#getResourceDetails(String) getResourceDetails(String)}: returns a serialized ResourceDescription object that describe all the links of this resource with others resources (sub and superclasses, instances, properties, etc.).
- {@linkplain laas.openrobots.ontology.modules.base.BaseModule#getResourceDetails(String, String) 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
- {@linkplain laas.openrobots.ontology.modules.base.BaseModule#getClassesOf(String) 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.
- {@linkplain laas.openrobots.ontology.modules.base.BaseModule#getDirectClassesOf(String) 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.
- {@linkplain laas.openrobots.ontology.modules.base.BaseModule#getDirectInstancesOf(String) 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.
- {@linkplain laas.openrobots.ontology.modules.base.BaseModule#getDirectSubclassesOf(String) 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.
- {@linkplain laas.openrobots.ontology.modules.base.BaseModule#getDirectSuperclassesOf(String) 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.
- {@linkplain laas.openrobots.ontology.modules.base.BaseModule#getInstancesOf(String) 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.
- {@linkplain laas.openrobots.ontology.modules.base.BaseModule#getSubclassesOf(String) 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.
- {@linkplain laas.openrobots.ontology.modules.base.BaseModule#getSuperclassesOf(String) 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
{@link laas.openrobots.ontology.tests.OpenRobotsOntologyTest
OpenRobotsOntologyTest} class which contains over 35 unit tests, covering
most of the API.
- The socket communication protocol is documented here:
{@link laas.openrobots.ontology.connectors.SocketConnector}
- If you're
interested in the server internal's, {@link laas.openrobots.ontology.OroServer}
is the main entry point to the software.