Programming Stardog: Examples
This is a small collection of examples of working with Stardog via its APIs, as well as examples of how to use some of the extension points within Stardog.
How to build examples
First, you'll need a valid Stardog download.
For the examples in
examples/function, you'll need Gradle.
To compile or run the examples, gradle will automatically download the dependencies from our public maven repository:
To run the examples, they require a valid
$STARDOG_HOME; you can provide this via the parameter
To run any of the examples, you can use the Gradle
execute task. By default, this will run the
program, but you can specify the fully-qualified class name of any of the other examples using the
gradle execute -PmainClass=com.complexible.stardog.examples.api.ICVExample
If you don't have Docco installed, it's pretty easy to get started:
sudo npm install -g docco
Then, you can run it directly against any example:
docco -o docs main/src/com/complexible/stardog/api/ConnectionAPIExample.java
Or you can use the supplied
gradle docs task in each build file that will run Docco against all annotated source files.
You'll notice that a number of examples have in their source a directory
META-INF/services, these are the service
registrations for each example.
Stardog uses the JDK ServiceLoader to load
new services at runtime and make them available to the various parts of the system. The files in the
directory should be the fully qualified class name of the class/service, such as
and the contents of the file should be a list of the fully qualified class names of the implementations of that service.
These need to be a part of your classpath, usually embedded in the jar file with the compiled source, in order for
ServiceLoader to make them up.