- - - - - - - - - -
view on github
getting started
common errors
chaining commands
global options
makefile
plugins
- - - - - - - - - -
annotate
collapse
convert
diff
expand
explain
export
export-prefixes
extract
filter
materialize
measure
merge
mirror
python
query
reason
reduce
relax
remove
rename
repair
report
template
unmerge
validate-profile
verify
- - - - - - - - - -
ROBOT is licensed under the
BSD 3-Clause License.
Theme by orderedlist
ROBOT is written in Java, like OWLAPI and Protégé, and runs on the Java Virtual Machine (JVM). Using Py4J it’s possible to control ROBOT from Python. There are two main ways to do this: (1) launch the ROBOT process from Python, or (2) start ROBOT from the command line and then connect to it from Python.
Both approaches require that the Py4j Python module is installed, see http://py4j.org/install.html.
You can start ROBOT from Python using py4j.java_gateway.launch_gateway(...)
. You must specify jarpath={path/to/robot.jar}
, classpath=org.obolibrary.robot.PythonOperation
, and port={port}
(e.g., port=25333
) in the args. All other launch_gateway
args are optional.
from py4j.java_gateway import launch_gateway
launch_gateway(jarpath='bin/robot.jar',
classpath='org.obolibrary.robot.PythonOperation',
port=25333,
die_on_exit=True)
If you don’t specify die_on_exit=True
in the launch_gateway
args, the JVM will continue running after the Python process has exited.
If you prefer, you can start ROBOT from the command line with robot python
and then connect to it from Python. The ROBOT python
command does not accept any input ontologies and does not produce any outputs. You cannot chain this command with other ROBOT commands. To stop the ROBOT process use Ctrl+C
.
By default, the python
command starts a Py4J gateway server on port 25333
(the Py4J default). To change this, use the --port
option:
robot python --port 8000
To run this command in the background (Unix, Linux, MacOS), use:
robot python &
When you’re done you can stop the gateway server from the command line with Ctrl+C. If you are running it in the background, first run fg
to bring it back to the foreground.
Once ROBOT has started, you can access any ROBOT methods or objects through the Py4j gateway. Objects must start with gateway.jvm
followed by the package name (e.g., org.obolibrary.robot
). For example, use the ROBOT IOHelper
to load an ontology and print basic information:
from py4j.java_gateway import launch_gateway, JavaGateway
# Not required when running `robot python` from the command line:
launch_gateway(jarpath='bin/robot.jar',
classpath='org.obolibrary.robot.PythonOperation',
port=25333,
die_on_exit=True)
gateway = JavaGateway()
io_helper = gateway.jvm.org.obolibrary.robot.IOHelper()
ont = io_helper.loadOntology('docs/examples/annotated.owl')
print(ont.getOntologyID().getVersionIRI())
For details on using ROBOT as a Java library, see the robot-core
JavaDocs and the OWLAPI v4 JavaDocs. The robot-core
unit tests may also be helpful as examples. For details on using Java from Python see the Py4J documentation.