diff --git a/README.md b/README.md
index 5d18460c8a89f4f8afeb567bd582ea9f22356ca7..0f1d04606537fd49d78c1cb0c18c994c2c117fa3 100644
--- a/README.md
+++ b/README.md
@@ -7,3 +7,10 @@ Directories
   technologies.
 
 * `/src`: Implementation source code.
+
+	- `/src/uloapi`: RDF4J/JVM-based endpoint to the dataset.
+
+	- `/src/ulocollect`: Collects and imports data from MathHub into a database.
+
+	- `/src/ulo-rdf4j`: Script for generating `ULO.java` which contains
+	  constants for use with RDF4J.
diff --git a/experimental/uloapi/.gitignore b/src/uloapi/.gitignore
similarity index 100%
rename from experimental/uloapi/.gitignore
rename to src/uloapi/.gitignore
diff --git a/experimental/uloapi/README.md b/src/uloapi/README.md
similarity index 100%
rename from experimental/uloapi/README.md
rename to src/uloapi/README.md
diff --git a/experimental/uloapi/pom.xml b/src/uloapi/pom.xml
similarity index 100%
rename from experimental/uloapi/pom.xml
rename to src/uloapi/pom.xml
diff --git a/experimental/uloapi/src/main/java/info/mathhub/uloapi/config/Config.java b/src/uloapi/src/main/java/info/mathhub/uloapi/config/Config.java
similarity index 100%
rename from experimental/uloapi/src/main/java/info/mathhub/uloapi/config/Config.java
rename to src/uloapi/src/main/java/info/mathhub/uloapi/config/Config.java
diff --git a/experimental/uloapi/src/main/java/info/mathhub/uloapi/html/Errors.java b/src/uloapi/src/main/java/info/mathhub/uloapi/html/Errors.java
similarity index 100%
rename from experimental/uloapi/src/main/java/info/mathhub/uloapi/html/Errors.java
rename to src/uloapi/src/main/java/info/mathhub/uloapi/html/Errors.java
diff --git a/experimental/uloapi/src/main/java/info/mathhub/uloapi/html/Filters.java b/src/uloapi/src/main/java/info/mathhub/uloapi/html/Filters.java
similarity index 100%
rename from experimental/uloapi/src/main/java/info/mathhub/uloapi/html/Filters.java
rename to src/uloapi/src/main/java/info/mathhub/uloapi/html/Filters.java
diff --git a/experimental/uloapi/src/main/java/info/mathhub/uloapi/html/Main.java b/src/uloapi/src/main/java/info/mathhub/uloapi/html/Main.java
similarity index 100%
rename from experimental/uloapi/src/main/java/info/mathhub/uloapi/html/Main.java
rename to src/uloapi/src/main/java/info/mathhub/uloapi/html/Main.java
diff --git a/experimental/uloapi/src/main/java/info/mathhub/uloapi/html/Routes.java b/src/uloapi/src/main/java/info/mathhub/uloapi/html/Routes.java
similarity index 100%
rename from experimental/uloapi/src/main/java/info/mathhub/uloapi/html/Routes.java
rename to src/uloapi/src/main/java/info/mathhub/uloapi/html/Routes.java
diff --git a/experimental/uloapi/src/main/java/info/mathhub/uloapi/query/GraphDB.java b/src/uloapi/src/main/java/info/mathhub/uloapi/query/GraphDB.java
similarity index 100%
rename from experimental/uloapi/src/main/java/info/mathhub/uloapi/query/GraphDB.java
rename to src/uloapi/src/main/java/info/mathhub/uloapi/query/GraphDB.java
diff --git a/experimental/uloapi/src/main/java/info/mathhub/uloapi/query/Query.java b/src/uloapi/src/main/java/info/mathhub/uloapi/query/Query.java
similarity index 100%
rename from experimental/uloapi/src/main/java/info/mathhub/uloapi/query/Query.java
rename to src/uloapi/src/main/java/info/mathhub/uloapi/query/Query.java
diff --git a/experimental/uloapi/src/main/java/info/mathhub/uloapi/query/Statistics.java b/src/uloapi/src/main/java/info/mathhub/uloapi/query/Statistics.java
similarity index 100%
rename from experimental/uloapi/src/main/java/info/mathhub/uloapi/query/Statistics.java
rename to src/uloapi/src/main/java/info/mathhub/uloapi/query/Statistics.java
diff --git a/experimental/uloapi/src/main/java/info/mathhub/uloapi/query/Timer.java b/src/uloapi/src/main/java/info/mathhub/uloapi/query/Timer.java
similarity index 100%
rename from experimental/uloapi/src/main/java/info/mathhub/uloapi/query/Timer.java
rename to src/uloapi/src/main/java/info/mathhub/uloapi/query/Timer.java
diff --git a/experimental/uloapi/src/main/java/info/mathhub/uloapi/query/ULO.java b/src/uloapi/src/main/java/info/mathhub/uloapi/query/ULO.java
similarity index 100%
rename from experimental/uloapi/src/main/java/info/mathhub/uloapi/query/ULO.java
rename to src/uloapi/src/main/java/info/mathhub/uloapi/query/ULO.java
diff --git a/experimental/uloapi/src/main/java/info/mathhub/uloapi/rest/Errors.java b/src/uloapi/src/main/java/info/mathhub/uloapi/rest/Errors.java
similarity index 100%
rename from experimental/uloapi/src/main/java/info/mathhub/uloapi/rest/Errors.java
rename to src/uloapi/src/main/java/info/mathhub/uloapi/rest/Errors.java
diff --git a/experimental/uloapi/src/main/java/info/mathhub/uloapi/rest/Filters.java b/src/uloapi/src/main/java/info/mathhub/uloapi/rest/Filters.java
similarity index 100%
rename from experimental/uloapi/src/main/java/info/mathhub/uloapi/rest/Filters.java
rename to src/uloapi/src/main/java/info/mathhub/uloapi/rest/Filters.java
diff --git a/experimental/uloapi/src/main/java/info/mathhub/uloapi/rest/JsonTransformer.java b/src/uloapi/src/main/java/info/mathhub/uloapi/rest/JsonTransformer.java
similarity index 100%
rename from experimental/uloapi/src/main/java/info/mathhub/uloapi/rest/JsonTransformer.java
rename to src/uloapi/src/main/java/info/mathhub/uloapi/rest/JsonTransformer.java
diff --git a/experimental/uloapi/src/main/java/info/mathhub/uloapi/rest/Main.java b/src/uloapi/src/main/java/info/mathhub/uloapi/rest/Main.java
similarity index 100%
rename from experimental/uloapi/src/main/java/info/mathhub/uloapi/rest/Main.java
rename to src/uloapi/src/main/java/info/mathhub/uloapi/rest/Main.java
diff --git a/experimental/uloapi/src/main/java/info/mathhub/uloapi/rest/Routes.java b/src/uloapi/src/main/java/info/mathhub/uloapi/rest/Routes.java
similarity index 100%
rename from experimental/uloapi/src/main/java/info/mathhub/uloapi/rest/Routes.java
rename to src/uloapi/src/main/java/info/mathhub/uloapi/rest/Routes.java
diff --git a/experimental/uloapi/src/main/resources/logback.xml b/src/uloapi/src/main/resources/logback.xml
similarity index 100%
rename from experimental/uloapi/src/main/resources/logback.xml
rename to src/uloapi/src/main/resources/logback.xml
diff --git a/experimental/uloapi/src/main/resources/spark/template/freemarker/base.flt b/src/uloapi/src/main/resources/spark/template/freemarker/base.flt
similarity index 100%
rename from experimental/uloapi/src/main/resources/spark/template/freemarker/base.flt
rename to src/uloapi/src/main/resources/spark/template/freemarker/base.flt
diff --git a/experimental/uloapi/src/main/resources/spark/template/freemarker/error.flt b/src/uloapi/src/main/resources/spark/template/freemarker/error.flt
similarity index 100%
rename from experimental/uloapi/src/main/resources/spark/template/freemarker/error.flt
rename to src/uloapi/src/main/resources/spark/template/freemarker/error.flt
diff --git a/experimental/uloapi/src/main/resources/spark/template/freemarker/index.flt b/src/uloapi/src/main/resources/spark/template/freemarker/index.flt
similarity index 100%
rename from experimental/uloapi/src/main/resources/spark/template/freemarker/index.flt
rename to src/uloapi/src/main/resources/spark/template/freemarker/index.flt
diff --git a/experimental/uloapi/src/main/resources/spark/template/freemarker/queries.flt b/src/uloapi/src/main/resources/spark/template/freemarker/queries.flt
similarity index 100%
rename from experimental/uloapi/src/main/resources/spark/template/freemarker/queries.flt
rename to src/uloapi/src/main/resources/spark/template/freemarker/queries.flt
diff --git a/experimental/uloapi/src/main/resources/spark/template/freemarker/statistics.flt b/src/uloapi/src/main/resources/spark/template/freemarker/statistics.flt
similarity index 100%
rename from experimental/uloapi/src/main/resources/spark/template/freemarker/statistics.flt
rename to src/uloapi/src/main/resources/spark/template/freemarker/statistics.flt
diff --git a/experimental/uloapi/src/main/resources/uloapi.properties b/src/uloapi/src/main/resources/uloapi.properties
similarity index 100%
rename from experimental/uloapi/src/main/resources/uloapi.properties
rename to src/uloapi/src/main/resources/uloapi.properties