diff --git a/.factory/automation.yml b/.factory/automation.yml index 187212d345..36307ce1e2 100644 --- a/.factory/automation.yml +++ b/.factory/automation.yml @@ -69,7 +69,7 @@ build: curl -L https://github.com/doxygen/doxygen/releases/download/Release_1_10_0/doxygen-1.10.0.linux.bin.tar.gz | tar xzO doxygen-1.10.0/bin/doxygen > /var/tmp/doxygen && sudo mv /var/tmp/doxygen /usr/local/bin/ && sudo chmod +x /usr/local/bin/doxygen bazel run @vaticle_dependencies//tool/bazelinstall:remote_cache_setup.sh - DOCS_DIRS="java/docs nodejs/docs python/docs rust/docs cpp/docs c/docs csharp/docs" + DOCS_DIRS="docs/modules/ROOT/partials/java docs/modules/ROOT/partials/nodejs docs/modules/ROOT/partials/python docs/modules/ROOT/partials/rust docs/modules/ROOT/partials/cpp docs/modules/ROOT/partials/c docs/modules/ROOT/partials/csharp" rm -rf $DOCS_DIRS tool/docs/update.sh git add $DOCS_DIRS @@ -293,7 +293,7 @@ build: source tool/test/start-cloud-servers.sh 3 && # use source to receive export vars bazel test //python/tests/integration:test_connection --test_env=ROOT_CA=$ROOT_CA --test_output=streamed --jobs=1 && - # TODO currently broken test + # TODO #635: currently broken test # bazel test //python/tests/integration:test_cloud_failover --test_env=ROOT_CA=$ROOT_CA --test_output=streamed --jobs=1 && export CLOUD_FAILED= || export CLOUD_FAILED=1 tool/test/stop-cloud-servers.sh @@ -541,7 +541,7 @@ build: export SYNC_DEPENDENCIES_TOKEN=$REPO_GITHUB_TOKEN bazel run @vaticle_dependencies//tool/sync:dependencies -- --source ${FACTORY_REPO}@${FACTORY_COMMIT} -# TODO: assembly tests for all drivers to run in factory +# TODO #512: assembly tests for all drivers to run in factory release: filter: diff --git a/BUILD b/BUILD index 5bf7b33be8..d198d3ae12 100644 --- a/BUILD +++ b/BUILD @@ -41,7 +41,7 @@ checkstyle_test( ".circleci/windows/git.patch", "LICENSE", "VERSION", - "docs/*", + "docs/**/*", ]), license_type = "apache-header", ) diff --git a/RELEASE_NOTES_LATEST.md b/RELEASE_NOTES_LATEST.md index b929cb1ddd..5696cb0d04 100644 --- a/RELEASE_NOTES_LATEST.md +++ b/RELEASE_NOTES_LATEST.md @@ -9,7 +9,7 @@ Documentation: https://typedb.com/docs/drivers/rust/overview ```sh -cargo add typedb-driver@2.28.0-rc0 +cargo add typedb-driver@2.28.0 ``` @@ -29,7 +29,7 @@ Documentation: https://typedb.com/docs/drivers/java/overview com.vaticle.typedb typedb-driver - 2.28.0-rc0 + 2.28.0 ``` @@ -42,7 +42,7 @@ Documentation: https://typedb.com/docs/drivers/python/overview Available through https://pypi.org ``` -pip install typedb-driver==2.28.0rc0 +pip install typedb-driver==2.28.0 ``` ### NodeJS driver @@ -51,36 +51,41 @@ NPM package: https://www.npmjs.com/package/typedb-driver Documentation: https://typedb.com/docs/drivers/nodejs/overview ``` -npm install typedb-driver@2.28.0-rc0 +npm install typedb-driver@2.28.0 ``` ### C# driver -NuGet package: Coming soon -Documentation: Coming soon +NuGet package: https://www.nuget.org/packages/TypeDB.Driver +Documentation: https://typedb.com/docs/drivers/csharp/overview ```xml - - - - - - + + + + + + ``` ### C++ driver -Compiled distributions comprising headers and shared libraries available at: https://cloudsmith.io/~typedb/repos/public-release/packages/?q=name:^typedb-driver-cpp+version:2.28.0-rc0 +Compiled distributions comprising headers and shared libraries available at: https://cloudsmith.io/~typedb/repos/public-release/packages/?q=name:^typedb-driver-cpp+version:2.28.0 Documentation: https://typedb.com/docs/drivers/cpp/overview ### C driver -Compiled distributions comprising headers and shared libraries available at: https://cloudsmith.io/~typedb/repos/public-release/packages/?q=name:^typedb-driver-clib+version:2.28.0-rc0 +Compiled distributions comprising headers and shared libraries available at: https://cloudsmith.io/~typedb/repos/public-release/packages/?q=name:^typedb-driver-clib+version:2.28.0 ## New Features +- **Implement a method to convert a JSON object to a JSON string** + + The `toString()` method is callable for JSON class objects. It returns a string. + + - **Address translation** We allow the user to provide a translation map from the advertised server addresses (now treated as generic server names) to the actual addresses the driver shall use to connect to the cloud instances. We require the user to provide the full mapping. @@ -218,14 +223,6 @@ Compiled distributions comprising headers and shared libraries available at: htt ## Bugs Fixed -- **Update Git patch during Windows Circle CI initial job setup** - - We update the Windows Circle CI git patch file to be compatible with the WORKSPACE file which has been recently updated. We also add a check of whether the git patch was successfully applied to catch such mistakes early in the future. - -- **Fix deadsnakes ppa in Circle CI sync-dependencies release job** - - Add `-y` to the `add-apt-repository` command in the Circle CI sync-dependencies release job. - ## Code Refactors - **Implement new steps for getting answers from templated get** @@ -240,6 +237,33 @@ Compiled distributions comprising headers and shared libraries available at: htt ## Other Improvements +- **Fixes to C++ structure based on feedback from website** + Various improvements to the document generation tools to make the C++ and C driver docs on the website more readable + + +- **Update the README.md for the C driver** + + Update the readme file for the latest filenames. + + +- **Fix C# README examples and add issues refs to recent TODOs** + C# driver's examples should be able to be built in any namespace now. + + Some of the recent `TODO`s left in the codebase have been cleaned or marked with a specific GitHub issue number. + + +- **Python: ABC and typing are not interchangeable** + +- **Increase wait time in start-core-server to 10 s, add error message** + +- **Increase bootup timeout to 5 seconds in CI tests** + +- **Deploy C# driver in a separate job** + + Currently, Bazel generates three different build configurations for the underlying FFI library during C# driver deployment. As that requires compilation of the binding generator and lengthy project analysis, that step is prone to random failures (`socket closed`). + + As the full analysis of the issue proved time-consuming, we instead opt to make the C# driver deployment step easily retriable. + - **Fix parsing & formatting issues for C, C++ documentation** Fixes the automatic documentation generation tools for the C & C++ drivers (1) to be consistent with other languages in terms of structure, and (2) removes stray duplication of parameter documentation in method descriptions. @@ -256,7 +280,3 @@ Compiled distributions comprising headers and shared libraries available at: htt We add missing documentation for the `setSupertype` concept API in the NodeJS Driver. -- **Merge master to development after 2.27.0 release** - We merge back changes made during the release process for 2.27.0, including changes to test infrastructure to explicitly disable monitoring (for port clashes) and diagnostics (to avoid spurious error reports). - - diff --git a/RELEASE_TEMPLATE.md b/RELEASE_TEMPLATE.md index af3bbb0f87..a512c3a02b 100644 --- a/RELEASE_TEMPLATE.md +++ b/RELEASE_TEMPLATE.md @@ -56,8 +56,8 @@ npm install typedb-driver@{version} ### C# driver -NuGet package: Coming soon -Documentation: Coming soon +NuGet package: https://www.nuget.org/packages/TypeDB.Driver +Documentation: https://typedb.com/docs/drivers/csharp/overview ```xml diff --git a/VERSION b/VERSION index f0a56dfaa0..90efbd4e31 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.28.0-rc0 +2.28.0 diff --git a/c/BUILD b/c/BUILD index bea63314dd..26c45fafb9 100644 --- a/c/BUILD +++ b/c/BUILD @@ -222,13 +222,13 @@ filegroup( output_group = "header" ) +# TODO: Not hermetic - requires doxygen on the host (https://github.com/vaticle/bazel-distribution/issues/412) doxygen_docs( name = "docs_html", project_name = "TypeDB C Driver", sources = [":_typedb_driver_h_only"], main_page_md = ":README.md", tags = ["manual"], - ) doxygen_c_to_adoc( @@ -236,7 +236,7 @@ doxygen_c_to_adoc( data = [":docs_html"], docs_dirs = dir_mapping, force_file = force_file, - output_dir = "c/docs", + output_dir = "docs/modules/ROOT/partials/c", tags = ["manual"] ) diff --git a/c/README.md b/c/README.md index 99169e9d88..cc4d6ff40a 100644 --- a/c/README.md +++ b/c/README.md @@ -5,24 +5,22 @@ It also serves as the base on which the other wrapper drivers are built. ## Usage The driver is distributed as an archive containing the headers & a shared library. ``` -|- README.md |- include/ | |- typedb_driver.h -| |- ... | |- lib/ - |- typedb-driver-clib-. + |- libtypedb_driver_clib. ``` -As usual, Add the include paths to your compile step & the library to your link step. For windows, the 'import-lib' `typedb-driver-cpp-.if.lib` is provided to link against. -A [sample `CMakeLists`](https://github.com/vaticle/typedb-driver/blob/master/c/tests/assembly/CMakeLists.txt) is available on the TypeDB Driver repository. +As usual, add the include paths to your compile step & the library to your link step. For Windows, the 'import-lib' `typedb_driver_clib.dll.lib` is provided to link against. +A sample [CMakeLists.txt](https://github.com/vaticle/typedb-driver/blob/master/c/tests/assembly/CMakeLists.txt) file is available in the TypeDB Driver repository. Code examples can be found in the [integration tests](https://github.com/vaticle/typedb-driver/blob/master/c/tests/integration/driver_test.c). ## Architecture ### Interface `typedb_driver.h` is a single header containing all the functions needed for a complete TypeDB driver. -Functions parameters & return values are either primitives or pointers to opaque `struct`s. e.g.: +Functions parameters & return values are either primitives or pointers to opaque structs, e.g.: ```c Connection *connection_open_core(const char *address); ``` diff --git a/cpp/BUILD b/cpp/BUILD index aeb7d4d782..82c0eb7579 100644 --- a/cpp/BUILD +++ b/cpp/BUILD @@ -51,6 +51,7 @@ cc_binary( copts = cxxopts, linkopts = select({ "@vaticle_bazel_distribution//platform:is_windows": ["ntdll.lib", "secur32.lib", "crypt32.lib", "ncrypt.lib"], + "@vaticle_bazel_distribution//platform:is_mac": ["-framework CoreFoundation"], "//conditions:default": [], }), local_defines = ["_COMPILING_TYPEDB_DRIVER"], @@ -199,8 +200,7 @@ alias( }) ) -# docs -# TODO: Not hermetic - requires doxygen on the host +# TODO: Not hermetic - requires doxygen on the host (https://github.com/vaticle/bazel-distribution/issues/412) doxygen_docs( name = "docs_html", project_name = "TypeDB C++ Driver", @@ -213,7 +213,7 @@ doxygen_cpp_to_adoc( name = "docs_adoc", data = [":docs_html"], docs_dirs = dir_mapping, - output_dir = 'cpp/docs', + output_dir = 'docs/modules/ROOT/partials/cpp', tags = ["manual"] ) diff --git a/cpp/docs/answer/Iterable__NATIVE_ITER__NATIVE_T__T__HELPER__.adoc b/cpp/docs/answer/Iterable__NATIVE_ITER__NATIVE_T__T__HELPER__.adoc deleted file mode 100644 index 3fa02a2be6..0000000000 --- a/cpp/docs/answer/Iterable__NATIVE_ITER__NATIVE_T__T__HELPER__.adoc +++ /dev/null @@ -1,60 +0,0 @@ -[#_Iterable__NATIVE_ITER__NATIVE_T__T__HELPER_] -=== Iterable< NATIVE_ITER, NATIVE_T, T, HELPER > - -*Package*: `TypeDB` - - - template<typename NATIVE_ITER, typename NATIVE_T, typename T, typename HELPER = IteratorHelper<NATIVE_ITER, NATIVE_T, T>> - - class TypeDB::Iterable< NATIVE_ITER, NATIVE_T, T, HELPER > - - -Result representing a stream of query results. - -Exposes ``<<#_ITERATOR_TypeDBIterable__NATIVE_ITER__NATIVE_T__T__HELPER__begin___,begin()>>`` to get an iterator over the results and ``<<#_ITERATOR_TypeDBIterable__NATIVE_ITER__NATIVE_T__T__HELPER__end___,end()>>`` to check if the end has been reached. - Note: <<#_ITERATOR_TypeDBIterable__NATIVE_ITER__NATIVE_T__T__HELPER__begin___,begin()>> must be called for any server-side exceptions encountered while evaluating the query to be thrown - - -[caption=""] -.Examples -[source,cpp] ----- -for (auto& element : iterable) { ... } -for (auto it = iterable.begin(); it != iterable.end(); ++it ) { ... } // Note: it++ is deleted. ----- - -// tag::methods[] -[#_ITERATOR_TypeDBIterable__NATIVE_ITER__NATIVE_T__T__HELPER__begin___] -==== begin - -[source,cpp] ----- -ITERATOR TypeDB::Iterable< NATIVE_ITER, NATIVE_T, T, HELPER >::begin() ----- - - - -Returns an iterator pointing to the first element. - -[caption=""] -.Returns -`ITERATOR` - -[#_ITERATOR_TypeDBIterable__NATIVE_ITER__NATIVE_T__T__HELPER__end___] -==== end - -[source,cpp] ----- -ITERATOR TypeDB::Iterable< NATIVE_ITER, NATIVE_T, T, HELPER >::end() ----- - - - -Returns an iterator equivalent to the result of advancing past the last element. - -[caption=""] -.Returns -`ITERATOR` - -// end::methods[] - diff --git a/cpp/docs/answer/typedefs.adoc b/cpp/docs/answer/typedefs.adoc deleted file mode 100644 index 9548a0d85e..0000000000 --- a/cpp/docs/answer/typedefs.adoc +++ /dev/null @@ -1,180 +0,0 @@ -[#_ConceptMapIterator] -=== ConceptMapIterator - -Alias for Iterator<_native::ConceptMapIterator, _native::ConceptMap, TypeDB::ConceptMap> - -[#_ConceptMapIterable] -=== ConceptMapIterable - -Alias for Iterable<_native::ConceptMapIterator, _native::ConceptMap, TypeDB::ConceptMap> - -[#_ConceptMapGroupIterable] -=== ConceptMapGroupIterable - -Alias for Iterable<_native::ConceptMapGroupIterator, _native::ConceptMapGroup, TypeDB::ConceptMapGroup> - -[#_ConceptMapGroupIterator] -=== ConceptMapGroupIterator - -Alias for Iterator<_native::ConceptMapGroupIterator, _native::ConceptMapGroup, TypeDB::ConceptMapGroup> - -[#_OwnerAttributePairIterator] -=== OwnerAttributePairIterator - -Alias for Iterator<_native::StringPairIterator, _native::StringPair, OwnerAttributePair> - -[#_OwnerAttributePairIterable] -=== OwnerAttributePairIterable - -Alias for Iterable<_native::StringPairIterator, _native::StringPair, OwnerAttributePair> - -[#_JSONMap] -=== JSONMap - -Alias for std::map - -[#_JSONArray] -=== JSONArray - -Alias for std::vector - -[#_JSONBoolean] -=== JSONBoolean - -Alias for bool - -[#_JSONLong] -=== JSONLong - -Alias for long - -[#_JSONDouble] -=== JSONDouble - -Alias for double - -[#_JSONString] -=== JSONString - -Alias for std::string - -[#_AggregateResult] -=== AggregateResult - -Alias for std::optional> - -[#_AggregateFuture] -=== AggregateFuture - -Alias for Future - -[#_ValueGroupIterable] -=== ValueGroupIterable - -Alias for Iterable<_native::ValueGroupIterator, _native::ValueGroup, TypeDB::ValueGroup> - -[#_ValueGroupIterator] -=== ValueGroupIterator - -Alias for Iterator<_native::ValueGroupIterator, _native::ValueGroup, TypeDB::ValueGroup> - -[#_VoidFuture] -=== VoidFuture - -Alias for Future - -[#_BoolFuture] -=== BoolFuture - -Alias for Future - -[#_StringFuture] -=== StringFuture - -Alias for Future - -[#_OptionalStringFuture] -=== OptionalStringFuture - -Alias for Future, _native::StringPromise> - -[#_StringIterable] -=== StringIterable - -Alias for Iterable<_native::StringIterator, char, std::string> - -[#_StringIterator] -=== StringIterator - -Alias for Iterator<_native::StringIterator, char, std::string> - -[#_DateTime] -=== DateTime - -Alias for std::chrono::time_point< std::chrono::system_clock, std::chrono::milliseconds > - -[#_DatabaseIterator] -=== DatabaseIterator - -Alias for Iterator<_native::DatabaseIterator, _native::Database, TypeDB::Database> - -[#_DatabaseIterable] -=== DatabaseIterable - -Alias for Iterable<_native::DatabaseIterator, _native::Database, TypeDB::Database> - -[#_ReplicaInfoIterable] -=== ReplicaInfoIterable - -Alias for Iterable<_native::ReplicaInfoIterator, _native::ReplicaInfo, ReplicaInfo> - -[#_ReplicaInfoIterator] -=== ReplicaInfoIterator - -Alias for Iterator<_native::ReplicaInfoIterator, _native::ReplicaInfo, ReplicaInfo> - -[#_ExplanationIterator] -=== ExplanationIterator - -Alias for Iterator<_native::ExplanationIterator, _native::Explanation, Explanation> - -[#_ExplanationIterable] -=== ExplanationIterable - -Alias for Iterable<_native::ExplanationIterator, _native::Explanation, Explanation> - -[#_RuleFuture] -=== RuleFuture - -Alias for Future - -[#_OptionalRuleFuture] -=== OptionalRuleFuture - -Alias for Future, _native::RulePromise> - -[#_RuleIterable] -=== RuleIterable - -Alias for Iterable<_native::RuleIterator, _native::Rule, Rule> - -[#_RuleIterator] -=== RuleIterator - -Alias for Iterator<_native::RuleIterator, _native::Rule, Rule> - -[#_JSONIterable] -=== JSONIterable - -Alias for Iterable<_native::StringIterator, char, JSON> - -[#_UserIterator] -=== UserIterator - -Alias for Iterator<_native::UserIterator, _native::User, User> - -[#_UserIterable] -=== UserIterable - -Alias for Iterable<_native::UserIterator, _native::User, User> - diff --git a/cpp/docs_structure.bzl b/cpp/docs_structure.bzl index d325a6f1e1..2e9214904a 100644 --- a/cpp/docs_structure.bzl +++ b/cpp/docs_structure.bzl @@ -29,9 +29,9 @@ dir_mapping = { "JSONType.adoc": "answer", "ValueGroup.adoc": "answer", "OwnerAttributePair.adoc": "answer", - "Future__RETURN__NATIVE_PROMISE__HELPER__.adoc": "answer", - "Iterable__NATIVE_ITER__NATIVE_T__T__HELPER__.adoc" : "answer", - "Iterator__NATIVE_ITER__NATIVE_T__T__HELPER__.adoc" : "answer", + "Future.adoc": "answer", + "Iterable.adoc" : "answer", + "Iterator.adoc" : "answer", "Driver.adoc": "connection", "Credential.adoc": "connection", "UserManager.adoc": "connection", diff --git a/cpp/include/typedb/answer/json.hpp b/cpp/include/typedb/answer/json.hpp index aa3e670f83..8995fad133 100644 --- a/cpp/include/typedb/answer/json.hpp +++ b/cpp/include/typedb/answer/json.hpp @@ -101,7 +101,7 @@ class JSON { JSON(JSON&&); JSON& operator=(JSON&&); - /* + /** * The JSONType of this JSON object *

Examples

*
@@ -170,6 +170,11 @@ class JSON {
      * if this JSON object holds a string value, returns the value. Else throws an exception
      */
     const JSONString& asString() const;
+
+    /**
+     * Convert a JSON object to a string
+     */
+    const std::string toString() const;
     const JSONNull& asNull() const;
 
 private:
diff --git a/cpp/lib/answer/json.cpp b/cpp/lib/answer/json.cpp
index 02da147db0..3dd8d3aa37 100644
--- a/cpp/lib/answer/json.cpp
+++ b/cpp/lib/answer/json.cpp
@@ -17,10 +17,9 @@
  * under the License.
  */
 
+#include 
 #include "nlohmann/json.hpp"
-
 #include "typedb/answer/json.hpp"
-
 #include "typedb/common/error_message.hpp"
 
 #include "../common/macros.hpp"
@@ -254,6 +253,15 @@ const JSONString& JSON::asString() const {
     if (!isString()) throw Utils::exception(DriverError::INVALID_JSON_CAST, NAME(_type), NAME(JSONType::STRING));
     return stringValue;
 }
+
+void appendToString(std::stringstream& ss, const JSON& json);
+
+const std::string JSON::toString() const {
+    std::stringstream ss;
+    appendToString(ss, *this);
+    return JSONString(ss.str());
+}
+
 const JSONNull& JSON::asNull() const {
     if (!isNull()) throw Utils::exception(DriverError::INVALID_JSON_CAST, NAME(_type), NAME(JSONType::NULL_VALUE));
     return nullValue;
@@ -319,6 +327,56 @@ JSON JSONBuilder::buildArray(const nlohmann::json& from) {
     return JSON(std::move(a));
 }
 
+void appendToString(std::stringstream& ss, const JSON& json) {
+    switch (json.type()) {
+        case JSONType::STRING: {
+            ss << "\"" << json.asString() << "\"";
+            break;
+        }
+        case JSONType::ARRAY:{
+            ss << "[";
+            for (size_t i = 0; i < json.asArray().size(); ++i) {
+                if (i > 0) ss << ", ";
+                appendToString(ss, json.asArray()[i]);
+            }
+            ss << "]";
+            break;
+        }
+        case JSONType::MAP: {
+            ss << "{";
+            bool first = true;
+            for (const auto& pair : json.asMap()) {
+                if (!first) ss << ", ";
+                ss << "\"" << pair.first << "\": ";
+                appendToString(ss, pair.second);
+                first = false;
+            }
+            ss << "}";
+            break;
+        }
+        case JSONType::BOOLEAN: {
+            ss << (json.asBoolean() ? "true" : "false");
+            break;
+        }
+        case JSONType::LONG: {
+            ss << json.asLong();
+            break;
+        }
+        case JSONType::DOUBLE: {
+            ss << json.asDouble();
+            break;
+        }
+        case JSONType::NULL_VALUE: {
+            ss << "null";
+            break;
+        }
+        case JSONType::INVALID: {
+            throw Utils::exception(TypeDB::InternalError::INVALID_NATIVE_HANDLE);
+            break;
+        }
+    }
+}
+
 // JSONIterable
 TYPEDB_ITERATOR_HELPER_1(
     _native::StringIterator,
diff --git a/cpp/test/assembly/CMakeLists.txt b/cpp/test/assembly/CMakeLists.txt
index 3738d7928c..c34208a1a7 100644
--- a/cpp/test/assembly/CMakeLists.txt
+++ b/cpp/test/assembly/CMakeLists.txt
@@ -29,6 +29,8 @@ include_directories(${TYPEDB_ASSEMBLY}/include)
 add_executable(test_assembly test.cpp)
 IF (WIN32)
     target_link_libraries(test_assembly typedb-driver-cpp.if.lib)
+ELSEIF (APPLE)
+    target_link_libraries(test_assembly typedb-driver-cpp "-framework CoreFoundation")
 ELSE()
     target_link_libraries(test_assembly typedb-driver-cpp)
 ENDIF()
diff --git a/cpp/test/behaviour/steps/common/common_steps.cpp b/cpp/test/behaviour/steps/common/common_steps.cpp
index 679b13dba3..512469d822 100644
--- a/cpp/test/behaviour/steps/common/common_steps.cpp
+++ b/cpp/test/behaviour/steps/common/common_steps.cpp
@@ -30,7 +30,7 @@ cucumber_bdd::StepCollection commonSteps = {
     BDD_STEP("wait (\\d+) seconds", {
         std::this_thread::sleep_for(std::chrono::seconds(atoi(matches[1].str().c_str())));
     }),
-    BDD_NOOP("set time-zone is: (.*)"), // TODO: Decide if we want to implement (can be changed only for POSIX).
+    BDD_NOOP("set time-zone is: (.*)"), // TODO #636: consider implementation (looks like it can be changed only for POSIX).
     BDD_NOOP("typedb has configuration"),
 };
 
diff --git a/cpp/test/cucumber/include/cucumber_bdd/runner.hpp b/cpp/test/cucumber/include/cucumber_bdd/runner.hpp
index abca35bc7c..28d69d7cb4 100644
--- a/cpp/test/cucumber/include/cucumber_bdd/runner.hpp
+++ b/cpp/test/cucumber/include/cucumber_bdd/runner.hpp
@@ -57,7 +57,7 @@ class TestRunner : public TestRunnerBase {
         steps.reserve(totalSteps);
         for (const StepCollection stepVec : stepLists) {
             for (const cucumber_bdd::StepDefinition stepDef : stepVec) {
-                steps.push_back(StepDefinition{stepDef.regex, stepDef.impl});  // TODO: Avoid deep copy?
+                steps.push_back(StepDefinition{stepDef.regex, stepDef.impl});
             }
         }
         assert(steps.size() == totalSteps);
diff --git a/cpp/test/integration/test_core.cpp b/cpp/test/integration/test_core.cpp
index e3107a4384..fab36814e6 100644
--- a/cpp/test/integration/test_core.cpp
+++ b/cpp/test/integration/test_core.cpp
@@ -158,6 +158,85 @@ TEST(TestConnection, TestMissingPort) {
     }
 }
 
+TEST(TestJSON, TestJSON) {
+    std::string dbName = "test_json";
+    TypeDB::Driver driver = TypeDB::Driver::coreDriver("127.0.0.1:1729");
+    delete_if_exists(driver, dbName);
+    driver.databases.create(dbName);
+    TypeDB::Options options;
+
+    {
+        auto sess = driver.session(dbName, TypeDB::SessionType::SCHEMA, options);
+        auto tx = sess.transaction(TypeDB::TransactionType::WRITE, options);
+        std::string schema = R"(
+                            define
+                            email sub attribute, value string;
+                            name sub attribute, value string;
+                            user sub entity,
+                                owns email @key,
+                                owns name;)";
+        tx.query.define(schema, options).wait();
+        tx.commit();
+    }
+
+    {
+        auto sess = driver.session(dbName, TypeDB::SessionType::DATA, options);
+        auto tx = sess.transaction(TypeDB::TransactionType::WRITE, options);
+        std::string insertQuery = "insert $user isa user, has name 'Bob', has email 'bob@vaticle.com';";
+        auto res = tx.query.insert(insertQuery, options);
+        for (auto& it : res)
+            ;
+        tx.commit();
+    }
+
+    {
+        std::string expectedJSON = R"({"u": {)";
+        expectedJSON.append(R"("email": [{"type": {"label": "email", "root": "attribute", "value_type": "string"}, "value": "bob@vaticle.com"}], )");
+        expectedJSON.append(R"("name": [{"type": {"label": "name", "root": "attribute", "value_type": "string"}, "value": "Bob"}], )");
+        expectedJSON.append(R"("type": {"label": "user", "root": "entity"}}})");
+        auto sess = driver.session(dbName, TypeDB::SessionType::DATA, options);
+        auto tx = sess.transaction(TypeDB::TransactionType::READ, options);
+        std::string fetchQuery = "match $u isa user, has name 'Bob'; fetch $u: name, email;";
+        TypeDB::JSONIterable response = tx.query.fetch(fetchQuery, options);
+        std::string result;
+        for (TypeDB::JSON json : response) {
+            result.append(json.toString());
+        }
+        ASSERT_EQ(expectedJSON, result);
+        ASSERT_EQ(expectedJSON, JSON::parse(expectedJSON).toString());
+    }
+
+    {
+        auto sess = driver.session(dbName, TypeDB::SessionType::DATA, options);
+        auto tx = sess.transaction(TypeDB::TransactionType::READ, options);
+        std::string expectedLong = R"({"l": {"value": 22, "value_type": "long"}})";
+        TypeDB::JSONIterable result = tx.query.fetch("match ?l = 22; fetch ?l;", options);
+        std::string resLong;
+        for (TypeDB::JSON json : result) {
+            resLong.append(json.toString());
+        }
+        ASSERT_EQ(resLong, expectedLong);
+
+        std::string expectedDouble = R"({"d": {"value": 2.22, "value_type": "double"}})";
+        result = tx.query.fetch("match ?d = 2.22; fetch ?d;", options);
+        std::string resDouble;
+        for (TypeDB::JSON json : result) {
+            resDouble.append(json.toString());
+        }
+        ASSERT_EQ(resDouble, expectedDouble);
+
+        std::string expectedBool = R"({"b": {"value": true, "value_type": "boolean"}})";
+        result = tx.query.fetch("match ?b = true; fetch ?b;", options);
+        std::string resBool;
+        for (TypeDB::JSON json : result) {
+            resBool.append(json.toString());
+        }
+        ASSERT_EQ(resBool, expectedBool);
+
+        tx.close();
+    }
+}
+
 int main(int argc, char** argv) {
     ::testing::InitGoogleTest(&argc, argv);
     return RUN_ALL_TESTS();
diff --git a/csharp/BUILD b/csharp/BUILD
index 98291c2adb..dab117bbb8 100644
--- a/csharp/BUILD
+++ b/csharp/BUILD
@@ -118,7 +118,7 @@ filegroup(
     srcs = [":Drivers.cs"],
 )
 
-# TODO: Not hermetic - requires doxygen on the host
+# TODO: Not hermetic - requires doxygen on the host (https://github.com/vaticle/bazel-distribution/issues/412)
 doxygen_docs(
     name = "docs_html",
     project_name = "TypeDB C# Driver",
@@ -135,7 +135,7 @@ doxygen_csharp_to_adoc(
     name = "docs_adoc",
     data = [":docs_html"],
     docs_dirs = dir_mapping,
-    output_dir = 'csharp/docs',
+    output_dir = 'docs/modules/ROOT/partials/csharp',
     tags = ["manual"]
 )
 
diff --git a/csharp/README.md b/csharp/README.md
index b6a477d59b..b5a0d1935f 100644
--- a/csharp/README.md
+++ b/csharp/README.md
@@ -43,6 +43,7 @@ Any error encountered will throw a `TypeDBDriverException`. Note that methods wh
 ### TypeDB Core
 Connect to TypeDB using `Drivers.CoreDriver` and perform basic read/write operations:
 ```cs
+using TypeDB.Driver;
 using TypeDB.Driver.Api;
 using TypeDB.Driver.Common;
 
@@ -133,6 +134,7 @@ class WelcomeToTypeDB
 ### TypeDB Cloud
 Connect to TypeDB cloud instances using `Drivers.CloudDriver`:
 ```cs
+using TypeDB.Driver;
 using TypeDB.Driver.Api;
 using TypeDB.Driver.Common;
 
@@ -173,6 +175,7 @@ class WelcomeToTypeDB
                         transaction.Commit();
                     }
                 }
+             }
         }
         catch (TypeDBDriverException e)
         {
diff --git a/csharp/Test/Behaviour/Util/UtilSteps.cs b/csharp/Test/Behaviour/Util/UtilSteps.cs
index 580974c84a..9fa9b5ed1b 100644
--- a/csharp/Test/Behaviour/Util/UtilSteps.cs
+++ b/csharp/Test/Behaviour/Util/UtilSteps.cs
@@ -36,7 +36,7 @@ public void WaitSeconds(int seconds)
         [When(@"set time-zone is: {}")]
         public void SetTimeZoneIs(string timeZoneId)
         {
-            // no-op: C# doesn't support time zone changes.
+            // no-op: C# doesn't support time zone changes. // TODO #636: consider implementation
         }
     }
 }
diff --git a/docs/antora.yml b/docs/antora.yml
new file mode 100644
index 0000000000..f59bd9c694
--- /dev/null
+++ b/docs/antora.yml
@@ -0,0 +1,2 @@
+name: api-ref
+version: 2.x
diff --git a/c/docs/answer/conceptmap.adoc b/docs/modules/ROOT/partials/c/answer/conceptmap.adoc
similarity index 99%
rename from c/docs/answer/conceptmap.adoc
rename to docs/modules/ROOT/partials/c/answer/conceptmap.adoc
index d4b85d78a5..7bcb453cab 100644
--- a/c/docs/answer/conceptmap.adoc
+++ b/docs/modules/ROOT/partials/c/answer/conceptmap.adoc
@@ -1,4 +1,4 @@
-[#_methods__answer__conceptmap]
+[#_methods_answer_conceptmap]
 === conceptmap
 
 [#_Struct_ConceptMap]
diff --git a/c/docs/answer/explanation.adoc b/docs/modules/ROOT/partials/c/answer/explanation.adoc
similarity index 98%
rename from c/docs/answer/explanation.adoc
rename to docs/modules/ROOT/partials/c/answer/explanation.adoc
index 808daff67f..0cdd4a1193 100644
--- a/c/docs/answer/explanation.adoc
+++ b/docs/modules/ROOT/partials/c/answer/explanation.adoc
@@ -1,4 +1,4 @@
-[#_methods__answer__explanation]
+[#_methods_answer_explanation]
 === explanation
 
 [#_Struct_Explainable]
@@ -15,6 +15,20 @@ Contains an explainable object.
 
 Contains explainable objects.
 
+[#_Struct_Explanation]
+==== Struct Explanation
+
+
+
+An explanation of which rule was used for inferring the explained concept, the condition of the rule, the conclusion of the rule, and the mapping of variables between the query and the rule’s conclusion.
+
+[#_Struct_ExplanationIterator]
+==== Struct ExplanationIterator
+
+
+
+Iterator over the ``Explanation``s in the result of the explain query.
+
 [#_explainable_drop]
 ==== explainable_drop
 
@@ -207,23 +221,6 @@ A string representation of this ``Explainables`` object
 .Returns
 `char*`
 
-[#_methods__answer__explanation]
-=== explanation
-
-[#_Struct_Explanation]
-==== Struct Explanation
-
-
-
-An explanation of which rule was used for inferring the explained concept, the condition of the rule, the conclusion of the rule, and the mapping of variables between the query and the rule’s conclusion.
-
-[#_Struct_ExplanationIterator]
-==== Struct ExplanationIterator
-
-
-
-Iterator over the ``Explanation``s in the result of the explain query.
-
 [#_explanation_drop]
 ==== explanation_drop
 
diff --git a/c/docs/answer/primitives.adoc b/docs/modules/ROOT/partials/c/answer/primitives.adoc
similarity index 96%
rename from c/docs/answer/primitives.adoc
rename to docs/modules/ROOT/partials/c/answer/primitives.adoc
index 8ee02bd7f2..12db2da22c 100644
--- a/c/docs/answer/primitives.adoc
+++ b/docs/modules/ROOT/partials/c/answer/primitives.adoc
@@ -1,6 +1,13 @@
-[#_methods__answer__primitives]
+[#_methods_answer_primitives]
 === primitives
 
+[#_Struct_BoolPromise]
+==== Struct BoolPromise
+
+
+
+Promise object representing the result of an asynchronous operation. Use bool_promise_resolve(BoolPromise*) to wait for and retrieve the resulting boolean value.
+
 [#_Struct_StringIterator]
 ==== Struct StringIterator
 
@@ -29,6 +36,29 @@ Iterator over the ``StringPair``s representing explainable owner-attribute varia
 
 Promise object representing the result of an asynchronous operation. Use string_promise_resolve(StringPromise*) to wait for and retrieve the resulting string.
 
+[#_Struct_VoidPromise]
+==== Struct VoidPromise
+
+
+
+Promise object representing the result of an asynchronous operation. A VoidPromise does not return a value, but must be resolved using void_promise_resolve(VoidPromise*) to ensure the operation has completed, or for a failed operation to set the error.
+
+[#_bool_promise_resolve]
+==== bool_promise_resolve
+
+[source,cpp]
+----
+bool bool_promise_resolve(struct BoolPromise* promise)
+----
+
+
+
+Waits for and returns the result of the operation represented by the ``BoolPromise`` object. In case the operation failed, the error flag will only be set when the promise is resolved. The native promise object is freed when it is resolved.
+
+[caption=""]
+.Returns
+`bool`
+
 [#_string_free]
 ==== string_free
 
@@ -141,42 +171,6 @@ Waits for and returns the result of the operation represented by the ``BoolPromi
 .Returns
 `char*`
 
-[#_methods__answer__primitives]
-=== primitives
-
-[#_Struct_BoolPromise]
-==== Struct BoolPromise
-
-
-
-Promise object representing the result of an asynchronous operation. Use bool_promise_resolve(BoolPromise*) to wait for and retrieve the resulting boolean value.
-
-[#_bool_promise_resolve]
-==== bool_promise_resolve
-
-[source,cpp]
-----
-bool bool_promise_resolve(struct BoolPromise* promise)
-----
-
-
-
-Waits for and returns the result of the operation represented by the ``BoolPromise`` object. In case the operation failed, the error flag will only be set when the promise is resolved. The native promise object is freed when it is resolved.
-
-[caption=""]
-.Returns
-`bool`
-
-[#_methods__answer__primitives]
-=== primitives
-
-[#_Struct_VoidPromise]
-==== Struct VoidPromise
-
-
-
-Promise object representing the result of an asynchronous operation. A VoidPromise does not return a value, but must be resolved using void_promise_resolve(VoidPromise*) to ensure the operation has completed, or for a failed operation to set the error.
-
 [#_void_promise_resolve]
 ==== void_promise_resolve
 
diff --git a/c/docs/answer/valuegroup.adoc b/docs/modules/ROOT/partials/c/answer/valuegroup.adoc
similarity index 98%
rename from c/docs/answer/valuegroup.adoc
rename to docs/modules/ROOT/partials/c/answer/valuegroup.adoc
index 4a06fe5c91..862f569498 100644
--- a/c/docs/answer/valuegroup.adoc
+++ b/docs/modules/ROOT/partials/c/answer/valuegroup.adoc
@@ -1,4 +1,4 @@
-[#_methods__answer__valuegroup]
+[#_methods_answer_valuegroup]
 === valuegroup
 
 [#_Struct_ValueGroup]
diff --git a/c/docs/concept/attribute.adoc b/docs/modules/ROOT/partials/c/concept/attribute.adoc
similarity index 96%
rename from c/docs/concept/attribute.adoc
rename to docs/modules/ROOT/partials/c/concept/attribute.adoc
index ee1c0e181b..34848bca2a 100644
--- a/c/docs/concept/attribute.adoc
+++ b/docs/modules/ROOT/partials/c/concept/attribute.adoc
@@ -1,4 +1,4 @@
-[#_methods__concept__attribute]
+[#_methods_concept_attribute]
 === attribute
 
 [#_attribute_get_owners]
diff --git a/c/docs/concept/concept.adoc b/docs/modules/ROOT/partials/c/concept/concept.adoc
similarity index 99%
rename from c/docs/concept/concept.adoc
rename to docs/modules/ROOT/partials/c/concept/concept.adoc
index 4b78d05a35..aa89b4e380 100644
--- a/c/docs/concept/concept.adoc
+++ b/docs/modules/ROOT/partials/c/concept/concept.adoc
@@ -1,4 +1,4 @@
-[#_methods__concept__concept]
+[#_methods_concept_concept]
 === concept
 
 [#_Struct_Concept]
diff --git a/c/docs/concept/entity.adoc b/docs/modules/ROOT/partials/c/concept/entity.adoc
similarity index 89%
rename from c/docs/concept/entity.adoc
rename to docs/modules/ROOT/partials/c/concept/entity.adoc
index 459987d90c..d10ad1460d 100644
--- a/c/docs/concept/entity.adoc
+++ b/docs/modules/ROOT/partials/c/concept/entity.adoc
@@ -1,4 +1,4 @@
-[#_methods__concept__entity]
+[#_methods_concept_entity]
 === entity
 
 [#_entity_get_type]
diff --git a/c/docs/concept/relation.adoc b/docs/modules/ROOT/partials/c/concept/relation.adoc
similarity index 98%
rename from c/docs/concept/relation.adoc
rename to docs/modules/ROOT/partials/c/concept/relation.adoc
index c040ecc73c..ee6f912b59 100644
--- a/c/docs/concept/relation.adoc
+++ b/docs/modules/ROOT/partials/c/concept/relation.adoc
@@ -1,4 +1,4 @@
-[#_methods__concept__relation]
+[#_methods_concept_relation]
 === relation
 
 [#_relation_add_role_player]
diff --git a/c/docs/concept/roleplayer.adoc b/docs/modules/ROOT/partials/c/concept/roleplayer.adoc
similarity index 98%
rename from c/docs/concept/roleplayer.adoc
rename to docs/modules/ROOT/partials/c/concept/roleplayer.adoc
index a0347b9eb7..9379c0bde7 100644
--- a/c/docs/concept/roleplayer.adoc
+++ b/docs/modules/ROOT/partials/c/concept/roleplayer.adoc
@@ -1,4 +1,4 @@
-[#_methods__concept__roleplayer]
+[#_methods_concept_roleplayer]
 === roleplayer
 
 [#_Struct_RolePlayer]
diff --git a/c/docs/concept/thing.adoc b/docs/modules/ROOT/partials/c/concept/thing.adoc
similarity index 99%
rename from c/docs/concept/thing.adoc
rename to docs/modules/ROOT/partials/c/concept/thing.adoc
index 8164aac173..6499256951 100644
--- a/c/docs/concept/thing.adoc
+++ b/docs/modules/ROOT/partials/c/concept/thing.adoc
@@ -1,4 +1,4 @@
-[#_methods__concept__thing]
+[#_methods_concept_thing]
 === thing
 
 [#_thing_delete]
diff --git a/c/docs/concept/value.adoc b/docs/modules/ROOT/partials/c/concept/value.adoc
similarity index 99%
rename from c/docs/concept/value.adoc
rename to docs/modules/ROOT/partials/c/concept/value.adoc
index d7144cfe4e..de08b9be96 100644
--- a/c/docs/concept/value.adoc
+++ b/docs/modules/ROOT/partials/c/concept/value.adoc
@@ -1,4 +1,4 @@
-[#_methods__concept__value]
+[#_methods_concept_value]
 === value
 
 [#_value_get_boolean]
diff --git a/c/docs/connection/connection.adoc b/docs/modules/ROOT/partials/c/connection/connection.adoc
similarity index 97%
rename from c/docs/connection/connection.adoc
rename to docs/modules/ROOT/partials/c/connection/connection.adoc
index 058c5e9323..11d9d82b71 100644
--- a/c/docs/connection/connection.adoc
+++ b/docs/modules/ROOT/partials/c/connection/connection.adoc
@@ -1,23 +1,4 @@
-[#_methods__connection__connection]
-=== connection
-
-[#_init_logging]
-==== init_logging
-
-[source,cpp]
-----
-void init_logging(void)
-----
-
-
-
-Enables logging in the TypeDB driver.
-
-[caption=""]
-.Returns
-`void`
-
-[#_methods__connection__connection]
+[#_methods_connection_connection]
 === connection
 
 [#_Struct_Connection]
@@ -156,3 +137,19 @@ a| `address` a| The address of the TypeDB server a| `const char*`
 .Returns
 `struct Connection*`
 
+[#_init_logging]
+==== init_logging
+
+[source,cpp]
+----
+void init_logging(void)
+----
+
+
+
+Enables logging in the TypeDB driver.
+
+[caption=""]
+.Returns
+`void`
+
diff --git a/c/docs/connection/credential.adoc b/docs/modules/ROOT/partials/c/connection/credential.adoc
similarity index 96%
rename from c/docs/connection/credential.adoc
rename to docs/modules/ROOT/partials/c/connection/credential.adoc
index a3dfd08123..cdce675885 100644
--- a/c/docs/connection/credential.adoc
+++ b/docs/modules/ROOT/partials/c/connection/credential.adoc
@@ -1,4 +1,4 @@
-[#_methods__connection__credential]
+[#_methods_connection_credential]
 === credential
 
 [#_Struct_Credential]
diff --git a/c/docs/connection/database.adoc b/docs/modules/ROOT/partials/c/connection/database.adoc
similarity index 99%
rename from c/docs/connection/database.adoc
rename to docs/modules/ROOT/partials/c/connection/database.adoc
index e8ef2b9f6e..9a1b004125 100644
--- a/c/docs/connection/database.adoc
+++ b/docs/modules/ROOT/partials/c/connection/database.adoc
@@ -1,4 +1,4 @@
-[#_methods__connection__database]
+[#_methods_connection_database]
 === database
 
 [#_Struct_Database]
diff --git a/c/docs/connection/replica.adoc b/docs/modules/ROOT/partials/c/connection/replica.adoc
similarity index 98%
rename from c/docs/connection/replica.adoc
rename to docs/modules/ROOT/partials/c/connection/replica.adoc
index f93370f3a4..47a743ec96 100644
--- a/c/docs/connection/replica.adoc
+++ b/docs/modules/ROOT/partials/c/connection/replica.adoc
@@ -1,4 +1,4 @@
-[#_methods__connection__replica]
+[#_methods_connection_replica]
 === replica
 
 [#_Struct_ReplicaInfo]
diff --git a/c/docs/connection/user.adoc b/docs/modules/ROOT/partials/c/connection/user.adoc
similarity index 99%
rename from c/docs/connection/user.adoc
rename to docs/modules/ROOT/partials/c/connection/user.adoc
index a295fb0546..3381fb2c47 100644
--- a/c/docs/connection/user.adoc
+++ b/docs/modules/ROOT/partials/c/connection/user.adoc
@@ -1,4 +1,4 @@
-[#_methods__connection__user]
+[#_methods_connection_user]
 === user
 
 [#_Struct_User]
diff --git a/c/docs/errors/error.adoc b/docs/modules/ROOT/partials/c/errors/error.adoc
similarity index 91%
rename from c/docs/errors/error.adoc
rename to docs/modules/ROOT/partials/c/errors/error.adoc
index 52932bb9d9..9071154e79 100644
--- a/c/docs/errors/error.adoc
+++ b/docs/modules/ROOT/partials/c/errors/error.adoc
@@ -1,4 +1,4 @@
-[#_methods__errors__error]
+[#_methods_errors_error]
 === error
 
 [#_Struct_Error]
@@ -8,6 +8,22 @@
 
 Represents errors encountered during operation.
 
+[#_check_error]
+==== check_error
+
+[source,cpp]
+----
+bool check_error(void)
+----
+
+
+
+Checks if the error flag was set by the last operation. If true, the error can be retrieved using get_last_error(void)
+
+[caption=""]
+.Returns
+`bool`
+
 [#_error_code]
 ==== error_code
 
@@ -56,9 +72,6 @@ Returns the error message of the ``Error`` object
 .Returns
 `char*`
 
-[#_methods__errors__error]
-=== error
-
 [#_get_last_error]
 ==== get_last_error
 
@@ -75,22 +88,3 @@ Returns the error which set the error flag.
 .Returns
 `struct Error*`
 
-[#_methods__errors__error]
-=== error
-
-[#_check_error]
-==== check_error
-
-[source,cpp]
-----
-bool check_error(void)
-----
-
-
-
-Checks if the error flag was set by the last operation. If true, the error can be retrieved using get_last_error(void)
-
-[caption=""]
-.Returns
-`bool`
-
diff --git a/c/docs/errors/schemaexception.adoc b/docs/modules/ROOT/partials/c/errors/schemaexception.adoc
similarity index 97%
rename from c/docs/errors/schemaexception.adoc
rename to docs/modules/ROOT/partials/c/errors/schemaexception.adoc
index d831d4c30a..beafeb3f2d 100644
--- a/c/docs/errors/schemaexception.adoc
+++ b/docs/modules/ROOT/partials/c/errors/schemaexception.adoc
@@ -1,4 +1,4 @@
-[#_methods__errors__schemaexception]
+[#_methods_errors_schemaexception]
 === schemaexception
 
 [#_Struct_SchemaException]
diff --git a/c/docs/logic/logic.adoc b/docs/modules/ROOT/partials/c/logic/logic.adoc
similarity index 97%
rename from c/docs/logic/logic.adoc
rename to docs/modules/ROOT/partials/c/logic/logic.adoc
index ac6ef7600b..687bdf8d7c 100644
--- a/c/docs/logic/logic.adoc
+++ b/docs/modules/ROOT/partials/c/logic/logic.adoc
@@ -1,4 +1,4 @@
-[#_methods__logic__logic]
+[#_methods_logic_logic]
 === logic
 
 [#_logic_manager_get_rule]
diff --git a/c/docs/logic/rule.adoc b/docs/modules/ROOT/partials/c/logic/rule.adoc
similarity index 99%
rename from c/docs/logic/rule.adoc
rename to docs/modules/ROOT/partials/c/logic/rule.adoc
index b5cb6fadc1..3e1463db28 100644
--- a/c/docs/logic/rule.adoc
+++ b/docs/modules/ROOT/partials/c/logic/rule.adoc
@@ -1,4 +1,4 @@
-[#_methods__logic__rule]
+[#_methods_logic_rule]
 === rule
 
 [#_Struct_Rule]
diff --git a/c/docs/schema/annotation.adoc b/docs/modules/ROOT/partials/c/schema/annotation.adoc
similarity index 98%
rename from c/docs/schema/annotation.adoc
rename to docs/modules/ROOT/partials/c/schema/annotation.adoc
index e1f53b897e..450f5a7ee8 100644
--- a/c/docs/schema/annotation.adoc
+++ b/docs/modules/ROOT/partials/c/schema/annotation.adoc
@@ -1,4 +1,4 @@
-[#_methods__schema__annotation]
+[#_methods_schema_annotation]
 === annotation
 
 [#_Struct_Annotation]
diff --git a/c/docs/schema/attributetype.adoc b/docs/modules/ROOT/partials/c/schema/attributetype.adoc
similarity index 99%
rename from c/docs/schema/attributetype.adoc
rename to docs/modules/ROOT/partials/c/schema/attributetype.adoc
index 618c585564..59b4c65ba9 100644
--- a/c/docs/schema/attributetype.adoc
+++ b/docs/modules/ROOT/partials/c/schema/attributetype.adoc
@@ -1,4 +1,4 @@
-[#_methods__schema__attributetype]
+[#_methods_schema_attributetype]
 === attributetype
 
 [#_attribute_type_get]
diff --git a/c/docs/schema/entitytype.adoc b/docs/modules/ROOT/partials/c/schema/entitytype.adoc
similarity index 98%
rename from c/docs/schema/entitytype.adoc
rename to docs/modules/ROOT/partials/c/schema/entitytype.adoc
index b1c6687653..c8ac5fe1fc 100644
--- a/c/docs/schema/entitytype.adoc
+++ b/docs/modules/ROOT/partials/c/schema/entitytype.adoc
@@ -1,4 +1,4 @@
-[#_methods__schema__entitytype]
+[#_methods_schema_entitytype]
 === entitytype
 
 [#_entity_type_create]
diff --git a/c/docs/schema/relationtype.adoc b/docs/modules/ROOT/partials/c/schema/relationtype.adoc
similarity index 99%
rename from c/docs/schema/relationtype.adoc
rename to docs/modules/ROOT/partials/c/schema/relationtype.adoc
index 53db5c5f81..fe095832b1 100644
--- a/c/docs/schema/relationtype.adoc
+++ b/docs/modules/ROOT/partials/c/schema/relationtype.adoc
@@ -1,4 +1,4 @@
-[#_methods__schema__relationtype]
+[#_methods_schema_relationtype]
 === relationtype
 
 [#_relation_type_create]
diff --git a/c/docs/schema/roletype.adoc b/docs/modules/ROOT/partials/c/schema/roletype.adoc
similarity index 99%
rename from c/docs/schema/roletype.adoc
rename to docs/modules/ROOT/partials/c/schema/roletype.adoc
index 154d3941b7..d596752ea5 100644
--- a/c/docs/schema/roletype.adoc
+++ b/docs/modules/ROOT/partials/c/schema/roletype.adoc
@@ -1,4 +1,4 @@
-[#_methods__schema__roletype]
+[#_methods_schema_roletype]
 === roletype
 
 [#_role_type_delete]
diff --git a/c/docs/schema/transitivity.adoc b/docs/modules/ROOT/partials/c/schema/transitivity.adoc
similarity index 92%
rename from c/docs/schema/transitivity.adoc
rename to docs/modules/ROOT/partials/c/schema/transitivity.adoc
index 4eb18a8e14..864f23f120 100644
--- a/c/docs/schema/transitivity.adoc
+++ b/docs/modules/ROOT/partials/c/schema/transitivity.adoc
@@ -1,4 +1,4 @@
-[#_methods__schema__transitivity]
+[#_methods_schema_transitivity]
 === transitivity
 
 [#_Struct_Transitivity]
diff --git a/c/docs/schema/valuetype.adoc b/docs/modules/ROOT/partials/c/schema/valuetype.adoc
similarity index 57%
rename from c/docs/schema/valuetype.adoc
rename to docs/modules/ROOT/partials/c/schema/valuetype.adoc
index cb6ebfe27f..8f53b1d00b 100644
--- a/c/docs/schema/valuetype.adoc
+++ b/docs/modules/ROOT/partials/c/schema/valuetype.adoc
@@ -1,4 +1,4 @@
-[#_methods__schema__valuetype]
+[#_methods_schema_valuetype]
 === valuetype
 
 [#_Struct_ValueType]
@@ -31,21 +31,3 @@ a| `String`
 |===
 // end::enum_constants[]
 
-[#_Enum_ValueType]
-==== Enum ValueType
-
-
-
-Retrieves the ``ValueType`` of this ``AttributeType``.
-
-[caption=""]
-.Enum constants
-// tag::enum_constants[]
-[cols=""]
-[options="header"]
-|===
-|Name
-a| `attribute_type_get_value_type (const struct Concept *attribute_type)`
-|===
-// end::enum_constants[]
-
diff --git a/c/docs/session/options.adoc b/docs/modules/ROOT/partials/c/session/options.adoc
similarity index 99%
rename from c/docs/session/options.adoc
rename to docs/modules/ROOT/partials/c/session/options.adoc
index e3d961d7ec..91923d882b 100644
--- a/c/docs/session/options.adoc
+++ b/docs/modules/ROOT/partials/c/session/options.adoc
@@ -1,4 +1,4 @@
-[#_methods__session__options]
+[#_methods_session_options]
 === options
 
 [#_Struct_Options]
diff --git a/c/docs/session/session.adoc b/docs/modules/ROOT/partials/c/session/session.adoc
similarity index 99%
rename from c/docs/session/session.adoc
rename to docs/modules/ROOT/partials/c/session/session.adoc
index eff3db292c..e2bc48dcbc 100644
--- a/c/docs/session/session.adoc
+++ b/docs/modules/ROOT/partials/c/session/session.adoc
@@ -1,4 +1,4 @@
-[#_methods__session__session]
+[#_methods_session_session]
 === session
 
 [#_Struct_Session]
diff --git a/c/docs/transaction/query.adoc b/docs/modules/ROOT/partials/c/transaction/query.adoc
similarity index 99%
rename from c/docs/transaction/query.adoc
rename to docs/modules/ROOT/partials/c/transaction/query.adoc
index 463d5dd937..d0c0a54a61 100644
--- a/c/docs/transaction/query.adoc
+++ b/docs/modules/ROOT/partials/c/transaction/query.adoc
@@ -1,4 +1,4 @@
-[#_methods__transaction__query]
+[#_methods_transaction_query]
 === query
 
 [#_query_define]
diff --git a/c/docs/transaction/transaction.adoc b/docs/modules/ROOT/partials/c/transaction/transaction.adoc
similarity index 98%
rename from c/docs/transaction/transaction.adoc
rename to docs/modules/ROOT/partials/c/transaction/transaction.adoc
index fbb3e29604..54354e6b0e 100644
--- a/c/docs/transaction/transaction.adoc
+++ b/docs/modules/ROOT/partials/c/transaction/transaction.adoc
@@ -1,4 +1,4 @@
-[#_methods__transaction__transaction]
+[#_methods_transaction_transaction]
 === transaction
 
 [#_Struct_Transaction]
diff --git a/cpp/docs/answer/ConceptMap.adoc b/docs/modules/ROOT/partials/cpp/answer/ConceptMap.adoc
similarity index 85%
rename from cpp/docs/answer/ConceptMap.adoc
rename to docs/modules/ROOT/partials/cpp/answer/ConceptMap.adoc
index 56c7b1a1e0..1a1b92f04e 100644
--- a/cpp/docs/answer/ConceptMap.adoc
+++ b/docs/modules/ROOT/partials/cpp/answer/ConceptMap.adoc
@@ -8,7 +8,7 @@
 Contains a mapping of variables to concepts.
 
 // tag::methods[]
-[#_ConceptIterable__Concept___TypeDBConceptMapconcepts___]
+[#_ConceptIterable_Concept_TypeDBConceptMapconcepts_]
 ==== concepts
 
 [source,cpp]
@@ -32,7 +32,7 @@ Produces an ``Iterator`` over all concepts in this ``ConceptMap``.
 conceptMap.concepts();
 ----
 
-[#_Explainables_TypeDBConceptMapexplainables___]
+[#_Explainables_TypeDBConceptMapexplainables_]
 ==== explainables
 
 [source,cpp]
@@ -56,7 +56,7 @@ Gets the ``Explainables`` object for this ``ConceptMap``, exposing which of the
 conceptMap.explainables();
 ----
 
-[#_stdunique_ptr__Concept___TypeDBConceptMapget___const_stdstring__variableName_]
+[#_stdunique_ptr_Concept_TypeDBConceptMapget_const_stdstring_variableName_]
 ==== get
 
 [source,cpp]
@@ -89,7 +89,7 @@ a| `variable` a| The string representation of a variable a|
 conceptMap.get(variable);
 ----
 
-[#_stdmap__stdstring__stdunique_ptr__Concept_____TypeDBConceptMapmap___]
+[#_stdmap_stdstring_stdunique_ptr_Concept_TypeDBConceptMapmap_]
 ==== map
 
 [source,cpp]
@@ -113,7 +113,7 @@ Returns the inner ``Map`` where keys are query variables, and values are concept
 conceptMap.map();
 ----
 
-[#_stdstring_TypeDBConceptMaptoString___]
+[#_stdstring_TypeDBConceptMaptoString_]
 ==== toString
 
 [source,cpp]
@@ -129,7 +129,7 @@ A string representation of this ConceptMap.
 .Returns
 `std::string`
 
-[#_StringIterable_TypeDBConceptMapvariables___]
+[#_StringIterable_TypeDBConceptMapvariables_]
 ==== variables
 
 [source,cpp]
diff --git a/cpp/docs/answer/ConceptMapGroup.adoc b/docs/modules/ROOT/partials/cpp/answer/ConceptMapGroup.adoc
similarity index 84%
rename from cpp/docs/answer/ConceptMapGroup.adoc
rename to docs/modules/ROOT/partials/cpp/answer/ConceptMapGroup.adoc
index e440dda03a..d3cce09bba 100644
--- a/cpp/docs/answer/ConceptMapGroup.adoc
+++ b/docs/modules/ROOT/partials/cpp/answer/ConceptMapGroup.adoc
@@ -8,7 +8,7 @@
 Contains an element of the group query result.
 
 // tag::methods[]
-[#_ConceptMapIterable_TypeDBConceptMapGroupconceptMaps___]
+[#_ConceptMapIterable_TypeDBConceptMapGroupconceptMaps_]
 ==== conceptMaps
 
 [source,cpp]
@@ -32,7 +32,7 @@ Retrieves the ``ConceptMap``s of the group.
 conceptMapGroup.conceptMaps();
 ----
 
-[#_stdunique_ptr__Concept___TypeDBConceptMapGroupowner___]
+[#_stdunique_ptr_Concept_TypeDBConceptMapGroupowner_]
 ==== owner
 
 [source,cpp]
@@ -56,7 +56,7 @@ Retrieves the concept that is the group owner.
 conceptMapGroup.owner();
 ----
 
-[#_stdstring_TypeDBConceptMapGrouptoString___]
+[#_stdstring_TypeDBConceptMapGrouptoString_]
 ==== toString
 
 [source,cpp]
diff --git a/cpp/docs/answer/Explainable.adoc b/docs/modules/ROOT/partials/cpp/answer/Explainable.adoc
similarity index 87%
rename from cpp/docs/answer/Explainable.adoc
rename to docs/modules/ROOT/partials/cpp/answer/Explainable.adoc
index e41c187473..a8d7da7499 100644
--- a/cpp/docs/answer/Explainable.adoc
+++ b/docs/modules/ROOT/partials/cpp/answer/Explainable.adoc
@@ -8,7 +8,7 @@
 Contains an explainable object.
 
 // tag::methods[]
-[#_stdstring_TypeDBExplainableconjunction___]
+[#_stdstring_TypeDBExplainableconjunction_]
 ==== conjunction
 
 [source,cpp]
@@ -32,7 +32,7 @@ Retrieves the subquery of the original query that is actually being explained.
 explainable.conjunction();
 ----
 
-[#_int64_t_TypeDBExplainableexplainableId___]
+[#_int64_t_TypeDBExplainableexplainableId_]
 ==== explainableId
 
 [source,cpp]
diff --git a/cpp/docs/answer/Explainables.adoc b/docs/modules/ROOT/partials/cpp/answer/Explainables.adoc
similarity index 86%
rename from cpp/docs/answer/Explainables.adoc
rename to docs/modules/ROOT/partials/cpp/answer/Explainables.adoc
index eeac15a813..7f7fcecef2 100644
--- a/cpp/docs/answer/Explainables.adoc
+++ b/docs/modules/ROOT/partials/cpp/answer/Explainables.adoc
@@ -8,7 +8,7 @@
 Contains explainable objects.
 
 // tag::methods[]
-[#_Explainable_TypeDBExplainablesattribute___stdstring__variable_]
+[#_Explainable_TypeDBExplainablesattribute_stdstring_variable_]
 ==== attribute
 
 [source,cpp]
@@ -41,7 +41,7 @@ a| `variable` a| The string representation of a variable a| `std::string&`
 conceptMap.explainables().attribute(variable);
 ----
 
-[#_StringIterable_TypeDBExplainablesattributes___]
+[#_StringIterable_TypeDBExplainablesattributes_]
 ==== attributes
 
 [source,cpp]
@@ -65,7 +65,7 @@ Retrieves all of this ``ConceptMap``’s explainable attributes.
 conceptMap.explainables().attributes();
 ----
 
-[#_Explainable_TypeDBExplainablesownership___stdstring__owner__stdstring__attribute_]
+[#_Explainable_TypeDBExplainablesownership_stdstring_owner_stdstring_attribute_]
 ==== ownership
 
 [source,cpp]
@@ -99,7 +99,7 @@ a| `attribute` a| The string representation of the attribute variable a| `std::s
 conceptMap.explainables().ownership(owner, attribute);
 ----
 
-[#_OwnerAttributePairIterable_TypeDBExplainablesownerships___]
+[#_OwnerAttributePairIterable_TypeDBExplainablesownerships_]
 ==== ownerships
 
 [source,cpp]
@@ -123,7 +123,7 @@ Retrieves all of this ``ConceptMap``’s explainable ownerships.
 conceptMap.explainables().ownerships();
 ----
 
-[#_Explainable_TypeDBExplainablesrelation___stdstring__variable_]
+[#_Explainable_TypeDBExplainablesrelation_stdstring_variable_]
 ==== relation
 
 [source,cpp]
@@ -156,7 +156,7 @@ a| `variable` a| The string representation of a variable a| `std::string&`
 conceptMap.explainables().relation(variable);
 ----
 
-[#_StringIterable_TypeDBExplainablesrelations___]
+[#_StringIterable_TypeDBExplainablesrelations_]
 ==== relations
 
 [source,cpp]
@@ -180,7 +180,7 @@ Retrieves all of this ``ConceptMap``’s explainable relations.
 conceptMap.explainables().relations();
 ----
 
-[#_stdstring_TypeDBExplainablestoString___]
+[#_stdstring_TypeDBExplainablestoString_]
 ==== toString
 
 [source,cpp]
diff --git a/cpp/docs/answer/Explanation.adoc b/docs/modules/ROOT/partials/cpp/answer/Explanation.adoc
similarity index 86%
rename from cpp/docs/answer/Explanation.adoc
rename to docs/modules/ROOT/partials/cpp/answer/Explanation.adoc
index 035a3aeef8..c1420814dd 100644
--- a/cpp/docs/answer/Explanation.adoc
+++ b/docs/modules/ROOT/partials/cpp/answer/Explanation.adoc
@@ -10,7 +10,7 @@ An explanation of which rule was used to infer the concept and the satisfying Co
 An explanation of which rule was used for inferring the explained concept, the condition of the rule, the conclusion of the rule, and the mapping of variables between the query and the rule’s conclusion.
 
 // tag::methods[]
-[#_ConceptMap_TypeDBExplanationconclusion___]
+[#_ConceptMap_TypeDBExplanationconclusion_]
 ==== conclusion
 
 [source,cpp]
@@ -34,7 +34,7 @@ Retrieves the Conclusion for this Explanation.
 explanation.conclusion()
 ----
 
-[#_ConceptMap_TypeDBExplanationcondition___]
+[#_ConceptMap_TypeDBExplanationcondition_]
 ==== condition
 
 [source,cpp]
@@ -58,7 +58,7 @@ Retrieves the Condition for this Explanation.
 explanation.condition()
 ----
 
-[#_stdvector__stdstring___TypeDBExplanationqueryVariableMapping___const_stdstring__var_]
+[#_stdvector_stdstring_TypeDBExplanationqueryVariableMapping_const_stdstring_var_]
 ==== queryVariableMapping
 
 [source,cpp]
@@ -91,7 +91,7 @@ a| `var` a| The query variable to map to rule variables. a| `const std::string&`
 explanation.variableMapping(var)
 ----
 
-[#_stdvector__stdstring___TypeDBExplanationqueryVariables___]
+[#_stdvector_stdstring_TypeDBExplanationqueryVariables_]
 ==== queryVariables
 
 [source,cpp]
@@ -115,7 +115,7 @@ Retrieves the query variables for this ``Explanation``.
 explanation.queryVariables()
 ----
 
-[#_Rule_TypeDBExplanationrule___]
+[#_Rule_TypeDBExplanationrule_]
 ==== rule
 
 [source,cpp]
@@ -139,7 +139,7 @@ Retrieves the Rule for this Explanation.
 explanation.rule()
 ----
 
-[#_stdstring_TypeDBExplanationtoString___]
+[#_stdstring_TypeDBExplanationtoString_]
 ==== toString
 
 [source,cpp]
diff --git a/cpp/docs/answer/Future__RETURN__NATIVE_PROMISE__HELPER__.adoc b/docs/modules/ROOT/partials/cpp/answer/Future.adoc
similarity index 61%
rename from cpp/docs/answer/Future__RETURN__NATIVE_PROMISE__HELPER__.adoc
rename to docs/modules/ROOT/partials/cpp/answer/Future.adoc
index 3481f64bb3..19e027ebbd 100644
--- a/cpp/docs/answer/Future__RETURN__NATIVE_PROMISE__HELPER__.adoc
+++ b/docs/modules/ROOT/partials/cpp/answer/Future.adoc
@@ -1,20 +1,16 @@
-[#_Future__RETURN__NATIVE_PROMISE__HELPER_]
-=== Future< RETURN, NATIVE_PROMISE, HELPER >
+[#_Future]
+=== Future
 
 *Package*: `TypeDB`
 
 
- template<typename RETURN, typename NATIVE_PROMISE, typename HELPER = FutureHelper<RETURN, NATIVE_PROMISE>>
- 
-  class TypeDB::Future< RETURN, NATIVE_PROMISE, HELPER >
-
 
 A structure emulating std::future, used as result of an asynchronous call to the server.
 
 Note that a future must be evaluated for any server-side exceptions to be raised.
 
 // tag::methods[]
-[#_RETURN_TypeDBFuture__RETURN__NATIVE_PROMISE__HELPER__get___]
+[#_RETURN_TypeDBFuture_RETURN_NATIVE_PROMISE_HELPER_get_]
 ==== get
 
 [source,cpp]
@@ -30,7 +26,7 @@ Waits for the call to complete and returns the result.
 .Returns
 `RETURN`
 
-[#_void_TypeDBFuture__RETURN__NATIVE_PROMISE__HELPER__wait___]
+[#_void_TypeDBFuture_RETURN_NATIVE_PROMISE_HELPER_wait_]
 ==== wait
 
 [source,cpp]
diff --git a/docs/modules/ROOT/partials/cpp/answer/Iterable.adoc b/docs/modules/ROOT/partials/cpp/answer/Iterable.adoc
new file mode 100644
index 0000000000..d70dcbd07a
--- /dev/null
+++ b/docs/modules/ROOT/partials/cpp/answer/Iterable.adoc
@@ -0,0 +1,56 @@
+[#_Iterable]
+=== Iterable
+
+*Package*: `TypeDB`
+
+
+
+Result representing a stream of query results.
+
+Exposes ``<<#_ITERATOR_TypeDBIterable_NATIVE_ITER_NATIVE_T_T_HELPER_begin_,begin()>>`` to get an iterator over the results and ``<<#_ITERATOR_TypeDBIterable_NATIVE_ITER_NATIVE_T_T_HELPER_end_,end()>>`` to check if the end has been reached.
+  Note: <<#_ITERATOR_TypeDBIterable_NATIVE_ITER_NATIVE_T_T_HELPER_begin_,begin()>> must be called for any server-side exceptions encountered while evaluating the query to be thrown
+
+
+[caption=""]
+.Examples
+[source,cpp]
+----
+for (auto& element : iterable) { ... }
+for (auto it = iterable.begin(); it != iterable.end(); ++it ) { ... } // Note: it++ is deleted.
+----
+
+// tag::methods[]
+[#_ITERATOR_TypeDBIterable_NATIVE_ITER_NATIVE_T_T_HELPER_begin_]
+==== begin
+
+[source,cpp]
+----
+ITERATOR TypeDB::Iterable< NATIVE_ITER, NATIVE_T, T, HELPER >::begin()
+----
+
+
+
+Returns an iterator pointing to the first element.
+
+[caption=""]
+.Returns
+`ITERATOR`
+
+[#_ITERATOR_TypeDBIterable_NATIVE_ITER_NATIVE_T_T_HELPER_end_]
+==== end
+
+[source,cpp]
+----
+ITERATOR TypeDB::Iterable< NATIVE_ITER, NATIVE_T, T, HELPER >::end()
+----
+
+
+
+Returns an iterator equivalent to the result of advancing past the last element.
+
+[caption=""]
+.Returns
+`ITERATOR`
+
+// end::methods[]
+
diff --git a/cpp/docs/answer/Iterator__NATIVE_ITER__NATIVE_T__T__HELPER__.adoc b/docs/modules/ROOT/partials/cpp/answer/Iterator.adoc
similarity index 56%
rename from cpp/docs/answer/Iterator__NATIVE_ITER__NATIVE_T__T__HELPER__.adoc
rename to docs/modules/ROOT/partials/cpp/answer/Iterator.adoc
index 35d7b01486..ea160d78ed 100644
--- a/cpp/docs/answer/Iterator__NATIVE_ITER__NATIVE_T__T__HELPER__.adoc
+++ b/docs/modules/ROOT/partials/cpp/answer/Iterator.adoc
@@ -1,13 +1,9 @@
-[#_Iterator__NATIVE_ITER__NATIVE_T__T__HELPER_]
-=== Iterator< NATIVE_ITER, NATIVE_T, T, HELPER >
+[#_Iterator]
+=== Iterator
 
 *Package*: `TypeDB`
 
 
- template<typename NATIVE_ITER, typename NATIVE_T, typename T, typename HELPER = IteratorHelper<NATIVE_ITER, NATIVE_T, T>>
- 
-  class TypeDB::Iterator< NATIVE_ITER, NATIVE_T, T, HELPER >
-
 
 A structure emulating std::iterator, used for streaming of query results from the server.
 
diff --git a/cpp/docs/answer/JSON.adoc b/docs/modules/ROOT/partials/cpp/answer/JSON.adoc
similarity index 72%
rename from cpp/docs/answer/JSON.adoc
rename to docs/modules/ROOT/partials/cpp/answer/JSON.adoc
index 3bdf0f1691..3ef7a0409d 100644
--- a/cpp/docs/answer/JSON.adoc
+++ b/docs/modules/ROOT/partials/cpp/answer/JSON.adoc
@@ -8,7 +8,7 @@
 Simple JSON structure for results of fetch queries.
 
 // tag::methods[]
-[#_const_JSONArray__TypeDBJSONasArray_____const]
+[#_const_JSONArray_TypeDBJSONasArray_const]
 ==== asArray
 
 [source,cpp]
@@ -24,7 +24,7 @@ if this JSON object holds an array, returns the underlying array. Else throws an
 .Returns
 `const JSONArray&`
 
-[#_const_JSONBoolean__TypeDBJSONasBoolean_____const]
+[#_const_JSONBoolean_TypeDBJSONasBoolean_const]
 ==== asBoolean
 
 [source,cpp]
@@ -40,7 +40,7 @@ if this JSON object holds a boolean value, returns the value. Else throws an exc
 .Returns
 `const JSONBoolean&`
 
-[#_const_JSONDouble__TypeDBJSONasDouble_____const]
+[#_const_JSONDouble_TypeDBJSONasDouble_const]
 ==== asDouble
 
 [source,cpp]
@@ -56,7 +56,7 @@ if this JSON object holds a double value, returns the value. Else throws an exce
 .Returns
 `const JSONDouble&`
 
-[#_const_JSONLong__TypeDBJSONasLong_____const]
+[#_const_JSONLong_TypeDBJSONasLong_const]
 ==== asLong
 
 [source,cpp]
@@ -72,7 +72,7 @@ if this JSON object holds a long value, returns the value. Else throws an except
 .Returns
 `const JSONLong&`
 
-[#_const_JSONMap__TypeDBJSONasMap_____const]
+[#_const_JSONMap_TypeDBJSONasMap_const]
 ==== asMap
 
 [source,cpp]
@@ -88,7 +88,7 @@ if this JSON object holds a map, returns the underlying map. Else throws an exce
 .Returns
 `const JSONMap&`
 
-[#_const_JSONString__TypeDBJSONasString_____const]
+[#_const_JSONString_TypeDBJSONasString_const]
 ==== asString
 
 [source,cpp]
@@ -104,7 +104,7 @@ if this JSON object holds a string value, returns the value. Else throws an exce
 .Returns
 `const JSONString&`
 
-[#_bool_TypeDBJSONisArray_____const]
+[#_bool_TypeDBJSONisArray_const]
 ==== isArray
 
 [source,cpp]
@@ -120,7 +120,7 @@ true if this JSON object holds an array, else false
 .Returns
 `bool`
 
-[#_bool_TypeDBJSONisBoolean_____const]
+[#_bool_TypeDBJSONisBoolean_const]
 ==== isBoolean
 
 [source,cpp]
@@ -136,7 +136,7 @@ true if this JSON object holds a boolean value, else false
 .Returns
 `bool`
 
-[#_bool_TypeDBJSONisDouble_____const]
+[#_bool_TypeDBJSONisDouble_const]
 ==== isDouble
 
 [source,cpp]
@@ -152,7 +152,7 @@ true if this JSON object holds a double value, else false
 .Returns
 `bool`
 
-[#_bool_TypeDBJSONisLong_____const]
+[#_bool_TypeDBJSONisLong_const]
 ==== isLong
 
 [source,cpp]
@@ -168,7 +168,7 @@ true if this JSON object holds a long value, else false
 .Returns
 `bool`
 
-[#_bool_TypeDBJSONisMap_____const]
+[#_bool_TypeDBJSONisMap_const]
 ==== isMap
 
 [source,cpp]
@@ -184,7 +184,7 @@ true if this JSON object holds a map, else false
 .Returns
 `bool`
 
-[#_bool_TypeDBJSONisString_____const]
+[#_bool_TypeDBJSONisString_const]
 ==== isString
 
 [source,cpp]
@@ -200,7 +200,7 @@ true if this JSON object holds a string value, else false
 .Returns
 `bool`
 
-[#_static_JSON_TypeDBJSONparse___const_stdstring__string_]
+[#_static_JSON_TypeDBJSONparse_const_stdstring_string_]
 ==== parse
 
 [source,cpp]
@@ -216,5 +216,45 @@ Parses a JSON string into a ``JSON`` object.
 .Returns
 `static JSON`
 
+[#_const_stdstring_TypeDBJSONtoString_const]
+==== toString
+
+[source,cpp]
+----
+const std::string TypeDB::JSON::toString() const
+----
+
+
+
+Convert a JSON object to a string
+
+[caption=""]
+.Returns
+`const std::string`
+
+[#_JSONType_TypeDBJSONtype_const]
+==== type
+
+[source,cpp]
+----
+JSONType TypeDB::JSON::type() const
+----
+
+
+
+The JSONType of this JSON object
+
+
+[caption=""]
+.Returns
+`JSONType`
+
+[caption=""]
+.Code examples
+[source,cpp]
+----
+switch(json.type() { ... }
+----
+
 // end::methods[]
 
diff --git a/cpp/docs/answer/JSONType.adoc b/docs/modules/ROOT/partials/cpp/answer/JSONType.adoc
similarity index 100%
rename from cpp/docs/answer/JSONType.adoc
rename to docs/modules/ROOT/partials/cpp/answer/JSONType.adoc
diff --git a/cpp/docs/answer/OwnerAttributePair.adoc b/docs/modules/ROOT/partials/cpp/answer/OwnerAttributePair.adoc
similarity index 78%
rename from cpp/docs/answer/OwnerAttributePair.adoc
rename to docs/modules/ROOT/partials/cpp/answer/OwnerAttributePair.adoc
index d764a794ff..14a9266dc2 100644
--- a/cpp/docs/answer/OwnerAttributePair.adoc
+++ b/docs/modules/ROOT/partials/cpp/answer/OwnerAttributePair.adoc
@@ -5,7 +5,7 @@
 
 
 
-Simple class holding the owner concept & owned attribute identifying an explainable ownership.
+Simple class holding the owner concept & owned attribute identifying an explainable ownership.
 
 [caption=""]
 .Fields
diff --git a/cpp/docs/answer/ValueGroup.adoc b/docs/modules/ROOT/partials/cpp/answer/ValueGroup.adoc
similarity index 85%
rename from cpp/docs/answer/ValueGroup.adoc
rename to docs/modules/ROOT/partials/cpp/answer/ValueGroup.adoc
index bd8829b44f..81f386e2f2 100644
--- a/cpp/docs/answer/ValueGroup.adoc
+++ b/docs/modules/ROOT/partials/cpp/answer/ValueGroup.adoc
@@ -8,7 +8,7 @@
 Contains an element of the group aggregate query result.
 
 // tag::methods[]
-[#_stdunique_ptr__Concept___TypeDBValueGroupowner___]
+[#_stdunique_ptr_Concept_TypeDBValueGroupowner_]
 ==== owner
 
 [source,cpp]
@@ -32,7 +32,7 @@ Retrieves the concept that is the group owner.
 conceptMapGroup.owner()
 ----
 
-[#_stdstring_TypeDBValueGrouptoString___]
+[#_stdstring_TypeDBValueGrouptoString_]
 ==== toString
 
 [source,cpp]
@@ -48,7 +48,7 @@ A string representation of this ConceptMap.
 .Returns
 `std::string`
 
-[#_AggregateResult_TypeDBValueGroupvalue___]
+[#_AggregateResult_TypeDBValueGroupvalue_]
 ==== value
 
 [source,cpp]
diff --git a/docs/modules/ROOT/partials/cpp/answer/typedefs.adoc b/docs/modules/ROOT/partials/cpp/answer/typedefs.adoc
new file mode 100644
index 0000000000..c803cae2cc
--- /dev/null
+++ b/docs/modules/ROOT/partials/cpp/answer/typedefs.adoc
@@ -0,0 +1,183 @@
+[#_aliases]
+=== Aliases
+
+[#_ConceptMapIterator]
+==== ConceptMapIterator
+
+Alias for ``Iterator<_native::ConceptMapIterator, _native::ConceptMap, TypeDB::ConceptMap>``
+
+[#_ConceptMapIterable]
+==== ConceptMapIterable
+
+Alias for ``Iterable<_native::ConceptMapIterator, _native::ConceptMap, TypeDB::ConceptMap>``
+
+[#_ConceptMapGroupIterable]
+==== ConceptMapGroupIterable
+
+Alias for ``Iterable<_native::ConceptMapGroupIterator, _native::ConceptMapGroup, TypeDB::ConceptMapGroup>``
+
+[#_ConceptMapGroupIterator]
+==== ConceptMapGroupIterator
+
+Alias for ``Iterator<_native::ConceptMapGroupIterator, _native::ConceptMapGroup, TypeDB::ConceptMapGroup>``
+
+[#_OwnerAttributePairIterator]
+==== OwnerAttributePairIterator
+
+Alias for ``Iterator<_native::StringPairIterator, _native::StringPair, OwnerAttributePair>``
+
+[#_OwnerAttributePairIterable]
+==== OwnerAttributePairIterable
+
+Alias for ``Iterable<_native::StringPairIterator, _native::StringPair, OwnerAttributePair>``
+
+[#_JSONMap]
+==== JSONMap
+
+Alias for ``std::map``
+
+[#_JSONArray]
+==== JSONArray
+
+Alias for ``std::vector``
+
+[#_JSONBoolean]
+==== JSONBoolean
+
+Alias for ``bool``
+
+[#_JSONLong]
+==== JSONLong
+
+Alias for ``long``
+
+[#_JSONDouble]
+==== JSONDouble
+
+Alias for ``double``
+
+[#_JSONString]
+==== JSONString
+
+Alias for ``std::string``
+
+[#_AggregateResult]
+==== AggregateResult
+
+Alias for ``std::optional>``
+
+[#_AggregateFuture]
+==== AggregateFuture
+
+Alias for ``Future``
+
+[#_ValueGroupIterable]
+==== ValueGroupIterable
+
+Alias for ``Iterable<_native::ValueGroupIterator, _native::ValueGroup, TypeDB::ValueGroup>``
+
+[#_ValueGroupIterator]
+==== ValueGroupIterator
+
+Alias for ``Iterator<_native::ValueGroupIterator, _native::ValueGroup, TypeDB::ValueGroup>``
+
+[#_VoidFuture]
+==== VoidFuture
+
+Alias for ``Future``
+
+[#_BoolFuture]
+==== BoolFuture
+
+Alias for ``Future``
+
+[#_StringFuture]
+==== StringFuture
+
+Alias for ``Future``
+
+[#_OptionalStringFuture]
+==== OptionalStringFuture
+
+Alias for ``Future, _native::StringPromise>``
+
+[#_StringIterable]
+==== StringIterable
+
+Alias for ``Iterable<_native::StringIterator, char, std::string>``
+
+[#_StringIterator]
+==== StringIterator
+
+Alias for ``Iterator<_native::StringIterator, char, std::string>``
+
+[#_DateTime]
+==== DateTime
+
+Alias for std::chrono::time_point
+
+[#_DatabaseIterator]
+==== DatabaseIterator
+
+Alias for ``Iterator<_native::DatabaseIterator, _native::Database, TypeDB::Database>``
+
+[#_DatabaseIterable]
+==== DatabaseIterable
+
+Alias for ``Iterable<_native::DatabaseIterator, _native::Database, TypeDB::Database>``
+
+[#_ReplicaInfoIterable]
+==== ReplicaInfoIterable
+
+Alias for ``Iterable<_native::ReplicaInfoIterator, _native::ReplicaInfo, ReplicaInfo>``
+
+[#_ReplicaInfoIterator]
+==== ReplicaInfoIterator
+
+Alias for ``Iterator<_native::ReplicaInfoIterator, _native::ReplicaInfo, ReplicaInfo>``
+
+[#_ExplanationIterator]
+==== ExplanationIterator
+
+Alias for ``Iterator<_native::ExplanationIterator, _native::Explanation, Explanation>``
+
+[#_ExplanationIterable]
+==== ExplanationIterable
+
+Alias for ``Iterable<_native::ExplanationIterator, _native::Explanation, Explanation>``
+
+[#_RuleFuture]
+==== RuleFuture
+
+Alias for ``Future``
+
+[#_OptionalRuleFuture]
+==== OptionalRuleFuture
+
+Alias for ``Future, _native::RulePromise>``
+
+[#_RuleIterable]
+==== RuleIterable
+
+Alias for ``Iterable<_native::RuleIterator, _native::Rule, Rule>``
+
+[#_RuleIterator]
+==== RuleIterator
+
+Alias for ``Iterator<_native::RuleIterator, _native::Rule, Rule>``
+
+[#_JSONIterable]
+==== JSONIterable
+
+Alias for ``Iterable<_native::StringIterator, char, JSON>``
+
+[#_UserIterator]
+==== UserIterator
+
+Alias for ``Iterator<_native::UserIterator, _native::User, User>``
+
+[#_UserIterable]
+==== UserIterable
+
+Alias for ``Iterable<_native::UserIterator, _native::User, User>``
+
diff --git a/cpp/docs/concept/Concept.adoc b/docs/modules/ROOT/partials/cpp/concept/Concept.adoc
similarity index 83%
rename from cpp/docs/concept/Concept.adoc
rename to docs/modules/ROOT/partials/cpp/concept/Concept.adoc
index f6454c7925..5ac39ae417 100644
--- a/cpp/docs/concept/Concept.adoc
+++ b/docs/modules/ROOT/partials/cpp/concept/Concept.adoc
@@ -8,7 +8,7 @@
 The fundamental TypeQL object. A Concept is either a Type, Thing, or Value.
 
 // tag::methods[]
-[#_Attribute__ptr__TypeDBConceptasAttribute___]
+[#_Attribute_ptr_TypeDBConceptasAttribute_]
 ==== asAttribute
 
 [source,cpp]
@@ -32,7 +32,7 @@ Casts the concept to ``Attribute``.
 concept.asAttribute();
 ----
 
-[#_AttributeType__ptr__TypeDBConceptasAttributeType___]
+[#_AttributeType_ptr_TypeDBConceptasAttributeType_]
 ==== asAttributeType
 
 [source,cpp]
@@ -56,7 +56,7 @@ Casts the concept to ``EntityType``.
 concept.asEntityType();
 ----
 
-[#_Entity__ptr__TypeDBConceptasEntity___]
+[#_Entity_ptr_TypeDBConceptasEntity_]
 ==== asEntity
 
 [source,cpp]
@@ -80,7 +80,7 @@ Casts the concept to ``Entity``.
 concept.asEntity();
 ----
 
-[#_EntityType__ptr__TypeDBConceptasEntityType___]
+[#_EntityType_ptr_TypeDBConceptasEntityType_]
 ==== asEntityType
 
 [source,cpp]
@@ -104,7 +104,7 @@ Casts the concept to ``EntityType``.
 concept.asEntityType();
 ----
 
-[#_Relation__ptr__TypeDBConceptasRelation___]
+[#_Relation_ptr_TypeDBConceptasRelation_]
 ==== asRelation
 
 [source,cpp]
@@ -128,7 +128,7 @@ Casts the concept to ``Relation``.
 concept.asRelation();
 ----
 
-[#_RelationType__ptr__TypeDBConceptasRelationType___]
+[#_RelationType_ptr_TypeDBConceptasRelationType_]
 ==== asRelationType
 
 [source,cpp]
@@ -152,7 +152,7 @@ Casts the concept to ``RelationType``.
 concept.asRelationType();
 ----
 
-[#_RoleType__ptr__TypeDBConceptasRoleType___]
+[#_RoleType_ptr_TypeDBConceptasRoleType_]
 ==== asRoleType
 
 [source,cpp]
@@ -176,7 +176,7 @@ Casts the concept to ``RoleType``.
 concept.asRoleType();
 ----
 
-[#_Thing__ptr__TypeDBConceptasThing___]
+[#_Thing_ptr_TypeDBConceptasThing_]
 ==== asThing
 
 [source,cpp]
@@ -200,7 +200,7 @@ Casts the concept to ``Thing``.
 concept.asThing();
 ----
 
-[#_ThingType__ptr__TypeDBConceptasThingType___]
+[#_ThingType_ptr_TypeDBConceptasThingType_]
 ==== asThingType
 
 [source,cpp]
@@ -224,7 +224,7 @@ Casts the concept to ``ThingType``.
 concept.asThingType();
 ----
 
-[#_Value__ptr__TypeDBConceptasValue___]
+[#_Value_ptr_TypeDBConceptasValue_]
 ==== asValue
 
 [source,cpp]
@@ -248,7 +248,7 @@ Casts the concept to ``Value``.
 concept.asValue();
 ----
 
-[#_static_bool_TypeDBConceptequals___Concept__ptr__first__Concept__ptr__second_]
+[#_static_bool_TypeDBConceptequals_Concept_ptr_first_Concept_ptr_second_]
 ==== equals
 
 [source,cpp]
@@ -264,7 +264,7 @@ Checks equality of two concepts.
 .Returns
 `static bool`
 
-[#_ConceptType_TypeDBConceptgetConceptType___]
+[#_ConceptType_TypeDBConceptgetConceptType_]
 ==== getConceptType
 
 [source,cpp]
@@ -288,7 +288,7 @@ Returns the ConceptType of this concept.
 switch(concept.getConceptType()) { ... }
 ----
 
-[#_bool_TypeDBConceptisAttribute___]
+[#_bool_TypeDBConceptisAttribute_]
 ==== isAttribute
 
 [source,cpp]
@@ -312,7 +312,7 @@ Checks if the concept is a ``Relation``.
 concept.isRelation();
 ----
 
-[#_bool_TypeDBConceptisAttributeType___]
+[#_bool_TypeDBConceptisAttributeType_]
 ==== isAttributeType
 
 [source,cpp]
@@ -336,7 +336,7 @@ Checks if the concept is an ``AttributeType``.
 concept.isAttributeType();
 ----
 
-[#_bool_TypeDBConceptisEntity___]
+[#_bool_TypeDBConceptisEntity_]
 ==== isEntity
 
 [source,cpp]
@@ -360,7 +360,7 @@ Checks if the concept is an ``Entity``.
 concept.isEntity();
 ----
 
-[#_bool_TypeDBConceptisEntityType___]
+[#_bool_TypeDBConceptisEntityType_]
 ==== isEntityType
 
 [source,cpp]
@@ -384,7 +384,7 @@ Checks if the concept is an ``EntityType``.
 concept.isEntityType();
 ----
 
-[#_bool_TypeDBConceptisRelation___]
+[#_bool_TypeDBConceptisRelation_]
 ==== isRelation
 
 [source,cpp]
@@ -408,7 +408,7 @@ Checks if the concept is a ``Value``.
 concept.isValue();
 ----
 
-[#_bool_TypeDBConceptisRelationType___]
+[#_bool_TypeDBConceptisRelationType_]
 ==== isRelationType
 
 [source,cpp]
@@ -432,7 +432,7 @@ Checks if the concept is a ``RelationType``.
 concept.isRelationType();
 ----
 
-[#_bool_TypeDBConceptisRoleType___]
+[#_bool_TypeDBConceptisRoleType_]
 ==== isRoleType
 
 [source,cpp]
@@ -456,7 +456,7 @@ Checks if the concept is a ``RoleType``.
 concept.isRoleType();
 ----
 
-[#_bool_TypeDBConceptisThing___]
+[#_bool_TypeDBConceptisThing_]
 ==== isThing
 
 [source,cpp]
@@ -480,7 +480,7 @@ Checks if the concept is a ``Thing``.
 concept.isThing();
 ----
 
-[#_bool_TypeDBConceptisThingType___]
+[#_bool_TypeDBConceptisThingType_]
 ==== isThingType
 
 [source,cpp]
@@ -504,7 +504,7 @@ Checks if the concept is a ``ThingType``.
 concept.isThingType();
 ----
 
-[#_bool_TypeDBConceptisValue___]
+[#_bool_TypeDBConceptisValue_]
 ==== isValue
 
 [source,cpp]
@@ -528,7 +528,7 @@ Checks if the concept is a ``Value``.
 concept.isValue();
 ----
 
-[#_bool_TypeDBConceptoperator___const_Concept__other_]
+[#_bool_TypeDBConceptoperator_const_Concept_other_]
 ==== operator==
 
 [source,cpp]
@@ -544,7 +544,7 @@ Checks equality with the ``other`` concept.
 .Returns
 `bool`
 
-[#_stdstring_TypeDBConcepttoString___]
+[#_stdstring_TypeDBConcepttoString_]
 ==== toString
 
 [source,cpp]
diff --git a/cpp/docs/concept/ConceptManager.adoc b/docs/modules/ROOT/partials/cpp/concept/ConceptManager.adoc
similarity index 83%
rename from cpp/docs/concept/ConceptManager.adoc
rename to docs/modules/ROOT/partials/cpp/concept/ConceptManager.adoc
index 76899cfa92..8322402cb6 100644
--- a/cpp/docs/concept/ConceptManager.adoc
+++ b/docs/modules/ROOT/partials/cpp/concept/ConceptManager.adoc
@@ -8,7 +8,7 @@
 Provides access for all Concept API methods.
 
 // tag::methods[]
-[#_ConceptPtrFuture__Attribute___TypeDBConceptManagergetAttribute___const_stdstring__iid___const]
+[#_ConceptPtrFuture_Attribute_TypeDBConceptManagergetAttribute_const_stdstring_iid_const]
 ==== getAttribute
 
 [source,cpp]
@@ -41,7 +41,7 @@ a| `iid` a| The iid of the ``Attribute`` to retrieve a| `const std::string&`
 transaction.concepts.getAttribute(iid).get();
 ----
 
-[#_ConceptPtrFuture__AttributeType___TypeDBConceptManagergetAttributeType___const_stdstring__label___const]
+[#_ConceptPtrFuture_AttributeType_TypeDBConceptManagergetAttributeType_const_stdstring_label_const]
 ==== getAttributeType
 
 [source,cpp]
@@ -74,7 +74,7 @@ a| `label` a| The label of the ``AttributeType`` to retrieve a| `const std::stri
 transaction.concepts.getAttributeType(label).get();
 ----
 
-[#_ConceptPtrFuture__Entity___TypeDBConceptManagergetEntity___const_stdstring__iid___const]
+[#_ConceptPtrFuture_Entity_TypeDBConceptManagergetEntity_const_stdstring_iid_const]
 ==== getEntity
 
 [source,cpp]
@@ -107,7 +107,7 @@ a| `iid` a| The iid of the ``Entity`` to retrieve a| `const std::string&`
 transaction.concepts.getEntity(iid).get();
 ----
 
-[#_ConceptPtrFuture__EntityType___TypeDBConceptManagergetEntityType___const_stdstring__label___const]
+[#_ConceptPtrFuture_EntityType_TypeDBConceptManagergetEntityType_const_stdstring_label_const]
 ==== getEntityType
 
 [source,cpp]
@@ -140,7 +140,7 @@ a| `label` a| The label of the ``EntityType`` to retrieve a| `const std::string&
 transaction.concepts.getEntityType(label).get();
 ----
 
-[#_ConceptPtrFuture__Relation___TypeDBConceptManagergetRelation___const_stdstring__iid___const]
+[#_ConceptPtrFuture_Relation_TypeDBConceptManagergetRelation_const_stdstring_iid_const]
 ==== getRelation
 
 [source,cpp]
@@ -173,7 +173,7 @@ a| `iid` a| The iid of the ``Relation`` to retrieve a| `const std::string&`
 transaction.concepts.getRelation(iid).get();
 ----
 
-[#_ConceptPtrFuture__RelationType___TypeDBConceptManagergetRelationType___const_stdstring__label___const]
+[#_ConceptPtrFuture_RelationType_TypeDBConceptManagergetRelationType_const_stdstring_label_const]
 ==== getRelationType
 
 [source,cpp]
@@ -206,7 +206,7 @@ a| `label` a| The label of the ``RelationType`` to retrieve a| `const std::strin
 transaction.concepts.getRelationType(label).get();
 ----
 
-[#_stdunique_ptr__AttributeType___TypeDBConceptManagergetRootAttributeType_____const]
+[#_stdunique_ptr_AttributeType_TypeDBConceptManagergetRootAttributeType_const]
 ==== getRootAttributeType
 
 [source,cpp]
@@ -230,7 +230,7 @@ Retrieve the root ``AttributeType``, “attribute”.
 transaction.concepts.getRootAttributeType();
 ----
 
-[#_stdunique_ptr__EntityType___TypeDBConceptManagergetRootEntityType_____const]
+[#_stdunique_ptr_EntityType_TypeDBConceptManagergetRootEntityType_const]
 ==== getRootEntityType
 
 [source,cpp]
@@ -254,7 +254,7 @@ Retrieves the root ``EntityType``, “entity”.
 transaction.concepts.getRootEntityType();
 ----
 
-[#_stdunique_ptr__RelationType___TypeDBConceptManagergetRootRelationType_____const]
+[#_stdunique_ptr_RelationType_TypeDBConceptManagergetRootRelationType_const]
 ==== getRootRelationType
 
 [source,cpp]
@@ -278,7 +278,7 @@ Retrieve the root ``RelationType``, “relation”.
 transaction.concepts.getRootRelationType();
 ----
 
-[#_stdvector__DriverException___TypeDBConceptManagergetSchemaExceptions___]
+[#_stdvector_DriverException_TypeDBConceptManagergetSchemaExceptions_]
 ==== getSchemaExceptions
 
 [source,cpp]
@@ -302,7 +302,7 @@ Retrieves a list of all schema exceptions for the current transaction.
 transaction.concepts.getSchemaExceptions();
 ----
 
-[#_ConceptPtrFuture__AttributeType___TypeDBConceptManagerputAttributeType___const_stdstring__label__ValueType_valueType___const]
+[#_ConceptPtrFuture_AttributeType_TypeDBConceptManagerputAttributeType_const_stdstring_label_ValueType_valueType_const]
 ==== putAttributeType
 
 [source,cpp]
@@ -336,7 +336,7 @@ a| `valueType` a| The value type of the ``AttributeType`` to create a| `ValueTyp
 transaction.concepts.putAttributeType(label, valueType).get();
 ----
 
-[#_ConceptPtrFuture__EntityType___TypeDBConceptManagerputEntityType___const_stdstring__label___const]
+[#_ConceptPtrFuture_EntityType_TypeDBConceptManagerputEntityType_const_stdstring_label_const]
 ==== putEntityType
 
 [source,cpp]
@@ -369,7 +369,7 @@ a| `label` a| The label of the ``EntityType`` to create or retrieve a| `const st
 transaction.concepts.putEntityType(label).get();
 ----
 
-[#_ConceptPtrFuture__RelationType___TypeDBConceptManagerputRelationType___const_stdstring__label___const]
+[#_ConceptPtrFuture_RelationType_TypeDBConceptManagerputRelationType_const_stdstring_label_const]
 ==== putRelationType
 
 [source,cpp]
diff --git a/cpp/docs/concept/ConceptType.adoc b/docs/modules/ROOT/partials/cpp/concept/ConceptType.adoc
similarity index 100%
rename from cpp/docs/concept/ConceptType.adoc
rename to docs/modules/ROOT/partials/cpp/concept/ConceptType.adoc
diff --git a/cpp/docs/concept/Transitivity.adoc b/docs/modules/ROOT/partials/cpp/concept/Transitivity.adoc
similarity index 100%
rename from cpp/docs/concept/Transitivity.adoc
rename to docs/modules/ROOT/partials/cpp/concept/Transitivity.adoc
diff --git a/cpp/docs/connection/Credential.adoc b/docs/modules/ROOT/partials/cpp/connection/Credential.adoc
similarity index 90%
rename from cpp/docs/connection/Credential.adoc
rename to docs/modules/ROOT/partials/cpp/connection/Credential.adoc
index e2fd649422..3d3b836b8a 100644
--- a/cpp/docs/connection/Credential.adoc
+++ b/docs/modules/ROOT/partials/cpp/connection/Credential.adoc
@@ -23,7 +23,7 @@ Credential credential(username, password, "path/to/ca-certificate.pem");
 ----
 
 // tag::methods[]
-[#_TypeDBCredentialCredential___const_stdstring__username__const_stdstring__password__bool_withTLS__const_stdstring__customRootCAPath__""_]
+[#_TypeDBCredentialCredential_const_stdstring_username_const_stdstring_password_bool_withTLS_const_stdstring_customRootCAPath_""_]
 ==== Credential
 
 [source,cpp]
diff --git a/cpp/docs/connection/Database.adoc b/docs/modules/ROOT/partials/cpp/connection/Database.adoc
similarity index 85%
rename from cpp/docs/connection/Database.adoc
rename to docs/modules/ROOT/partials/cpp/connection/Database.adoc
index d3f25e90b7..f38fcec906 100644
--- a/cpp/docs/connection/Database.adoc
+++ b/docs/modules/ROOT/partials/cpp/connection/Database.adoc
@@ -8,7 +8,7 @@
 A TypeDB database.
 
 // tag::methods[]
-[#_void_TypeDBDatabasedeleteDatabase___]
+[#_void_TypeDBDatabasedeleteDatabase_]
 ==== deleteDatabase
 
 [source,cpp]
@@ -32,7 +32,7 @@ Deletes this database.
 database.deleteDatabase()
 ----
 
-[#_stdstring_TypeDBDatabasename_____const]
+[#_stdstring_TypeDBDatabasename_const]
 ==== name
 
 [source,cpp]
@@ -48,7 +48,7 @@ The database name as a string.
 .Returns
 `std::string`
 
-[#_stdoptional__ReplicaInfo___TypeDBDatabasepreferredReplica___]
+[#_stdoptional_ReplicaInfo_TypeDBDatabasepreferredReplica_]
 ==== preferredReplica
 
 [source,cpp]
@@ -72,7 +72,7 @@ Returns the preferred replica for this database. Operations which can be run on
 database.preferredReplica()
 ----
 
-[#_stdoptional__ReplicaInfo___TypeDBDatabaseprimaryReplica___]
+[#_stdoptional_ReplicaInfo_TypeDBDatabaseprimaryReplica_]
 ==== primaryReplica
 
 [source,cpp]
@@ -96,7 +96,7 @@ Returns the primary replica for this database. _Only works in TypeDB Cloud_
 database.primaryReplica()
 ----
 
-[#_ReplicaInfoIterable_TypeDBDatabasereplicas___]
+[#_ReplicaInfoIterable_TypeDBDatabasereplicas_]
 ==== replicas
 
 [source,cpp]
@@ -120,7 +120,7 @@ Set of ``Replica`` instances for this database. Only works in TypeDB Cloud
 database.replicas()
 ----
 
-[#_stdstring_TypeDBDatabaseruleSchema___]
+[#_stdstring_TypeDBDatabaseruleSchema_]
 ==== ruleSchema
 
 [source,cpp]
@@ -144,7 +144,7 @@ The rules in the schema as a valid TypeQL define query string.
 database.ruleSchema()
 ----
 
-[#_stdstring_TypeDBDatabaseschema___]
+[#_stdstring_TypeDBDatabaseschema_]
 ==== schema
 
 [source,cpp]
@@ -168,7 +168,7 @@ A full schema text as a valid TypeQL define query string.
 database.schema()
 ----
 
-[#_stdstring_TypeDBDatabasetypeSchema___]
+[#_stdstring_TypeDBDatabasetypeSchema_]
 ==== typeSchema
 
 [source,cpp]
diff --git a/cpp/docs/connection/DatabaseManager.adoc b/docs/modules/ROOT/partials/cpp/connection/DatabaseManager.adoc
similarity index 86%
rename from cpp/docs/connection/DatabaseManager.adoc
rename to docs/modules/ROOT/partials/cpp/connection/DatabaseManager.adoc
index 6bc7e16c96..8aa28437e0 100644
--- a/cpp/docs/connection/DatabaseManager.adoc
+++ b/docs/modules/ROOT/partials/cpp/connection/DatabaseManager.adoc
@@ -8,7 +8,7 @@
 Provides access to all database management methods.
 
 // tag::methods[]
-[#_DatabaseIterable_TypeDBDatabaseManagerall_____const]
+[#_DatabaseIterable_TypeDBDatabaseManagerall_const]
 ==== all
 
 [source,cpp]
@@ -32,7 +32,7 @@ Retrieves all databases present on the TypeDB server
 driver.databases.all()
 ----
 
-[#_bool_TypeDBDatabaseManagercontains___const_stdstring____const]
+[#_bool_TypeDBDatabaseManagercontains_const_stdstring_const]
 ==== contains
 
 [source,cpp]
@@ -65,7 +65,7 @@ a| `name` a| The database name to be checked a|
 driver.databases.contains(name)
 ----
 
-[#_void_TypeDBDatabaseManagercreate___const_stdstring____const]
+[#_void_TypeDBDatabaseManagercreate_const_stdstring_const]
 ==== create
 
 [source,cpp]
@@ -98,7 +98,7 @@ a| `name` a| The name of the database to be created a|
 driver.databases.create(name)
 ----
 
-[#_Database_TypeDBDatabaseManagerget___const_stdstring____const]
+[#_Database_TypeDBDatabaseManagerget_const_stdstring_const]
 ==== get
 
 [source,cpp]
diff --git a/cpp/docs/connection/Driver.adoc b/docs/modules/ROOT/partials/cpp/connection/Driver.adoc
similarity index 89%
rename from cpp/docs/connection/Driver.adoc
rename to docs/modules/ROOT/partials/cpp/connection/Driver.adoc
index c67f564232..6cdf68f9e4 100644
--- a/cpp/docs/connection/Driver.adoc
+++ b/docs/modules/ROOT/partials/cpp/connection/Driver.adoc
@@ -20,7 +20,7 @@ a| `users` a| `UserManager TypeDB::Driver` a| The ``UserManager`` instance for t
 // end::properties[]
 
 // tag::methods[]
-[#_void_TypeDBDriverclose___]
+[#_void_TypeDBDriverclose_]
 ==== close
 
 [source,cpp]
@@ -44,7 +44,7 @@ Closes the driver. Before instantiating a new driver, the driver that’s curren
 driver.close()
 ----
 
-[#_static_Driver_TypeDBDrivercloudDriver___const_stdvector__stdstring____addresses__const_Credential__credential_]
+[#_static_Driver_TypeDBDrivercloudDriver_const_stdvector_stdstring_addresses_const_Credential_credential_]
 ==== cloudDriver
 
 [source,cpp]
@@ -78,7 +78,7 @@ a| `credential` a| The Credential to connect with a| `const Credential&`
 Driver::cloudDriver(addresses, credential);
 ----
 
-[#_static_Driver_TypeDBDrivercoreDriver___const_stdstring__address_]
+[#_static_Driver_TypeDBDrivercoreDriver_const_stdstring_address_]
 ==== coreDriver
 
 [source,cpp]
@@ -111,7 +111,7 @@ a| `address` a| The address of the TypeDB server a| `const std::string&`
 Driver::coreDriver(address);
 ----
 
-[#_static_void_TypeDBDriverinitLogging___]
+[#_static_void_TypeDBDriverinitLogging_]
 ==== initLogging
 
 [source,cpp]
@@ -135,7 +135,7 @@ Enables logging in the TypeDB driver.
 Driver::initLogging();
 ----
 
-[#_bool_TypeDBDriverisOpen___]
+[#_bool_TypeDBDriverisOpen_]
 ==== isOpen
 
 [source,cpp]
@@ -159,7 +159,7 @@ Checks whether this connection is presently open.
 driver.isOpen();
 ----
 
-[#_Session_TypeDBDriversession___const_stdstring__database__SessionType_sessionType__const_Options__options__Options___]
+[#_Session_TypeDBDriversession_const_stdstring_database_SessionType_sessionType_const_Options_options_Options_]
 ==== session
 
 [source,cpp]
@@ -194,7 +194,7 @@ a| `options` a| ``TypeDBOptions`` for the session a|
 driver.session(database, sessionType, options);
 ----
 
-[#_User_TypeDBDriveruser___]
+[#_User_TypeDBDriveruser_]
 ==== user
 
 [source,cpp]
diff --git a/cpp/docs/connection/ReplicaInfo.adoc b/docs/modules/ROOT/partials/cpp/connection/ReplicaInfo.adoc
similarity index 85%
rename from cpp/docs/connection/ReplicaInfo.adoc
rename to docs/modules/ROOT/partials/cpp/connection/ReplicaInfo.adoc
index 28294967d0..50ea8bb442 100644
--- a/cpp/docs/connection/ReplicaInfo.adoc
+++ b/docs/modules/ROOT/partials/cpp/connection/ReplicaInfo.adoc
@@ -8,7 +8,7 @@
 The metadata and state of an individual raft replica of a database.
 
 // tag::methods[]
-[#_bool_TypeDBReplicaInfoisPreferred___]
+[#_bool_TypeDBReplicaInfoisPreferred_]
 ==== isPreferred
 
 [source,cpp]
@@ -24,7 +24,7 @@ Checks whether this is the preferred replica of the raft cluster. If true, Opera
 .Returns
 `bool`
 
-[#_bool_TypeDBReplicaInfoisPrimary___]
+[#_bool_TypeDBReplicaInfoisPrimary_]
 ==== isPrimary
 
 [source,cpp]
@@ -40,7 +40,7 @@ Checks whether this is the primary replica of the raft cluster.
 .Returns
 `bool`
 
-[#_stdstring_TypeDBReplicaInfoserver___]
+[#_stdstring_TypeDBReplicaInfoserver_]
 ==== server
 
 [source,cpp]
@@ -56,7 +56,7 @@ The server hosting this replica
 .Returns
 `std::string`
 
-[#_int64_t_TypeDBReplicaInfoterm___]
+[#_int64_t_TypeDBReplicaInfoterm_]
 ==== term
 
 [source,cpp]
diff --git a/cpp/docs/connection/User.adoc b/docs/modules/ROOT/partials/cpp/connection/User.adoc
similarity index 81%
rename from cpp/docs/connection/User.adoc
rename to docs/modules/ROOT/partials/cpp/connection/User.adoc
index d4ce37e4bf..d9ec77cfe3 100644
--- a/cpp/docs/connection/User.adoc
+++ b/docs/modules/ROOT/partials/cpp/connection/User.adoc
@@ -8,7 +8,7 @@
 TypeDB user information.
 
 // tag::methods[]
-[#_stdoptional__int64_t___TypeDBUserpasswordExpirySeconds___]
+[#_stdoptional_int64_t_TypeDBUserpasswordExpirySeconds_]
 ==== passwordExpirySeconds
 
 [source,cpp]
@@ -24,7 +24,7 @@ Returns the number of seconds remaining till this user’s current password expi
 .Returns
 `std::optional< int64_t >`
 
-[#_void_TypeDBUserpasswordUpdate___const_UserManager__userManager__const_stdstring__passwordOld__const_stdstring__passwordNew_]
+[#_void_TypeDBUserpasswordUpdate_const_UserManager_userManager_const_stdstring_passwordOld_const_stdstring_passwordNew_]
 ==== passwordUpdate
 
 [source,cpp]
@@ -51,7 +51,7 @@ a| `passwordNew` a| The new password a| `const std::string&`
 .Returns
 `void`
 
-[#_stdstring_TypeDBUserusername___]
+[#_stdstring_TypeDBUserusername_]
 ==== username
 
 [source,cpp]
diff --git a/cpp/docs/connection/UserManager.adoc b/docs/modules/ROOT/partials/cpp/connection/UserManager.adoc
similarity index 84%
rename from cpp/docs/connection/UserManager.adoc
rename to docs/modules/ROOT/partials/cpp/connection/UserManager.adoc
index 2152ae91e3..ff2fd2a326 100644
--- a/cpp/docs/connection/UserManager.adoc
+++ b/docs/modules/ROOT/partials/cpp/connection/UserManager.adoc
@@ -8,7 +8,7 @@
 Provides access to all user management methods.
 
 // tag::methods[]
-[#_UserIterable_TypeDBUserManagerall_____const]
+[#_UserIterable_TypeDBUserManagerall_const]
 ==== all
 
 [source,cpp]
@@ -32,7 +32,7 @@ Retrieves all users which exist on the TypeDB server.
 driver.users.all();
 ----
 
-[#_bool_TypeDBUserManagercontains___const_stdstring__username___const]
+[#_bool_TypeDBUserManagercontains_const_stdstring_username_const]
 ==== contains
 
 [source,cpp]
@@ -65,7 +65,7 @@ a| `username` a| The user name to be checked a| `const std::string&`
 driver.users.contains(username);
 ----
 
-[#_void_TypeDBUserManagercreate___const_stdstring__username__const_stdstring__password___const]
+[#_void_TypeDBUserManagercreate_const_stdstring_username_const_stdstring_password_const]
 ==== create
 
 [source,cpp]
@@ -75,7 +75,7 @@ void TypeDB::UserManager::create(const std::string& username, const std::string&
 
 
 
-Creates a user with the given name & password.
+Creates a user with the given name & password.
 
 
 [caption=""]
@@ -99,7 +99,7 @@ a| `password` a| The password of the user to be created a| `const std::string&`
 driver.users.create(username, password);
 ----
 
-[#_void_TypeDBUserManagerdeleteUser___const_stdstring__username___const]
+[#_void_TypeDBUserManagerdeleteUser_const_stdstring_username_const]
 ==== deleteUser
 
 [source,cpp]
@@ -132,7 +132,7 @@ a| `username` a| The name of the user to be deleted a| `const std::string&`
 driver.users.deleteUser(username);
 ----
 
-[#_stdunique_ptr__User___TypeDBUserManagerget___const_stdstring__username___const]
+[#_stdunique_ptr_User_TypeDBUserManagerget_const_stdstring_username_const]
 ==== get
 
 [source,cpp]
@@ -165,7 +165,7 @@ a| `username` a| The name of the user to retrieve a| `const std::string&`
 driver.users.get(username);
 ----
 
-[#_void_TypeDBUserManagerpasswordSet___const_stdstring__username__const_stdstring__password___const]
+[#_void_TypeDBUserManagerpasswordSet_const_stdstring_username_const_stdstring_password_const]
 ==== passwordSet
 
 [source,cpp]
diff --git a/cpp/docs/data/Attribute.adoc b/docs/modules/ROOT/partials/cpp/data/Attribute.adoc
similarity index 86%
rename from cpp/docs/data/Attribute.adoc
rename to docs/modules/ROOT/partials/cpp/data/Attribute.adoc
index f4e59008da..93ea0bb923 100644
--- a/cpp/docs/data/Attribute.adoc
+++ b/docs/modules/ROOT/partials/cpp/data/Attribute.adoc
@@ -15,7 +15,7 @@ Attribute is an instance of the attribute type and has a value.
 This value is fixed and unique for every given instance of the attribute type. Attributes can be uniquely addressed by their type and value.
 
 // tag::methods[]
-[#_ConceptIterable__Thing___TypeDBAttributegetOwners___Transaction__transaction_]
+[#_ConceptIterable_Thing_TypeDBAttributegetOwners_Transaction_transaction_]
 ==== getOwners
 
 [source,cpp]
@@ -48,7 +48,7 @@ a| `transaction` a| The current transaction a| `Transaction&`
 attribute.getOwners(transaction);
 ----
 
-[#_ConceptIterable__Thing___TypeDBAttributegetOwners___Transaction__transaction__const_ThingType__ptr__ownerType_]
+[#_ConceptIterable_Thing_TypeDBAttributegetOwners_Transaction_transaction_const_ThingType_ptr_ownerType_]
 ==== getOwners
 
 [source,cpp]
@@ -82,7 +82,7 @@ a| `ownerType` a| Filter results for only owners of the given type a| `const Thi
 attribute.getOwners(transaction, ownerType);
 ----
 
-[#_stdunique_ptr__AttributeType___TypeDBAttributegetType___]
+[#_stdunique_ptr_AttributeType_TypeDBAttributegetType_]
 ==== getType
 
 [source,cpp]
@@ -106,7 +106,7 @@ Retrieves the type which this ``Attribute`` belongs to.
 attribute.getType();
 ----
 
-[#_stdunique_ptr__Value___TypeDBAttributegetValue___]
+[#_stdunique_ptr_Value_TypeDBAttributegetValue_]
 ==== getValue
 
 [source,cpp]
diff --git a/cpp/docs/data/Entity.adoc b/docs/modules/ROOT/partials/cpp/data/Entity.adoc
similarity index 92%
rename from cpp/docs/data/Entity.adoc
rename to docs/modules/ROOT/partials/cpp/data/Entity.adoc
index e70b11a7de..c7a8272fb5 100644
--- a/cpp/docs/data/Entity.adoc
+++ b/docs/modules/ROOT/partials/cpp/data/Entity.adoc
@@ -15,7 +15,7 @@ Instance of data of an entity type, representing a standalone object that exists
 Entity does not have a value. It is usually addressed by its ownership over attribute instances and/or roles played in relation instances.
 
 // tag::methods[]
-[#_stdunique_ptr__EntityType___TypeDBEntitygetType___]
+[#_stdunique_ptr_EntityType_TypeDBEntitygetType_]
 ==== getType
 
 [source,cpp]
diff --git a/cpp/docs/data/Relation.adoc b/docs/modules/ROOT/partials/cpp/data/Relation.adoc
similarity index 80%
rename from cpp/docs/data/Relation.adoc
rename to docs/modules/ROOT/partials/cpp/data/Relation.adoc
index 17c5ce4232..deb6eb454a 100644
--- a/cpp/docs/data/Relation.adoc
+++ b/docs/modules/ROOT/partials/cpp/data/Relation.adoc
@@ -15,7 +15,7 @@ Relation is an instance of a relation type.
 Relation is an instance of a relation type and can be uniquely addressed by a combination of its type, owned attributes and role players.
 
 // tag::methods[]
-[#_VoidFuture_TypeDBRelationaddPlayer___Transaction__transaction__RoleType__ptr__roleType__Thing__ptr__player_]
+[#_VoidFuture_TypeDBRelationaddPlayer_Transaction_transaction_RoleType_ptr_roleType_Thing_ptr_player_]
 ==== addPlayer
 
 [source,cpp]
@@ -50,7 +50,7 @@ a| `player` a| The thing to play the role a| `Thing*`
 relation.addPlayer(transaction, roleType, player).get();
 ----
 
-[#_stdmap__stdunique_ptr__RoleType____stdunique_ptr__Thing_____TypeDBRelationgetPlayers___Transaction__transaction_]
+[#_stdmap_stdunique_ptr_RoleType_stdunique_ptr_Thing_TypeDBRelationgetPlayers_Transaction_transaction_]
 ==== getPlayers
 
 [source,cpp]
@@ -83,7 +83,7 @@ a| `transaction` a| The current transaction a| `Transaction&`
 relation.getPlayers(transaction)
 ----
 
-[#_ConceptIterable__Thing___TypeDBRelationgetPlayersByRoleType___Transaction__transaction__const_stdvector__stdunique_ptr__RoleType______roleTypes_]
+[#_ConceptIterable_Thing_TypeDBRelationgetPlayersByRoleType_Transaction_transaction_const_stdvector_stdunique_ptr_RoleType_roleTypes_]
 ==== getPlayersByRoleType
 
 [source,cpp]
@@ -117,7 +117,7 @@ a| `roleTypes` a| 0 or more role types a| `const std::vector< std::unique_ptr< R
 relation.getPlayersByRoleType(transaction, roleTypes);
 ----
 
-[#_ConceptIterable__Thing___TypeDBRelationgetPlayersByRoleType___Transaction__transaction__const_stdvector__RoleType__ptr_____roleTypes_]
+[#_ConceptIterable_Thing_TypeDBRelationgetPlayersByRoleType_Transaction_transaction_const_stdvector_RoleType_ptr_roleTypes_]
 ==== getPlayersByRoleType
 
 [source,cpp]
@@ -127,13 +127,13 @@ ConceptIterable< Thing > TypeDB::Relation::getPlayersByRoleType(Transaction& tra
 
 
 
-See <<#_ConceptIterable__Thing___TypeDBRelationgetPlayersByRoleType___Transaction__transaction__const_stdvector__stdunique_ptr__RoleType______roleTypes_,getPlayersByRoleType>>
+See <<#_ConceptIterable_Thing_TypeDBRelationgetPlayersByRoleType_Transaction_transaction_const_stdvector_stdunique_ptr_RoleType_roleTypes_,getPlayersByRoleType>>
 
 [caption=""]
 .Returns
 `ConceptIterable< Thing >`
 
-[#_ConceptIterable__RoleType___TypeDBRelationgetRelating___Transaction__transaction_]
+[#_ConceptIterable_RoleType_TypeDBRelationgetRelating_Transaction_transaction_]
 ==== getRelating
 
 [source,cpp]
@@ -166,7 +166,7 @@ a| `transaction` a| The current transaction a| `Transaction&`
 relation.getRelating(transaction);
 ----
 
-[#_stdunique_ptr__RelationType___TypeDBRelationgetType___]
+[#_stdunique_ptr_RelationType_TypeDBRelationgetType_]
 ==== getType
 
 [source,cpp]
@@ -190,7 +190,7 @@ Retrieves the type which this ``Relation`` belongs to.
 relation.getType();
 ----
 
-[#_VoidFuture_TypeDBRelationremovePlayer___Transaction__transaction__RoleType__ptr__roleType__Thing__ptr__player_]
+[#_VoidFuture_TypeDBRelationremovePlayer_Transaction_transaction_RoleType_ptr_roleType_Thing_ptr_player_]
 ==== removePlayer
 
 [source,cpp]
diff --git a/cpp/docs/data/Thing.adoc b/docs/modules/ROOT/partials/cpp/data/Thing.adoc
similarity index 72%
rename from cpp/docs/data/Thing.adoc
rename to docs/modules/ROOT/partials/cpp/data/Thing.adoc
index 73958f85c1..fb430da8d3 100644
--- a/cpp/docs/data/Thing.adoc
+++ b/docs/modules/ROOT/partials/cpp/data/Thing.adoc
@@ -12,7 +12,7 @@
 Common super-type of Entity, Relation, and Attribute.
 
 // tag::methods[]
-[#_VoidFuture_TypeDBThingdeleteThing___Transaction__transaction_]
+[#_VoidFuture_TypeDBThingdeleteThing_Transaction_transaction_]
 ==== deleteThing
 
 [source,cpp]
@@ -45,7 +45,7 @@ a| `transaction` a| The current transaction a| `Transaction&`
 thing.deleteThing(transaction).get();
 ----
 
-[#_ConceptIterable__Attribute___TypeDBThinggetHas___Transaction__transaction__const_stdinitializer_list__Annotation____annotations___]
+[#_ConceptIterable_Attribute_TypeDBThinggetHas_Transaction_transaction_const_stdinitializer_list_Annotation_annotations_]
 ==== getHas
 
 [source,cpp]
@@ -80,7 +80,7 @@ thing.getHas(transaction);
 thing.getHas(transaction, {Annotation.key()}));
 ----
 
-[#_ConceptIterable__Attribute___TypeDBThinggetHas___Transaction__transaction__const_AttributeType__ptr__attribute_]
+[#_ConceptIterable_Attribute_TypeDBThinggetHas_Transaction_transaction_const_AttributeType_ptr_attribute_]
 ==== getHas
 
 [source,cpp]
@@ -90,13 +90,13 @@ ConceptIterable< Attribute > TypeDB::Thing::getHas(Transaction& transaction, con
 
 
 
-See <<#_ConceptIterable__Attribute___TypeDBThinggetHas___Transaction__transaction__const_stdvector__stdunique_ptr__AttributeType______attributeTypes_,getHas(Transaction&, const std::vector<std::unique_ptr<AttributeType>>&)>>
+See <<#_ConceptIterable_Attribute_TypeDBThinggetHas_Transaction_transaction_const_stdvector_stdunique_ptr_AttributeType_attributeTypes_,getHas(Transaction&, const std::vector>&)>>
 
 [caption=""]
 .Returns
 `ConceptIterable< Attribute >`
 
-[#_ConceptIterable__Attribute___TypeDBThinggetHas___Transaction__transaction__const_stdvector__stdunique_ptr__AttributeType______attributeTypes_]
+[#_ConceptIterable_Attribute_TypeDBThinggetHas_Transaction_transaction_const_stdvector_stdunique_ptr_AttributeType_attributeTypes_]
 ==== getHas
 
 [source,cpp]
@@ -130,7 +130,7 @@ a| `attributeTypes` a| The ``AttributeType``s to filter the attributes by a| `co
 thing.getHas(transaction, attributeTypes);
 ----
 
-[#_ConceptIterable__Attribute___TypeDBThinggetHas___Transaction__transaction__const_stdvector__const_AttributeType__ptr_____attributeTypes_]
+[#_ConceptIterable_Attribute_TypeDBThinggetHas_Transaction_transaction_const_stdvector_const_AttributeType_ptr_attributeTypes_]
 ==== getHas
 
 [source,cpp]
@@ -140,13 +140,13 @@ ConceptIterable< Attribute > TypeDB::Thing::getHas(Transaction& transaction, con
 
 
 
-See <<#_ConceptIterable__Attribute___TypeDBThinggetHas___Transaction__transaction__const_stdvector__stdunique_ptr__AttributeType______attributeTypes_,getHas(Transaction& transaction, const std::vector<std::unique_ptr<AttributeType>>& attributeTypes)>>
+See <<#_ConceptIterable_Attribute_TypeDBThinggetHas_Transaction_transaction_const_stdvector_stdunique_ptr_AttributeType_attributeTypes_,getHas(Transaction& transaction, const std::vector>& attributeTypes)>>
 
 [caption=""]
 .Returns
 `ConceptIterable< Attribute >`
 
-[#_ConceptIterable__Attribute___TypeDBThinggetHas___Transaction__transaction__const_stdvector__Annotation____annotations_]
+[#_ConceptIterable_Attribute_TypeDBThinggetHas_Transaction_transaction_const_stdvector_Annotation_annotations_]
 ==== getHas
 
 [source,cpp]
@@ -156,13 +156,13 @@ ConceptIterable< Attribute > TypeDB::Thing::getHas(Transaction& transaction, con
 
 
 
-See <<#_ConceptIterable__Attribute___TypeDBThinggetHas___Transaction__transaction__const_stdinitializer_list__Annotation____annotations___,getHas(Transaction&, const std::initializer_list<Annotation>&)>>
+See <<#_ConceptIterable_Attribute_TypeDBThinggetHas_Transaction_transaction_const_stdinitializer_list_Annotation_annotations_,getHas(Transaction&, const std::initializer_list&)>>
 
 [caption=""]
 .Returns
 `ConceptIterable< Attribute >`
 
-[#_stdstring_TypeDBThinggetIID___]
+[#_stdstring_TypeDBThinggetIID_]
 ==== getIID
 
 [source,cpp]
@@ -186,7 +186,7 @@ Retrieves the unique id of the ``Thing``.
 thing.getIID();
 ----
 
-[#_ConceptIterable__RoleType___TypeDBThinggetPlaying___Transaction__transaction_]
+[#_ConceptIterable_RoleType_TypeDBThinggetPlaying_Transaction_transaction_]
 ==== getPlaying
 
 [source,cpp]
@@ -219,7 +219,7 @@ a| `transaction` a| The current transaction a| `Transaction&`
 thing.getPlaying(transaction);
 ----
 
-[#_ConceptIterable__Relation___TypeDBThinggetRelations___Transaction__transaction__const_stdvector__stdunique_ptr__RoleType______roleTypes___]
+[#_ConceptIterable_Relation_TypeDBThinggetRelations_Transaction_transaction_const_stdvector_stdunique_ptr_RoleType_roleTypes_]
 ==== getRelations
 
 [source,cpp]
@@ -254,7 +254,7 @@ thing.getRelations(transaction);
 thing.getRelations(transaction, roleTypes);
 ----
 
-[#_ConceptIterable__Relation___TypeDBThinggetRelations___Transaction__transaction__const_stdvector__RoleType__ptr_____roleTypes_]
+[#_ConceptIterable_Relation_TypeDBThinggetRelations_Transaction_transaction_const_stdvector_RoleType_ptr_roleTypes_]
 ==== getRelations
 
 [source,cpp]
@@ -264,13 +264,13 @@ ConceptIterable< Relation > TypeDB::Thing::getRelations(Transaction& transaction
 
 
 
-See <<#_ConceptIterable__Relation___TypeDBThinggetRelations___Transaction__transaction__const_stdvector__stdunique_ptr__RoleType______roleTypes___,getRelations(Transaction& transaction, const std::vector<std::unique_ptr<RoleType>>& roleTypes)>>
+See <<#_ConceptIterable_Relation_TypeDBThinggetRelations_Transaction_transaction_const_stdvector_stdunique_ptr_RoleType_roleTypes_,getRelations(Transaction& transaction, const std::vector>& roleTypes)>>
 
 [caption=""]
 .Returns
 `ConceptIterable< Relation >`
 
-[#_stdunique_ptr__ThingType___TypeDBThinggetType___]
+[#_stdunique_ptr_ThingType_TypeDBThinggetType_]
 ==== getType
 
 [source,cpp]
@@ -294,7 +294,7 @@ Retrieves the type which this ``Thing`` belongs to.
 thing.getType();
 ----
 
-[#_BoolFuture_TypeDBThingisDeleted___Transaction__transaction_]
+[#_BoolFuture_TypeDBThingisDeleted_Transaction_transaction_]
 ==== isDeleted
 
 [source,cpp]
@@ -327,7 +327,7 @@ a| `transaction` a| The current transaction a| `Transaction&`
 thing.isDeleted(transaction).get();
 ----
 
-[#_bool_TypeDBThingisInferred___]
+[#_bool_TypeDBThingisInferred_]
 ==== isInferred
 
 [source,cpp]
@@ -351,7 +351,7 @@ Checks if this ``Thing`` is inferred by a [Reasoning Rule].
 thing.isInferred();
 ----
 
-[#_VoidFuture_TypeDBThingsetHas___Transaction__transaction__Attribute__ptr__attribute_]
+[#_VoidFuture_TypeDBThingsetHas_Transaction_transaction_Attribute_ptr_attribute_]
 ==== setHas
 
 [source,cpp]
@@ -385,7 +385,7 @@ a| `attribute` a| The ``Attribute`` to be owned by this ``Thing``. a| `Attribute
 thing.setHas(transaction, attribute).get();
 ----
 
-[#_VoidFuture_TypeDBThingunsetHas___Transaction__transaction__Attribute__ptr__attribute_]
+[#_VoidFuture_TypeDBThingunsetHas_Transaction_transaction_Attribute_ptr_attribute_]
 ==== unsetHas
 
 [source,cpp]
diff --git a/cpp/docs/data/Value.adoc b/docs/modules/ROOT/partials/cpp/data/Value.adoc
similarity index 86%
rename from cpp/docs/data/Value.adoc
rename to docs/modules/ROOT/partials/cpp/data/Value.adoc
index 42dd6ff7ac..4838a8a639 100644
--- a/cpp/docs/data/Value.adoc
+++ b/docs/modules/ROOT/partials/cpp/data/Value.adoc
@@ -12,7 +12,7 @@
 A primitive value. Holds the value of an attribute, or the result of an expression in a query.
 
 // tag::methods[]
-[#_bool_TypeDBValueasBoolean___]
+[#_bool_TypeDBValueasBoolean_]
 ==== asBoolean
 
 [source,cpp]
@@ -36,7 +36,7 @@ Returns a ``boolean`` value of this value concept. If the value has another type
 value.asBoolean();
 ----
 
-[#_DateTime_TypeDBValueasDateTime___]
+[#_DateTime_TypeDBValueasDateTime_]
 ==== asDateTime
 
 [source,cpp]
@@ -60,7 +60,7 @@ Returns a ``DateTime`` value of this value concept. If the value has another typ
 value.asDatetime();
 ----
 
-[#_double_TypeDBValueasDouble___]
+[#_double_TypeDBValueasDouble_]
 ==== asDouble
 
 [source,cpp]
@@ -84,7 +84,7 @@ Returns a ``double`` value of this value concept. If the value has another type,
 value.asDouble();
 ----
 
-[#_int64_t_TypeDBValueasLong___]
+[#_int64_t_TypeDBValueasLong_]
 ==== asLong
 
 [source,cpp]
@@ -108,7 +108,7 @@ Returns a ``long`` value of this value concept. If the value has another type, r
 value.asLong();
 ----
 
-[#_stdstring_TypeDBValueasString___]
+[#_stdstring_TypeDBValueasString_]
 ==== asString
 
 [source,cpp]
@@ -132,7 +132,7 @@ Returns a ``string`` value of this value concept. If the value has another type,
 value.asString();
 ----
 
-[#_static_stdstring_TypeDBValueformatDateTime___DateTime_t_]
+[#_static_stdstring_TypeDBValueformatDateTime_DateTime_t_]
 ==== formatDateTime
 
 [source,cpp]
@@ -156,7 +156,7 @@ Returns a string in the TypeQL DateTime format corresponding to the specified Da
 Value::formatDateTime(datetime);
 ----
 
-[#_bool_TypeDBValueisBoolean___]
+[#_bool_TypeDBValueisBoolean_]
 ==== isBoolean
 
 [source,cpp]
@@ -180,7 +180,7 @@ Returns ``true`` if the value which this value concept holds is of type ``boolea
 value.isBoolean()
 ----
 
-[#_bool_TypeDBValueisDateTime___]
+[#_bool_TypeDBValueisDateTime_]
 ==== isDateTime
 
 [source,cpp]
@@ -204,7 +204,7 @@ Returns ``True`` if the value which this value concept holds is of type ``DateTi
 value.isDatetime();
 ----
 
-[#_bool_TypeDBValueisDouble___]
+[#_bool_TypeDBValueisDouble_]
 ==== isDouble
 
 [source,cpp]
@@ -228,7 +228,7 @@ Returns ``true`` if the value which this value concept holds is of type ``double
 value.isDouble();
 ----
 
-[#_bool_TypeDBValueisLong___]
+[#_bool_TypeDBValueisLong_]
 ==== isLong
 
 [source,cpp]
@@ -252,7 +252,7 @@ Returns ``true`` if the value which this value concept holds is of type ``long``
 value.isLong()
 ----
 
-[#_bool_TypeDBValueisString___]
+[#_bool_TypeDBValueisString_]
 ==== isString
 
 [source,cpp]
@@ -276,7 +276,7 @@ Returns ``true`` if the value which this value concept holds is of type ``string
 value.isString();
 ----
 
-[#_static_stdunique_ptr__Value___TypeDBValueof___bool_value_]
+[#_static_stdunique_ptr_Value_TypeDBValueof_bool_value_]
 ==== of
 
 [source,cpp]
@@ -300,7 +300,7 @@ Creates a new Value object of the specified boolean value.
 Value::of(value);
 ----
 
-[#_static_stdunique_ptr__Value___TypeDBValueof___int64_t_value_]
+[#_static_stdunique_ptr_Value_TypeDBValueof_int64_t_value_]
 ==== of
 
 [source,cpp]
@@ -324,7 +324,7 @@ Creates a new Value object of the specified long value.
 Value::of(value);
 ----
 
-[#_static_stdunique_ptr__Value___TypeDBValueof___double_value_]
+[#_static_stdunique_ptr_Value_TypeDBValueof_double_value_]
 ==== of
 
 [source,cpp]
@@ -348,7 +348,7 @@ Creates a new Value object of the specified double value.
 Value::of(value);
 ----
 
-[#_static_stdunique_ptr__Value___TypeDBValueof___const_stdstring__value_]
+[#_static_stdunique_ptr_Value_TypeDBValueof_const_stdstring_value_]
 ==== of
 
 [source,cpp]
@@ -372,7 +372,7 @@ Creates a new Value object of the specified string value.
 Value::of(value);
 ----
 
-[#_static_stdunique_ptr__Value___TypeDBValueof___DateTime_value_]
+[#_static_stdunique_ptr_Value_TypeDBValueof_DateTime_value_]
 ==== of
 
 [source,cpp]
@@ -396,7 +396,7 @@ Creates a new Value object of the specified DateTime value.
 Value::of(value);
 ----
 
-[#_static_DateTime_TypeDBValueparseDateTime___const_stdstring__s_]
+[#_static_DateTime_TypeDBValueparseDateTime_const_stdstring_s_]
 ==== parseDateTime
 
 [source,cpp]
@@ -420,7 +420,7 @@ Parses a DateTime from a string in the TypeQL DateTime format (yyyy-mm-dd'T'HH:M
 Value::parseDateTime(str);
 ----
 
-[#_ValueType_TypeDBValuevalueType___]
+[#_ValueType_TypeDBValuevalueType_]
 ==== valueType
 
 [source,cpp]
diff --git a/cpp/docs/errors/DriverException.adoc b/docs/modules/ROOT/partials/cpp/errors/DriverException.adoc
similarity index 87%
rename from cpp/docs/errors/DriverException.adoc
rename to docs/modules/ROOT/partials/cpp/errors/DriverException.adoc
index 211e889679..ab110b1541 100644
--- a/cpp/docs/errors/DriverException.adoc
+++ b/docs/modules/ROOT/partials/cpp/errors/DriverException.adoc
@@ -8,7 +8,7 @@
 Exceptions raised by the driver.
 
 // tag::methods[]
-[#_const_stdstring_view_TypeDBDriverExceptioncode___]
+[#_const_stdstring_view_TypeDBDriverExceptioncode_]
 ==== code
 
 [source,cpp]
@@ -35,7 +35,7 @@ catch (TypeDB::DriverException& e){
 }
 ----
 
-[#_const_stdstring_view_TypeDBDriverExceptionmessage___]
+[#_const_stdstring_view_TypeDBDriverExceptionmessage_]
 ==== message
 
 [source,cpp]
diff --git a/cpp/docs/logic/LogicManager.adoc b/docs/modules/ROOT/partials/cpp/logic/LogicManager.adoc
similarity index 86%
rename from cpp/docs/logic/LogicManager.adoc
rename to docs/modules/ROOT/partials/cpp/logic/LogicManager.adoc
index 9843845f8f..ee526a66fb 100644
--- a/cpp/docs/logic/LogicManager.adoc
+++ b/docs/modules/ROOT/partials/cpp/logic/LogicManager.adoc
@@ -8,7 +8,7 @@
 Provides methods for manipulating ``Rule``s in the database.
 
 // tag::methods[]
-[#_OptionalRuleFuture_TypeDBLogicManagergetRule___const_stdstring__label___const]
+[#_OptionalRuleFuture_TypeDBLogicManagergetRule_const_stdstring_label_const]
 ==== getRule
 
 [source,cpp]
@@ -41,7 +41,7 @@ a| `label` a| The label of the Rule to create or retrieve a| `const std::string&
 transaction.logic.getRule(label).get();
 ----
 
-[#_RuleIterable_TypeDBLogicManagergetRules_____const]
+[#_RuleIterable_TypeDBLogicManagergetRules_const]
 ==== getRules
 
 [source,cpp]
@@ -65,7 +65,7 @@ Retrieves all rules.
 transaction.logic.getRules()
 ----
 
-[#_RuleFuture_TypeDBLogicManagerputRule___const_stdstring__label__const_stdstring__when__const_stdstring__then___const]
+[#_RuleFuture_TypeDBLogicManagerputRule_const_stdstring_label_const_stdstring_when_const_stdstring_then_const]
 ==== putRule
 
 [source,cpp]
diff --git a/cpp/docs/logic/Rule.adoc b/docs/modules/ROOT/partials/cpp/logic/Rule.adoc
similarity index 87%
rename from cpp/docs/logic/Rule.adoc
rename to docs/modules/ROOT/partials/cpp/logic/Rule.adoc
index fae4a2ef9b..f7e9c6d0f4 100644
--- a/cpp/docs/logic/Rule.adoc
+++ b/docs/modules/ROOT/partials/cpp/logic/Rule.adoc
@@ -10,7 +10,7 @@ Rules are a part of schema and define embedded logic.
 The reasoning engine uses rules as a set of logic to infer new data. A rule consists of a condition and a conclusion, and is uniquely identified by a label.
 
 // tag::methods[]
-[#_VoidFuture_TypeDBRuledeleteRule___Transaction__transaction_]
+[#_VoidFuture_TypeDBRuledeleteRule_Transaction_transaction_]
 ==== deleteRule
 
 [source,cpp]
@@ -43,7 +43,7 @@ a| `transaction` a| The current ``Transaction`` a| `Transaction&`
 rule.deleteRule(transaction).get();
 ----
 
-[#_BoolFuture_TypeDBRuleisDeleted___Transaction__transaction_]
+[#_BoolFuture_TypeDBRuleisDeleted_Transaction_transaction_]
 ==== isDeleted
 
 [source,cpp]
@@ -76,7 +76,7 @@ a| `transaction` a| The current ``Transaction`` a| `Transaction&`
 rule.isDeleted(transaction).get();
 ----
 
-[#_stdstring_TypeDBRulelabel___]
+[#_stdstring_TypeDBRulelabel_]
 ==== label
 
 [source,cpp]
@@ -92,7 +92,7 @@ Retrieves the unique label of the rule.
 .Returns
 `std::string`
 
-[#_VoidFuture_TypeDBRulesetLabel___Transaction__transaction__const_stdstring__label_]
+[#_VoidFuture_TypeDBRulesetLabel_Transaction_transaction_const_stdstring_label_]
 ==== setLabel
 
 [source,cpp]
@@ -126,7 +126,7 @@ a| `label` a| The new label to be given to the rule a| `const std::string&`
 rule.setLabel(transaction, newLabel).get();
 ----
 
-[#_stdstring_TypeDBRulethen___]
+[#_stdstring_TypeDBRulethen_]
 ==== then
 
 [source,cpp]
@@ -142,7 +142,7 @@ The single statement that constitutes the ‘then’ of the rule.
 .Returns
 `std::string`
 
-[#_stdstring_TypeDBRuletoString___]
+[#_stdstring_TypeDBRuletoString_]
 ==== toString
 
 [source,cpp]
@@ -158,7 +158,7 @@ A string representation of this Rule.
 .Returns
 `std::string`
 
-[#_stdstring_TypeDBRulewhen___]
+[#_stdstring_TypeDBRulewhen_]
 ==== when
 
 [source,cpp]
diff --git a/cpp/docs/schema/Annotation.adoc b/docs/modules/ROOT/partials/cpp/schema/Annotation.adoc
similarity index 86%
rename from cpp/docs/schema/Annotation.adoc
rename to docs/modules/ROOT/partials/cpp/schema/Annotation.adoc
index 72c12c3a9c..a8f5ffd21c 100644
--- a/cpp/docs/schema/Annotation.adoc
+++ b/docs/modules/ROOT/partials/cpp/schema/Annotation.adoc
@@ -8,7 +8,7 @@
 Annotations are used to specify extra schema constraints.
 
 // tag::methods[]
-[#_bool_TypeDBAnnotationisKey___]
+[#_bool_TypeDBAnnotationisKey_]
 ==== isKey
 
 [source,cpp]
@@ -32,7 +32,7 @@ Checks if this ``Annotation`` is a ``@key`` annotation.
 annotation.isKey();
 ----
 
-[#_bool_TypeDBAnnotationisUnique___]
+[#_bool_TypeDBAnnotationisUnique_]
 ==== isUnique
 
 [source,cpp]
@@ -56,7 +56,7 @@ Checks if this ``Annotation`` is a ``@unique`` annotation.
 annotation.isUnique();
 ----
 
-[#_static_Annotation_TypeDBAnnotationkey___]
+[#_static_Annotation_TypeDBAnnotationkey_]
 ==== key
 
 [source,cpp]
@@ -80,7 +80,7 @@ Produces a ``@key`` annotation.
 ThingType.Annotation.key();
 ----
 
-[#_stdstring_TypeDBAnnotationtoString___]
+[#_stdstring_TypeDBAnnotationtoString_]
 ==== toString
 
 [source,cpp]
@@ -96,7 +96,7 @@ A string representation of this Annotation.
 .Returns
 `std::string`
 
-[#_static_Annotation_TypeDBAnnotationunique___]
+[#_static_Annotation_TypeDBAnnotationunique_]
 ==== unique
 
 [source,cpp]
diff --git a/cpp/docs/schema/AttributeType.adoc b/docs/modules/ROOT/partials/cpp/schema/AttributeType.adoc
similarity index 85%
rename from cpp/docs/schema/AttributeType.adoc
rename to docs/modules/ROOT/partials/cpp/schema/AttributeType.adoc
index 7d369bd848..51e009a6fa 100644
--- a/cpp/docs/schema/AttributeType.adoc
+++ b/docs/modules/ROOT/partials/cpp/schema/AttributeType.adoc
@@ -20,7 +20,7 @@ Other types can own an attribute type. That means that instances of these other
 Multiple types can own the same attribute type, and different instances of the same type or different types can share ownership of the same attribute instance.
 
 // tag::methods[]
-[#_ConceptPtrFuture__Attribute___TypeDBAttributeTypeget___Transaction__transaction__Value__ptr__value_]
+[#_ConceptPtrFuture_Attribute_TypeDBAttributeTypeget_Transaction_transaction_Value_ptr_value_]
 ==== get
 
 [source,cpp]
@@ -54,7 +54,7 @@ a| `value` a| ``Attribute``’s value a| `Value*`
 attributeType.get(transaction, value).get();
 ----
 
-[#_ConceptPtrFuture__Attribute___TypeDBAttributeTypeget___Transaction__transaction__const_stdstring__value_]
+[#_ConceptPtrFuture_Attribute_TypeDBAttributeTypeget_Transaction_transaction_const_stdstring_value_]
 ==== get
 
 [source,cpp]
@@ -88,7 +88,7 @@ a| `value` a| ``Attribute``’s value a| `const std::string&`
 attributeType.get(transaction, value).get();
 ----
 
-[#_ConceptPtrFuture__Attribute___TypeDBAttributeTypeget___Transaction__transaction__int64_t_value_]
+[#_ConceptPtrFuture_Attribute_TypeDBAttributeTypeget_Transaction_transaction_int64_t_value_]
 ==== get
 
 [source,cpp]
@@ -122,7 +122,7 @@ a| `value` a| ``Attribute``’s value a| `int64_t`
 attributeType.get(transaction, value).get();
 ----
 
-[#_ConceptPtrFuture__Attribute___TypeDBAttributeTypeget___Transaction__transaction__double_value_]
+[#_ConceptPtrFuture_Attribute_TypeDBAttributeTypeget_Transaction_transaction_double_value_]
 ==== get
 
 [source,cpp]
@@ -156,7 +156,7 @@ a| `value` a| ``Attribute``’s value a| `double`
 attributeType.get(transaction, value).get();
 ----
 
-[#_ConceptPtrFuture__Attribute___TypeDBAttributeTypeget___Transaction__transaction__bool_value_]
+[#_ConceptPtrFuture_Attribute_TypeDBAttributeTypeget_Transaction_transaction_bool_value_]
 ==== get
 
 [source,cpp]
@@ -190,7 +190,7 @@ a| `value` a| ``Attribute``’s value a| `bool`
 attributeType.get(transaction, value).get();
 ----
 
-[#_ConceptPtrFuture__Attribute___TypeDBAttributeTypeget___Transaction__transaction__DateTime_value_]
+[#_ConceptPtrFuture_Attribute_TypeDBAttributeTypeget_Transaction_transaction_DateTime_value_]
 ==== get
 
 [source,cpp]
@@ -224,7 +224,7 @@ a| `value` a| ``Attribute``’s value a| `DateTime`
 attributeType.get(transaction, value).get();
 ----
 
-[#_ConceptIterable__Attribute___TypeDBAttributeTypegetInstances___Transaction__transaction__Transitivity_transitivity__TransitivityTRANSITIVE_]
+[#_ConceptIterable_Attribute_TypeDBAttributeTypegetInstances_Transaction_transaction_Transitivity_transitivity_TransitivityTRANSITIVE_]
 ==== getInstances
 
 [source,cpp]
@@ -263,7 +263,7 @@ attributeType.getInstances(transaction, transitivity);
     transaction The current transaction
 ----
 
-[#_ConceptIterable__ThingType___TypeDBAttributeTypegetOwners___Transaction__transaction__Transitivity_transitivity__TransitivityTRANSITIVE_]
+[#_ConceptIterable_ThingType_TypeDBAttributeTypegetOwners_Transaction_transaction_Transitivity_transitivity_TransitivityTRANSITIVE_]
 ==== getOwners
 
 [source,cpp]
@@ -297,7 +297,7 @@ a| `transitivity` a| ``Transitivity::TRANSITIVE`` for direct and indirect subtyp
 attributeType.getOwners(transaction);
 ----
 
-[#_ConceptIterable__ThingType___TypeDBAttributeTypegetOwners___Transaction__transaction__const_stdvector__Annotation____annotations__Transitivity_transitivity__TransitivityTRANSITIVE_]
+[#_ConceptIterable_ThingType_TypeDBAttributeTypegetOwners_Transaction_transaction_const_stdvector_Annotation_annotations_Transitivity_transitivity_TransitivityTRANSITIVE_]
 ==== getOwners
 
 [source,cpp]
@@ -307,7 +307,7 @@ ConceptIterable< ThingType > TypeDB::AttributeType::getOwners(Transaction& trans
 
 
 
-Variant of <<#_ConceptIterable__ThingType___TypeDBAttributeTypegetOwners___Transaction__transaction__Transitivity_transitivity__TransitivityTRANSITIVE_,getOwners>>(Transaction& transaction, const std::vector<Annotation>& annotations, Transitivity transitivity = Transitivity::TRANSITIVE) for convenience
+Variant of <<#_ConceptIterable_ThingType_TypeDBAttributeTypegetOwners_Transaction_transaction_Transitivity_transitivity_TransitivityTRANSITIVE_,getOwners>>(Transaction& transaction, const std::vector& annotations, Transitivity transitivity = Transitivity::TRANSITIVE) for convenience
 
 
 [caption=""]
@@ -354,7 +354,7 @@ Parameters
     transitivity Transitivity::TRANSITIVE for direct and indirect subtypes, Transitivity::EXPLICIT for direct subtypes only
 ----
 
-[#_OptionalStringFuture_TypeDBAttributeTypegetRegex___Transaction__transaction_]
+[#_OptionalStringFuture_TypeDBAttributeTypegetRegex_Transaction_transaction_]
 ==== getRegex
 
 [source,cpp]
@@ -387,7 +387,7 @@ a| `transaction` a| The current transaction a| `Transaction&`
 attributeType.getRegex(transaction).get();
 ----
 
-[#_ConceptIterable__AttributeType___TypeDBAttributeTypegetSubtypes___Transaction__transaction__Transitivity_transitivity__TransitivityTRANSITIVE_]
+[#_ConceptIterable_AttributeType_TypeDBAttributeTypegetSubtypes_Transaction_transaction_Transitivity_transitivity_TransitivityTRANSITIVE_]
 ==== getSubtypes
 
 [source,cpp]
@@ -422,7 +422,7 @@ attributeType.getSubtypes(transaction);
 attributeType.getSubtypes(transaction, transitivity);
 ----
 
-[#_ConceptIterable__AttributeType___TypeDBAttributeTypegetSubtypes___Transaction__transaction__ValueType_valueType__Transitivity_transitivity__TransitivityTRANSITIVE_]
+[#_ConceptIterable_AttributeType_TypeDBAttributeTypegetSubtypes_Transaction_transaction_ValueType_valueType_Transitivity_transitivity_TransitivityTRANSITIVE_]
 ==== getSubtypes
 
 [source,cpp]
@@ -457,7 +457,7 @@ a| `transitivity` a| ``Transitivity::TRANSITIVE`` for direct and indirect subtyp
 attributeType.getSubtypes(transaction, valueType, transitivity);
 ----
 
-[#_ValueType_TypeDBAttributeTypegetValueType___]
+[#_ValueType_TypeDBAttributeTypegetValueType_]
 ==== getValueType
 
 [source,cpp]
@@ -481,7 +481,7 @@ Retrieves the ``Value.Type`` of this ``AttributeType``.
 attributeType.getValueType();
 ----
 
-[#_ConceptPtrFuture__Attribute___TypeDBAttributeTypeput___Transaction__transaction__Value__ptr__value_]
+[#_ConceptPtrFuture_Attribute_TypeDBAttributeTypeput_Transaction_transaction_Value_ptr_value_]
 ==== put
 
 [source,cpp]
@@ -515,7 +515,7 @@ a| `value` a| New ``Attribute``’s value a| `Value*`
 attributeType.put(transaction, value).get();
 ----
 
-[#_ConceptPtrFuture__Attribute___TypeDBAttributeTypeput___Transaction__transaction__const_stdstring__value_]
+[#_ConceptPtrFuture_Attribute_TypeDBAttributeTypeput_Transaction_transaction_const_stdstring_value_]
 ==== put
 
 [source,cpp]
@@ -549,7 +549,7 @@ a| `value` a| New ``Attribute``’s value a| `const std::string&`
 attributeType.put(transaction, value).get();
 ----
 
-[#_ConceptPtrFuture__Attribute___TypeDBAttributeTypeput___Transaction__transaction__int64_t_value_]
+[#_ConceptPtrFuture_Attribute_TypeDBAttributeTypeput_Transaction_transaction_int64_t_value_]
 ==== put
 
 [source,cpp]
@@ -583,7 +583,7 @@ a| `value` a| New ``Attribute``’s value a| `int64_t`
 attributeType.put(transaction, value).get();
 ----
 
-[#_ConceptPtrFuture__Attribute___TypeDBAttributeTypeput___Transaction__transaction__double_value_]
+[#_ConceptPtrFuture_Attribute_TypeDBAttributeTypeput_Transaction_transaction_double_value_]
 ==== put
 
 [source,cpp]
@@ -617,7 +617,7 @@ a| `value` a| New ``Attribute``’s value a| `double`
 attributeType.put(transaction, value).get();
 ----
 
-[#_ConceptPtrFuture__Attribute___TypeDBAttributeTypeput___Transaction__transaction__bool_value_]
+[#_ConceptPtrFuture_Attribute_TypeDBAttributeTypeput_Transaction_transaction_bool_value_]
 ==== put
 
 [source,cpp]
@@ -651,7 +651,7 @@ a| `value` a| New ``Attribute``’s value a| `bool`
 attributeType.put(transaction, value).get();
 ----
 
-[#_ConceptPtrFuture__Attribute___TypeDBAttributeTypeput___Transaction__transaction__DateTime_value_]
+[#_ConceptPtrFuture_Attribute_TypeDBAttributeTypeput_Transaction_transaction_DateTime_value_]
 ==== put
 
 [source,cpp]
@@ -685,7 +685,7 @@ a| `value` a| New ``Attribute``’s value a| `DateTime`
 attributeType.put(transaction, value).get();
 ----
 
-[#_VoidFuture_TypeDBAttributeTypesetRegex___Transaction__transaction__const_stdstring__regex_]
+[#_VoidFuture_TypeDBAttributeTypesetRegex_Transaction_transaction_const_stdstring_regex_]
 ==== setRegex
 
 [source,cpp]
@@ -721,7 +721,7 @@ a| `regex` a| Regular expression a| `const std::string&`
 attributeType.setRegex(transaction, regex).get();
 ----
 
-[#_VoidFuture_TypeDBAttributeTypesetSupertype___Transaction__transaction__AttributeType__ptr__attributeType_]
+[#_VoidFuture_TypeDBAttributeTypesetSupertype_Transaction_transaction_AttributeType_ptr_attributeType_]
 ==== setSupertype
 
 [source,cpp]
@@ -755,7 +755,7 @@ a| `attributeType` a| The ``AttributeType`` to set as the supertype of this ``At
 attributeType.setSupertype(transaction, superType).get();
 ----
 
-[#_VoidFuture_TypeDBAttributeTypeunsetRegex___Transaction__transaction_]
+[#_VoidFuture_TypeDBAttributeTypeunsetRegex_Transaction_transaction_]
 ==== unsetRegex
 
 [source,cpp]
diff --git a/cpp/docs/schema/EntityType.adoc b/docs/modules/ROOT/partials/cpp/schema/EntityType.adoc
similarity index 86%
rename from cpp/docs/schema/EntityType.adoc
rename to docs/modules/ROOT/partials/cpp/schema/EntityType.adoc
index 138a3fbfd3..33e09fe056 100644
--- a/cpp/docs/schema/EntityType.adoc
+++ b/docs/modules/ROOT/partials/cpp/schema/EntityType.adoc
@@ -14,7 +14,7 @@
 Entity types represent the classification of independent objects in the data model of the business domain.
 
 // tag::methods[]
-[#_ConceptPtrFuture__Entity___TypeDBEntityTypecreate___Transaction__transaction_]
+[#_ConceptPtrFuture_Entity_TypeDBEntityTypecreate_Transaction_transaction_]
 ==== create
 
 [source,cpp]
@@ -47,7 +47,7 @@ a| `transaction` a| The current transaction a| `Transaction&`
 entityType.create(transaction).get();
 ----
 
-[#_ConceptIterable__Entity___TypeDBEntityTypegetInstances___Transaction__transaction__Transitivity_transitivity__TransitivityTRANSITIVE_]
+[#_ConceptIterable_Entity_TypeDBEntityTypegetInstances_Transaction_transaction_Transitivity_transitivity_TransitivityTRANSITIVE_]
 ==== getInstances
 
 [source,cpp]
@@ -81,7 +81,7 @@ a| `transitivity` a| ``Transitivity::EXPLICIT`` for direct instances only, ``Tra
 entityType.getInstances(transaction, transitivity);
 ----
 
-[#_ConceptIterable__EntityType___TypeDBEntityTypegetSubtypes___Transaction__transaction__Transitivity_transitivity__TransitivityTRANSITIVE_]
+[#_ConceptIterable_EntityType_TypeDBEntityTypegetSubtypes_Transaction_transaction_Transitivity_transitivity_TransitivityTRANSITIVE_]
 ==== getSubtypes
 
 [source,cpp]
@@ -115,7 +115,7 @@ a| `transitivity` a| ``Transitivity::TRANSITIVE`` for direct and indirect subtyp
 entityType.getSubtypes(transaction, transitivity);
 ----
 
-[#_VoidFuture_TypeDBEntityTypesetSupertype___Transaction__transaction__EntityType__ptr__superEntityType_]
+[#_VoidFuture_TypeDBEntityTypesetSupertype_Transaction_transaction_EntityType_ptr_superEntityType_]
 ==== setSupertype
 
 [source,cpp]
diff --git a/cpp/docs/schema/RelationType.adoc b/docs/modules/ROOT/partials/cpp/schema/RelationType.adoc
similarity index 76%
rename from cpp/docs/schema/RelationType.adoc
rename to docs/modules/ROOT/partials/cpp/schema/RelationType.adoc
index 63f3b3fa9f..4415bb0fbf 100644
--- a/cpp/docs/schema/RelationType.adoc
+++ b/docs/modules/ROOT/partials/cpp/schema/RelationType.adoc
@@ -16,7 +16,7 @@ Relation types (or subtypes of the relation root type) represent relationships b
 Relation types have roles. Other types can play roles in relations if it’s mentioned in their definition. A relation type must specify at least one role.
 
 // tag::methods[]
-[#_ConceptPtrFuture__Relation___TypeDBRelationTypecreate___Transaction__transaction_]
+[#_ConceptPtrFuture_Relation_TypeDBRelationTypecreate_Transaction_transaction_]
 ==== create
 
 [source,cpp]
@@ -49,7 +49,7 @@ a| `transaction` a| The current transaction a| `Transaction&`
 relationType.create(transaction).get();
 ----
 
-[#_ConceptIterable__Relation___TypeDBRelationTypegetInstances___Transaction__transaction__Transitivity_transitivity__TransitivityTRANSITIVE_]
+[#_ConceptIterable_Relation_TypeDBRelationTypegetInstances_Transaction_transaction_Transitivity_transitivity_TransitivityTRANSITIVE_]
 ==== getInstances
 
 [source,cpp]
@@ -83,7 +83,7 @@ a| `transitivity` a| ``Transitivity::TRANSITIVE`` for direct and indirect instan
 relationType.getInstances(transaction, transitivity)
 ----
 
-[#_ConceptIterable__RoleType___TypeDBRelationTypegetRelates___Transaction__transaction__Transitivity_transitivity__TransitivityTRANSITIVE_]
+[#_ConceptIterable_RoleType_TypeDBRelationTypegetRelates_Transaction_transaction_Transitivity_transitivity_TransitivityTRANSITIVE_]
 ==== getRelates
 
 [source,cpp]
@@ -117,7 +117,7 @@ a| `transitivity` a| ``Transitivity::TRANSITIVE`` for direct and inherited relat
 relationType.getRelates(transaction, transitivity);
 ----
 
-[#_ConceptPtrFuture__RoleType___TypeDBRelationTypegetRelates___Transaction__transaction__const_stdstring__roleLabel_]
+[#_ConceptPtrFuture_RoleType_TypeDBRelationTypegetRelates_Transaction_transaction_const_stdstring_roleLabel_]
 ==== getRelates
 
 [source,cpp]
@@ -151,7 +151,7 @@ a| `roleLabel` a| Label of the role we wish to retrieve a| `const std::string&`
 relationType.getRelates(transaction, roleLabel).get();
 ----
 
-[#_ConceptPtrFuture__RoleType___TypeDBRelationTypegetRelatesOverridden___Transaction__transaction__RoleType__ptr__roleType_]
+[#_ConceptPtrFuture_RoleType_TypeDBRelationTypegetRelatesOverridden_Transaction_transaction_RoleType_ptr_roleType_]
 ==== getRelatesOverridden
 
 [source,cpp]
@@ -185,7 +185,7 @@ a| `roleLabel` a| Label of the role that overrides an inherited role a|
 relationType.getRelatesOverridden(transaction, roleLabel).get();
 ----
 
-[#_ConceptPtrFuture__RoleType___TypeDBRelationTypegetRelatesOverridden___Transaction__transaction__const_stdstring__roleLabel_]
+[#_ConceptPtrFuture_RoleType_TypeDBRelationTypegetRelatesOverridden_Transaction_transaction_const_stdstring_roleLabel_]
 ==== getRelatesOverridden
 
 [source,cpp]
@@ -219,7 +219,7 @@ a| `roleLabel` a| Label of the role that overrides an inherited role a| `const s
 relationType.getRelatesOverridden(transaction, roleLabel).get();
 ----
 
-[#_ConceptIterable__RelationType___TypeDBRelationTypegetSubtypes___Transaction__transaction__Transitivity_transitivity__TransitivityTRANSITIVE_]
+[#_ConceptIterable_RelationType_TypeDBRelationTypegetSubtypes_Transaction_transaction_Transitivity_transitivity_TransitivityTRANSITIVE_]
 ==== getSubtypes
 
 [source,cpp]
@@ -253,7 +253,7 @@ a| `transitivity` a| ``Transitivity::TRANSITIVE`` for direct and indirect subtyp
 relationType.getSubtypes(transaction, transitivity);
 ----
 
-[#_VoidFuture_TypeDBRelationTypesetRelates___Transaction__transaction__const_stdstring__roleLabel_]
+[#_VoidFuture_TypeDBRelationTypesetRelates_Transaction_transaction_const_stdstring_roleLabel_]
 ==== setRelates
 
 [source,cpp]
@@ -263,13 +263,13 @@ VoidFuture TypeDB::RelationType::setRelates(Transaction& transaction, const std:
 
 
 
-Variant of <<#_VoidFuture_TypeDBRelationTypesetRelates___Transaction__transaction__const_stdstring__roleLabel__const_stdstring__overriddenLabel_,setRelates(Transaction& transaction, const std::string& roleLabel, const std::string& overriddenLabel)>> where the RoleType does not override an existing role.
+Variant of <<#_VoidFuture_TypeDBRelationTypesetRelates_Transaction_transaction_const_stdstring_roleLabel_const_stdstring_overriddenLabel_,setRelates(Transaction& transaction, const std::string& roleLabel, const std::string& overriddenLabel)>> where the RoleType does not override an existing role.
 
 [caption=""]
 .Returns
 `VoidFuture`
 
-[#_VoidFuture_TypeDBRelationTypesetRelates___Transaction__transaction__const_stdstring__roleLabel__RoleType__ptr__overriddenType_]
+[#_VoidFuture_TypeDBRelationTypesetRelates_Transaction_transaction_const_stdstring_roleLabel_RoleType_ptr_overriddenType_]
 ==== setRelates
 
 [source,cpp]
@@ -279,13 +279,13 @@ VoidFuture TypeDB::RelationType::setRelates(Transaction& transaction, const std:
 
 
 
-Variant of <<#_VoidFuture_TypeDBRelationTypesetRelates___Transaction__transaction__const_stdstring__roleLabel__const_stdstring__overriddenLabel_,setRelates(Transaction& transaction, const std::string& roleLabel, const std::string& overriddenLabel)>> where the RoleType is specified directly rather than the label.
+Variant of <<#_VoidFuture_TypeDBRelationTypesetRelates_Transaction_transaction_const_stdstring_roleLabel_const_stdstring_overriddenLabel_,setRelates(Transaction& transaction, const std::string& roleLabel, const std::string& overriddenLabel)>> where the RoleType is specified directly rather than the label.
 
 [caption=""]
 .Returns
 `VoidFuture`
 
-[#_VoidFuture_TypeDBRelationTypesetRelates___Transaction__transaction__const_stdstring__roleLabel__const_stdstring__overriddenLabel_]
+[#_VoidFuture_TypeDBRelationTypesetRelates_Transaction_transaction_const_stdstring_roleLabel_const_stdstring_overriddenLabel_]
 ==== setRelates
 
 [source,cpp]
@@ -321,7 +321,7 @@ relationType.setRelates(transaction, roleLabel).get();
 relationType.setRelates(transaction, roleLabel, overriddenLabel).get();
 ----
 
-[#_VoidFuture_TypeDBRelationTypesetSupertype___Transaction__transaction__RelationType__ptr__superRelationType_]
+[#_VoidFuture_TypeDBRelationTypesetSupertype_Transaction_transaction_RelationType_ptr_superRelationType_]
 ==== setSupertype
 
 [source,cpp]
@@ -355,7 +355,7 @@ a| `superRelationType` a| The ``RelationType`` to set as the supertype of this `
 relationType.setSupertype(transaction, superRelationType).get();
 ----
 
-[#_VoidFuture_TypeDBRelationTypeunsetRelates___Transaction__transaction__RoleType__ptr__roleType_]
+[#_VoidFuture_TypeDBRelationTypeunsetRelates_Transaction_transaction_RoleType_ptr_roleType_]
 ==== unsetRelates
 
 [source,cpp]
@@ -365,13 +365,13 @@ VoidFuture TypeDB::RelationType::unsetRelates(Transaction& transaction, RoleType
 
 
 
-Variant of <<#_VoidFuture_TypeDBRelationTypeunsetRelates___Transaction__transaction__const_stdstring__roleLabel_,unsetRelates(Transaction& transaction, const std::string& roleLabel)>> where the RoleType is specified directly rather than the label.
+Variant of <<#_VoidFuture_TypeDBRelationTypeunsetRelates_Transaction_transaction_const_stdstring_roleLabel_,unsetRelates(Transaction& transaction, const std::string& roleLabel)>> where the RoleType is specified directly rather than the label.
 
 [caption=""]
 .Returns
 `VoidFuture`
 
-[#_VoidFuture_TypeDBRelationTypeunsetRelates___Transaction__transaction__const_stdstring__roleLabel_]
+[#_VoidFuture_TypeDBRelationTypeunsetRelates_Transaction_transaction_const_stdstring_roleLabel_]
 ==== unsetRelates
 
 [source,cpp]
diff --git a/cpp/docs/schema/RoleType.adoc b/docs/modules/ROOT/partials/cpp/schema/RoleType.adoc
similarity index 85%
rename from cpp/docs/schema/RoleType.adoc
rename to docs/modules/ROOT/partials/cpp/schema/RoleType.adoc
index b7ae22d737..21be95a938 100644
--- a/cpp/docs/schema/RoleType.adoc
+++ b/docs/modules/ROOT/partials/cpp/schema/RoleType.adoc
@@ -15,7 +15,7 @@ Defines a role an instance can play in a Relation.
 Roles are special internal types used by relations. We can not create an instance of a role in a database. But we can set an instance of another type (role player) to play a role in a particular instance of a relation type. Roles allow a schema to enforce logical constraints on types of role players.
 
 // tag::methods[]
-[#_virtual_VoidFuture_TypeDBRoleTypedeleteType___Transaction__transaction_]
+[#_virtual_VoidFuture_TypeDBRoleTypedeleteType_Transaction_transaction_]
 ==== deleteType
 
 [source,cpp]
@@ -52,7 +52,7 @@ a| `transaction` a| The current transaction a| `Transaction&`
 type.deleteType(transaction).get();
 ----
 
-[#_virtual_stdstring_TypeDBRoleTypegetLabel___]
+[#_virtual_stdstring_TypeDBRoleTypegetLabel_]
 ==== getLabel
 
 [source,cpp]
@@ -80,7 +80,7 @@ Implements TypeDB::Type.
 type.getLabel();
 ----
 
-[#_stdstring_TypeDBRoleTypegetName___]
+[#_stdstring_TypeDBRoleTypegetName_]
 ==== getName
 
 [source,cpp]
@@ -104,7 +104,7 @@ Returns the name of this role type's label.
 label.getName();
 ----
 
-[#_ConceptIterable__Thing___TypeDBRoleTypegetPlayerInstances___Transaction__transaction__Transitivity_transitivity__TransitivityTRANSITIVE_]
+[#_ConceptIterable_Thing_TypeDBRoleTypegetPlayerInstances_Transaction_transaction_Transitivity_transitivity_TransitivityTRANSITIVE_]
 ==== getPlayerInstances
 
 [source,cpp]
@@ -138,7 +138,7 @@ a| `transitivity` a| ``Transitivity::TRANSITIVE`` for direct and indirect playin
 roleType.getPlayerInstances(transaction, transitivity);
 ----
 
-[#_ConceptIterable__ThingType___TypeDBRoleTypegetPlayerTypes___Transaction__transaction__Transitivity_transitivity__TransitivityTRANSITIVE_]
+[#_ConceptIterable_ThingType_TypeDBRoleTypegetPlayerTypes_Transaction_transaction_Transitivity_transitivity_TransitivityTRANSITIVE_]
 ==== getPlayerTypes
 
 [source,cpp]
@@ -172,7 +172,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and indirect playing
 roleType.getPlayerTypes(transaction, transitivity)
 ----
 
-[#_ConceptIterable__Relation___TypeDBRoleTypegetRelationInstances___Transaction__transaction__Transitivity_transitivity__TransitivityTRANSITIVE_]
+[#_ConceptIterable_Relation_TypeDBRoleTypegetRelationInstances_Transaction_transaction_Transitivity_transitivity_TransitivityTRANSITIVE_]
 ==== getRelationInstances
 
 [source,cpp]
@@ -206,7 +206,7 @@ a| `transitivity` a| ``Transitivity::TRANSITIVE`` for direct and indirect relati
 roleType.getRelationInstances(transaction, transitivity)
 ----
 
-[#_ConceptPtrFuture__RelationType___TypeDBRoleTypegetRelationType___Transaction__transaction_]
+[#_ConceptPtrFuture_RelationType_TypeDBRoleTypegetRelationType_Transaction_transaction_]
 ==== getRelationType
 
 [source,cpp]
@@ -239,7 +239,7 @@ a| `transaction` a| The current transaction a| `Transaction&`
 roleType.getRelationType(transaction).get();
 ----
 
-[#_ConceptIterable__RelationType___TypeDBRoleTypegetRelationTypes___Transaction__transaction_]
+[#_ConceptIterable_RelationType_TypeDBRoleTypegetRelationTypes_Transaction_transaction_]
 ==== getRelationTypes
 
 [source,cpp]
@@ -272,7 +272,7 @@ a| `transaction` a| The current transaction a| `Transaction&`
 roleType.getRelationTypes(transaction);
 ----
 
-[#_stdstring_TypeDBRoleTypegetScope___]
+[#_stdstring_TypeDBRoleTypegetScope_]
 ==== getScope
 
 [source,cpp]
@@ -296,7 +296,7 @@ Returns the scope part of this role type's label.
 label.getScope();
 ----
 
-[#_ConceptIterable__RoleType___TypeDBRoleTypegetSubtypes___Transaction__transaction__Transitivity_transitivity__TransitivityTRANSITIVE_]
+[#_ConceptIterable_RoleType_TypeDBRoleTypegetSubtypes_Transaction_transaction_Transitivity_transitivity_TransitivityTRANSITIVE_]
 ==== getSubtypes
 
 [source,cpp]
@@ -330,7 +330,7 @@ a| `transitivity` a| ``Transitivity::TRANSITIVE`` for direct and indirect subtyp
 roleType.getSubtypes(transaction, transitivity);
 ----
 
-[#_ConceptPtrFuture__RoleType___TypeDBRoleTypegetSupertype___Transaction__transaction_]
+[#_ConceptPtrFuture_RoleType_TypeDBRoleTypegetSupertype_Transaction_transaction_]
 ==== getSupertype
 
 [source,cpp]
@@ -363,7 +363,7 @@ a| `transaction` a| The current transaction a| `Transaction&`
 roleType.getSupertype(transaction).get();
 ----
 
-[#_ConceptIterable__RoleType___TypeDBRoleTypegetSupertypes___Transaction__transaction_]
+[#_ConceptIterable_RoleType_TypeDBRoleTypegetSupertypes_Transaction_transaction_]
 ==== getSupertypes
 
 [source,cpp]
@@ -396,7 +396,7 @@ a| `transaction` a| The current transaction a| `Transaction&`
 roleType.getSupertypes(transaction);
 ----
 
-[#_virtual_bool_TypeDBRoleTypeisAbstract___]
+[#_virtual_bool_TypeDBRoleTypeisAbstract_]
 ==== isAbstract
 
 [source,cpp]
@@ -424,7 +424,7 @@ Implements TypeDB::Type.
 type.isAbstract();
 ----
 
-[#_virtual_BoolFuture_TypeDBRoleTypeisDeleted___Transaction__transaction_]
+[#_virtual_BoolFuture_TypeDBRoleTypeisDeleted_Transaction_transaction_]
 ==== isDeleted
 
 [source,cpp]
@@ -461,7 +461,7 @@ a| `transaction` a| The current transaction a| `Transaction&`
 type.isDeleted(transaction).get();
 ----
 
-[#_bool_TypeDBRoleTypeisRoot___]
+[#_bool_TypeDBRoleTypeisRoot_]
 ==== isRoot
 
 [source,cpp]
@@ -485,7 +485,7 @@ Checks if the type is a root type.
 type.isRoot();
 ----
 
-[#_virtual_VoidFuture_TypeDBRoleTypesetLabel___Transaction__transaction__const_stdstring__newLabel_]
+[#_virtual_VoidFuture_TypeDBRoleTypesetLabel_Transaction_transaction_const_stdstring_newLabel_]
 ==== setLabel
 
 [source,cpp]
diff --git a/cpp/docs/schema/ThingType.adoc b/docs/modules/ROOT/partials/cpp/schema/ThingType.adoc
similarity index 69%
rename from cpp/docs/schema/ThingType.adoc
rename to docs/modules/ROOT/partials/cpp/schema/ThingType.adoc
index 471a8b3715..076f328d57 100644
--- a/cpp/docs/schema/ThingType.adoc
+++ b/docs/modules/ROOT/partials/cpp/schema/ThingType.adoc
@@ -13,7 +13,7 @@
 Common super-type of EntityType, RelationType, and AttributeType.
 
 // tag::methods[]
-[#_virtual_VoidFuture_TypeDBThingTypedeleteType___Transaction__transaction_]
+[#_virtual_VoidFuture_TypeDBThingTypedeleteType_Transaction_transaction_]
 ==== deleteType
 
 [source,cpp]
@@ -50,7 +50,7 @@ a| `transaction` a| The current transaction a| `Transaction&`
 type.deleteType(transaction).get();
 ----
 
-[#_virtual_stdstring_TypeDBThingTypegetLabel___]
+[#_virtual_stdstring_TypeDBThingTypegetLabel_]
 ==== getLabel
 
 [source,cpp]
@@ -78,7 +78,7 @@ Implements TypeDB::Type.
 type.getLabel();
 ----
 
-[#_ConceptIterable__AttributeType___TypeDBThingTypegetOwns___Transaction__transaction__Transitivity_transitivity__TransitivityTRANSITIVE_]
+[#_ConceptIterable_AttributeType_TypeDBThingTypegetOwns_Transaction_transaction_Transitivity_transitivity_TransitivityTRANSITIVE_]
 ==== getOwns
 
 [source,cpp]
@@ -88,13 +88,13 @@ ConceptIterable< AttributeType > TypeDB::ThingType::getOwns(Transaction& transac
 
 
 
-Variant of <<#_ConceptIterable__AttributeType___TypeDBThingTypegetOwns___Transaction__transaction__ValueType_valueType__const_stdvector__Annotation____annotations__Transitivity_transitivity__TransitivityTRANSITIVE_,getOwns(Transaction&, ValueType, const std::vector<Annotation>&, Transitivity)>> without filtering on ``ValueType`` or ``Annotation``s
+Variant of <<#_ConceptIterable_AttributeType_TypeDBThingTypegetOwns_Transaction_transaction_ValueType_valueType_const_stdvector_Annotation_annotations_Transitivity_transitivity_TransitivityTRANSITIVE_,getOwns(Transaction&, ValueType, const std::vector&, Transitivity)>> without filtering on ``ValueType`` or ``Annotation``s
 
 [caption=""]
 .Returns
 `ConceptIterable< AttributeType >`
 
-[#_ConceptIterable__AttributeType___TypeDBThingTypegetOwns___Transaction__transaction__const_stdinitializer_list__Annotation____annotations__Transitivity_transitivity__TransitivityTRANSITIVE_]
+[#_ConceptIterable_AttributeType_TypeDBThingTypegetOwns_Transaction_transaction_const_stdinitializer_list_Annotation_annotations_Transitivity_transitivity_TransitivityTRANSITIVE_]
 ==== getOwns
 
 [source,cpp]
@@ -106,13 +106,13 @@ ConceptIterable< AttributeType > TypeDB::ThingType::getOwns(Transaction& transac
 
 
 
-Variant of <<#_ConceptIterable__AttributeType___TypeDBThingTypegetOwns___Transaction__transaction__ValueType_valueType__const_stdvector__Annotation____annotations__Transitivity_transitivity__TransitivityTRANSITIVE_,getOwns(Transaction&, ValueType, const std::vector<Annotation>&, Transitivity)>> without filtering on ``ValueType``
+Variant of <<#_ConceptIterable_AttributeType_TypeDBThingTypegetOwns_Transaction_transaction_ValueType_valueType_const_stdvector_Annotation_annotations_Transitivity_transitivity_TransitivityTRANSITIVE_,getOwns(Transaction&, ValueType, const std::vector&, Transitivity)>> without filtering on ``ValueType``
 
 [caption=""]
 .Returns
 `ConceptIterable< AttributeType >`
 
-[#_ConceptIterable__AttributeType___TypeDBThingTypegetOwns___Transaction__transaction__const_stdvector__Annotation____annotations__Transitivity_transitivity__TransitivityTRANSITIVE_]
+[#_ConceptIterable_AttributeType_TypeDBThingTypegetOwns_Transaction_transaction_const_stdvector_Annotation_annotations_Transitivity_transitivity_TransitivityTRANSITIVE_]
 ==== getOwns
 
 [source,cpp]
@@ -122,13 +122,13 @@ ConceptIterable< AttributeType > TypeDB::ThingType::getOwns(Transaction& transac
 
 
 
-Variant of <<#_ConceptIterable__AttributeType___TypeDBThingTypegetOwns___Transaction__transaction__ValueType_valueType__const_stdvector__Annotation____annotations__Transitivity_transitivity__TransitivityTRANSITIVE_,getOwns(Transaction&, ValueType, const std::vector<Annotation>&, Transitivity)>> without filtering on ``ValueType``
+Variant of <<#_ConceptIterable_AttributeType_TypeDBThingTypegetOwns_Transaction_transaction_ValueType_valueType_const_stdvector_Annotation_annotations_Transitivity_transitivity_TransitivityTRANSITIVE_,getOwns(Transaction&, ValueType, const std::vector&, Transitivity)>> without filtering on ``ValueType``
 
 [caption=""]
 .Returns
 `ConceptIterable< AttributeType >`
 
-[#_ConceptIterable__AttributeType___TypeDBThingTypegetOwns___Transaction__transaction__ValueType_valueType__Transitivity_transitivity__TransitivityTRANSITIVE_]
+[#_ConceptIterable_AttributeType_TypeDBThingTypegetOwns_Transaction_transaction_ValueType_valueType_Transitivity_transitivity_TransitivityTRANSITIVE_]
 ==== getOwns
 
 [source,cpp]
@@ -138,13 +138,13 @@ ConceptIterable< AttributeType > TypeDB::ThingType::getOwns(Transaction& transac
 
 
 
-Variant of <<#_ConceptIterable__AttributeType___TypeDBThingTypegetOwns___Transaction__transaction__ValueType_valueType__const_stdvector__Annotation____annotations__Transitivity_transitivity__TransitivityTRANSITIVE_,getOwns(Transaction&, ValueType, const std::vector<Annotation>&, Transitivity)>> without filtering on ``Annotation``s
+Variant of <<#_ConceptIterable_AttributeType_TypeDBThingTypegetOwns_Transaction_transaction_ValueType_valueType_const_stdvector_Annotation_annotations_Transitivity_transitivity_TransitivityTRANSITIVE_,getOwns(Transaction&, ValueType, const std::vector&, Transitivity)>> without filtering on ``Annotation``s
 
 [caption=""]
 .Returns
 `ConceptIterable< AttributeType >`
 
-[#_ConceptIterable__AttributeType___TypeDBThingTypegetOwns___Transaction__transaction__ValueType_valueType__const_stdinitializer_list__Annotation____annotations__Transitivity_transitivity__TransitivityTRANSITIVE_]
+[#_ConceptIterable_AttributeType_TypeDBThingTypegetOwns_Transaction_transaction_ValueType_valueType_const_stdinitializer_list_Annotation_annotations_Transitivity_transitivity_TransitivityTRANSITIVE_]
 ==== getOwns
 
 [source,cpp]
@@ -154,13 +154,13 @@ ConceptIterable< AttributeType > TypeDB::ThingType::getOwns(Transaction& transac
 
 
 
-See <<#_ConceptIterable__AttributeType___TypeDBThingTypegetOwns___Transaction__transaction__ValueType_valueType__const_stdvector__Annotation____annotations__Transitivity_transitivity__TransitivityTRANSITIVE_,getOwns(Transaction&, ValueType, const std::vector<Annotation>&, Transitivity)>>
+See <<#_ConceptIterable_AttributeType_TypeDBThingTypegetOwns_Transaction_transaction_ValueType_valueType_const_stdvector_Annotation_annotations_Transitivity_transitivity_TransitivityTRANSITIVE_,getOwns(Transaction&, ValueType, const std::vector&, Transitivity)>>
 
 [caption=""]
 .Returns
 `ConceptIterable< AttributeType >`
 
-[#_ConceptIterable__AttributeType___TypeDBThingTypegetOwns___Transaction__transaction__ValueType_valueType__const_stdvector__Annotation____annotations__Transitivity_transitivity__TransitivityTRANSITIVE_]
+[#_ConceptIterable_AttributeType_TypeDBThingTypegetOwns_Transaction_transaction_ValueType_valueType_const_stdvector_Annotation_annotations_Transitivity_transitivity_TransitivityTRANSITIVE_]
 ==== getOwns
 
 [source,cpp]
@@ -197,7 +197,7 @@ thingType.getOwns(transaction);
 thingType.getOwns(transaction, valueType, Transitivity::EXPLICIT, Collections.singleton(Annotation.key()));
 ----
 
-[#_ConceptPtrFuture__AttributeType___TypeDBThingTypegetOwnsOverridden___Transaction__transaction__AttributeType__ptr__attributeType_]
+[#_ConceptPtrFuture_AttributeType_TypeDBThingTypegetOwnsOverridden_Transaction_transaction_AttributeType_ptr_attributeType_]
 ==== getOwnsOverridden
 
 [source,cpp]
@@ -231,7 +231,7 @@ a| `attributeType` a| The ``AttributeType`` that overrides requested ``Attribute
 thingType.getOwnsOverridden(transaction, attributeType).get();
 ----
 
-[#_ConceptIterable__RoleType___TypeDBThingTypegetPlays___Transaction__transaction__Transitivity_transitivity__TransitivityTRANSITIVE_]
+[#_ConceptIterable_RoleType_TypeDBThingTypegetPlays_Transaction_transaction_Transitivity_transitivity_TransitivityTRANSITIVE_]
 ==== getPlays
 
 [source,cpp]
@@ -266,7 +266,7 @@ thingType.getPlays(transaction).get();
 thingType.getPlays(transaction, Transitivity::EXPLICIT).get();
 ----
 
-[#_ConceptPtrFuture__RoleType___TypeDBThingTypegetPlaysOverridden___Transaction__transaction__RoleType__ptr__roleType_]
+[#_ConceptPtrFuture_RoleType_TypeDBThingTypegetPlaysOverridden_Transaction_transaction_RoleType_ptr_roleType_]
 ==== getPlaysOverridden
 
 [source,cpp]
@@ -300,7 +300,7 @@ a| `roleType` a| The ``RoleType`` that overrides an inherited role a| `RoleType*
 thingType.getPlaysOverridden(transaction, roleType).get();
 ----
 
-[#_ConceptIterable__ThingType___TypeDBThingTypegetSubtypes___Transaction__transaction__Transitivity_transitivity__TransitivityTRANSITIVE_]
+[#_ConceptIterable_ThingType_TypeDBThingTypegetSubtypes_Transaction_transaction_Transitivity_transitivity_TransitivityTRANSITIVE_]
 ==== getSubtypes
 
 [source,cpp]
@@ -337,7 +337,7 @@ type.getSubtypes(transaction);
 type.getSubtypes(transaction, Transitivity.EXPLICIT);
 ----
 
-[#_ConceptPtrFuture__ThingType___TypeDBThingTypegetSupertype___Transaction__transaction_]
+[#_ConceptPtrFuture_ThingType_TypeDBThingTypegetSupertype_Transaction_transaction_]
 ==== getSupertype
 
 [source,cpp]
@@ -372,7 +372,7 @@ a| `transaction` a| The current transaction a| `Transaction&`
 type.getSupertype(transaction).get();
 ----
 
-[#_ConceptIterable__ThingType___TypeDBThingTypegetSupertypes___Transaction__transaction_]
+[#_ConceptIterable_ThingType_TypeDBThingTypegetSupertypes_Transaction_transaction_]
 ==== getSupertypes
 
 [source,cpp]
@@ -407,7 +407,7 @@ a| `transaction` a| The current transaction a| `Transaction&`
 type.getSupertypes(transaction);
 ----
 
-[#_StringFuture_TypeDBThingTypegetSyntax___Transaction__transaction_]
+[#_StringFuture_TypeDBThingTypegetSyntax_Transaction_transaction_]
 ==== getSyntax
 
 [source,cpp]
@@ -440,7 +440,7 @@ a| `transaction` a| The current transaction a| `Transaction&`
 thingType.getSyntax(transaction).get();
 ----
 
-[#_virtual_bool_TypeDBThingTypeisAbstract___]
+[#_virtual_bool_TypeDBThingTypeisAbstract_]
 ==== isAbstract
 
 [source,cpp]
@@ -468,7 +468,7 @@ Implements TypeDB::Type.
 type.isAbstract();
 ----
 
-[#_virtual_BoolFuture_TypeDBThingTypeisDeleted___Transaction__transaction_]
+[#_virtual_BoolFuture_TypeDBThingTypeisDeleted_Transaction_transaction_]
 ==== isDeleted
 
 [source,cpp]
@@ -505,7 +505,7 @@ a| `transaction` a| The current transaction a| `Transaction&`
 type.isDeleted(transaction).get();
 ----
 
-[#_bool_TypeDBThingTypeisRoot___]
+[#_bool_TypeDBThingTypeisRoot_]
 ==== isRoot
 
 [source,cpp]
@@ -529,7 +529,7 @@ Checks if the type is a root type.
 type.isRoot();
 ----
 
-[#_VoidFuture_TypeDBThingTypesetAbstract___Transaction__transaction_]
+[#_VoidFuture_TypeDBThingTypesetAbstract_Transaction_transaction_]
 ==== setAbstract
 
 [source,cpp]
@@ -562,7 +562,7 @@ a| `transaction` a| The current transaction a| `Transaction&`
 thingType.setAbstract(transaction).get();
 ----
 
-[#_virtual_VoidFuture_TypeDBThingTypesetLabel___Transaction__transaction__const_stdstring__newLabel_]
+[#_virtual_VoidFuture_TypeDBThingTypesetLabel_Transaction_transaction_const_stdstring_newLabel_]
 ==== setLabel
 
 [source,cpp]
@@ -600,7 +600,7 @@ a| `label` a| The new ``Label`` to be given to the type. a|
 type.setLabel(transaction, newLabel).get();
 ----
 
-[#_VoidFuture_TypeDBThingTypesetOwns___Transaction__transaction__AttributeType__ptr__attributeType__const_stdinitializer_list__Annotation____annotations___]
+[#_VoidFuture_TypeDBThingTypesetOwns_Transaction_transaction_AttributeType_ptr_attributeType_const_stdinitializer_list_Annotation_annotations_]
 ==== setOwns
 
 [source,cpp]
@@ -612,13 +612,13 @@ VoidFuture TypeDB::ThingType::setOwns(Transaction& transaction, AttributeType* a
 
 
 
-Variant of <<#_VoidFuture_TypeDBThingTypesetOwns___Transaction__transaction__AttributeType__ptr__attributeType__AttributeType__ptr__overriddenType__const_stdvector__Annotation____annotations_,setOwns(Transaction&, AttributeType*, AttributeType*, const std::vector<Annotation>&)>> with no overridden attribute type
+Variant of <<#_VoidFuture_TypeDBThingTypesetOwns_Transaction_transaction_AttributeType_ptr_attributeType_AttributeType_ptr_overriddenType_const_stdvector_Annotation_annotations_,setOwns(Transaction&, AttributeType*, AttributeType*, const std::vector&)>> with no overridden attribute type
 
 [caption=""]
 .Returns
 `VoidFuture`
 
-[#_VoidFuture_TypeDBThingTypesetOwns___Transaction__transaction__AttributeType__ptr__attributeType__const_stdvector__Annotation____annotations_]
+[#_VoidFuture_TypeDBThingTypesetOwns_Transaction_transaction_AttributeType_ptr_attributeType_const_stdvector_Annotation_annotations_]
 ==== setOwns
 
 [source,cpp]
@@ -628,13 +628,13 @@ VoidFuture TypeDB::ThingType::setOwns(Transaction& transaction, AttributeType* a
 
 
 
-Variant of <<#_VoidFuture_TypeDBThingTypesetOwns___Transaction__transaction__AttributeType__ptr__attributeType__AttributeType__ptr__overriddenType__const_stdvector__Annotation____annotations_,setOwns(Transaction&, AttributeType*, AttributeType*, const std::vector<Annotation>&)>> with no overridden attribute type
+Variant of <<#_VoidFuture_TypeDBThingTypesetOwns_Transaction_transaction_AttributeType_ptr_attributeType_AttributeType_ptr_overriddenType_const_stdvector_Annotation_annotations_,setOwns(Transaction&, AttributeType*, AttributeType*, const std::vector&)>> with no overridden attribute type
 
 [caption=""]
 .Returns
 `VoidFuture`
 
-[#_VoidFuture_TypeDBThingTypesetOwns___Transaction__transaction__AttributeType__ptr__attributeType__AttributeType__ptr__overriddenType__const_stdinitializer_list__Annotation____annotations___]
+[#_VoidFuture_TypeDBThingTypesetOwns_Transaction_transaction_AttributeType_ptr_attributeType_AttributeType_ptr_overriddenType_const_stdinitializer_list_Annotation_annotations_]
 ==== setOwns
 
 [source,cpp]
@@ -644,13 +644,13 @@ VoidFuture TypeDB::ThingType::setOwns(Transaction& transaction, AttributeType* a
 
 
 
-See <<#_VoidFuture_TypeDBThingTypesetOwns___Transaction__transaction__AttributeType__ptr__attributeType__AttributeType__ptr__overriddenType__const_stdvector__Annotation____annotations_,setOwns(Transaction&, AttributeType*, AttributeType*, const std::vector<Annotation>&)>>
+See <<#_VoidFuture_TypeDBThingTypesetOwns_Transaction_transaction_AttributeType_ptr_attributeType_AttributeType_ptr_overriddenType_const_stdvector_Annotation_annotations_,setOwns(Transaction&, AttributeType*, AttributeType*, const std::vector&)>>
 
 [caption=""]
 .Returns
 `VoidFuture`
 
-[#_VoidFuture_TypeDBThingTypesetOwns___Transaction__transaction__AttributeType__ptr__attributeType__AttributeType__ptr__overriddenType__const_stdvector__Annotation____annotations_]
+[#_VoidFuture_TypeDBThingTypesetOwns_Transaction_transaction_AttributeType_ptr_attributeType_AttributeType_ptr_overriddenType_const_stdvector_Annotation_annotations_]
 ==== setOwns
 
 [source,cpp]
@@ -687,7 +687,7 @@ thingType.setOwns(transaction, attributeType).get();
 thingType.setOwns(transaction, attributeType, overriddenType, Collections.singleton(Annotation.key())).get();
 ----
 
-[#_VoidFuture_TypeDBThingTypesetPlays___Transaction__transaction__RoleType__ptr__roleType_]
+[#_VoidFuture_TypeDBThingTypesetPlays_Transaction_transaction_RoleType_ptr_roleType_]
 ==== setPlays
 
 [source,cpp]
@@ -697,13 +697,13 @@ VoidFuture TypeDB::ThingType::setPlays(Transaction& transaction, RoleType* roleT
 
 
 
-Variant of <<#_VoidFuture_TypeDBThingTypesetPlays___Transaction__transaction__RoleType__ptr__roleType__RoleType__ptr__overriddenRoleType_,setPlays(Transaction&, RoleType*, RoleType*)>> with no overridden role type.
+Variant of <<#_VoidFuture_TypeDBThingTypesetPlays_Transaction_transaction_RoleType_ptr_roleType_RoleType_ptr_overriddenRoleType_,setPlays(Transaction&, RoleType*, RoleType*)>> with no overridden role type.
 
 [caption=""]
 .Returns
 `VoidFuture`
 
-[#_VoidFuture_TypeDBThingTypesetPlays___Transaction__transaction__RoleType__ptr__roleType__RoleType__ptr__overriddenRoleType_]
+[#_VoidFuture_TypeDBThingTypesetPlays_Transaction_transaction_RoleType_ptr_roleType_RoleType_ptr_overriddenRoleType_]
 ==== setPlays
 
 [source,cpp]
@@ -739,7 +739,7 @@ thingType.setPlays(transaction, roleType).get();
 thingType.setPlays(transaction, roleType, overriddenType).get();
 ----
 
-[#_VoidFuture_TypeDBThingTypeunsetAbstract___Transaction__transaction_]
+[#_VoidFuture_TypeDBThingTypeunsetAbstract_Transaction_transaction_]
 ==== unsetAbstract
 
 [source,cpp]
@@ -772,7 +772,7 @@ a| `transaction` a| The current transaction a| `Transaction&`
 thingType.unsetAbstract(transaction).get();
 ----
 
-[#_VoidFuture_TypeDBThingTypeunsetOwns___Transaction__transaction__AttributeType__ptr__attributeType_]
+[#_VoidFuture_TypeDBThingTypeunsetOwns_Transaction_transaction_AttributeType_ptr_attributeType_]
 ==== unsetOwns
 
 [source,cpp]
@@ -806,7 +806,7 @@ a| `attributeType` a| The ``AttributeType`` to not be owned by the type. a| `Att
 thingType.unsetOwns(transaction, attributeType).get();
 ----
 
-[#_VoidFuture_TypeDBThingTypeunsetPlays___Transaction__transaction__RoleType__ptr__roleType_]
+[#_VoidFuture_TypeDBThingTypeunsetPlays_Transaction_transaction_RoleType_ptr_roleType_]
 ==== unsetPlays
 
 [source,cpp]
diff --git a/cpp/docs/schema/Type.adoc b/docs/modules/ROOT/partials/cpp/schema/Type.adoc
similarity index 85%
rename from cpp/docs/schema/Type.adoc
rename to docs/modules/ROOT/partials/cpp/schema/Type.adoc
index 67853a9f82..00ef5317c7 100644
--- a/cpp/docs/schema/Type.adoc
+++ b/docs/modules/ROOT/partials/cpp/schema/Type.adoc
@@ -9,10 +9,10 @@
 
 
 
-Common super-type of RoleType & ThingType.
+Common super-type of RoleType & ThingType.
 
 // tag::methods[]
-[#_virtual_VoidFuture_TypeDBTypedeleteType___Transaction__transaction_]
+[#_virtual_VoidFuture_TypeDBTypedeleteType_Transaction_transaction_]
 ==== deleteType
 
 [source,cpp]
@@ -47,7 +47,7 @@ a| `transaction` a| The current transaction a| `Transaction&`
 type.deleteType(transaction).get();
 ----
 
-[#_virtual_stdstring_TypeDBTypegetLabel___]
+[#_virtual_stdstring_TypeDBTypegetLabel_]
 ==== getLabel
 
 [source,cpp]
@@ -73,7 +73,7 @@ Implemented in TypeDB::RoleType, and TypeDB::ThingType.
 type.getLabel();
 ----
 
-[#_ConceptIterable__Type___TypeDBTypegetSubtypes___Transaction__transaction__Transitivity_transitivity__TransitivityTRANSITIVE_]
+[#_ConceptIterable_Type_TypeDBTypegetSubtypes_Transaction_transaction_Transitivity_transitivity_TransitivityTRANSITIVE_]
 ==== getSubtypes
 
 [source,cpp]
@@ -108,7 +108,7 @@ type.getSubtypes(transaction);
 type.getSubtypes(transaction, Transitivity.EXPLICIT);
 ----
 
-[#_ConceptPtrFuture__Type___TypeDBTypegetSupertype___Transaction__transaction_]
+[#_ConceptPtrFuture_Type_TypeDBTypegetSupertype_Transaction_transaction_]
 ==== getSupertype
 
 [source,cpp]
@@ -141,7 +141,7 @@ a| `transaction` a| The current transaction a| `Transaction&`
 type.getSupertype(transaction).get();
 ----
 
-[#_ConceptIterable__Type___TypeDBTypegetSupertypes___Transaction__transaction_]
+[#_ConceptIterable_Type_TypeDBTypegetSupertypes_Transaction_transaction_]
 ==== getSupertypes
 
 [source,cpp]
@@ -174,7 +174,7 @@ a| `transaction` a| The current transaction a| `Transaction&`
 type.getSupertypes(transaction);
 ----
 
-[#_virtual_bool_TypeDBTypeisAbstract___]
+[#_virtual_bool_TypeDBTypeisAbstract_]
 ==== isAbstract
 
 [source,cpp]
@@ -200,7 +200,7 @@ Implemented in TypeDB::RoleType, and TypeDB::ThingType.
 type.isAbstract();
 ----
 
-[#_virtual_BoolFuture_TypeDBTypeisDeleted___Transaction__transaction_]
+[#_virtual_BoolFuture_TypeDBTypeisDeleted_Transaction_transaction_]
 ==== isDeleted
 
 [source,cpp]
@@ -235,7 +235,7 @@ a| `transaction` a| The current transaction a| `Transaction&`
 type.isDeleted(transaction).get();
 ----
 
-[#_virtual_VoidFuture_TypeDBTypesetLabel___Transaction__transaction__const_stdstring__newLabel_]
+[#_virtual_VoidFuture_TypeDBTypesetLabel_Transaction_transaction_const_stdstring_newLabel_]
 ==== setLabel
 
 [source,cpp]
diff --git a/cpp/docs/schema/ValueType.adoc b/docs/modules/ROOT/partials/cpp/schema/ValueType.adoc
similarity index 100%
rename from cpp/docs/schema/ValueType.adoc
rename to docs/modules/ROOT/partials/cpp/schema/ValueType.adoc
diff --git a/cpp/docs/session/Options.adoc b/docs/modules/ROOT/partials/cpp/session/Options.adoc
similarity index 89%
rename from cpp/docs/session/Options.adoc
rename to docs/modules/ROOT/partials/cpp/session/Options.adoc
index 2718199cfb..0109dd1023 100644
--- a/cpp/docs/session/Options.adoc
+++ b/docs/modules/ROOT/partials/cpp/session/Options.adoc
@@ -10,7 +10,7 @@ TypeDB Session and Transaction options.
 ``Options`` can be used to override the default server behaviour.
 
 // tag::methods[]
-[#_TypeDBOptionsOptions___]
+[#_TypeDBOptionsOptions_]
 ==== Options
 
 [source,cpp]
@@ -34,7 +34,7 @@ Produces a new ``Options`` object.
 TypeDBOptions options = TypeDBOptions();
 ----
 
-[#_stdoptional__bool___TypeDBOptionsexplain___]
+[#_stdoptional_bool_TypeDBOptionsexplain_]
 ==== explain
 
 [source,cpp]
@@ -58,7 +58,7 @@ Returns the value set for the explanation in this ``TypeDBOptions`` object. If s
 options.explain();
 ----
 
-[#_Options__TypeDBOptionsexplain___bool_explain_]
+[#_Options_TypeDBOptionsexplain_bool_explain_]
 ==== explain
 
 [source,cpp]
@@ -91,7 +91,7 @@ a| `explain` a| Explicitly enable or disable explanations a| `bool`
 options.explain(explain);
 ----
 
-[#_stdoptional__bool___TypeDBOptionsinfer___]
+[#_stdoptional_bool_TypeDBOptionsinfer_]
 ==== infer
 
 [source,cpp]
@@ -115,7 +115,7 @@ Returns the value set for the inference in this ``TypeDBOptions`` object.
 options.infer();
 ----
 
-[#_Options__TypeDBOptionsinfer___bool_infer_]
+[#_Options_TypeDBOptionsinfer_bool_infer_]
 ==== infer
 
 [source,cpp]
@@ -148,7 +148,7 @@ a| `infer` a| Explicitly enable or disable inference a| `bool`
 options.infer(infer);
 ----
 
-[#_stdoptional__bool___TypeDBOptionsparallel___]
+[#_stdoptional_bool_TypeDBOptionsparallel_]
 ==== parallel
 
 [source,cpp]
@@ -172,7 +172,7 @@ Returns the value set for the parallel execution in this ``TypeDBOptions`` objec
 options.parallel();
 ----
 
-[#_Options__TypeDBOptionsparallel___bool_parallel_]
+[#_Options_TypeDBOptionsparallel_bool_parallel_]
 ==== parallel
 
 [source,cpp]
@@ -205,7 +205,7 @@ a| `parallel` a| Explicitly enable or disable parallel execution a| `bool`
 options.parallel(parallel);
 ----
 
-[#_stdoptional__bool___TypeDBOptionsprefetch___]
+[#_stdoptional_bool_TypeDBOptionsprefetch_]
 ==== prefetch
 
 [source,cpp]
@@ -229,7 +229,7 @@ Returns the value set for the prefetching in this ``TypeDBOptions`` object. If s
 options.prefetch();
 ----
 
-[#_Options__TypeDBOptionsprefetch___bool_prefetch_]
+[#_Options_TypeDBOptionsprefetch_bool_prefetch_]
 ==== prefetch
 
 [source,cpp]
@@ -262,7 +262,7 @@ a| `prefetch` a| Explicitly enable or disable prefetching a| `bool`
 options.prefetch(prefetch);
 ----
 
-[#_stdoptional__int32_t___TypeDBOptionsprefetchSize___]
+[#_stdoptional_int32_t_TypeDBOptionsprefetchSize_]
 ==== prefetchSize
 
 [source,cpp]
@@ -286,7 +286,7 @@ Returns the value set for the prefetch size in this ``TypeDBOptions`` object. If
 options.prefetchSize();
 ----
 
-[#_Options__TypeDBOptionsprefetchSize___int32_t_prefetchSize_]
+[#_Options_TypeDBOptionsprefetchSize_int32_t_prefetchSize_]
 ==== prefetchSize
 
 [source,cpp]
@@ -319,7 +319,7 @@ a| `prefetchSize` a| Number of answers that the server should send before the dr
 options.prefetchSize(prefetchSize);
 ----
 
-[#_stdoptional__bool___TypeDBOptionsreadAnyReplica___]
+[#_stdoptional_bool_TypeDBOptionsreadAnyReplica_]
 ==== readAnyReplica
 
 [source,cpp]
@@ -343,7 +343,7 @@ Returns the value set for reading data from any replica in this ``TypeDBOptions`
 options.readAnyReplica();
 ----
 
-[#_Options__TypeDBOptionsreadAnyReplica___bool_readAnyReplica_]
+[#_Options_TypeDBOptionsreadAnyReplica_bool_readAnyReplica_]
 ==== readAnyReplica
 
 [source,cpp]
@@ -376,7 +376,7 @@ a| `readAnyReplica` a| Explicitly enable or disable reading data from any replic
 options.readAnyReplica(readAnyReplica);
 ----
 
-[#_stdoptional__int64_t___TypeDBOptionsschemaLockAcquireTimeoutMillis___]
+[#_stdoptional_int64_t_TypeDBOptionsschemaLockAcquireTimeoutMillis_]
 ==== schemaLockAcquireTimeoutMillis
 
 [source,cpp]
@@ -400,7 +400,7 @@ Returns the value set for the schema lock acquire timeout in this ``TypeDBOption
 options.schemaLockAcquireTimeoutMillis();
 ----
 
-[#_Options__TypeDBOptionsschemaLockAcquireTimeoutMillis___int64_t_timeoutMillis_]
+[#_Options_TypeDBOptionsschemaLockAcquireTimeoutMillis_int64_t_timeoutMillis_]
 ==== schemaLockAcquireTimeoutMillis
 
 [source,cpp]
@@ -433,7 +433,7 @@ a| `schemaLockAcquireTimeoutMillis` a| How long the driver should wait if openin
 options.schemaLockAcquireTimeoutMillis(schemaLockAcquireTimeoutMillis);
 ----
 
-[#_stdoptional__int64_t___TypeDBOptionssessionIdleTimeoutMillis___]
+[#_stdoptional_int64_t_TypeDBOptionssessionIdleTimeoutMillis_]
 ==== sessionIdleTimeoutMillis
 
 [source,cpp]
@@ -457,7 +457,7 @@ Returns the value set for the session idle timeout in this ``TypeDBOptions`` obj
 options.sessionIdleTimeoutMillis();
 ----
 
-[#_Options__TypeDBOptionssessionIdleTimeoutMillis___int64_t_timeoutMillis_]
+[#_Options_TypeDBOptionssessionIdleTimeoutMillis_int64_t_timeoutMillis_]
 ==== sessionIdleTimeoutMillis
 
 [source,cpp]
@@ -490,7 +490,7 @@ a| `sessionIdleTimeoutMillis` a| timeout that allows the server to close session
 options.sessionIdleTimeoutMillis(sessionIdleTimeoutMillis);
 ----
 
-[#_stdoptional__bool___TypeDBOptionstraceInference___]
+[#_stdoptional_bool_TypeDBOptionstraceInference_]
 ==== traceInference
 
 [source,cpp]
@@ -514,7 +514,7 @@ Returns the value set for reasoning tracing in this ``TypeDBOptions`` object. If
 options.traceInference();
 ----
 
-[#_Options__TypeDBOptionstraceInference___bool_traceInference_]
+[#_Options_TypeDBOptionstraceInference_bool_traceInference_]
 ==== traceInference
 
 [source,cpp]
@@ -547,7 +547,7 @@ a| `traceInference` a| Explicitly enable or disable reasoning tracing a| `bool`
 options.traceInference(traceInference);
 ----
 
-[#_stdoptional__int64_t___TypeDBOptionstransactionTimeoutMillis___]
+[#_stdoptional_int64_t_TypeDBOptionstransactionTimeoutMillis_]
 ==== transactionTimeoutMillis
 
 [source,cpp]
@@ -571,7 +571,7 @@ Returns the value set for the transaction timeout in this ``TypeDBOptions`` obje
 options.transactionTimeoutMillis();
 ----
 
-[#_Options__TypeDBOptionstransactionTimeoutMillis___int64_t_timeoutMillis_]
+[#_Options_TypeDBOptionstransactionTimeoutMillis_int64_t_timeoutMillis_]
 ==== transactionTimeoutMillis
 
 [source,cpp]
diff --git a/cpp/docs/session/Session.adoc b/docs/modules/ROOT/partials/cpp/session/Session.adoc
similarity index 87%
rename from cpp/docs/session/Session.adoc
rename to docs/modules/ROOT/partials/cpp/session/Session.adoc
index 4ac3f2908c..b2f291aa24 100644
--- a/cpp/docs/session/Session.adoc
+++ b/docs/modules/ROOT/partials/cpp/session/Session.adoc
@@ -8,7 +8,7 @@
 A session with a TypeDB database.
 
 // tag::methods[]
-[#_void_TypeDBSessionclose___]
+[#_void_TypeDBSessionclose_]
 ==== close
 
 [source,cpp]
@@ -32,7 +32,7 @@ Closes the session. Before opening a new session, the session currently open sho
 session.close();
 ----
 
-[#_stdstring_TypeDBSessiondatabaseName_____const]
+[#_stdstring_TypeDBSessiondatabaseName_const]
 ==== databaseName
 
 [source,cpp]
@@ -56,7 +56,7 @@ Returns the name of the database of the session.
 session.databaseName();
 ----
 
-[#_bool_TypeDBSessionisOpen_____const]
+[#_bool_TypeDBSessionisOpen_const]
 ==== isOpen
 
 [source,cpp]
@@ -80,7 +80,7 @@ Checks whether this session is open.
 session.isOpen();
 ----
 
-[#_void_TypeDBSessiononClose___stdfunction__void____callback_]
+[#_void_TypeDBSessiononClose_stdfunction_void_callback_]
 ==== onClose
 
 [source,cpp]
@@ -113,7 +113,7 @@ a| `function` a| The callback function. a|
 session.onClose(function)
 ----
 
-[#_void_TypeDBSessiononReopen___stdfunction__void____callback_]
+[#_void_TypeDBSessiononReopen_stdfunction_void_callback_]
 ==== onReopen
 
 [source,cpp]
@@ -146,7 +146,7 @@ a| `function` a| The callback function. a|
 session.onReopen(function)
 ----
 
-[#_Transaction_TypeDBSessiontransaction___TransactionType_type__const_Options__options__Options_____const]
+[#_Transaction_TypeDBSessiontransaction_TransactionType_type_const_Options_options_Options_const]
 ==== transaction
 
 [source,cpp]
@@ -180,7 +180,7 @@ a| `options` a| Options for the session a|
 session.transaction(transactionType, options);
 ----
 
-[#_SessionType_TypeDBSessiontype_____const]
+[#_SessionType_TypeDBSessiontype_const]
 ==== type
 
 [source,cpp]
diff --git a/cpp/docs/session/SessionType.adoc b/docs/modules/ROOT/partials/cpp/session/SessionType.adoc
similarity index 100%
rename from cpp/docs/session/SessionType.adoc
rename to docs/modules/ROOT/partials/cpp/session/SessionType.adoc
diff --git a/cpp/docs/transaction/QueryManager.adoc b/docs/modules/ROOT/partials/cpp/transaction/QueryManager.adoc
similarity index 83%
rename from cpp/docs/transaction/QueryManager.adoc
rename to docs/modules/ROOT/partials/cpp/transaction/QueryManager.adoc
index 084e176643..ce3573c505 100644
--- a/cpp/docs/transaction/QueryManager.adoc
+++ b/docs/modules/ROOT/partials/cpp/transaction/QueryManager.adoc
@@ -8,7 +8,7 @@
 Provides methods for executing TypeQL queries in the transaction.
 
 // tag::methods[]
-[#_VoidFuture_TypeDBQueryManagerdefine___const_stdstring__query__const_Options__options__Options_____const]
+[#_VoidFuture_TypeDBQueryManagerdefine_const_stdstring_query_const_Options_options_Options_const]
 ==== define
 
 [source,cpp]
@@ -42,7 +42,7 @@ a| `options` a| Specify query options a|
 transaction.query.define(query, options).get()
 ----
 
-[#_ExplanationIterable_TypeDBQueryManagerexplain___const_Explainable__explainable__const_Options___Options_____const]
+[#_ExplanationIterable_TypeDBQueryManagerexplain_const_Explainable_explainable_const_Options_Options_const]
 ==== explain
 
 [source,cpp]
@@ -76,7 +76,7 @@ a| `options` a| Specify query options a|
 transaction.query.explain(explainable, options)
 ----
 
-[#_JSONIterable_TypeDBQueryManagerfetch___const_stdstring__query__const_Options__options__Options_____const]
+[#_JSONIterable_TypeDBQueryManagerfetch_const_stdstring_query_const_Options_options_Options_const]
 ==== fetch
 
 [source,cpp]
@@ -110,7 +110,7 @@ a| `options` a| Specify query options a|
 transaction.query.fetch(query, options)
 ----
 
-[#_ConceptMapIterable_TypeDBQueryManagerget___const_stdstring__query__const_Options__options__Options_____const]
+[#_ConceptMapIterable_TypeDBQueryManagerget_const_stdstring_query_const_Options_options_Options_const]
 ==== get
 
 [source,cpp]
@@ -144,7 +144,7 @@ a| `options` a| Specify query options a|
 transaction.query.get(query, options)
 ----
 
-[#_AggregateFuture_TypeDBQueryManagergetAggregate___const_stdstring__query__const_Options___Options_____const]
+[#_AggregateFuture_TypeDBQueryManagergetAggregate_const_stdstring_query_const_Options_Options_const]
 ==== getAggregate
 
 [source,cpp]
@@ -178,7 +178,7 @@ a| `options` a| Specify query options a|
 transaction.query.getAggregate(query, options).get()
 ----
 
-[#_ConceptMapGroupIterable_TypeDBQueryManagergetGroup___const_stdstring__query__const_Options___Options_____const]
+[#_ConceptMapGroupIterable_TypeDBQueryManagergetGroup_const_stdstring_query_const_Options_Options_const]
 ==== getGroup
 
 [source,cpp]
@@ -212,7 +212,7 @@ a| `options` a| Specify query options a|
 transaction.query.getGroup(query, options)
 ----
 
-[#_ValueGroupIterable_TypeDBQueryManagergetGroupAggregate___const_stdstring__query__const_Options___Options_____const]
+[#_ValueGroupIterable_TypeDBQueryManagergetGroupAggregate_const_stdstring_query_const_Options_Options_const]
 ==== getGroupAggregate
 
 [source,cpp]
@@ -246,7 +246,7 @@ a| `options` a| Specify query options a|
 transaction.query.getGroupAggregate(query, options)
 ----
 
-[#_ConceptMapIterable_TypeDBQueryManagerinsert___const_stdstring__query__const_Options__options__Options_____const]
+[#_ConceptMapIterable_TypeDBQueryManagerinsert_const_stdstring_query_const_Options_options_Options_const]
 ==== insert
 
 [source,cpp]
@@ -280,7 +280,7 @@ a| `options` a| Specify query options a|
 transaction.query.insert(query, options)
 ----
 
-[#_VoidFuture_TypeDBQueryManagermatchDelete___const_stdstring__query__const_Options__options__Options_____const]
+[#_VoidFuture_TypeDBQueryManagermatchDelete_const_stdstring_query_const_Options_options_Options_const]
 ==== matchDelete
 
 [source,cpp]
@@ -314,7 +314,7 @@ a| `options` a| Specify query options a|
 transaction.query.matchDelete(query, options).get()
 ----
 
-[#_VoidFuture_TypeDBQueryManagerundefine___const_stdstring__query__const_Options__options__Options_____const]
+[#_VoidFuture_TypeDBQueryManagerundefine_const_stdstring_query_const_Options_options_Options_const]
 ==== undefine
 
 [source,cpp]
@@ -348,7 +348,7 @@ a| `options` a| Specify query options a|
 transaction.query.undefine(query, options).get()
 ----
 
-[#_ConceptMapIterable_TypeDBQueryManagerupdate___const_stdstring__query__const_Options___Options_____const]
+[#_ConceptMapIterable_TypeDBQueryManagerupdate_const_stdstring_query_const_Options_Options_const]
 ==== update
 
 [source,cpp]
diff --git a/cpp/docs/transaction/Transaction.adoc b/docs/modules/ROOT/partials/cpp/transaction/Transaction.adoc
similarity index 88%
rename from cpp/docs/transaction/Transaction.adoc
rename to docs/modules/ROOT/partials/cpp/transaction/Transaction.adoc
index 312e99b298..589c0a1704 100644
--- a/cpp/docs/transaction/Transaction.adoc
+++ b/docs/modules/ROOT/partials/cpp/transaction/Transaction.adoc
@@ -21,7 +21,7 @@ a| `query` a| `const QueryManager TypeDB::Transaction` a| The````QueryManager```
 // end::properties[]
 
 // tag::methods[]
-[#_void_TypeDBTransactionclose___]
+[#_void_TypeDBTransactionclose_]
 ==== close
 
 [source,cpp]
@@ -45,7 +45,7 @@ Closes the transaction.
 transaction.close()
 ----
 
-[#_void_TypeDBTransactioncommit___]
+[#_void_TypeDBTransactioncommit_]
 ==== commit
 
 [source,cpp]
@@ -69,7 +69,7 @@ Commits the changes made via this transaction to the TypeDB database. Whether or
 transaction.commit()
 ----
 
-[#_void_TypeDBTransactionforceClose___]
+[#_void_TypeDBTransactionforceClose_]
 ==== forceClose
 
 [source,cpp]
@@ -93,7 +93,7 @@ Closes the transaction.
 transaction.close()
 ----
 
-[#_bool_TypeDBTransactionisOpen_____const]
+[#_bool_TypeDBTransactionisOpen_const]
 ==== isOpen
 
 [source,cpp]
@@ -117,7 +117,7 @@ Checks whether this transaction is open.
 transaction.isOpen();
 ----
 
-[#_void_TypeDBTransactiononClose___stdfunction__void_const_stdoptional__DriverException______callback_]
+[#_void_TypeDBTransactiononClose_stdfunction_void_const_stdoptional_DriverException_callback_]
 ==== onClose
 
 [source,cpp]
@@ -150,7 +150,7 @@ a| `function` a| The callback function. a|
 transaction.onClose(function);
 ----
 
-[#_void_TypeDBTransactionrollback___]
+[#_void_TypeDBTransactionrollback_]
 ==== rollback
 
 [source,cpp]
@@ -174,7 +174,7 @@ Rolls back the uncommitted changes made via this transaction.
 transaction.rollback()
 ----
 
-[#_TypeDBTransactionType_TypeDBTransactiontype_____const]
+[#_TypeDBTransactionType_TypeDBTransactiontype_const]
 ==== type
 
 [source,cpp]
diff --git a/cpp/docs/transaction/TransactionType.adoc b/docs/modules/ROOT/partials/cpp/transaction/TransactionType.adoc
similarity index 100%
rename from cpp/docs/transaction/TransactionType.adoc
rename to docs/modules/ROOT/partials/cpp/transaction/TransactionType.adoc
diff --git a/csharp/docs/answer/IConceptMap.adoc b/docs/modules/ROOT/partials/csharp/answer/IConceptMap.adoc
similarity index 86%
rename from csharp/docs/answer/IConceptMap.adoc
rename to docs/modules/ROOT/partials/csharp/answer/IConceptMap.adoc
index 0633d06442..edb7abbd7a 100644
--- a/csharp/docs/answer/IConceptMap.adoc
+++ b/docs/modules/ROOT/partials/csharp/answer/IConceptMap.adoc
@@ -32,7 +32,7 @@ Gets the ``IExplainables`` object for this ``IConceptMap``, exposing which of th
 conceptMap.AllExplainables;
 ----
 
-[#_IConcept_TypeDB_Driver_Api_IConceptMap_Get___string_variable_]
+[#_IConcept_TypeDB_Driver_Api_IConceptMap_Get_string_variable_]
 ==== Get
 
 [source,cs]
@@ -65,7 +65,7 @@ a| `variable` a| The string representation of a variable a| `string`
 conceptMap.Get(variable);
 ----
 
-[#_IEnumerable__IConcept___TypeDB_Driver_Api_IConceptMap_GetConcepts___]
+[#_IEnumerable_IConcept_TypeDB_Driver_Api_IConceptMap_GetConcepts_]
 ==== GetConcepts
 
 [source,cs]
@@ -89,7 +89,7 @@ Returns a collection of all concepts in this ``IConceptMap``.
 conceptMap.GetConcepts();
 ----
 
-[#_Dictionary__string__IConcept___TypeDB_Driver_Api_IConceptMap_GetMap___]
+[#_Dictionary_string_IConcept_TypeDB_Driver_Api_IConceptMap_GetMap_]
 ==== GetMap
 
 [source,cs]
@@ -113,7 +113,7 @@ Returns the inner ``Dictionary`` (``Map`` as a common TypeDB term) where keys ar
 conceptMap.GetMap();
 ----
 
-[#_IEnumerable__string___TypeDB_Driver_Api_IConceptMap_GetVariables___]
+[#_IEnumerable_string_TypeDB_Driver_Api_IConceptMap_GetVariables_]
 ==== GetVariables
 
 [source,cs]
diff --git a/csharp/docs/answer/IConceptMapGroup.adoc b/docs/modules/ROOT/partials/csharp/answer/IConceptMapGroup.adoc
similarity index 89%
rename from csharp/docs/answer/IConceptMapGroup.adoc
rename to docs/modules/ROOT/partials/csharp/answer/IConceptMapGroup.adoc
index 455ef1d7c1..42d0f8903d 100644
--- a/csharp/docs/answer/IConceptMapGroup.adoc
+++ b/docs/modules/ROOT/partials/csharp/answer/IConceptMapGroup.adoc
@@ -8,7 +8,7 @@
 Contains an element of the group query result.
 
 // tag::methods[]
-[#_IEnumerable__IConceptMap___TypeDB_Driver_Api_IConceptMapGroup_GetConceptMaps___]
+[#_IEnumerable_IConceptMap_TypeDB_Driver_Api_IConceptMapGroup_GetConceptMaps_]
 ==== GetConceptMaps
 
 [source,cs]
diff --git a/csharp/docs/answer/IExplainable.adoc b/docs/modules/ROOT/partials/csharp/answer/IExplainable.adoc
similarity index 100%
rename from csharp/docs/answer/IExplainable.adoc
rename to docs/modules/ROOT/partials/csharp/answer/IExplainable.adoc
diff --git a/csharp/docs/answer/IExplainables.adoc b/docs/modules/ROOT/partials/csharp/answer/IExplainables.adoc
similarity index 86%
rename from csharp/docs/answer/IExplainables.adoc
rename to docs/modules/ROOT/partials/csharp/answer/IExplainables.adoc
index 30556dd4db..bc9b9eec88 100644
--- a/csharp/docs/answer/IExplainables.adoc
+++ b/docs/modules/ROOT/partials/csharp/answer/IExplainables.adoc
@@ -8,7 +8,7 @@
 Contains explainable objects.
 
 // tag::methods[]
-[#_IExplainable_TypeDB_Driver_Api_IConceptMap_IExplainables_Attribute___string_variable_]
+[#_IExplainable_TypeDB_Driver_Api_IConceptMap_IExplainables_Attribute_string_variable_]
 ==== Attribute
 
 [source,cs]
@@ -41,7 +41,7 @@ a| `variable` a| The string representation of a variable a| `string`
 conceptMap.AllExplainables.Attribute(variable);
 ----
 
-[#_IEnumerable__KeyValuePair__string__IExplainable_____TypeDB_Driver_Api_IConceptMap_IExplainables_GetAttributes___]
+[#_IEnumerable_KeyValuePair_string_IExplainable_TypeDB_Driver_Api_IConceptMap_IExplainables_GetAttributes_]
 ==== GetAttributes
 
 [source,cs]
@@ -65,7 +65,7 @@ Retrieves all of this ``IConceptMap``’s explainable attributes.
 conceptMap.AllExplainables.GetAttributes();
 ----
 
-[#_IEnumerable__KeyValuePair__KeyValuePair__string__string____IExplainable_____TypeDB_Driver_Api_IConceptMap_IExplainables_GetOwnerships___]
+[#_IEnumerable_KeyValuePair_KeyValuePair_string_string_IExplainable_TypeDB_Driver_Api_IConceptMap_IExplainables_GetOwnerships_]
 ==== GetOwnerships
 
 [source,cs]
@@ -89,7 +89,7 @@ Retrieves all of this ``IConceptMap``’s explainable ownerships.
 conceptMap.AllExplainables.GetOwnerships();
 ----
 
-[#_IEnumerable__KeyValuePair__string__IExplainable_____TypeDB_Driver_Api_IConceptMap_IExplainables_GetRelations___]
+[#_IEnumerable_KeyValuePair_string_IExplainable_TypeDB_Driver_Api_IConceptMap_IExplainables_GetRelations_]
 ==== GetRelations
 
 [source,cs]
@@ -113,7 +113,7 @@ Retrieves all of this ``IConceptMap``’s explainable relations.
 conceptMap.AllExplainables.GetRelations();
 ----
 
-[#_IExplainable_TypeDB_Driver_Api_IConceptMap_IExplainables_Ownership___string_owner__string_attribute_]
+[#_IExplainable_TypeDB_Driver_Api_IConceptMap_IExplainables_Ownership_string_owner_string_attribute_]
 ==== Ownership
 
 [source,cs]
@@ -147,7 +147,7 @@ a| `attribute` a| The string representation of the attribute variable a| `string
 conceptMap.AllExplainables.Ownership(owner, attribute);
 ----
 
-[#_IExplainable_TypeDB_Driver_Api_IConceptMap_IExplainables_Relation___string_variable_]
+[#_IExplainable_TypeDB_Driver_Api_IConceptMap_IExplainables_Relation_string_variable_]
 ==== Relation
 
 [source,cs]
diff --git a/csharp/docs/answer/IExplanation.adoc b/docs/modules/ROOT/partials/csharp/answer/IExplanation.adoc
similarity index 92%
rename from csharp/docs/answer/IExplanation.adoc
rename to docs/modules/ROOT/partials/csharp/answer/IExplanation.adoc
index 0c2d5c000c..5f8fd0d8c2 100644
--- a/csharp/docs/answer/IExplanation.adoc
+++ b/docs/modules/ROOT/partials/csharp/answer/IExplanation.adoc
@@ -56,7 +56,7 @@ Retrieves the Condition for this Explanation.
 explanation.Condition
 ----
 
-[#_ISet__string___TypeDB_Driver_Api_IExplanation_GetQueryVariables___]
+[#_ISet_string_TypeDB_Driver_Api_IExplanation_GetQueryVariables_]
 ==== GetQueryVariables
 
 [source,cs]
@@ -80,7 +80,7 @@ Retrieves the query variables for this ``Explanation``.
 explanation.GetQueryVariables()
 ----
 
-[#_ISet__string___TypeDB_Driver_Api_IExplanation_QueryVariableMapping___string_variable_]
+[#_ISet_string_TypeDB_Driver_Api_IExplanation_QueryVariableMapping_string_variable_]
 ==== QueryVariableMapping
 
 [source,cs]
diff --git a/csharp/docs/answer/IValueGroup.adoc b/docs/modules/ROOT/partials/csharp/answer/IValueGroup.adoc
similarity index 100%
rename from csharp/docs/answer/IValueGroup.adoc
rename to docs/modules/ROOT/partials/csharp/answer/IValueGroup.adoc
diff --git a/csharp/docs/answer/Promise__T__.adoc b/docs/modules/ROOT/partials/csharp/answer/Promise__T__.adoc
similarity index 84%
rename from csharp/docs/answer/Promise__T__.adoc
rename to docs/modules/ROOT/partials/csharp/answer/Promise__T__.adoc
index 0df8273221..6558b3e257 100644
--- a/csharp/docs/answer/Promise__T__.adoc
+++ b/docs/modules/ROOT/partials/csharp/answer/Promise__T__.adoc
@@ -1,4 +1,4 @@
-[#_Promise__T_]
+[#_Promise_T_]
 === Promise< T >
 
 *Package*: `TypeDB.Driver.Common`
@@ -10,7 +10,7 @@ A ``Promise`` represents an asynchronous network operation.
 The request it represents is performed immediately. The response is only retrieved once the ``Promise`` is ``Resolve``d.
 
 // tag::methods[]
-[#_static_Promise__TTo___TypeDB_Driver_Common_Promise__T___Map__TFrom__TTo_____Func__TFrom__resolver__Func__TFrom__TTo___selector_]
+[#_static_Promise_TTo_TypeDB_Driver_Common_Promise_T_Map_TFrom_TTo_Func_TFrom_resolver_Func_TFrom_TTo_selector_]
 ==== Map< TFrom, TTo >
 
 [source,cs]
@@ -44,7 +44,7 @@ a| `selector` a| The mapping (like Select from Linq) function a| `Func< TFrom, T
 Promise.Map(resolver, selector);
 ----
 
-[#_TypeDB_Driver_Common_Promise__T___Promise___Func__T__resolver_]
+[#_TypeDB_Driver_Common_Promise_T_Promise_Func_T_resolver_]
 ==== Promise
 
 [source,cs]
@@ -77,7 +77,7 @@ a| `resolver` a| The function to wrap into the promise a| `Func< T? >`
 new Promise(resolver);
 ----
 
-[#_T_TypeDB_Driver_Common_Promise__T___Resolve___]
+[#_T_TypeDB_Driver_Common_Promise_T_Resolve_]
 ==== Resolve
 
 [source,cs]
diff --git a/csharp/docs/answer/VoidPromise.adoc b/docs/modules/ROOT/partials/csharp/answer/VoidPromise.adoc
similarity index 86%
rename from csharp/docs/answer/VoidPromise.adoc
rename to docs/modules/ROOT/partials/csharp/answer/VoidPromise.adoc
index f28f1fd460..e165a82534 100644
--- a/csharp/docs/answer/VoidPromise.adoc
+++ b/docs/modules/ROOT/partials/csharp/answer/VoidPromise.adoc
@@ -19,7 +19,7 @@ Promise
 
 
 // tag::methods[]
-[#_void_TypeDB_Driver_Common_VoidPromise_Resolve___]
+[#_void_TypeDB_Driver_Common_VoidPromise_Resolve_]
 ==== Resolve
 
 [source,cs]
@@ -43,7 +43,7 @@ Retrieves the result of the Promise.
 promise.Resolve();
 ----
 
-[#_TypeDB_Driver_Common_VoidPromise_VoidPromise___Action_resolver_]
+[#_TypeDB_Driver_Common_VoidPromise_VoidPromise_Action_resolver_]
 ==== VoidPromise
 
 [source,cs]
diff --git a/csharp/docs/concept/IConcept.adoc b/docs/modules/ROOT/partials/csharp/concept/IConcept.adoc
similarity index 83%
rename from csharp/docs/concept/IConcept.adoc
rename to docs/modules/ROOT/partials/csharp/concept/IConcept.adoc
index 8c9c01f5e6..ccf8b5cdc5 100644
--- a/csharp/docs/concept/IConcept.adoc
+++ b/docs/modules/ROOT/partials/csharp/concept/IConcept.adoc
@@ -4,7 +4,7 @@
 *Package*: `TypeDB.Driver.Api`
 
 // tag::methods[]
-[#_IAttribute_TypeDB_Driver_Api_IConcept_AsAttribute___]
+[#_IAttribute_TypeDB_Driver_Api_IConcept_AsAttribute_]
 ==== AsAttribute
 
 [source,cs]
@@ -30,7 +30,7 @@ Implemented in TypeDB.Driver.Api.IAttribute.
 concept.AsAttribute();
 ----
 
-[#_IAttributeType_TypeDB_Driver_Api_IConcept_AsAttributeType___]
+[#_IAttributeType_TypeDB_Driver_Api_IConcept_AsAttributeType_]
 ==== AsAttributeType
 
 [source,cs]
@@ -56,7 +56,7 @@ Implemented in TypeDB.Driver.Api.IAttributeType.
 concept.AsAttributeType();
 ----
 
-[#_IEntity_TypeDB_Driver_Api_IConcept_AsEntity___]
+[#_IEntity_TypeDB_Driver_Api_IConcept_AsEntity_]
 ==== AsEntity
 
 [source,cs]
@@ -82,7 +82,7 @@ Implemented in TypeDB.Driver.Api.IEntity.
 concept.AsEntity();
 ----
 
-[#_IEntityType_TypeDB_Driver_Api_IConcept_AsEntityType___]
+[#_IEntityType_TypeDB_Driver_Api_IConcept_AsEntityType_]
 ==== AsEntityType
 
 [source,cs]
@@ -108,7 +108,7 @@ Implemented in TypeDB.Driver.Api.IEntityType.
 concept.AsEntityType();
 ----
 
-[#_IRelation_TypeDB_Driver_Api_IConcept_AsRelation___]
+[#_IRelation_TypeDB_Driver_Api_IConcept_AsRelation_]
 ==== AsRelation
 
 [source,cs]
@@ -134,7 +134,7 @@ Implemented in TypeDB.Driver.Api.IRelation.
 concept.AsRelation();
 ----
 
-[#_IRelationType_TypeDB_Driver_Api_IConcept_AsRelationType___]
+[#_IRelationType_TypeDB_Driver_Api_IConcept_AsRelationType_]
 ==== AsRelationType
 
 [source,cs]
@@ -160,7 +160,7 @@ Implemented in TypeDB.Driver.Api.IRelationType.
 concept.AsRelationType();
 ----
 
-[#_IRoleType_TypeDB_Driver_Api_IConcept_AsRoleType___]
+[#_IRoleType_TypeDB_Driver_Api_IConcept_AsRoleType_]
 ==== AsRoleType
 
 [source,cs]
@@ -186,7 +186,7 @@ Implemented in TypeDB.Driver.Api.IRoleType.
 concept.AsRoleType();
 ----
 
-[#_IThing_TypeDB_Driver_Api_IConcept_AsThing___]
+[#_IThing_TypeDB_Driver_Api_IConcept_AsThing_]
 ==== AsThing
 
 [source,cs]
@@ -212,7 +212,7 @@ Implemented in TypeDB.Driver.Api.IThing.
 concept.AsThing();
 ----
 
-[#_IThingType_TypeDB_Driver_Api_IConcept_AsThingType___]
+[#_IThingType_TypeDB_Driver_Api_IConcept_AsThingType_]
 ==== AsThingType
 
 [source,cs]
@@ -238,7 +238,7 @@ Implemented in TypeDB.Driver.Api.IThingType.
 concept.AsThingType();
 ----
 
-[#_IType_TypeDB_Driver_Api_IConcept_AsType___]
+[#_IType_TypeDB_Driver_Api_IConcept_AsType_]
 ==== AsType
 
 [source,cs]
@@ -264,7 +264,7 @@ Implemented in TypeDB.Driver.Api.IType.
 concept.AsType();
 ----
 
-[#_IValue_TypeDB_Driver_Api_IConcept_AsValue___]
+[#_IValue_TypeDB_Driver_Api_IConcept_AsValue_]
 ==== AsValue
 
 [source,cs]
@@ -290,7 +290,7 @@ Implemented in TypeDB.Driver.Api.IValue.
 concept.AsValue();
 ----
 
-[#_bool_TypeDB_Driver_Api_IConcept_IsAttribute___]
+[#_bool_TypeDB_Driver_Api_IConcept_IsAttribute_]
 ==== IsAttribute
 
 [source,cs]
@@ -316,7 +316,7 @@ Implemented in TypeDB.Driver.Api.IAttribute.
 concept.IsAttribute();
 ----
 
-[#_bool_TypeDB_Driver_Api_IConcept_IsAttributeType___]
+[#_bool_TypeDB_Driver_Api_IConcept_IsAttributeType_]
 ==== IsAttributeType
 
 [source,cs]
@@ -342,7 +342,7 @@ Implemented in TypeDB.Driver.Api.IAttributeType.
 concept.IsAttributeType();
 ----
 
-[#_bool_TypeDB_Driver_Api_IConcept_IsEntity___]
+[#_bool_TypeDB_Driver_Api_IConcept_IsEntity_]
 ==== IsEntity
 
 [source,cs]
@@ -368,7 +368,7 @@ Implemented in TypeDB.Driver.Api.IEntity.
 concept.IsEntity();
 ----
 
-[#_bool_TypeDB_Driver_Api_IConcept_IsEntityType___]
+[#_bool_TypeDB_Driver_Api_IConcept_IsEntityType_]
 ==== IsEntityType
 
 [source,cs]
@@ -394,7 +394,7 @@ Implemented in TypeDB.Driver.Api.IEntityType.
 concept.IsEntityType();
 ----
 
-[#_bool_TypeDB_Driver_Api_IConcept_IsRelation___]
+[#_bool_TypeDB_Driver_Api_IConcept_IsRelation_]
 ==== IsRelation
 
 [source,cs]
@@ -420,7 +420,7 @@ Implemented in TypeDB.Driver.Api.IRelation.
 concept.IsRelation();
 ----
 
-[#_bool_TypeDB_Driver_Api_IConcept_IsRelationType___]
+[#_bool_TypeDB_Driver_Api_IConcept_IsRelationType_]
 ==== IsRelationType
 
 [source,cs]
@@ -446,7 +446,7 @@ Implemented in TypeDB.Driver.Api.IRelationType.
 concept.IsRelationType();
 ----
 
-[#_bool_TypeDB_Driver_Api_IConcept_IsRoleType___]
+[#_bool_TypeDB_Driver_Api_IConcept_IsRoleType_]
 ==== IsRoleType
 
 [source,cs]
@@ -472,7 +472,7 @@ Implemented in TypeDB.Driver.Api.IRoleType.
 concept.IsRoleType();
 ----
 
-[#_bool_TypeDB_Driver_Api_IConcept_IsThing___]
+[#_bool_TypeDB_Driver_Api_IConcept_IsThing_]
 ==== IsThing
 
 [source,cs]
@@ -498,7 +498,7 @@ Implemented in TypeDB.Driver.Api.IThing.
 concept.IsThing();
 ----
 
-[#_bool_TypeDB_Driver_Api_IConcept_IsThingType___]
+[#_bool_TypeDB_Driver_Api_IConcept_IsThingType_]
 ==== IsThingType
 
 [source,cs]
@@ -524,7 +524,7 @@ Implemented in TypeDB.Driver.Api.IThingType.
 concept.IsThingType();
 ----
 
-[#_bool_TypeDB_Driver_Api_IConcept_IsType___]
+[#_bool_TypeDB_Driver_Api_IConcept_IsType_]
 ==== IsType
 
 [source,cs]
@@ -550,7 +550,7 @@ Implemented in TypeDB.Driver.Api.IType.
 concept.IsType();
 ----
 
-[#_bool_TypeDB_Driver_Api_IConcept_IsValue___]
+[#_bool_TypeDB_Driver_Api_IConcept_IsValue_]
 ==== IsValue
 
 [source,cs]
diff --git a/csharp/docs/concept/IConceptManager.adoc b/docs/modules/ROOT/partials/csharp/concept/IConceptManager.adoc
similarity index 86%
rename from csharp/docs/concept/IConceptManager.adoc
rename to docs/modules/ROOT/partials/csharp/concept/IConceptManager.adoc
index b72de3083d..2e94c43edd 100644
--- a/csharp/docs/concept/IConceptManager.adoc
+++ b/docs/modules/ROOT/partials/csharp/concept/IConceptManager.adoc
@@ -8,7 +8,7 @@
 Provides access for all Concept API methods.
 
 // tag::methods[]
-[#_Promise__IAttribute___TypeDB_Driver_Api_IConceptManager_GetAttribute___string_iid_]
+[#_Promise_IAttribute_TypeDB_Driver_Api_IConceptManager_GetAttribute_string_iid_]
 ==== GetAttribute
 
 [source,cs]
@@ -41,7 +41,7 @@ a| `iid` a| The iid of the ``Attribute`` to retrieve. a| `string`
 transaction.Concepts.GetAttribute(iid).Resolve();
 ----
 
-[#_Promise__IAttributeType___TypeDB_Driver_Api_IConceptManager_GetAttributeType___string_label_]
+[#_Promise_IAttributeType_TypeDB_Driver_Api_IConceptManager_GetAttributeType_string_label_]
 ==== GetAttributeType
 
 [source,cs]
@@ -74,7 +74,7 @@ a| `label` a| The label of the ``AttributeType`` to retrieve. a| `string`
 transaction.Concepts.GetAttributeType(label).Resolve();
 ----
 
-[#_Promise__IEntity___TypeDB_Driver_Api_IConceptManager_GetEntity___string_iid_]
+[#_Promise_IEntity_TypeDB_Driver_Api_IConceptManager_GetEntity_string_iid_]
 ==== GetEntity
 
 [source,cs]
@@ -107,7 +107,7 @@ a| `iid` a| The iid of the ``Entity`` to retrieve. a| `string`
 transaction.Concepts.GetEntity(iid).Resolve();
 ----
 
-[#_Promise__IEntityType___TypeDB_Driver_Api_IConceptManager_GetEntityType___string_label_]
+[#_Promise_IEntityType_TypeDB_Driver_Api_IConceptManager_GetEntityType_string_label_]
 ==== GetEntityType
 
 [source,cs]
@@ -140,7 +140,7 @@ a| `label` a| The label of the ``IEntityType`` to retrieve. a| `string`
 transaction.Concepts.GetEntityType(label).Resolve();
 ----
 
-[#_Promise__IRelation___TypeDB_Driver_Api_IConceptManager_GetRelation___string_iid_]
+[#_Promise_IRelation_TypeDB_Driver_Api_IConceptManager_GetRelation_string_iid_]
 ==== GetRelation
 
 [source,cs]
@@ -173,7 +173,7 @@ a| `iid` a| The iid of the ``Relation`` to retrieve. a| `string`
 transaction.Concepts.GetRelation(iid).Resolve();
 ----
 
-[#_Promise__IRelationType___TypeDB_Driver_Api_IConceptManager_GetRelationType___string_label_]
+[#_Promise_IRelationType_TypeDB_Driver_Api_IConceptManager_GetRelationType_string_label_]
 ==== GetRelationType
 
 [source,cs]
@@ -206,7 +206,7 @@ a| `label` a| The label of the ``IRelationType`` to retrieve. a| `string`
 transaction.Concepts.GetRelationType(label).Resolve();
 ----
 
-[#_IList__TypeDBException___TypeDB_Driver_Api_IConceptManager_GetSchemaExceptions___]
+[#_IList_TypeDBException_TypeDB_Driver_Api_IConceptManager_GetSchemaExceptions_]
 ==== GetSchemaExceptions
 
 [source,cs]
@@ -230,7 +230,7 @@ A list of all schema exceptions for the current transaction.
 transaction.Concepts.GetSchemaExceptions();
 ----
 
-[#_Promise__IAttributeType___TypeDB_Driver_Api_IConceptManager_PutAttributeType___string_label__IValue_ValueType_valueType_]
+[#_Promise_IAttributeType_TypeDB_Driver_Api_IConceptManager_PutAttributeType_string_label_IValue_ValueType_valueType_]
 ==== PutAttributeType
 
 [source,cs]
@@ -264,7 +264,7 @@ a| `valueType` a| The value type of the ``IAttributeType`` to create. a| `IValue
 await transaction.Concepts.PutAttributeType(label, valueType).Resolve();
 ----
 
-[#_Promise__IEntityType___TypeDB_Driver_Api_IConceptManager_PutEntityType___string_label_]
+[#_Promise_IEntityType_TypeDB_Driver_Api_IConceptManager_PutEntityType_string_label_]
 ==== PutEntityType
 
 [source,cs]
@@ -297,7 +297,7 @@ a| `label` a| The label of the ``IEntityType`` to create or retrieve. a| `string
 transaction.Concepts.PutEntityType(label).Resolve();
 ----
 
-[#_Promise__IRelationType___TypeDB_Driver_Api_IConceptManager_PutRelationType___string_label_]
+[#_Promise_IRelationType_TypeDB_Driver_Api_IConceptManager_PutRelationType_string_label_]
 ==== PutRelationType
 
 [source,cs]
diff --git a/csharp/docs/concept/Transitivity.adoc b/docs/modules/ROOT/partials/csharp/concept/Transitivity.adoc
similarity index 100%
rename from csharp/docs/concept/Transitivity.adoc
rename to docs/modules/ROOT/partials/csharp/concept/Transitivity.adoc
diff --git a/csharp/docs/connection/Drivers.adoc b/docs/modules/ROOT/partials/csharp/connection/Drivers.adoc
similarity index 86%
rename from csharp/docs/connection/Drivers.adoc
rename to docs/modules/ROOT/partials/csharp/connection/Drivers.adoc
index c647fe15f2..9a0b598b96 100644
--- a/csharp/docs/connection/Drivers.adoc
+++ b/docs/modules/ROOT/partials/csharp/connection/Drivers.adoc
@@ -4,7 +4,7 @@
 *Package*: `TypeDB.Driver`
 
 // tag::methods[]
-[#_static_ITypeDBDriver_TypeDB_Driver_Drivers_CloudDriver___string_address__TypeDBCredential_credential_]
+[#_static_ITypeDBDriver_TypeDB_Driver_Drivers_CloudDriver_string_address_TypeDBCredential_credential_]
 ==== CloudDriver
 
 [source,cs]
@@ -38,7 +38,7 @@ a| `credential` a| The credential to connect with a| `TypeDBCredential`
 Drivers.CloudDriver(address, credential);
 ----
 
-[#_static_ITypeDBDriver_TypeDB_Driver_Drivers_CloudDriver___ICollection__string___addresses__TypeDBCredential_credential_]
+[#_static_ITypeDBDriver_TypeDB_Driver_Drivers_CloudDriver_ICollection_string_addresses_TypeDBCredential_credential_]
 ==== CloudDriver
 
 [source,cs]
@@ -72,7 +72,7 @@ a| `credential` a| The credential to connect with a| `TypeDBCredential`
 Drivers.CloudDriver(addresses, credential);
 ----
 
-[#_static_ITypeDBDriver_TypeDB_Driver_Drivers_CoreDriver___string_address_]
+[#_static_ITypeDBDriver_TypeDB_Driver_Drivers_CoreDriver_string_address_]
 ==== CoreDriver
 
 [source,cs]
diff --git a/csharp/docs/connection/IDatabase.adoc b/docs/modules/ROOT/partials/csharp/connection/IDatabase.adoc
similarity index 89%
rename from csharp/docs/connection/IDatabase.adoc
rename to docs/modules/ROOT/partials/csharp/connection/IDatabase.adoc
index bfff7593f2..aa892a4f30 100644
--- a/csharp/docs/connection/IDatabase.adoc
+++ b/docs/modules/ROOT/partials/csharp/connection/IDatabase.adoc
@@ -4,7 +4,7 @@
 *Package*: `TypeDB.Driver.Api`
 
 // tag::methods[]
-[#_void_TypeDB_Driver_Api_IDatabase_Delete___]
+[#_void_TypeDB_Driver_Api_IDatabase_Delete_]
 ==== Delete
 
 [source,cs]
@@ -28,7 +28,7 @@ Deletes this database.
 database.Delete();
 ----
 
-[#_ISet__IReplica___TypeDB_Driver_Api_IDatabase_GetReplicas___]
+[#_ISet_IReplica_TypeDB_Driver_Api_IDatabase_GetReplicas_]
 ==== GetReplicas
 
 [source,cs]
@@ -52,7 +52,7 @@ Set of ``Replica`` instances for this database. Only works in TypeDB Cloud
 database.GetReplicas();
 ----
 
-[#_string_TypeDB_Driver_Api_IDatabase_GetRuleSchema___]
+[#_string_TypeDB_Driver_Api_IDatabase_GetRuleSchema_]
 ==== GetRuleSchema
 
 [source,cs]
@@ -76,7 +76,7 @@ The rules in the schema as a valid TypeQL define query string.
 database.GetRuleSchema();
 ----
 
-[#_string_TypeDB_Driver_Api_IDatabase_GetSchema___]
+[#_string_TypeDB_Driver_Api_IDatabase_GetSchema_]
 ==== GetSchema
 
 [source,cs]
@@ -100,7 +100,7 @@ A full schema text as a valid TypeQL define query string.
 database.GetSchema();
 ----
 
-[#_string_TypeDB_Driver_Api_IDatabase_GetTypeSchema___]
+[#_string_TypeDB_Driver_Api_IDatabase_GetTypeSchema_]
 ==== GetTypeSchema
 
 [source,cs]
diff --git a/csharp/docs/connection/IDatabaseManager.adoc b/docs/modules/ROOT/partials/csharp/connection/IDatabaseManager.adoc
similarity index 85%
rename from csharp/docs/connection/IDatabaseManager.adoc
rename to docs/modules/ROOT/partials/csharp/connection/IDatabaseManager.adoc
index a013e607f0..ffa2cdf6cb 100644
--- a/csharp/docs/connection/IDatabaseManager.adoc
+++ b/docs/modules/ROOT/partials/csharp/connection/IDatabaseManager.adoc
@@ -8,7 +8,7 @@
 Provides access to all database management methods.
 
 // tag::methods[]
-[#_bool_TypeDB_Driver_Api_IDatabaseManager_Contains___string_name_]
+[#_bool_TypeDB_Driver_Api_IDatabaseManager_Contains_string_name_]
 ==== Contains
 
 [source,cs]
@@ -41,7 +41,7 @@ a| `name` a| The database name to be checked a| `string`
 driver.Databases.Contains(name);
 ----
 
-[#_void_TypeDB_Driver_Api_IDatabaseManager_Create___string_name_]
+[#_void_TypeDB_Driver_Api_IDatabaseManager_Create_string_name_]
 ==== Create
 
 [source,cs]
@@ -74,7 +74,7 @@ a| `name` a| The name of the database to be created a| `string`
 driver.Databases.Create(name);
 ----
 
-[#_IDatabase_TypeDB_Driver_Api_IDatabaseManager_Get___string_name_]
+[#_IDatabase_TypeDB_Driver_Api_IDatabaseManager_Get_string_name_]
 ==== Get
 
 [source,cs]
@@ -107,7 +107,7 @@ a| `name` a| The name of the database to retrieve a| `string`
 driver.Databases.Get(name);
 ----
 
-[#_IList__IDatabase___TypeDB_Driver_Api_IDatabaseManager_GetAll___]
+[#_IList_IDatabase_TypeDB_Driver_Api_IDatabaseManager_GetAll_]
 ==== GetAll
 
 [source,cs]
diff --git a/csharp/docs/connection/IReplica.adoc b/docs/modules/ROOT/partials/csharp/connection/IReplica.adoc
similarity index 89%
rename from csharp/docs/connection/IReplica.adoc
rename to docs/modules/ROOT/partials/csharp/connection/IReplica.adoc
index 2210d40e13..3dea0ae2bd 100644
--- a/csharp/docs/connection/IReplica.adoc
+++ b/docs/modules/ROOT/partials/csharp/connection/IReplica.adoc
@@ -8,7 +8,7 @@
 The metadata and state of an individual raft replica of a database.
 
 // tag::methods[]
-[#_bool_TypeDB_Driver_Api_IDatabase_IReplica_IsPreferred___]
+[#_bool_TypeDB_Driver_Api_IDatabase_IReplica_IsPreferred_]
 ==== IsPreferred
 
 [source,cs]
@@ -24,7 +24,7 @@ Checks whether this is the preferred replica of the raft cluster. If true, Opera
 .Returns
 `bool`
 
-[#_bool_TypeDB_Driver_Api_IDatabase_IReplica_IsPrimary___]
+[#_bool_TypeDB_Driver_Api_IDatabase_IReplica_IsPrimary_]
 ==== IsPrimary
 
 [source,cs]
diff --git a/csharp/docs/connection/ITypeDBDriver.adoc b/docs/modules/ROOT/partials/csharp/connection/ITypeDBDriver.adoc
similarity index 87%
rename from csharp/docs/connection/ITypeDBDriver.adoc
rename to docs/modules/ROOT/partials/csharp/connection/ITypeDBDriver.adoc
index 9f79f1b097..ed68420108 100644
--- a/csharp/docs/connection/ITypeDBDriver.adoc
+++ b/docs/modules/ROOT/partials/csharp/connection/ITypeDBDriver.adoc
@@ -4,7 +4,7 @@
 *Package*: `TypeDB.Driver.Api`
 
 // tag::methods[]
-[#_void_TypeDB_Driver_Api_ITypeDBDriver_Close___]
+[#_void_TypeDB_Driver_Api_ITypeDBDriver_Close_]
 ==== Close
 
 [source,cs]
@@ -52,7 +52,7 @@ The ``IDatabaseManager`` for this connection, providing access to database manag
 driver.Databases;
 ----
 
-[#_IUser_TypeDB_Driver_Api_ITypeDBDriver_GetCurrentUser___]
+[#_IUser_TypeDB_Driver_Api_ITypeDBDriver_GetCurrentUser_]
 ==== GetCurrentUser
 
 [source,cs]
@@ -76,7 +76,7 @@ Returns the logged-in user for the connection. Only for TypeDB Cloud.
 driver.GetCurrentUser();
 ----
 
-[#_bool_TypeDB_Driver_Api_ITypeDBDriver_IsOpen___]
+[#_bool_TypeDB_Driver_Api_ITypeDBDriver_IsOpen_]
 ==== IsOpen
 
 [source,cs]
@@ -100,7 +100,7 @@ Checks whether this connection is presently open.
 driver.IsOpen();
 ----
 
-[#_ITypeDBSession_TypeDB_Driver_Api_ITypeDBDriver_Session___string_database__SessionType_type_]
+[#_ITypeDBSession_TypeDB_Driver_Api_ITypeDBDriver_Session_string_database_SessionType_type_]
 ==== Session
 
 [source,cs]
@@ -127,7 +127,7 @@ ITypeDBDriver::Session(string, SessionType, TypeDBOptions);
 .Returns
 `ITypeDBSession`
 
-[#_ITypeDBSession_TypeDB_Driver_Api_ITypeDBDriver_Session___string_database__SessionType_type__TypeDBOptions_options_]
+[#_ITypeDBSession_TypeDB_Driver_Api_ITypeDBDriver_Session_string_database_SessionType_type_TypeDBOptions_options_]
 ==== Session
 
 [source,cs]
diff --git a/csharp/docs/connection/IUser.adoc b/docs/modules/ROOT/partials/csharp/connection/IUser.adoc
similarity index 91%
rename from csharp/docs/connection/IUser.adoc
rename to docs/modules/ROOT/partials/csharp/connection/IUser.adoc
index 2609529d8d..65775bbb31 100644
--- a/csharp/docs/connection/IUser.adoc
+++ b/docs/modules/ROOT/partials/csharp/connection/IUser.adoc
@@ -24,7 +24,7 @@ Returns the number of seconds remaining till this user’s current password expi
 .Returns
 `long?`
 
-[#_void_TypeDB_Driver_Api_IUser_UpdatePassword___string_passwordOld__string_passwordNew_]
+[#_void_TypeDB_Driver_Api_IUser_UpdatePassword_string_passwordOld_string_passwordNew_]
 ==== UpdatePassword
 
 [source,cs]
diff --git a/csharp/docs/connection/IUserManager.adoc b/docs/modules/ROOT/partials/csharp/connection/IUserManager.adoc
similarity index 85%
rename from csharp/docs/connection/IUserManager.adoc
rename to docs/modules/ROOT/partials/csharp/connection/IUserManager.adoc
index 36d1064249..daab892338 100644
--- a/csharp/docs/connection/IUserManager.adoc
+++ b/docs/modules/ROOT/partials/csharp/connection/IUserManager.adoc
@@ -8,7 +8,7 @@
 Provides access to all user management methods.
 
 // tag::methods[]
-[#_bool_TypeDB_Driver_Api_IUserManager_Contains___string_username_]
+[#_bool_TypeDB_Driver_Api_IUserManager_Contains_string_username_]
 ==== Contains
 
 [source,cs]
@@ -41,7 +41,7 @@ a| `username` a| The user name to be checked a| `string`
 driver.Users.Contains(username);
 ----
 
-[#_void_TypeDB_Driver_Api_IUserManager_Create___string_username__string_password_]
+[#_void_TypeDB_Driver_Api_IUserManager_Create_string_username_string_password_]
 ==== Create
 
 [source,cs]
@@ -75,7 +75,7 @@ a| `password` a| The password of the user to be created a| `string`
 driver.Users.Create(username, password);
 ----
 
-[#_void_TypeDB_Driver_Api_IUserManager_Delete___string_username_]
+[#_void_TypeDB_Driver_Api_IUserManager_Delete_string_username_]
 ==== Delete
 
 [source,cs]
@@ -108,7 +108,7 @@ a| `username` a| The name of the user to be deleted a| `string`
 driver.Users.Delete(username);
 ----
 
-[#_IUser_TypeDB_Driver_Api_IUserManager_Get___string_username_]
+[#_IUser_TypeDB_Driver_Api_IUserManager_Get_string_username_]
 ==== Get
 
 [source,cs]
@@ -141,7 +141,7 @@ a| `username` a| The name of the user to retrieve a| `string`
 driver.Users.Get(username);
 ----
 
-[#_ISet__IUser___TypeDB_Driver_Api_IUserManager_GetAll___]
+[#_ISet_IUser_TypeDB_Driver_Api_IUserManager_GetAll_]
 ==== GetAll
 
 [source,cs]
@@ -165,7 +165,7 @@ Retrieves all users which exist on the TypeDB server.
 driver.Users.GetAll();
 ----
 
-[#_void_TypeDB_Driver_Api_IUserManager_SetPassword___string_username__string_password_]
+[#_void_TypeDB_Driver_Api_IUserManager_SetPassword_string_username_string_password_]
 ==== SetPassword
 
 [source,cs]
diff --git a/csharp/docs/connection/TypeDBCredential.adoc b/docs/modules/ROOT/partials/csharp/connection/TypeDBCredential.adoc
similarity index 87%
rename from csharp/docs/connection/TypeDBCredential.adoc
rename to docs/modules/ROOT/partials/csharp/connection/TypeDBCredential.adoc
index 2e7bb32101..97f5bc0eea 100644
--- a/csharp/docs/connection/TypeDBCredential.adoc
+++ b/docs/modules/ROOT/partials/csharp/connection/TypeDBCredential.adoc
@@ -20,7 +20,7 @@ TypeDBCredential credential = new TypeDBCredential(username, password, Environme
 ----
 
 // tag::methods[]
-[#_TypeDB_Driver_Api_TypeDBCredential_TypeDBCredential___string_username__string_password__bool_tlsEnabled_]
+[#_TypeDB_Driver_Api_TypeDBCredential_TypeDBCredential_string_username_string_password_bool_tlsEnabled_]
 ==== TypeDBCredential
 
 [source,cs]
@@ -45,7 +45,7 @@ a| `tlsEnabled` a| Specify whether the connection to TypeDB Cloud must be done o
 .Returns
 `TypeDBCredential`
 
-[#_TypeDB_Driver_Api_TypeDBCredential_TypeDBCredential___string_username__string_password__string_tlsRootCAPath_]
+[#_TypeDB_Driver_Api_TypeDBCredential_TypeDBCredential_string_username_string_password_string_tlsRootCAPath_]
 ==== TypeDBCredential
 
 [source,cs]
diff --git a/csharp/docs/data/IAttribute.adoc b/docs/modules/ROOT/partials/csharp/data/IAttribute.adoc
similarity index 86%
rename from csharp/docs/data/IAttribute.adoc
rename to docs/modules/ROOT/partials/csharp/data/IAttribute.adoc
index 98d6885301..d48f9cbfa5 100644
--- a/csharp/docs/data/IAttribute.adoc
+++ b/docs/modules/ROOT/partials/csharp/data/IAttribute.adoc
@@ -15,7 +15,7 @@ Attribute is an instance of the attribute type and has a value. This value is fi
 Attributes can be uniquely addressed by their type and value.
 
 // tag::methods[]
-[#_IAttribute_IConcept__TypeDB_Driver_Api_IAttribute_AsAttribute___]
+[#_IAttribute_IConcept_TypeDB_Driver_Api_IAttribute_AsAttribute_]
 ==== AsAttribute
 
 [source,cs]
@@ -41,7 +41,7 @@ Implements TypeDB.Driver.Api.IConcept.
 attribute.AsAttribute();
 ----
 
-[#_IEnumerable__IThing___TypeDB_Driver_Api_IAttribute_GetOwners___ITypeDBTransaction_transaction_]
+[#_IEnumerable_IThing_TypeDB_Driver_Api_IAttribute_GetOwners_ITypeDBTransaction_transaction_]
 ==== GetOwners
 
 [source,cs]
@@ -74,7 +74,7 @@ a| `transaction` a| The current transaction a| `ITypeDBTransaction`
 attribute.GetOwners(transaction);
 ----
 
-[#_IEnumerable__IThing___TypeDB_Driver_Api_IAttribute_GetOwners___ITypeDBTransaction_transaction__IThingType_ownerType_]
+[#_IEnumerable_IThing_TypeDB_Driver_Api_IAttribute_GetOwners_ITypeDBTransaction_transaction_IThingType_ownerType_]
 ==== GetOwners
 
 [source,cs]
@@ -108,7 +108,7 @@ a| `ownerType` a| Filter results for only owners of the given type a| `IThingTyp
 attribute.GetOwners(transaction, ownerType);
 ----
 
-[#_bool_IConcept__TypeDB_Driver_Api_IAttribute_IsAttribute___]
+[#_bool_IConcept_TypeDB_Driver_Api_IAttribute_IsAttribute_]
 ==== IsAttribute
 
 [source,cs]
diff --git a/csharp/docs/data/IEntity.adoc b/docs/modules/ROOT/partials/csharp/data/IEntity.adoc
similarity index 88%
rename from csharp/docs/data/IEntity.adoc
rename to docs/modules/ROOT/partials/csharp/data/IEntity.adoc
index ffba855a11..bcbd262eb6 100644
--- a/csharp/docs/data/IEntity.adoc
+++ b/docs/modules/ROOT/partials/csharp/data/IEntity.adoc
@@ -13,7 +13,7 @@
 Instance of data of an entity type, representing a standalone object that exists in the data model independently. Entity does not have a value. It is usually addressed by its ownership over attribute instances and/or roles played in relation instances.
 
 // tag::methods[]
-[#_IEntity_IConcept__TypeDB_Driver_Api_IEntity_AsEntity___]
+[#_IEntity_IConcept_TypeDB_Driver_Api_IEntity_AsEntity_]
 ==== AsEntity
 
 [source,cs]
@@ -39,7 +39,7 @@ Implements TypeDB.Driver.Api.IConcept.
 entity.AsEntity();
 ----
 
-[#_bool_IConcept__TypeDB_Driver_Api_IEntity_IsEntity___]
+[#_bool_IConcept_TypeDB_Driver_Api_IEntity_IsEntity_]
 ==== IsEntity
 
 [source,cs]
diff --git a/csharp/docs/data/IRelation.adoc b/docs/modules/ROOT/partials/csharp/data/IRelation.adoc
similarity index 84%
rename from csharp/docs/data/IRelation.adoc
rename to docs/modules/ROOT/partials/csharp/data/IRelation.adoc
index 00820b9654..94ad09b503 100644
--- a/csharp/docs/data/IRelation.adoc
+++ b/docs/modules/ROOT/partials/csharp/data/IRelation.adoc
@@ -13,7 +13,7 @@
 Relation is an instance of a relation type and can be uniquely addressed by a combination of its type, owned attributes and role players.
 
 // tag::methods[]
-[#_VoidPromise_TypeDB_Driver_Api_IRelation_AddPlayer___ITypeDBTransaction_transaction__IRoleType_roleType__IThing_player_]
+[#_VoidPromise_TypeDB_Driver_Api_IRelation_AddPlayer_ITypeDBTransaction_transaction_IRoleType_roleType_IThing_player_]
 ==== AddPlayer
 
 [source,cs]
@@ -48,7 +48,7 @@ a| `player` a| The thing to play the role a| `IThing`
 relation.AddPlayer(transaction, roleType, player).Resolve();
 ----
 
-[#_IRelation_IConcept__TypeDB_Driver_Api_IRelation_AsRelation___]
+[#_IRelation_IConcept_TypeDB_Driver_Api_IRelation_AsRelation_]
 ==== AsRelation
 
 [source,cs]
@@ -74,7 +74,7 @@ Implements TypeDB.Driver.Api.IConcept.
 relation.AsRelation();
 ----
 
-[#_Dictionary__IRoleType__ICollection__IThing_____TypeDB_Driver_Api_IRelation_GetPlayers___ITypeDBTransaction_transaction_]
+[#_Dictionary_IRoleType_ICollection_IThing_TypeDB_Driver_Api_IRelation_GetPlayers_ITypeDBTransaction_transaction_]
 ==== GetPlayers
 
 [source,cs]
@@ -107,7 +107,7 @@ a| `transaction` a| The current transaction a| `ITypeDBTransaction`
 relation.GetPlayers(transaction)
 ----
 
-[#_IEnumerable__IThing___TypeDB_Driver_Api_IRelation_GetPlayersByRoleType___ITypeDBTransaction_transaction__params_IRoleType___roleTypes_]
+[#_IEnumerable_IThing_TypeDB_Driver_Api_IRelation_GetPlayersByRoleType_ITypeDBTransaction_transaction_params_IRoleType_roleTypes_]
 ==== GetPlayersByRoleType
 
 [source,cs]
@@ -141,7 +141,7 @@ a| `roleTypes` a| 0 or more role types a| `params IRoleType[]`
 relation.GetPlayersByRoleType(transaction, roleTypes);
 ----
 
-[#_IEnumerable__IRoleType___TypeDB_Driver_Api_IRelation_GetRelating___ITypeDBTransaction_transaction_]
+[#_IEnumerable_IRoleType_TypeDB_Driver_Api_IRelation_GetRelating_ITypeDBTransaction_transaction_]
 ==== GetRelating
 
 [source,cs]
@@ -174,7 +174,7 @@ a| `transaction` a| The current transaction a| `ITypeDBTransaction`
 relation.GetRelating(transaction);
 ----
 
-[#_bool_IConcept__TypeDB_Driver_Api_IRelation_IsRelation___]
+[#_bool_IConcept_TypeDB_Driver_Api_IRelation_IsRelation_]
 ==== IsRelation
 
 [source,cs]
@@ -200,7 +200,7 @@ Implements TypeDB.Driver.Api.IConcept.
 relation.IsRelation();
 ----
 
-[#_VoidPromise_TypeDB_Driver_Api_IRelation_RemovePlayer___ITypeDBTransaction_transaction__IRoleType_roleType__IThing_player_]
+[#_VoidPromise_TypeDB_Driver_Api_IRelation_RemovePlayer_ITypeDBTransaction_transaction_IRoleType_roleType_IThing_player_]
 ==== RemovePlayer
 
 [source,cs]
diff --git a/csharp/docs/data/IThing.adoc b/docs/modules/ROOT/partials/csharp/data/IThing.adoc
similarity index 84%
rename from csharp/docs/data/IThing.adoc
rename to docs/modules/ROOT/partials/csharp/data/IThing.adoc
index 5ec7eb4ce6..0e0f4674f8 100644
--- a/csharp/docs/data/IThing.adoc
+++ b/docs/modules/ROOT/partials/csharp/data/IThing.adoc
@@ -8,7 +8,7 @@
 * `TypeDB.Driver.Api.IConcept`
 
 // tag::methods[]
-[#_IThing_IConcept__TypeDB_Driver_Api_IThing_AsThing___]
+[#_IThing_IConcept_TypeDB_Driver_Api_IThing_AsThing_]
 ==== AsThing
 
 [source,cs]
@@ -34,7 +34,7 @@ Implements TypeDB.Driver.Api.IConcept.
 thing.AsThing();
 ----
 
-[#_VoidPromise_TypeDB_Driver_Api_IThing_Delete___ITypeDBTransaction_transaction_]
+[#_VoidPromise_TypeDB_Driver_Api_IThing_Delete_ITypeDBTransaction_transaction_]
 ==== Delete
 
 [source,cs]
@@ -67,7 +67,7 @@ a| `transaction` a| The current transaction a| `ITypeDBTransaction`
 thing.Delete(transaction).Resolve();
 ----
 
-[#_IEnumerable__IAttribute___TypeDB_Driver_Api_IThing_GetHas___ITypeDBTransaction_transaction__params_IAttributeType___attributeTypes_]
+[#_IEnumerable_IAttribute_TypeDB_Driver_Api_IThing_GetHas_ITypeDBTransaction_transaction_params_IAttributeType_attributeTypes_]
 ==== GetHas
 
 [source,cs]
@@ -102,7 +102,7 @@ thing.GetHas(transaction);
 thing.GetHas(transaction, attributeType);
 ----
 
-[#_IEnumerable__IAttribute___TypeDB_Driver_Api_IThing_GetHas___ITypeDBTransaction_transaction__ICollection__Annotation___annotations_]
+[#_IEnumerable_IAttribute_TypeDB_Driver_Api_IThing_GetHas_ITypeDBTransaction_transaction_ICollection_Annotation_annotations_]
 ==== GetHas
 
 [source,cs]
@@ -137,7 +137,7 @@ thing.GetHas(transaction);
 thing.GetHas(transaction, new []{NewKey()});
 ----
 
-[#_IEnumerable__IRoleType___TypeDB_Driver_Api_IThing_GetPlaying___ITypeDBTransaction_transaction_]
+[#_IEnumerable_IRoleType_TypeDB_Driver_Api_IThing_GetPlaying_ITypeDBTransaction_transaction_]
 ==== GetPlaying
 
 [source,cs]
@@ -170,7 +170,7 @@ a| `transaction` a| The current transaction a| `ITypeDBTransaction`
 thing.GetPlaying(transaction);
 ----
 
-[#_IEnumerable__IRelation___TypeDB_Driver_Api_IThing_GetRelations___ITypeDBTransaction_transaction__params_IRoleType___roleTypes_]
+[#_IEnumerable_IRelation_TypeDB_Driver_Api_IThing_GetRelations_ITypeDBTransaction_transaction_params_IRoleType_roleTypes_]
 ==== GetRelations
 
 [source,cs]
@@ -228,7 +228,7 @@ The unique id of the ``IThing``.
 thing.IID;
 ----
 
-[#_Promise__bool___TypeDB_Driver_Api_IThing_IsDeleted___ITypeDBTransaction_transaction_]
+[#_Promise_bool_TypeDB_Driver_Api_IThing_IsDeleted_ITypeDBTransaction_transaction_]
 ==== IsDeleted
 
 [source,cs]
@@ -261,7 +261,7 @@ a| `transaction` a| The current transaction a| `ITypeDBTransaction`
 thing.IsDeleted(transaction).Resolve();
 ----
 
-[#_bool_TypeDB_Driver_Api_IThing_IsInferred___]
+[#_bool_TypeDB_Driver_Api_IThing_IsInferred_]
 ==== IsInferred
 
 [source,cs]
@@ -285,7 +285,7 @@ Checks if this ``IThing`` is inferred by a [Reasoning Rule].
 thing.IsInferred();
 ----
 
-[#_bool_IConcept__TypeDB_Driver_Api_IThing_IsThing___]
+[#_bool_IConcept_TypeDB_Driver_Api_IThing_IsThing_]
 ==== IsThing
 
 [source,cs]
@@ -311,7 +311,7 @@ Implements TypeDB.Driver.Api.IConcept.
 thing.IsThing();
 ----
 
-[#_VoidPromise_TypeDB_Driver_Api_IThing_SetHas___ITypeDBTransaction_transaction__IAttribute_attribute_]
+[#_VoidPromise_TypeDB_Driver_Api_IThing_SetHas_ITypeDBTransaction_transaction_IAttribute_attribute_]
 ==== SetHas
 
 [source,cs]
@@ -369,7 +369,7 @@ The type which this ``IThing`` belongs to.
 thing.Type;
 ----
 
-[#_VoidPromise_TypeDB_Driver_Api_IThing_UnsetHas___ITypeDBTransaction_transaction__IAttribute_attribute_]
+[#_VoidPromise_TypeDB_Driver_Api_IThing_UnsetHas_ITypeDBTransaction_transaction_IAttribute_attribute_]
 ==== UnsetHas
 
 [source,cs]
diff --git a/csharp/docs/data/IValue.adoc b/docs/modules/ROOT/partials/csharp/data/IValue.adoc
similarity index 86%
rename from csharp/docs/data/IValue.adoc
rename to docs/modules/ROOT/partials/csharp/data/IValue.adoc
index e01b9553e3..a901f7a55c 100644
--- a/csharp/docs/data/IValue.adoc
+++ b/docs/modules/ROOT/partials/csharp/data/IValue.adoc
@@ -8,7 +8,7 @@
 * `TypeDB.Driver.Api.IConcept`
 
 // tag::methods[]
-[#_bool_TypeDB_Driver_Api_IValue_AsBool___]
+[#_bool_TypeDB_Driver_Api_IValue_AsBool_]
 ==== AsBool
 
 [source,cs]
@@ -32,7 +32,7 @@ Returns a ``bool`` value of this value concept. If the value has another type, r
 value.AsBool();
 ----
 
-[#_System_DateTime_TypeDB_Driver_Api_IValue_AsDateTime___]
+[#_System_DateTime_TypeDB_Driver_Api_IValue_AsDateTime_]
 ==== AsDateTime
 
 [source,cs]
@@ -56,7 +56,7 @@ Returns a ``datetime`` value of this value concept. This value contains raw date
 value.AsDateTime();
 ----
 
-[#_double_TypeDB_Driver_Api_IValue_AsDouble___]
+[#_double_TypeDB_Driver_Api_IValue_AsDouble_]
 ==== AsDouble
 
 [source,cs]
@@ -80,7 +80,7 @@ Returns a ``double`` value of this value concept. If the value has another type,
 value.AsDouble();
 ----
 
-[#_long_TypeDB_Driver_Api_IValue_AsLong___]
+[#_long_TypeDB_Driver_Api_IValue_AsLong_]
 ==== AsLong
 
 [source,cs]
@@ -104,7 +104,7 @@ Returns a ``long`` value of this value concept. If the value has another type, r
 value.AsLong();
 ----
 
-[#_string_TypeDB_Driver_Api_IValue_AsString___]
+[#_string_TypeDB_Driver_Api_IValue_AsString_]
 ==== AsString
 
 [source,cs]
@@ -128,7 +128,7 @@ Returns a ``string`` value of this value concept. If the value has another type,
 value.AsString();
 ----
 
-[#_object_TypeDB_Driver_Api_IValue_AsUntyped___]
+[#_object_TypeDB_Driver_Api_IValue_AsUntyped_]
 ==== AsUntyped
 
 [source,cs]
@@ -152,7 +152,7 @@ Returns an untyped ``object`` value of this value concept. This is useful for va
 value.AsUntyped();
 ----
 
-[#_IValue_IConcept__TypeDB_Driver_Api_IValue_AsValue___]
+[#_IValue_IConcept_TypeDB_Driver_Api_IValue_AsValue_]
 ==== AsValue
 
 [source,cs]
@@ -180,7 +180,7 @@ Implements TypeDB.Driver.Api.IConcept.
 concept.AsValue();
 ----
 
-[#_bool_TypeDB_Driver_Api_IValue_IsBool___]
+[#_bool_TypeDB_Driver_Api_IValue_IsBool_]
 ==== IsBool
 
 [source,cs]
@@ -204,7 +204,7 @@ Returns ``True`` if the value which this value concept holds is of type ``bool``
 value.IsBool();
 ----
 
-[#_bool_TypeDB_Driver_Api_IValue_IsDateTime___]
+[#_bool_TypeDB_Driver_Api_IValue_IsDateTime_]
 ==== IsDateTime
 
 [source,cs]
@@ -228,7 +228,7 @@ Returns ``True`` if the value which this value concept holds is of type ``dateti
 value.IsDateTime();
 ----
 
-[#_bool_TypeDB_Driver_Api_IValue_IsDouble___]
+[#_bool_TypeDB_Driver_Api_IValue_IsDouble_]
 ==== IsDouble
 
 [source,cs]
@@ -252,7 +252,7 @@ Returns ``True`` if the value which this value concept holds is of type ``double
 value.IsDouble();
 ----
 
-[#_bool_TypeDB_Driver_Api_IValue_IsLong___]
+[#_bool_TypeDB_Driver_Api_IValue_IsLong_]
 ==== IsLong
 
 [source,cs]
@@ -276,7 +276,7 @@ Returns ``True`` if the value which this value concept holds is of type ``long``
 value.IsLong();
 ----
 
-[#_bool_TypeDB_Driver_Api_IValue_IsString___]
+[#_bool_TypeDB_Driver_Api_IValue_IsString_]
 ==== IsString
 
 [source,cs]
@@ -300,7 +300,7 @@ Returns ``True`` if the value which this value concept holds is of type ``string
 value.IsString();
 ----
 
-[#_bool_IConcept__TypeDB_Driver_Api_IValue_IsValue___]
+[#_bool_IConcept_TypeDB_Driver_Api_IValue_IsValue_]
 ==== IsValue
 
 [source,cs]
diff --git a/csharp/docs/data/ValueType.adoc b/docs/modules/ROOT/partials/csharp/data/ValueType.adoc
similarity index 100%
rename from csharp/docs/data/ValueType.adoc
rename to docs/modules/ROOT/partials/csharp/data/ValueType.adoc
diff --git a/csharp/docs/data/ValueTypeExtensions.adoc b/docs/modules/ROOT/partials/csharp/data/ValueTypeExtensions.adoc
similarity index 88%
rename from csharp/docs/data/ValueTypeExtensions.adoc
rename to docs/modules/ROOT/partials/csharp/data/ValueTypeExtensions.adoc
index e497d3bdbe..df2a7253da 100644
--- a/csharp/docs/data/ValueTypeExtensions.adoc
+++ b/docs/modules/ROOT/partials/csharp/data/ValueTypeExtensions.adoc
@@ -8,7 +8,7 @@
 Extension class with additional methods describing characteristics of ``ValueType`` enum values.
 
 // tag::methods[]
-[#_static_System_Type_TypeDB_Driver_Api_ValueTypeExtensions_GetValueClass___this_IValueValueType_valueType_]
+[#_static_System_Type_TypeDB_Driver_Api_ValueTypeExtensions_GetValueClass_this_IValueValueType_valueType_]
 ==== GetValueClass
 
 [source,cs]
@@ -32,7 +32,7 @@ Returns a ``System.Type`` equivalent of this value concept for this programming
 valueType.GetValueClass();
 ----
 
-[#_static_bool_TypeDB_Driver_Api_ValueTypeExtensions_IsKeyable___this_ValueType_valueType_]
+[#_static_bool_TypeDB_Driver_Api_ValueTypeExtensions_IsKeyable_this_ValueType_valueType_]
 ==== IsKeyable
 
 [source,cs]
@@ -56,7 +56,7 @@ Returns ``true`` if this value concept can be used as a key via the @key annotat
 valueType.IsKeyable();
 ----
 
-[#_static_bool_TypeDB_Driver_Api_ValueTypeExtensions_IsWritable___this_IValueValueType_valueType_]
+[#_static_bool_TypeDB_Driver_Api_ValueTypeExtensions_IsWritable_this_IValueValueType_valueType_]
 ==== IsWritable
 
 [source,cs]
diff --git a/csharp/docs/errors/TypeDBDriverException.adoc b/docs/modules/ROOT/partials/csharp/errors/TypeDBDriverException.adoc
similarity index 86%
rename from csharp/docs/errors/TypeDBDriverException.adoc
rename to docs/modules/ROOT/partials/csharp/errors/TypeDBDriverException.adoc
index f80b6648a1..e3d0c5f055 100644
--- a/csharp/docs/errors/TypeDBDriverException.adoc
+++ b/docs/modules/ROOT/partials/csharp/errors/TypeDBDriverException.adoc
@@ -8,7 +8,7 @@
 Exceptions raised by the driver.
 
 // tag::methods[]
-[#_bool_TypeDB_Driver_Common_TypeDBDriverException_Contains___string_subString_]
+[#_bool_TypeDB_Driver_Common_TypeDBDriverException_Contains_string_subString_]
 ==== Contains
 
 [source,cs]
diff --git a/csharp/docs/logic/ILogicManager.adoc b/docs/modules/ROOT/partials/csharp/logic/ILogicManager.adoc
similarity index 85%
rename from csharp/docs/logic/ILogicManager.adoc
rename to docs/modules/ROOT/partials/csharp/logic/ILogicManager.adoc
index 3900092ff5..9ece8eb5fa 100644
--- a/csharp/docs/logic/ILogicManager.adoc
+++ b/docs/modules/ROOT/partials/csharp/logic/ILogicManager.adoc
@@ -8,7 +8,7 @@
 Provides methods for manipulating rules in the database.
 
 // tag::methods[]
-[#_Promise__IRule___TypeDB_Driver_Api_ILogicManager_GetRule___string_label_]
+[#_Promise_IRule_TypeDB_Driver_Api_ILogicManager_GetRule_string_label_]
 ==== GetRule
 
 [source,cs]
@@ -41,7 +41,7 @@ a| `label` a| The label of the Rule to create or retrieve a| `string`
 transaction.Logic.GetRule(label).Resolve()
 ----
 
-[#_IEnumerable__IRule___TypeDB_Driver_Api_ILogicManager_GetRules___]
+[#_IEnumerable_IRule_TypeDB_Driver_Api_ILogicManager_GetRules_]
 ==== GetRules
 
 [source,cs]
@@ -65,7 +65,7 @@ Retrieves all rules.
 transaction.Logic.GetRules();
 ----
 
-[#_Promise__IRule___TypeDB_Driver_Api_ILogicManager_PutRule___string_label__string_when__string_then_]
+[#_Promise_IRule_TypeDB_Driver_Api_ILogicManager_PutRule_string_label_string_when_string_then_]
 ==== PutRule
 
 [source,cs]
diff --git a/csharp/docs/logic/IRule.adoc b/docs/modules/ROOT/partials/csharp/logic/IRule.adoc
similarity index 89%
rename from csharp/docs/logic/IRule.adoc
rename to docs/modules/ROOT/partials/csharp/logic/IRule.adoc
index 1690f82a4d..2723e903e3 100644
--- a/csharp/docs/logic/IRule.adoc
+++ b/docs/modules/ROOT/partials/csharp/logic/IRule.adoc
@@ -8,7 +8,7 @@
 Rules are a part of schema and define embedded logic. The reasoning engine uses rules as a set of logic to infer new data. A rule consists of a condition and a conclusion, and is uniquely identified by a label.
 
 // tag::methods[]
-[#_VoidPromise_TypeDB_Driver_Api_IRule_Delete___ITypeDBTransaction_transaction_]
+[#_VoidPromise_TypeDB_Driver_Api_IRule_Delete_ITypeDBTransaction_transaction_]
 ==== Delete
 
 [source,cs]
@@ -41,7 +41,7 @@ a| `transaction` a| The current ``Transaction`` a| `ITypeDBTransaction`
 rule.Delete(transaction).Resolve();
 ----
 
-[#_Promise__bool___TypeDB_Driver_Api_IRule_IsDeleted___ITypeDBTransaction_transaction_]
+[#_Promise_bool_TypeDB_Driver_Api_IRule_IsDeleted_ITypeDBTransaction_transaction_]
 ==== IsDeleted
 
 [source,cs]
@@ -90,7 +90,7 @@ Retrieves the unique label of the rule.
 .Returns
 `string`
 
-[#_VoidPromise_TypeDB_Driver_Api_IRule_SetLabel___ITypeDBTransaction_transaction__string_label_]
+[#_VoidPromise_TypeDB_Driver_Api_IRule_SetLabel_ITypeDBTransaction_transaction_string_label_]
 ==== SetLabel
 
 [source,cs]
diff --git a/csharp/docs/schema/Annotation.adoc b/docs/modules/ROOT/partials/csharp/schema/Annotation.adoc
similarity index 92%
rename from csharp/docs/schema/Annotation.adoc
rename to docs/modules/ROOT/partials/csharp/schema/Annotation.adoc
index 46ebb1d721..e0e427080b 100644
--- a/csharp/docs/schema/Annotation.adoc
+++ b/docs/modules/ROOT/partials/csharp/schema/Annotation.adoc
@@ -8,7 +8,7 @@
 Annotation
 
 // tag::methods[]
-[#_override_bool_TypeDB_Driver_Api_IThingType_Annotation_Equals___object_obj_]
+[#_override_bool_TypeDB_Driver_Api_IThingType_Annotation_Equals_object_obj_]
 ==== Equals
 
 [source,cs]
@@ -41,7 +41,7 @@ a| `obj` a| Object to compare with a| `object?`
 annotation.Equals(obj);
 ----
 
-[#_bool_TypeDB_Driver_Api_IThingType_Annotation_IsKey___]
+[#_bool_TypeDB_Driver_Api_IThingType_Annotation_IsKey_]
 ==== IsKey
 
 [source,cs]
@@ -65,7 +65,7 @@ Checks if this ``Annotation`` is a ``@key`` annotation.
 annotation.IsKey();
 ----
 
-[#_bool_TypeDB_Driver_Api_IThingType_Annotation_IsUnique___]
+[#_bool_TypeDB_Driver_Api_IThingType_Annotation_IsUnique_]
 ==== IsUnique
 
 [source,cs]
@@ -89,7 +89,7 @@ Checks if this ``Annotation`` is a ``@unique`` annotation.
 annotation.IsUnique();
 ----
 
-[#_static_Annotation_TypeDB_Driver_Api_IThingType_Annotation_NewKey___]
+[#_static_Annotation_TypeDB_Driver_Api_IThingType_Annotation_NewKey_]
 ==== NewKey
 
 [source,cs]
@@ -114,7 +114,7 @@ using static TypeDB.Driver.Api.IThingType.Annotation;
 NewKey();
 ----
 
-[#_static_Annotation_TypeDB_Driver_Api_IThingType_Annotation_NewUnique___]
+[#_static_Annotation_TypeDB_Driver_Api_IThingType_Annotation_NewUnique_]
 ==== NewUnique
 
 [source,cs]
@@ -138,7 +138,7 @@ Produces a ``@unique`` annotation.
 Annotation.NewUnique();
 ----
 
-[#_override_string_TypeDB_Driver_Api_IThingType_Annotation_ToString___]
+[#_override_string_TypeDB_Driver_Api_IThingType_Annotation_ToString_]
 ==== ToString
 
 [source,cs]
diff --git a/csharp/docs/schema/IAttributeType.adoc b/docs/modules/ROOT/partials/csharp/schema/IAttributeType.adoc
similarity index 84%
rename from csharp/docs/schema/IAttributeType.adoc
rename to docs/modules/ROOT/partials/csharp/schema/IAttributeType.adoc
index 9bde8a04a5..e07b6e732e 100644
--- a/csharp/docs/schema/IAttributeType.adoc
+++ b/docs/modules/ROOT/partials/csharp/schema/IAttributeType.adoc
@@ -20,7 +20,7 @@ Other types can own an attribute type. That means that instances of these other
 Multiple types can own the same attribute type, and different instances of the same type or different types can share ownership of the same attribute instance.
 
 // tag::methods[]
-[#_IAttributeType_IConcept__TypeDB_Driver_Api_IAttributeType_AsAttributeType___]
+[#_IAttributeType_IConcept_TypeDB_Driver_Api_IAttributeType_AsAttributeType_]
 ==== AsAttributeType
 
 [source,cs]
@@ -48,7 +48,7 @@ Implements TypeDB.Driver.Api.IConcept.
 concept.AsAttributeType();
 ----
 
-[#_Promise__IAttribute___TypeDB_Driver_Api_IAttributeType_Get___ITypeDBTransaction_transaction__IValue_value_]
+[#_Promise_IAttribute_TypeDB_Driver_Api_IAttributeType_Get_ITypeDBTransaction_transaction_IValue_value_]
 ==== Get
 
 [source,cs]
@@ -82,7 +82,7 @@ a| `value` a| ``IAttribute``’s value a| `IValue`
 attributeType.Get(transaction, value).Resolve();
 ----
 
-[#_Promise__IAttribute___TypeDB_Driver_Api_IAttributeType_Get___ITypeDBTransaction_transaction__string_value_]
+[#_Promise_IAttribute_TypeDB_Driver_Api_IAttributeType_Get_ITypeDBTransaction_transaction_string_value_]
 ==== Get
 
 [source,cs]
@@ -116,7 +116,7 @@ a| `value` a| ``IAttribute``’s value a| `string`
 attributeType.Get(transaction, value).Resolve();
 ----
 
-[#_Promise__IAttribute___TypeDB_Driver_Api_IAttributeType_Get___ITypeDBTransaction_transaction__long_value_]
+[#_Promise_IAttribute_TypeDB_Driver_Api_IAttributeType_Get_ITypeDBTransaction_transaction_long_value_]
 ==== Get
 
 [source,cs]
@@ -150,7 +150,7 @@ a| `value` a| ``IAttribute``’s value a| `long`
 attributeType.Get(transaction, value).Resolve();
 ----
 
-[#_Promise__IAttribute___TypeDB_Driver_Api_IAttributeType_Get___ITypeDBTransaction_transaction__double_value_]
+[#_Promise_IAttribute_TypeDB_Driver_Api_IAttributeType_Get_ITypeDBTransaction_transaction_double_value_]
 ==== Get
 
 [source,cs]
@@ -184,7 +184,7 @@ a| `value` a| ``IAttribute``’s value a| `double`
 attributeType.Get(transaction, value).Resolve();
 ----
 
-[#_Promise__IAttribute___TypeDB_Driver_Api_IAttributeType_Get___ITypeDBTransaction_transaction__bool_value_]
+[#_Promise_IAttribute_TypeDB_Driver_Api_IAttributeType_Get_ITypeDBTransaction_transaction_bool_value_]
 ==== Get
 
 [source,cs]
@@ -218,7 +218,7 @@ a| `value` a| ``IAttribute``’s value a| `bool`
 attributeType.Get(transaction, value).Resolve();
 ----
 
-[#_Promise__IAttribute___TypeDB_Driver_Api_IAttributeType_Get___ITypeDBTransaction_transaction__System_DateTime_value_]
+[#_Promise_IAttribute_TypeDB_Driver_Api_IAttributeType_Get_ITypeDBTransaction_transaction_System_DateTime_value_]
 ==== Get
 
 [source,cs]
@@ -252,7 +252,7 @@ a| `value` a| ``IAttribute``’s value a| `System​.DateTime`
 attributeType.Get(transaction, value).Resolve();
 ----
 
-[#_IEnumerable__IThingType___TypeDB_Driver_Api_IAttributeType_GetOwners___ITypeDBTransaction_transaction_]
+[#_IEnumerable_IThingType_TypeDB_Driver_Api_IAttributeType_GetOwners_ITypeDBTransaction_transaction_]
 ==== GetOwners
 
 [source,cs]
@@ -285,7 +285,7 @@ a| `transaction` a| The current transaction a| `ITypeDBTransaction`
 attributeType.GetOwners(transaction);
 ----
 
-[#_IEnumerable__IThingType___TypeDB_Driver_Api_IAttributeType_GetOwners___ITypeDBTransaction_transaction__ICollection__Annotation___annotations_]
+[#_IEnumerable_IThingType_TypeDB_Driver_Api_IAttributeType_GetOwners_ITypeDBTransaction_transaction_ICollection_Annotation_annotations_]
 ==== GetOwners
 
 [source,cs]
@@ -319,7 +319,7 @@ a| `annotations` a| Only retrieve ``ThingTypes`` that have an attribute of this
 attributeType.GetOwners(transaction, annotations);
 ----
 
-[#_IEnumerable__IThingType___TypeDB_Driver_Api_IAttributeType_GetOwners___ITypeDBTransaction_transaction__IConcept_Transitivity_transitivity_]
+[#_IEnumerable_IThingType_TypeDB_Driver_Api_IAttributeType_GetOwners_ITypeDBTransaction_transaction_IConcept_Transitivity_transitivity_]
 ==== GetOwners
 
 [source,cs]
@@ -353,7 +353,7 @@ a| `transitivity` a| ``Transitive`` for direct and inherited ownership, ``Explic
 attributeType.GetOwners(transaction, transitivity);
 ----
 
-[#_IEnumerable__IThingType___TypeDB_Driver_Api_IAttributeType_GetOwners___ITypeDBTransaction_transaction__ICollection__Annotation___annotations__IConcept_Transitivity_transitivity_]
+[#_IEnumerable_IThingType_TypeDB_Driver_Api_IAttributeType_GetOwners_ITypeDBTransaction_transaction_ICollection_Annotation_annotations_IConcept_Transitivity_transitivity_]
 ==== GetOwners
 
 [source,cs]
@@ -388,7 +388,7 @@ a| `transitivity` a| ``Transitive`` for direct and inherited ownership, ``Explic
 attributeType.GetOwners(transaction, annotations, transitivity);
 ----
 
-[#_Promise__string___TypeDB_Driver_Api_IAttributeType_GetRegex___ITypeDBTransaction_transaction_]
+[#_Promise_string_TypeDB_Driver_Api_IAttributeType_GetRegex_ITypeDBTransaction_transaction_]
 ==== GetRegex
 
 [source,cs]
@@ -421,7 +421,7 @@ a| `transaction` a| The current transaction a| `ITypeDBTransaction`
 attributeType.GetRegex(transaction).Resolve();
 ----
 
-[#_IEnumerable__IType___TypeDB_Driver_Api_IAttributeType_GetSubtypes___ITypeDBTransaction_transaction__IValue_ValueType_valueType_]
+[#_IEnumerable_IType_TypeDB_Driver_Api_IAttributeType_GetSubtypes_ITypeDBTransaction_transaction_IValue_ValueType_valueType_]
 ==== GetSubtypes
 
 [source,cs]
@@ -455,7 +455,7 @@ a| `valueType` a| ``IValue.ValueType`` for retrieving subtypes a| `IValue​.Val
 attributeType.GetSubtypes(transaction, valueType);
 ----
 
-[#_IEnumerable__IType___TypeDB_Driver_Api_IAttributeType_GetSubtypes___ITypeDBTransaction_transaction__IValue_ValueType_valueType__IConcept_Transitivity_transitivity_]
+[#_IEnumerable_IType_TypeDB_Driver_Api_IAttributeType_GetSubtypes_ITypeDBTransaction_transaction_IValue_ValueType_valueType_IConcept_Transitivity_transitivity_]
 ==== GetSubtypes
 
 [source,cs]
@@ -490,7 +490,7 @@ a| `transitivity` a| ``Transitive`` for direct and indirect subtypes, ``Explicit
 attributeType.GetSubtypes(transaction, valueType, transitivity);
 ----
 
-[#_bool_IConcept__TypeDB_Driver_Api_IAttributeType_IsAttributeType___]
+[#_bool_IConcept_TypeDB_Driver_Api_IAttributeType_IsAttributeType_]
 ==== IsAttributeType
 
 [source,cs]
@@ -518,7 +518,7 @@ Implements TypeDB.Driver.Api.IConcept.
 concept.IsAttributeType();
 ----
 
-[#_bool_TypeDB_Driver_Api_IAttributeType_IsBool___]
+[#_bool_TypeDB_Driver_Api_IAttributeType_IsBool_]
 ==== IsBool
 
 [source,cs]
@@ -542,7 +542,7 @@ Returns ``True`` if the value for attributes of this type is of type ``bool``. O
 attributeType.IsBool();
 ----
 
-[#_bool_TypeDB_Driver_Api_IAttributeType_IsDateTime___]
+[#_bool_TypeDB_Driver_Api_IAttributeType_IsDateTime_]
 ==== IsDateTime
 
 [source,cs]
@@ -566,7 +566,7 @@ Returns ``True`` if the value for attributes of this type is of type ``datetime`
 attributeType.IsDateTime();
 ----
 
-[#_bool_TypeDB_Driver_Api_IAttributeType_IsDouble___]
+[#_bool_TypeDB_Driver_Api_IAttributeType_IsDouble_]
 ==== IsDouble
 
 [source,cs]
@@ -590,7 +590,7 @@ Returns ``True`` if the value for attributes of this type is of type ``double``.
 attributeType.IsDouble();
 ----
 
-[#_bool_TypeDB_Driver_Api_IAttributeType_IsLong___]
+[#_bool_TypeDB_Driver_Api_IAttributeType_IsLong_]
 ==== IsLong
 
 [source,cs]
@@ -614,7 +614,7 @@ Returns ``True`` if the value for attributes of this type is of type ``long``. O
 attributeType.IsLong();
 ----
 
-[#_bool_TypeDB_Driver_Api_IAttributeType_IsString___]
+[#_bool_TypeDB_Driver_Api_IAttributeType_IsString_]
 ==== IsString
 
 [source,cs]
@@ -638,7 +638,7 @@ Returns ``True`` if the value for attributes of this type is of type ``string``.
 attributeType.IsString();
 ----
 
-[#_Promise__IAttribute___TypeDB_Driver_Api_IAttributeType_Put___ITypeDBTransaction_transaction__IValue_value_]
+[#_Promise_IAttribute_TypeDB_Driver_Api_IAttributeType_Put_ITypeDBTransaction_transaction_IValue_value_]
 ==== Put
 
 [source,cs]
@@ -672,7 +672,7 @@ a| `value` a| New ``IAttribute``’s value a| `IValue`
 attributeType.Put(transaction, value).Resolve();
 ----
 
-[#_Promise__IAttribute___TypeDB_Driver_Api_IAttributeType_Put___ITypeDBTransaction_transaction__string_value_]
+[#_Promise_IAttribute_TypeDB_Driver_Api_IAttributeType_Put_ITypeDBTransaction_transaction_string_value_]
 ==== Put
 
 [source,cs]
@@ -706,7 +706,7 @@ a| `value` a| New ``IAttribute``’s value a| `string`
 attributeType.Put(transaction, value).Resolve();
 ----
 
-[#_Promise__IAttribute___TypeDB_Driver_Api_IAttributeType_Put___ITypeDBTransaction_transaction__long_value_]
+[#_Promise_IAttribute_TypeDB_Driver_Api_IAttributeType_Put_ITypeDBTransaction_transaction_long_value_]
 ==== Put
 
 [source,cs]
@@ -740,7 +740,7 @@ a| `value` a| New ``IAttribute``’s value a| `long`
 attributeType.Put(transaction, value).Resolve();
 ----
 
-[#_Promise__IAttribute___TypeDB_Driver_Api_IAttributeType_Put___ITypeDBTransaction_transaction__double_value_]
+[#_Promise_IAttribute_TypeDB_Driver_Api_IAttributeType_Put_ITypeDBTransaction_transaction_double_value_]
 ==== Put
 
 [source,cs]
@@ -774,7 +774,7 @@ a| `value` a| New ``IAttribute``’s value a| `double`
 attributeType.Put(transaction, value).Resolve();
 ----
 
-[#_Promise__IAttribute___TypeDB_Driver_Api_IAttributeType_Put___ITypeDBTransaction_transaction__bool_value_]
+[#_Promise_IAttribute_TypeDB_Driver_Api_IAttributeType_Put_ITypeDBTransaction_transaction_bool_value_]
 ==== Put
 
 [source,cs]
@@ -808,7 +808,7 @@ a| `value` a| New ``IAttribute``’s value a| `bool`
 attributeType.Put(transaction, value).Resolve();
 ----
 
-[#_Promise__IAttribute___TypeDB_Driver_Api_IAttributeType_Put___ITypeDBTransaction_transaction__System_DateTime_value_]
+[#_Promise_IAttribute_TypeDB_Driver_Api_IAttributeType_Put_ITypeDBTransaction_transaction_System_DateTime_value_]
 ==== Put
 
 [source,cs]
@@ -842,7 +842,7 @@ a| `value` a| New ``IAttribute``’s value a| `System​.DateTime`
 attributeType.Put(transaction, value).Resolve();
 ----
 
-[#_VoidPromise_TypeDB_Driver_Api_IAttributeType_SetRegex___ITypeDBTransaction_transaction__string_regex_]
+[#_VoidPromise_TypeDB_Driver_Api_IAttributeType_SetRegex_ITypeDBTransaction_transaction_string_regex_]
 ==== SetRegex
 
 [source,cs]
@@ -878,7 +878,7 @@ a| `regex` a| Regular expression a| `string`
 attributeType.SetRegex(transaction, regex).Resolve();
 ----
 
-[#_VoidPromise_TypeDB_Driver_Api_IAttributeType_SetSupertype___ITypeDBTransaction_transaction__IAttributeType_attributeType_]
+[#_VoidPromise_TypeDB_Driver_Api_IAttributeType_SetSupertype_ITypeDBTransaction_transaction_IAttributeType_attributeType_]
 ==== SetSupertype
 
 [source,cs]
@@ -912,7 +912,7 @@ a| `attributeType` a| The ``IAttributeType`` to set as the supertype of this ``I
 attributeType.SetSupertype(transaction, superType).Resolve();
 ----
 
-[#_VoidPromise_TypeDB_Driver_Api_IAttributeType_UnsetRegex___ITypeDBTransaction_transaction_]
+[#_VoidPromise_TypeDB_Driver_Api_IAttributeType_UnsetRegex_ITypeDBTransaction_transaction_]
 ==== UnsetRegex
 
 [source,cs]
diff --git a/csharp/docs/schema/IEntityType.adoc b/docs/modules/ROOT/partials/csharp/schema/IEntityType.adoc
similarity index 84%
rename from csharp/docs/schema/IEntityType.adoc
rename to docs/modules/ROOT/partials/csharp/schema/IEntityType.adoc
index 2fcaed7b59..dbcdbf80b3 100644
--- a/csharp/docs/schema/IEntityType.adoc
+++ b/docs/modules/ROOT/partials/csharp/schema/IEntityType.adoc
@@ -14,7 +14,7 @@
 Entity types represent the classification of independent objects in the data model of the business domain.
 
 // tag::methods[]
-[#_IEntityType_IConcept__TypeDB_Driver_Api_IEntityType_AsEntityType___]
+[#_IEntityType_IConcept_TypeDB_Driver_Api_IEntityType_AsEntityType_]
 ==== AsEntityType
 
 [source,cs]
@@ -42,7 +42,7 @@ Implements TypeDB.Driver.Api.IConcept.
 concept.AsEntityType();
 ----
 
-[#_Promise__IEntity___TypeDB_Driver_Api_IEntityType_Create___ITypeDBTransaction_transaction_]
+[#_Promise_IEntity_TypeDB_Driver_Api_IEntityType_Create_ITypeDBTransaction_transaction_]
 ==== Create
 
 [source,cs]
@@ -75,7 +75,7 @@ a| `transaction` a| The current transaction a| `ITypeDBTransaction`
 entityType.Create(transaction).Resolve();
 ----
 
-[#_bool_IConcept__TypeDB_Driver_Api_IEntityType_IsEntityType___]
+[#_bool_IConcept_TypeDB_Driver_Api_IEntityType_IsEntityType_]
 ==== IsEntityType
 
 [source,cs]
@@ -103,7 +103,7 @@ Implements TypeDB.Driver.Api.IConcept.
 concept.IsEntityType();
 ----
 
-[#_VoidPromise_TypeDB_Driver_Api_IEntityType_SetSupertype___ITypeDBTransaction_transaction__IEntityType_superEntityType_]
+[#_VoidPromise_TypeDB_Driver_Api_IEntityType_SetSupertype_ITypeDBTransaction_transaction_IEntityType_superEntityType_]
 ==== SetSupertype
 
 [source,cs]
diff --git a/csharp/docs/schema/IRelationType.adoc b/docs/modules/ROOT/partials/csharp/schema/IRelationType.adoc
similarity index 81%
rename from csharp/docs/schema/IRelationType.adoc
rename to docs/modules/ROOT/partials/csharp/schema/IRelationType.adoc
index f48cbbf80b..8fe6833edd 100644
--- a/csharp/docs/schema/IRelationType.adoc
+++ b/docs/modules/ROOT/partials/csharp/schema/IRelationType.adoc
@@ -14,7 +14,7 @@
 Relation types (or subtypes of the relation root type) represent relationships between types. Relation types have roles. Other types can play roles in relations if it’s mentioned in their definition. A relation type must specify at least one role.
 
 // tag::methods[]
-[#_IRelationType_IConcept__TypeDB_Driver_Api_IRelationType_AsRelationType___]
+[#_IRelationType_IConcept_TypeDB_Driver_Api_IRelationType_AsRelationType_]
 ==== AsRelationType
 
 [source,cs]
@@ -42,7 +42,7 @@ Implements TypeDB.Driver.Api.IConcept.
 concept.AsRelationType();
 ----
 
-[#_Promise__IRelation___TypeDB_Driver_Api_IRelationType_Create___ITypeDBTransaction_transaction_]
+[#_Promise_IRelation_TypeDB_Driver_Api_IRelationType_Create_ITypeDBTransaction_transaction_]
 ==== Create
 
 [source,cs]
@@ -75,7 +75,7 @@ a| `transaction` a| The current transaction a| `ITypeDBTransaction`
 relationType.Create(transaction).Resolve();
 ----
 
-[#_IEnumerable__IRoleType___TypeDB_Driver_Api_IRelationType_GetRelates___ITypeDBTransaction_transaction_]
+[#_IEnumerable_IRoleType_TypeDB_Driver_Api_IRelationType_GetRelates_ITypeDBTransaction_transaction_]
 ==== GetRelates
 
 [source,cs]
@@ -102,7 +102,7 @@ IRelationType::getRelates(ITypeDBTransaction, IConcept.Transitivity)
 .Returns
 `IEnumerable< IRoleType >`
 
-[#_IEnumerable__IRoleType___TypeDB_Driver_Api_IRelationType_GetRelates___ITypeDBTransaction_transaction__IConcept_Transitivity_transitivity_]
+[#_IEnumerable_IRoleType_TypeDB_Driver_Api_IRelationType_GetRelates_ITypeDBTransaction_transaction_IConcept_Transitivity_transitivity_]
 ==== GetRelates
 
 [source,cs]
@@ -136,7 +136,7 @@ a| `transitivity` a| ``Transitive`` for direct and inherited relates, ``Explicit
 relationType.GetRelates(transaction, transitivity);
 ----
 
-[#_Promise__IRoleType___TypeDB_Driver_Api_IRelationType_GetRelates___ITypeDBTransaction_transaction__string_roleLabel_]
+[#_Promise_IRoleType_TypeDB_Driver_Api_IRelationType_GetRelates_ITypeDBTransaction_transaction_string_roleLabel_]
 ==== GetRelates
 
 [source,cs]
@@ -170,7 +170,7 @@ a| `roleLabel` a| Label of the role we wish to retrieve a| `string`
 relationType.GetRelates(transaction, roleLabel).Resolve();
 ----
 
-[#_Promise__IRoleType___TypeDB_Driver_Api_IRelationType_GetRelatesOverridden___ITypeDBTransaction_transaction__IRoleType_roleType_]
+[#_Promise_IRoleType_TypeDB_Driver_Api_IRelationType_GetRelatesOverridden_ITypeDBTransaction_transaction_IRoleType_roleType_]
 ==== GetRelatesOverridden
 
 [source,cs]
@@ -197,7 +197,7 @@ IRelationType::GetRelatesOverridden(ITypeDBTransaction, string)
 .Returns
 `Promise< IRoleType >`
 
-[#_Promise__IRoleType___TypeDB_Driver_Api_IRelationType_GetRelatesOverridden___ITypeDBTransaction_transaction__string_roleLabel_]
+[#_Promise_IRoleType_TypeDB_Driver_Api_IRelationType_GetRelatesOverridden_ITypeDBTransaction_transaction_string_roleLabel_]
 ==== GetRelatesOverridden
 
 [source,cs]
@@ -231,7 +231,7 @@ a| `roleLabel` a| Label of the role that overrides an inherited role a| `string`
 relationType.GetRelatesOverridden(transaction, roleLabel).Resolve();
 ----
 
-[#_bool_IConcept__TypeDB_Driver_Api_IRelationType_IsRelationType___]
+[#_bool_IConcept_TypeDB_Driver_Api_IRelationType_IsRelationType_]
 ==== IsRelationType
 
 [source,cs]
@@ -259,7 +259,7 @@ Implements TypeDB.Driver.Api.IConcept.
 concept.IsRelationType();
 ----
 
-[#_VoidPromise_TypeDB_Driver_Api_IRelationType_SetRelates___ITypeDBTransaction_transaction__string_roleLabel_]
+[#_VoidPromise_TypeDB_Driver_Api_IRelationType_SetRelates_ITypeDBTransaction_transaction_string_roleLabel_]
 ==== SetRelates
 
 [source,cs]
@@ -286,7 +286,7 @@ IRelationType::SetRelates(ITypeDBTransaction, string, string)
 .Returns
 `VoidPromise`
 
-[#_VoidPromise_TypeDB_Driver_Api_IRelationType_SetRelates___ITypeDBTransaction_transaction__string_roleLabel__IRoleType_overriddenType_]
+[#_VoidPromise_TypeDB_Driver_Api_IRelationType_SetRelates_ITypeDBTransaction_transaction_string_roleLabel_IRoleType_overriddenType_]
 ==== SetRelates
 
 [source,cs]
@@ -313,7 +313,7 @@ IRelationType::SetRelates(ITypeDBTransaction, string, string)
 .Returns
 `VoidPromise`
 
-[#_VoidPromise_TypeDB_Driver_Api_IRelationType_SetRelates___ITypeDBTransaction_transaction__string_roleLabel__string_overriddenLabel_]
+[#_VoidPromise_TypeDB_Driver_Api_IRelationType_SetRelates_ITypeDBTransaction_transaction_string_roleLabel_string_overriddenLabel_]
 ==== SetRelates
 
 [source,cs]
@@ -349,7 +349,7 @@ relationType.SetRelates(transaction, roleLabel).Resolve();
 relationType.SetRelates(transaction, roleLabel, overriddenLabel).Resolve();
 ----
 
-[#_VoidPromise_TypeDB_Driver_Api_IRelationType_SetSupertype___ITypeDBTransaction_transaction__IRelationType_superRelationType_]
+[#_VoidPromise_TypeDB_Driver_Api_IRelationType_SetSupertype_ITypeDBTransaction_transaction_IRelationType_superRelationType_]
 ==== SetSupertype
 
 [source,cs]
@@ -383,7 +383,7 @@ a| `superRelationType` a| The ``IRelationType`` to set as the supertype of this
 relationType.SetSupertype(transaction, superRelationType).Resolve();
 ----
 
-[#_VoidPromise_TypeDB_Driver_Api_IRelationType_UnsetRelates___ITypeDBTransaction_transaction__IRoleType_roleType_]
+[#_VoidPromise_TypeDB_Driver_Api_IRelationType_UnsetRelates_ITypeDBTransaction_transaction_IRoleType_roleType_]
 ==== UnsetRelates
 
 [source,cs]
@@ -410,7 +410,7 @@ IRelationType::UnsetRelates(ITypeDBTransaction, string)
 .Returns
 `VoidPromise`
 
-[#_VoidPromise_TypeDB_Driver_Api_IRelationType_UnsetRelates___ITypeDBTransaction_transaction__string_roleLabel_]
+[#_VoidPromise_TypeDB_Driver_Api_IRelationType_UnsetRelates_ITypeDBTransaction_transaction_string_roleLabel_]
 ==== UnsetRelates
 
 [source,cs]
diff --git a/csharp/docs/schema/IRoleType.adoc b/docs/modules/ROOT/partials/csharp/schema/IRoleType.adoc
similarity index 82%
rename from csharp/docs/schema/IRoleType.adoc
rename to docs/modules/ROOT/partials/csharp/schema/IRoleType.adoc
index f93ec51db5..ef240514c0 100644
--- a/csharp/docs/schema/IRoleType.adoc
+++ b/docs/modules/ROOT/partials/csharp/schema/IRoleType.adoc
@@ -13,7 +13,7 @@
 Roles are special internal types used by relations. We can not create an instance of a role in a database. But we can set an instance of another type (role player) to play a role in a particular instance of a relation type. Roles allow a schema to enforce logical constraints on types of role players.
 
 // tag::methods[]
-[#_IRoleType_IConcept__TypeDB_Driver_Api_IRoleType_AsRoleType___]
+[#_IRoleType_IConcept_TypeDB_Driver_Api_IRoleType_AsRoleType_]
 ==== AsRoleType
 
 [source,cs]
@@ -41,7 +41,7 @@ Implements TypeDB.Driver.Api.IConcept.
 concept.AsRoleType();
 ----
 
-[#_IEnumerable__IThing___TypeDB_Driver_Api_IRoleType_GetPlayerInstances___ITypeDBTransaction_transaction_]
+[#_IEnumerable_IThing_TypeDB_Driver_Api_IRoleType_GetPlayerInstances_ITypeDBTransaction_transaction_]
 ==== GetPlayerInstances
 
 [source,cs]
@@ -68,7 +68,7 @@ IRoleType::GetPlayerInstances(ITypeDBTransaction, IConcept.Transitivity)
 .Returns
 `IEnumerable< IThing >`
 
-[#_IEnumerable__IThing___TypeDB_Driver_Api_IRoleType_GetPlayerInstances___ITypeDBTransaction_transaction__IConcept_Transitivity_transitivity_]
+[#_IEnumerable_IThing_TypeDB_Driver_Api_IRoleType_GetPlayerInstances_ITypeDBTransaction_transaction_IConcept_Transitivity_transitivity_]
 ==== GetPlayerInstances
 
 [source,cs]
@@ -102,7 +102,7 @@ a| `transitivity` a| ``Transitive`` for direct and indirect playing, ``Explicit`
 roleType.GetPlayerInstances(transaction, transitivity);
 ----
 
-[#_IEnumerable__IThingType___TypeDB_Driver_Api_IRoleType_GetPlayerTypes___ITypeDBTransaction_transaction_]
+[#_IEnumerable_IThingType_TypeDB_Driver_Api_IRoleType_GetPlayerTypes_ITypeDBTransaction_transaction_]
 ==== GetPlayerTypes
 
 [source,cs]
@@ -129,7 +129,7 @@ IRoleType::GetPlayerTypes(ITypeDBTransaction, IConcept.Transitivity)
 .Returns
 `IEnumerable< IThingType >`
 
-[#_IEnumerable__IThingType___TypeDB_Driver_Api_IRoleType_GetPlayerTypes___ITypeDBTransaction_transaction__IConcept_Transitivity_transitivity_]
+[#_IEnumerable_IThingType_TypeDB_Driver_Api_IRoleType_GetPlayerTypes_ITypeDBTransaction_transaction_IConcept_Transitivity_transitivity_]
 ==== GetPlayerTypes
 
 [source,cs]
@@ -163,7 +163,7 @@ a| `transitivity` a| ``Transitive`` for direct and indirect playing, ``Explicit`
 roleType.GetPlayerTypes(transaction, transitivity)
 ----
 
-[#_IEnumerable__IRelation___TypeDB_Driver_Api_IRoleType_GetRelationInstances___ITypeDBTransaction_transaction_]
+[#_IEnumerable_IRelation_TypeDB_Driver_Api_IRoleType_GetRelationInstances_ITypeDBTransaction_transaction_]
 ==== GetRelationInstances
 
 [source,cs]
@@ -190,7 +190,7 @@ IRoleType::GetRelationInstances(ITypeDBTransaction, IConcept.Transitivity)
 .Returns
 `IEnumerable< IRelation >`
 
-[#_IEnumerable__IRelation___TypeDB_Driver_Api_IRoleType_GetRelationInstances___ITypeDBTransaction_transaction__IConcept_Transitivity_transitivity_]
+[#_IEnumerable_IRelation_TypeDB_Driver_Api_IRoleType_GetRelationInstances_ITypeDBTransaction_transaction_IConcept_Transitivity_transitivity_]
 ==== GetRelationInstances
 
 [source,cs]
@@ -224,7 +224,7 @@ a| `transitivity` a| ``Transitive`` for direct and indirect relation, ``Explicit
 roleType.GetRelationInstances(transaction, transitivity)
 ----
 
-[#_IEnumerable__IRelationType___TypeDB_Driver_Api_IRoleType_GetRelationTypes___ITypeDBTransaction_transaction_]
+[#_IEnumerable_IRelationType_TypeDB_Driver_Api_IRoleType_GetRelationTypes_ITypeDBTransaction_transaction_]
 ==== GetRelationTypes
 
 [source,cs]
@@ -257,7 +257,7 @@ a| `transaction` a| The current transaction a| `ITypeDBTransaction`
 roleType.GetRelationTypes(transaction);
 ----
 
-[#_bool_IConcept__TypeDB_Driver_Api_IRoleType_IsRoleType___]
+[#_bool_IConcept_TypeDB_Driver_Api_IRoleType_IsRoleType_]
 ==== IsRoleType
 
 [source,cs]
diff --git a/csharp/docs/schema/IThingType.adoc b/docs/modules/ROOT/partials/csharp/schema/IThingType.adoc
similarity index 81%
rename from csharp/docs/schema/IThingType.adoc
rename to docs/modules/ROOT/partials/csharp/schema/IThingType.adoc
index 965bcbf212..dc5d25a393 100644
--- a/csharp/docs/schema/IThingType.adoc
+++ b/docs/modules/ROOT/partials/csharp/schema/IThingType.adoc
@@ -9,7 +9,7 @@
 * `TypeDB.Driver.Api.IConcept`
 
 // tag::methods[]
-[#_IThingType_IConcept__TypeDB_Driver_Api_IThingType_AsThingType___]
+[#_IThingType_IConcept_TypeDB_Driver_Api_IThingType_AsThingType_]
 ==== AsThingType
 
 [source,cs]
@@ -37,7 +37,7 @@ Implements TypeDB.Driver.Api.IConcept.
 concept.AsThingType();
 ----
 
-[#_IEnumerable__IThing___TypeDB_Driver_Api_IThingType_GetInstances___ITypeDBTransaction_transaction_]
+[#_IEnumerable_IThing_TypeDB_Driver_Api_IThingType_GetInstances_ITypeDBTransaction_transaction_]
 ==== GetInstances
 
 [source,cs]
@@ -64,7 +64,7 @@ IThingType::GetInstances(ITypeDBTransaction, IConcept.Transitivity)
 .Returns
 `IEnumerable< IThing >`
 
-[#_IEnumerable__IThing___TypeDB_Driver_Api_IThingType_GetInstances___ITypeDBTransaction_transaction__IConcept_Transitivity_transitivity_]
+[#_IEnumerable_IThing_TypeDB_Driver_Api_IThingType_GetInstances_ITypeDBTransaction_transaction_IConcept_Transitivity_transitivity_]
 ==== GetInstances
 
 [source,cs]
@@ -99,7 +99,7 @@ thingType.GetInstances(transaction);
 thingType.GetInstances(transaction, Explicit);
 ----
 
-[#_IEnumerable__IAttributeType___TypeDB_Driver_Api_IThingType_GetOwns___ITypeDBTransaction_transaction_]
+[#_IEnumerable_IAttributeType_TypeDB_Driver_Api_IThingType_GetOwns_ITypeDBTransaction_transaction_]
 ==== GetOwns
 
 [source,cs]
@@ -126,7 +126,7 @@ IThingType::GetOwns(ITypeDBTransaction, IValue.ValueType, ICollection`
 
-[#_IEnumerable__IAttributeType___TypeDB_Driver_Api_IThingType_GetOwns___ITypeDBTransaction_transaction__IValue_ValueType_valueType_]
+[#_IEnumerable_IAttributeType_TypeDB_Driver_Api_IThingType_GetOwns_ITypeDBTransaction_transaction_IValue_ValueType_valueType_]
 ==== GetOwns
 
 [source,cs]
@@ -153,7 +153,7 @@ IThingType::GetOwns(ITypeDBTransaction, IValue.ValueType, ICollection`
 
-[#_IEnumerable__IAttributeType___TypeDB_Driver_Api_IThingType_GetOwns___ITypeDBTransaction_transaction__ICollection__Annotation___annotations_]
+[#_IEnumerable_IAttributeType_TypeDB_Driver_Api_IThingType_GetOwns_ITypeDBTransaction_transaction_ICollection_Annotation_annotations_]
 ==== GetOwns
 
 [source,cs]
@@ -180,7 +180,7 @@ IThingType::GetOwns(ITypeDBTransaction, IValue.ValueType, ICollection`
 
-[#_IEnumerable__IAttributeType___TypeDB_Driver_Api_IThingType_GetOwns___ITypeDBTransaction_transaction__IValue_ValueType_valueType__ICollection__Annotation___annotations_]
+[#_IEnumerable_IAttributeType_TypeDB_Driver_Api_IThingType_GetOwns_ITypeDBTransaction_transaction_IValue_ValueType_valueType_ICollection_Annotation_annotations_]
 ==== GetOwns
 
 [source,cs]
@@ -207,7 +207,7 @@ IThingType::GetOwns(ITypeDBTransaction, IValue.ValueType?, ICollection`
 
-[#_IEnumerable__IAttributeType___TypeDB_Driver_Api_IThingType_GetOwns___ITypeDBTransaction_transaction__IConcept_Transitivity_transitivity_]
+[#_IEnumerable_IAttributeType_TypeDB_Driver_Api_IThingType_GetOwns_ITypeDBTransaction_transaction_IConcept_Transitivity_transitivity_]
 ==== GetOwns
 
 [source,cs]
@@ -234,7 +234,7 @@ IThingType::GetOwns(ITypeDBTransaction, IValue.ValueType, ICollection`
 
-[#_IEnumerable__IAttributeType___TypeDB_Driver_Api_IThingType_GetOwns___ITypeDBTransaction_transaction__IValue_ValueType_valueType__IConcept_Transitivity_transitivity_]
+[#_IEnumerable_IAttributeType_TypeDB_Driver_Api_IThingType_GetOwns_ITypeDBTransaction_transaction_IValue_ValueType_valueType_IConcept_Transitivity_transitivity_]
 ==== GetOwns
 
 [source,cs]
@@ -261,7 +261,7 @@ IThingType::GetOwns(ITypeDBTransaction, IValue.ValueType?, ICollection`
 
-[#_IEnumerable__IAttributeType___TypeDB_Driver_Api_IThingType_GetOwns___ITypeDBTransaction_transaction__ICollection__Annotation___annotations__IConcept_Transitivity_transitivity_]
+[#_IEnumerable_IAttributeType_TypeDB_Driver_Api_IThingType_GetOwns_ITypeDBTransaction_transaction_ICollection_Annotation_annotations_IConcept_Transitivity_transitivity_]
 ==== GetOwns
 
 [source,cs]
@@ -288,7 +288,7 @@ IThingType::GetOwns(ITypeDBTransaction, IValue.ValueType, ICollection`
 
-[#_IEnumerable__IAttributeType___TypeDB_Driver_Api_IThingType_GetOwns___ITypeDBTransaction_transaction__IValue_ValueType_valueType__ICollection__Annotation___annotations__IConcept_Transitivity_transitivity_]
+[#_IEnumerable_IAttributeType_TypeDB_Driver_Api_IThingType_GetOwns_ITypeDBTransaction_transaction_IValue_ValueType_valueType_ICollection_Annotation_annotations_IConcept_Transitivity_transitivity_]
 ==== GetOwns
 
 [source,cs]
@@ -325,7 +325,7 @@ thingType.GetOwns(transaction);
 thingType.GetOwns(transaction, valueType, Explicit, new []{NewKey()}));
 ----
 
-[#_Promise__IAttributeType___TypeDB_Driver_Api_IThingType_GetOwnsOverridden___ITypeDBTransaction_transaction__IAttributeType_attributeType_]
+[#_Promise_IAttributeType_TypeDB_Driver_Api_IThingType_GetOwnsOverridden_ITypeDBTransaction_transaction_IAttributeType_attributeType_]
 ==== GetOwnsOverridden
 
 [source,cs]
@@ -359,7 +359,7 @@ a| `attributeType` a| The ``IAttributeType`` that overrides requested ``IAttribu
 thingType.GetOwnsOverridden(transaction, attributeType).Resolve();
 ----
 
-[#_IEnumerable__IRoleType___TypeDB_Driver_Api_IThingType_GetPlays___ITypeDBTransaction_transaction_]
+[#_IEnumerable_IRoleType_TypeDB_Driver_Api_IThingType_GetPlays_ITypeDBTransaction_transaction_]
 ==== GetPlays
 
 [source,cs]
@@ -386,7 +386,7 @@ IThingType::GetPlays(ITypeDBTransaction, IConcept.Transitivity)
 .Returns
 `IEnumerable< IRoleType >`
 
-[#_IEnumerable__IRoleType___TypeDB_Driver_Api_IThingType_GetPlays___ITypeDBTransaction_transaction__IConcept_Transitivity_transitivity_]
+[#_IEnumerable_IRoleType_TypeDB_Driver_Api_IThingType_GetPlays_ITypeDBTransaction_transaction_IConcept_Transitivity_transitivity_]
 ==== GetPlays
 
 [source,cs]
@@ -421,7 +421,7 @@ thingType.GetPlays(transaction).Resolve();
 thingType.GetPlays(transaction, Explicit).Resolve();
 ----
 
-[#_Promise__IRoleType___TypeDB_Driver_Api_IThingType_GetPlaysOverridden___ITypeDBTransaction_transaction__IRoleType_roleType_]
+[#_Promise_IRoleType_TypeDB_Driver_Api_IThingType_GetPlaysOverridden_ITypeDBTransaction_transaction_IRoleType_roleType_]
 ==== GetPlaysOverridden
 
 [source,cs]
@@ -455,7 +455,7 @@ a| `roleType` a| The ``IRoleType`` that overrides an inherited role a| `IRoleTyp
 thingType.GetPlaysOverridden(transaction, roleType).Resolve();
 ----
 
-[#_Promise__string___TypeDB_Driver_Api_IThingType_GetSyntax___ITypeDBTransaction_transaction_]
+[#_Promise_string_TypeDB_Driver_Api_IThingType_GetSyntax_ITypeDBTransaction_transaction_]
 ==== GetSyntax
 
 [source,cs]
@@ -488,7 +488,7 @@ a| `transaction` a| The current transaction a| `ITypeDBTransaction`
 thingType.GetSyntax(transaction).Resolve();
 ----
 
-[#_bool_IConcept__TypeDB_Driver_Api_IThingType_IsThingType___]
+[#_bool_IConcept_TypeDB_Driver_Api_IThingType_IsThingType_]
 ==== IsThingType
 
 [source,cs]
@@ -516,7 +516,7 @@ Implements TypeDB.Driver.Api.IConcept.
 concept.IsThingType();
 ----
 
-[#_VoidPromise_TypeDB_Driver_Api_IThingType_SetAbstract___ITypeDBTransaction_transaction_]
+[#_VoidPromise_TypeDB_Driver_Api_IThingType_SetAbstract_ITypeDBTransaction_transaction_]
 ==== SetAbstract
 
 [source,cs]
@@ -549,7 +549,7 @@ a| `transaction` a| The current transaction a| `ITypeDBTransaction`
 thingType.SetAbstract(transaction).Resolve();
 ----
 
-[#_VoidPromise_TypeDB_Driver_Api_IThingType_SetOwns___ITypeDBTransaction_transaction__IAttributeType_attributeType__IAttributeType_overriddenType__ICollection__Annotation___annotations_]
+[#_VoidPromise_TypeDB_Driver_Api_IThingType_SetOwns_ITypeDBTransaction_transaction_IAttributeType_attributeType_IAttributeType_overriddenType_ICollection_Annotation_annotations_]
 ==== SetOwns
 
 [source,cs]
@@ -586,7 +586,7 @@ thingType.SetOwns(transaction, attributeType).Resolve();
 thingType.SetOwns(transaction, attributeType, overriddenType, new []{NewKey()}).Resolve();
 ----
 
-[#_VoidPromise_TypeDB_Driver_Api_IThingType_SetOwns___ITypeDBTransaction_transaction__IAttributeType_attributeType__IAttributeType_overriddenType_]
+[#_VoidPromise_TypeDB_Driver_Api_IThingType_SetOwns_ITypeDBTransaction_transaction_IAttributeType_attributeType_IAttributeType_overriddenType_]
 ==== SetOwns
 
 [source,cs]
@@ -613,7 +613,7 @@ IThingType::SetOwns(ITypeDBTransaction, IAttributeType, IAttributeType, Set)
 .Returns
 `VoidPromise`
 
-[#_VoidPromise_TypeDB_Driver_Api_IThingType_SetOwns___ITypeDBTransaction_transaction__IAttributeType_attributeType__ICollection__Annotation___annotations_]
+[#_VoidPromise_TypeDB_Driver_Api_IThingType_SetOwns_ITypeDBTransaction_transaction_IAttributeType_attributeType_ICollection_Annotation_annotations_]
 ==== SetOwns
 
 [source,cs]
@@ -640,7 +640,7 @@ IThingType::SetOwns(ITypeDBTransaction, IAttributeType, IAttributeType, Set)
 .Returns
 `VoidPromise`
 
-[#_VoidPromise_TypeDB_Driver_Api_IThingType_SetOwns___ITypeDBTransaction_transaction__IAttributeType_attributeType_]
+[#_VoidPromise_TypeDB_Driver_Api_IThingType_SetOwns_ITypeDBTransaction_transaction_IAttributeType_attributeType_]
 ==== SetOwns
 
 [source,cs]
@@ -667,7 +667,7 @@ IThingType::SetOwns(ITypeDBTransaction, IAttributeType, IAttributeType, Set)
 .Returns
 `VoidPromise`
 
-[#_VoidPromise_TypeDB_Driver_Api_IThingType_SetPlays___ITypeDBTransaction_transaction__IRoleType_roleType_]
+[#_VoidPromise_TypeDB_Driver_Api_IThingType_SetPlays_ITypeDBTransaction_transaction_IRoleType_roleType_]
 ==== SetPlays
 
 [source,cs]
@@ -694,7 +694,7 @@ IThingType::SetPlays(ITypeDBTransaction, IRoleType, IRoleType)
 .Returns
 `VoidPromise`
 
-[#_VoidPromise_TypeDB_Driver_Api_IThingType_SetPlays___ITypeDBTransaction_transaction__IRoleType_roleType__IRoleType_overriddenType_]
+[#_VoidPromise_TypeDB_Driver_Api_IThingType_SetPlays_ITypeDBTransaction_transaction_IRoleType_roleType_IRoleType_overriddenType_]
 ==== SetPlays
 
 [source,cs]
@@ -730,7 +730,7 @@ thingType.SetPlays(transaction, roleType).Resolve();
 thingType.SetPlays(transaction, roleType, overriddenType).Resolve();
 ----
 
-[#_VoidPromise_TypeDB_Driver_Api_IThingType_UnsetAbstract___ITypeDBTransaction_transaction_]
+[#_VoidPromise_TypeDB_Driver_Api_IThingType_UnsetAbstract_ITypeDBTransaction_transaction_]
 ==== UnsetAbstract
 
 [source,cs]
@@ -763,7 +763,7 @@ a| `transaction` a| The current transaction a| `ITypeDBTransaction`
 thingType.UnsetAbstract(transaction).Resolve();
 ----
 
-[#_VoidPromise_TypeDB_Driver_Api_IThingType_UnsetOwns___ITypeDBTransaction_transaction__IAttributeType_attributeType_]
+[#_VoidPromise_TypeDB_Driver_Api_IThingType_UnsetOwns_ITypeDBTransaction_transaction_IAttributeType_attributeType_]
 ==== UnsetOwns
 
 [source,cs]
@@ -797,7 +797,7 @@ a| `attributeType` a| The ``IAttributeType`` to not be owned by the type. a| `IA
 thingType.UnsetOwns(transaction, attributeType).Resolve();
 ----
 
-[#_VoidPromise_TypeDB_Driver_Api_IThingType_UnsetPlays___ITypeDBTransaction_transaction__IRoleType_roleType_]
+[#_VoidPromise_TypeDB_Driver_Api_IThingType_UnsetPlays_ITypeDBTransaction_transaction_IRoleType_roleType_]
 ==== UnsetPlays
 
 [source,cs]
diff --git a/csharp/docs/schema/IType.adoc b/docs/modules/ROOT/partials/csharp/schema/IType.adoc
similarity index 84%
rename from csharp/docs/schema/IType.adoc
rename to docs/modules/ROOT/partials/csharp/schema/IType.adoc
index 1650ec69ab..c4c3726895 100644
--- a/csharp/docs/schema/IType.adoc
+++ b/docs/modules/ROOT/partials/csharp/schema/IType.adoc
@@ -8,7 +8,7 @@
 * `TypeDB.Driver.Api.IConcept`
 
 // tag::methods[]
-[#_IType_IConcept__TypeDB_Driver_Api_IType_AsType___]
+[#_IType_IConcept_TypeDB_Driver_Api_IType_AsType_]
 ==== AsType
 
 [source,cs]
@@ -36,7 +36,7 @@ Implements TypeDB.Driver.Api.IConcept.
 concept.AsType();
 ----
 
-[#_VoidPromise_TypeDB_Driver_Api_IType_Delete___ITypeDBTransaction_transaction_]
+[#_VoidPromise_TypeDB_Driver_Api_IType_Delete_ITypeDBTransaction_transaction_]
 ==== Delete
 
 [source,cs]
@@ -69,7 +69,7 @@ a| `transaction` a| The current transaction a| `ITypeDBTransaction`
 type.Delete(transaction).Resolve();
 ----
 
-[#_IEnumerable__IType___TypeDB_Driver_Api_IType_GetSubtypes___ITypeDBTransaction_transaction_]
+[#_IEnumerable_IType_TypeDB_Driver_Api_IType_GetSubtypes_ITypeDBTransaction_transaction_]
 ==== GetSubtypes
 
 [source,cs]
@@ -96,7 +96,7 @@ IType::GetSubtypes(ITypeDBTransaction, IConcept.Transitivity)
 .Returns
 `IEnumerable< IType >`
 
-[#_IEnumerable__IType___TypeDB_Driver_Api_IType_GetSubtypes___ITypeDBTransaction_transaction__IConcept_Transitivity_transitivity_]
+[#_IEnumerable_IType_TypeDB_Driver_Api_IType_GetSubtypes_ITypeDBTransaction_transaction_IConcept_Transitivity_transitivity_]
 ==== GetSubtypes
 
 [source,cs]
@@ -131,7 +131,7 @@ type.GetSubtypes(transaction);
 type.GetSubtypes(transaction, Explicit);
 ----
 
-[#_Promise__IType___TypeDB_Driver_Api_IType_GetSupertype___ITypeDBTransaction_transaction_]
+[#_Promise_IType_TypeDB_Driver_Api_IType_GetSupertype_ITypeDBTransaction_transaction_]
 ==== GetSupertype
 
 [source,cs]
@@ -164,7 +164,7 @@ a| `transaction` a| The current transaction a| `ITypeDBTransaction`
 type.GetSupertype(transaction).Resolve();
 ----
 
-[#_IEnumerable__IType___TypeDB_Driver_Api_IType_GetSupertypes___ITypeDBTransaction_transaction_]
+[#_IEnumerable_IType_TypeDB_Driver_Api_IType_GetSupertypes_ITypeDBTransaction_transaction_]
 ==== GetSupertypes
 
 [source,cs]
@@ -197,7 +197,7 @@ a| `transaction` a| The current transaction a| `ITypeDBTransaction`
 type.GetSupertypes(transaction);
 ----
 
-[#_bool_TypeDB_Driver_Api_IType_IsAbstract___]
+[#_bool_TypeDB_Driver_Api_IType_IsAbstract_]
 ==== IsAbstract
 
 [source,cs]
@@ -221,7 +221,7 @@ Checks if the type is prevented from having data instances (i.e., ``abstract``).
 type.IsAbstract();
 ----
 
-[#_Promise__bool___TypeDB_Driver_Api_IType_IsDeleted___ITypeDBTransaction_transaction_]
+[#_Promise_bool_TypeDB_Driver_Api_IType_IsDeleted_ITypeDBTransaction_transaction_]
 ==== IsDeleted
 
 [source,cs]
@@ -254,7 +254,7 @@ a| `transaction` a| The current transaction a| `ITypeDBTransaction`
 type.IsDeleted(transaction).Resolve();
 ----
 
-[#_bool_TypeDB_Driver_Api_IType_IsRoot___]
+[#_bool_TypeDB_Driver_Api_IType_IsRoot_]
 ==== IsRoot
 
 [source,cs]
@@ -278,7 +278,7 @@ Checks if the type is a root type.
 type.IsRoot();
 ----
 
-[#_bool_IConcept__TypeDB_Driver_Api_IType_IsType___]
+[#_bool_IConcept_TypeDB_Driver_Api_IType_IsType_]
 ==== IsType
 
 [source,cs]
@@ -330,7 +330,7 @@ The unique label of the type.
 type.Label;
 ----
 
-[#_VoidPromise_TypeDB_Driver_Api_IType_SetLabel___ITypeDBTransaction_transaction__string_label_]
+[#_VoidPromise_TypeDB_Driver_Api_IType_SetLabel_ITypeDBTransaction_transaction_string_label_]
 ==== SetLabel
 
 [source,cs]
diff --git a/csharp/docs/schema/Label.adoc b/docs/modules/ROOT/partials/csharp/schema/Label.adoc
similarity index 91%
rename from csharp/docs/schema/Label.adoc
rename to docs/modules/ROOT/partials/csharp/schema/Label.adoc
index 0cdb412625..a34f0afc25 100644
--- a/csharp/docs/schema/Label.adoc
+++ b/docs/modules/ROOT/partials/csharp/schema/Label.adoc
@@ -36,7 +36,7 @@ label.Scope;
 // end::properties[]
 
 // tag::methods[]
-[#_override_bool_TypeDB_Driver_Common_Label_Equals___object_obj_]
+[#_override_bool_TypeDB_Driver_Common_Label_Equals_object_obj_]
 ==== Equals
 
 [source,cs]
@@ -69,7 +69,7 @@ a| `obj` a| Object to compare with a| `object?`
 label.Equals(obj);
 ----
 
-[#_TypeDB_Driver_Common_Label_Label___string_scope__string_name_]
+[#_TypeDB_Driver_Common_Label_Label_string_scope_string_name_]
 ==== Label
 
 [source,cs]
@@ -103,7 +103,7 @@ a| `name` a| Label name a| `string`
 new Label("relation", "role");
 ----
 
-[#_TypeDB_Driver_Common_Label_Label___string_name_]
+[#_TypeDB_Driver_Common_Label_Label_string_name_]
 ==== Label
 
 [source,cs]
@@ -160,7 +160,7 @@ Returns the string representation of the scoped name.
 label.ScopedName;
 ----
 
-[#_override_string_TypeDB_Driver_Common_Label_ToString___]
+[#_override_string_TypeDB_Driver_Common_Label_ToString_]
 ==== ToString
 
 [source,cs]
diff --git a/csharp/docs/session/ITypeDBSession.adoc b/docs/modules/ROOT/partials/csharp/session/ITypeDBSession.adoc
similarity index 91%
rename from csharp/docs/session/ITypeDBSession.adoc
rename to docs/modules/ROOT/partials/csharp/session/ITypeDBSession.adoc
index 9623db5e44..e0999681c5 100644
--- a/csharp/docs/session/ITypeDBSession.adoc
+++ b/docs/modules/ROOT/partials/csharp/session/ITypeDBSession.adoc
@@ -4,7 +4,7 @@
 *Package*: `TypeDB.Driver.Api`
 
 // tag::methods[]
-[#_void_TypeDB_Driver_Api_ITypeDBSession_Close___]
+[#_void_TypeDB_Driver_Api_ITypeDBSession_Close_]
 ==== Close
 
 [source,cs]
@@ -52,7 +52,7 @@ Returns the name of the database of the session.
 session.DatabaseName;
 ----
 
-[#_bool_TypeDB_Driver_Api_ITypeDBSession_IsOpen___]
+[#_bool_TypeDB_Driver_Api_ITypeDBSession_IsOpen_]
 ==== IsOpen
 
 [source,cs]
@@ -76,7 +76,7 @@ Checks whether this session is open.
 session.IsOpen();
 ----
 
-[#_void_TypeDB_Driver_Api_ITypeDBSession_OnClose___Action_function_]
+[#_void_TypeDB_Driver_Api_ITypeDBSession_OnClose_Action_function_]
 ==== OnClose
 
 [source,cs]
@@ -109,7 +109,7 @@ a| `function` a| The callback function. a| `Action`
 session.OnClose(function);
 ----
 
-[#_void_TypeDB_Driver_Api_ITypeDBSession_OnReopen___Action_function_]
+[#_void_TypeDB_Driver_Api_ITypeDBSession_OnReopen_Action_function_]
 ==== OnReopen
 
 [source,cs]
@@ -166,7 +166,7 @@ Gets the options for the session.
 session.Options;
 ----
 
-[#_ITypeDBTransaction_TypeDB_Driver_Api_ITypeDBSession_Transaction___TransactionType_type_]
+[#_ITypeDBTransaction_TypeDB_Driver_Api_ITypeDBSession_Transaction_TransactionType_type_]
 ==== Transaction
 
 [source,cs]
@@ -193,7 +193,7 @@ ITypeDBSession::Transaction(TransactionType, TypeDBOptions)
 .Returns
 `ITypeDBTransaction`
 
-[#_ITypeDBTransaction_TypeDB_Driver_Api_ITypeDBSession_Transaction___TransactionType_type__TypeDBOptions_options_]
+[#_ITypeDBTransaction_TypeDB_Driver_Api_ITypeDBSession_Transaction_TransactionType_type_TypeDBOptions_options_]
 ==== Transaction
 
 [source,cs]
diff --git a/csharp/docs/session/SessionType.adoc b/docs/modules/ROOT/partials/csharp/session/SessionType.adoc
similarity index 100%
rename from csharp/docs/session/SessionType.adoc
rename to docs/modules/ROOT/partials/csharp/session/SessionType.adoc
diff --git a/csharp/docs/session/TypeDBOptions.adoc b/docs/modules/ROOT/partials/csharp/session/TypeDBOptions.adoc
similarity index 90%
rename from csharp/docs/session/TypeDBOptions.adoc
rename to docs/modules/ROOT/partials/csharp/session/TypeDBOptions.adoc
index 0e217884e8..e2f4c3e88b 100644
--- a/csharp/docs/session/TypeDBOptions.adoc
+++ b/docs/modules/ROOT/partials/csharp/session/TypeDBOptions.adoc
@@ -8,7 +8,7 @@
 TypeDB session and transaction options. ``TypeDBOptions`` object can be used to override the default server behaviour.
 
 // tag::methods[]
-[#_bool_TypeDB_Driver_Api_TypeDBOptions_Explain___]
+[#_bool_TypeDB_Driver_Api_TypeDBOptions_Explain_]
 ==== Explain
 
 [source,cs]
@@ -32,7 +32,7 @@ Returns the value set for the explanation in this ``TypeDBOptions`` object. If s
 options.Explain();
 ----
 
-[#_TypeDBOptions_TypeDB_Driver_Api_TypeDBOptions_Explain___bool_explain_]
+[#_TypeDBOptions_TypeDB_Driver_Api_TypeDBOptions_Explain_bool_explain_]
 ==== Explain
 
 [source,cs]
@@ -65,7 +65,7 @@ a| `explain` a| Explicitly enable or disable explanations a| `bool`
 options.Explain(explain);
 ----
 
-[#_bool_TypeDB_Driver_Api_TypeDBOptions_Infer___]
+[#_bool_TypeDB_Driver_Api_TypeDBOptions_Infer_]
 ==== Infer
 
 [source,cs]
@@ -89,7 +89,7 @@ Returns the value set for the inference in this ``TypeDBOptions`` object.
 options.Infer();
 ----
 
-[#_TypeDBOptions_TypeDB_Driver_Api_TypeDBOptions_Infer___bool_infer_]
+[#_TypeDBOptions_TypeDB_Driver_Api_TypeDBOptions_Infer_bool_infer_]
 ==== Infer
 
 [source,cs]
@@ -122,7 +122,7 @@ a| `infer` a| Explicitly enable or disable inference a| `bool`
 options.Infer(infer);
 ----
 
-[#_bool_TypeDB_Driver_Api_TypeDBOptions_Parallel___]
+[#_bool_TypeDB_Driver_Api_TypeDBOptions_Parallel_]
 ==== Parallel
 
 [source,cs]
@@ -146,7 +146,7 @@ Returns the value set for the parallel execution in this ``TypeDBOptions`` objec
 options.Parallel();
 ----
 
-[#_TypeDBOptions_TypeDB_Driver_Api_TypeDBOptions_Parallel___bool_parallel_]
+[#_TypeDBOptions_TypeDB_Driver_Api_TypeDBOptions_Parallel_bool_parallel_]
 ==== Parallel
 
 [source,cs]
@@ -179,7 +179,7 @@ a| `parallel` a| Explicitly enable or disable parallel execution a| `bool`
 options.Parallel(parallel);
 ----
 
-[#_bool_TypeDB_Driver_Api_TypeDBOptions_Prefetch___]
+[#_bool_TypeDB_Driver_Api_TypeDBOptions_Prefetch_]
 ==== Prefetch
 
 [source,cs]
@@ -203,7 +203,7 @@ Returns the value set for the prefetching in this ``TypeDBOptions`` object. If s
 options.Prefetch();
 ----
 
-[#_TypeDBOptions_TypeDB_Driver_Api_TypeDBOptions_Prefetch___bool_prefetch_]
+[#_TypeDBOptions_TypeDB_Driver_Api_TypeDBOptions_Prefetch_bool_prefetch_]
 ==== Prefetch
 
 [source,cs]
@@ -236,7 +236,7 @@ a| `prefetch` a| Explicitly enable or disable prefetching a| `bool`
 options.Prefetch(prefetch);
 ----
 
-[#_int_TypeDB_Driver_Api_TypeDBOptions_PrefetchSize___]
+[#_int_TypeDB_Driver_Api_TypeDBOptions_PrefetchSize_]
 ==== PrefetchSize
 
 [source,cs]
@@ -260,7 +260,7 @@ Returns the value set for the prefetch size in this ``TypeDBOptions`` object. If
 options.PrefetchSize();
 ----
 
-[#_TypeDBOptions_TypeDB_Driver_Api_TypeDBOptions_PrefetchSize___int_prefetchSize_]
+[#_TypeDBOptions_TypeDB_Driver_Api_TypeDBOptions_PrefetchSize_int_prefetchSize_]
 ==== PrefetchSize
 
 [source,cs]
@@ -293,7 +293,7 @@ a| `prefetchSize` a| Number of answers that the server should send before the dr
 options.PrefetchSize(prefetchSize);
 ----
 
-[#_bool_TypeDB_Driver_Api_TypeDBOptions_ReadAnyReplica___]
+[#_bool_TypeDB_Driver_Api_TypeDBOptions_ReadAnyReplica_]
 ==== ReadAnyReplica
 
 [source,cs]
@@ -317,7 +317,7 @@ Returns the value set for reading data from any replica in this ``TypeDBOptions`
 options.ReadAnyReplica();
 ----
 
-[#_TypeDBOptions_TypeDB_Driver_Api_TypeDBOptions_ReadAnyReplica___bool_readAnyReplica_]
+[#_TypeDBOptions_TypeDB_Driver_Api_TypeDBOptions_ReadAnyReplica_bool_readAnyReplica_]
 ==== ReadAnyReplica
 
 [source,cs]
@@ -350,7 +350,7 @@ a| `readAnyReplica` a| Explicitly enable or disable reading data from any replic
 options.ReadAnyReplica(readAnyReplica);
 ----
 
-[#_int_TypeDB_Driver_Api_TypeDBOptions_SchemaLockAcquireTimeoutMillis___]
+[#_int_TypeDB_Driver_Api_TypeDBOptions_SchemaLockAcquireTimeoutMillis_]
 ==== SchemaLockAcquireTimeoutMillis
 
 [source,cs]
@@ -374,7 +374,7 @@ Returns the value set for the schema lock acquire timeout in this ``TypeDBOption
 options.SchemaLockAcquireTimeoutMillis();
 ----
 
-[#_TypeDBOptions_TypeDB_Driver_Api_TypeDBOptions_SchemaLockAcquireTimeoutMillis___int_schemaLockAcquireTimeoutMillis_]
+[#_TypeDBOptions_TypeDB_Driver_Api_TypeDBOptions_SchemaLockAcquireTimeoutMillis_int_schemaLockAcquireTimeoutMillis_]
 ==== SchemaLockAcquireTimeoutMillis
 
 [source,cs]
@@ -407,7 +407,7 @@ a| `schemaLockAcquireTimeoutMillis` a| How long the driver should wait if openin
 options.SchemaLockAcquireTimeoutMillis(schemaLockAcquireTimeoutMillis);
 ----
 
-[#_int_TypeDB_Driver_Api_TypeDBOptions_SessionIdleTimeoutMillis___]
+[#_int_TypeDB_Driver_Api_TypeDBOptions_SessionIdleTimeoutMillis_]
 ==== SessionIdleTimeoutMillis
 
 [source,cs]
@@ -431,7 +431,7 @@ Returns the value set for the session idle timeout in this ``TypeDBOptions`` obj
 options.SessionIdleTimeoutMillis();
 ----
 
-[#_TypeDBOptions_TypeDB_Driver_Api_TypeDBOptions_SessionIdleTimeoutMillis___int_sessionIdleTimeoutMillis_]
+[#_TypeDBOptions_TypeDB_Driver_Api_TypeDBOptions_SessionIdleTimeoutMillis_int_sessionIdleTimeoutMillis_]
 ==== SessionIdleTimeoutMillis
 
 [source,cs]
@@ -464,7 +464,7 @@ a| `sessionIdleTimeoutMillis` a| timeout that allows the server to close session
 options.SessionIdleTimeoutMillis(sessionIdleTimeoutMillis);
 ----
 
-[#_bool_TypeDB_Driver_Api_TypeDBOptions_TraceInference___]
+[#_bool_TypeDB_Driver_Api_TypeDBOptions_TraceInference_]
 ==== TraceInference
 
 [source,cs]
@@ -488,7 +488,7 @@ Returns the value set for reasoning tracing in this ``TypeDBOptions`` object. If
 options.TraceInference();
 ----
 
-[#_TypeDBOptions_TypeDB_Driver_Api_TypeDBOptions_TraceInference___bool_traceInference_]
+[#_TypeDBOptions_TypeDB_Driver_Api_TypeDBOptions_TraceInference_bool_traceInference_]
 ==== TraceInference
 
 [source,cs]
@@ -521,7 +521,7 @@ a| `traceInference` a| Explicitly enable or disable reasoning tracing a| `bool`
 options.TraceInference(traceInference);
 ----
 
-[#_int_TypeDB_Driver_Api_TypeDBOptions_TransactionTimeoutMillis___]
+[#_int_TypeDB_Driver_Api_TypeDBOptions_TransactionTimeoutMillis_]
 ==== TransactionTimeoutMillis
 
 [source,cs]
@@ -545,7 +545,7 @@ Returns the value set for the transaction timeout in this ``TypeDBOptions`` obje
 options.TransactionTimeoutMillis();
 ----
 
-[#_TypeDBOptions_TypeDB_Driver_Api_TypeDBOptions_TransactionTimeoutMillis___int_transactionTimeoutMillis_]
+[#_TypeDBOptions_TypeDB_Driver_Api_TypeDBOptions_TransactionTimeoutMillis_int_transactionTimeoutMillis_]
 ==== TransactionTimeoutMillis
 
 [source,cs]
@@ -578,7 +578,7 @@ a| `transactionTimeoutMillis` a| Timeout for killing transactions automatically.
 options.TransactionTimeoutMillis(transactionTimeoutMillis);
 ----
 
-[#_TypeDB_Driver_Api_TypeDBOptions_TypeDBOptions___]
+[#_TypeDB_Driver_Api_TypeDBOptions_TypeDBOptions_]
 ==== TypeDBOptions
 
 [source,cs]
diff --git a/csharp/docs/transaction/IQueryManager.adoc b/docs/modules/ROOT/partials/csharp/transaction/IQueryManager.adoc
similarity index 81%
rename from csharp/docs/transaction/IQueryManager.adoc
rename to docs/modules/ROOT/partials/csharp/transaction/IQueryManager.adoc
index 8034ab8eaa..4d6e30eebf 100644
--- a/csharp/docs/transaction/IQueryManager.adoc
+++ b/docs/modules/ROOT/partials/csharp/transaction/IQueryManager.adoc
@@ -8,7 +8,7 @@
 Provides methods for executing TypeQL queries in the transaction.
 
 // tag::methods[]
-[#_VoidPromise_TypeDB_Driver_Api_IQueryManager_Define___string_query_]
+[#_VoidPromise_TypeDB_Driver_Api_IQueryManager_Define_string_query_]
 ==== Define
 
 [source,cs]
@@ -35,7 +35,7 @@ IQueryManager::Define(string, TypeDBOptions)
 .Returns
 `VoidPromise`
 
-[#_VoidPromise_TypeDB_Driver_Api_IQueryManager_Define___string_query__TypeDBOptions_options_]
+[#_VoidPromise_TypeDB_Driver_Api_IQueryManager_Define_string_query_TypeDBOptions_options_]
 ==== Define
 
 [source,cs]
@@ -69,7 +69,7 @@ a| `options` a| Specify query options a| `TypeDBOptions`
 transaction.Query.Define(query, options).Resolve()
 ----
 
-[#_VoidPromise_TypeDB_Driver_Api_IQueryManager_Delete___string_query_]
+[#_VoidPromise_TypeDB_Driver_Api_IQueryManager_Delete_string_query_]
 ==== Delete
 
 [source,cs]
@@ -96,7 +96,7 @@ IQueryManager::Delete(string, TypeDBOptions)
 .Returns
 `VoidPromise`
 
-[#_VoidPromise_TypeDB_Driver_Api_IQueryManager_Delete___string_query__TypeDBOptions_options_]
+[#_VoidPromise_TypeDB_Driver_Api_IQueryManager_Delete_string_query_TypeDBOptions_options_]
 ==== Delete
 
 [source,cs]
@@ -130,7 +130,7 @@ a| `options` a| Specify query options a| `TypeDBOptions`
 transaction.Query.Delete(query, options).Resolve()
 ----
 
-[#_IEnumerable__IExplanation___TypeDB_Driver_Api_IQueryManager_Explain___IConceptMap_IExplainable_explainable_]
+[#_IEnumerable_IExplanation_TypeDB_Driver_Api_IQueryManager_Explain_IConceptMap_IExplainable_explainable_]
 ==== Explain
 
 [source,cs]
@@ -157,7 +157,7 @@ IQueryManager::Explain(IConceptMap.IExplainable, TypeDBOptions)
 .Returns
 `IEnumerable< IExplanation > IExplainable`
 
-[#_IEnumerable__IExplanation___TypeDB_Driver_Api_IQueryManager_Explain___IConceptMap_IExplainable_explainable__TypeDBOptions_options_]
+[#_IEnumerable_IExplanation_TypeDB_Driver_Api_IQueryManager_Explain_IConceptMap_IExplainable_explainable_TypeDBOptions_options_]
 ==== Explain
 
 [source,cs]
@@ -191,7 +191,7 @@ a| `options` a| Specify query options a| `TypeDBOptions`
 transaction.Query.Explain(explainable, options)
 ----
 
-[#_IEnumerable__JObject___TypeDB_Driver_Api_IQueryManager_Fetch___string_query_]
+[#_IEnumerable_JObject_TypeDB_Driver_Api_IQueryManager_Fetch_string_query_]
 ==== Fetch
 
 [source,cs]
@@ -218,7 +218,7 @@ IQueryManager::Fetch(string, TypeDBOptions)
 .Returns
 `IEnumerable< JObject >`
 
-[#_IEnumerable__JObject___TypeDB_Driver_Api_IQueryManager_Fetch___string_query__TypeDBOptions_options_]
+[#_IEnumerable_JObject_TypeDB_Driver_Api_IQueryManager_Fetch_string_query_TypeDBOptions_options_]
 ==== Fetch
 
 [source,cs]
@@ -252,7 +252,7 @@ a| `options` a| Specify query options a| `TypeDBOptions`
 transaction.Query.Fetch(query, options)
 ----
 
-[#_IEnumerable__IConceptMap___TypeDB_Driver_Api_IQueryManager_Get___string_query_]
+[#_IEnumerable_IConceptMap_TypeDB_Driver_Api_IQueryManager_Get_string_query_]
 ==== Get
 
 [source,cs]
@@ -279,7 +279,7 @@ IQueryManager::Get(string, TypeDBOptions)
 .Returns
 `IEnumerable< IConceptMap >`
 
-[#_IEnumerable__IConceptMap___TypeDB_Driver_Api_IQueryManager_Get___string_query__TypeDBOptions_options_]
+[#_IEnumerable_IConceptMap_TypeDB_Driver_Api_IQueryManager_Get_string_query_TypeDBOptions_options_]
 ==== Get
 
 [source,cs]
@@ -313,7 +313,7 @@ a| `options` a| Specify query options a| `TypeDBOptions`
 transaction.Query.Get(query, options);
 ----
 
-[#_Promise__IValue___TypeDB_Driver_Api_IQueryManager_GetAggregate___string_query_]
+[#_Promise_IValue_TypeDB_Driver_Api_IQueryManager_GetAggregate_string_query_]
 ==== GetAggregate
 
 [source,cs]
@@ -340,7 +340,7 @@ IQueryManager::GetAggregate(string, TypeDBOptions)
 .Returns
 `Promise< IValue >`
 
-[#_Promise__IValue___TypeDB_Driver_Api_IQueryManager_GetAggregate___string_query__TypeDBOptions_options_]
+[#_Promise_IValue_TypeDB_Driver_Api_IQueryManager_GetAggregate_string_query_TypeDBOptions_options_]
 ==== GetAggregate
 
 [source,cs]
@@ -374,7 +374,7 @@ a| `options` a| Specify query options a| `TypeDBOptions`
 transaction.Query.GetAggregate(query, options).Resolve()
 ----
 
-[#_IEnumerable__IConceptMapGroup___TypeDB_Driver_Api_IQueryManager_GetGroup___string_query_]
+[#_IEnumerable_IConceptMapGroup_TypeDB_Driver_Api_IQueryManager_GetGroup_string_query_]
 ==== GetGroup
 
 [source,cs]
@@ -401,7 +401,7 @@ IQueryManager::GetGroup(string, TypeDBOptions)
 .Returns
 `IEnumerable< IConceptMapGroup >`
 
-[#_IEnumerable__IConceptMapGroup___TypeDB_Driver_Api_IQueryManager_GetGroup___string_query__TypeDBOptions_options_]
+[#_IEnumerable_IConceptMapGroup_TypeDB_Driver_Api_IQueryManager_GetGroup_string_query_TypeDBOptions_options_]
 ==== GetGroup
 
 [source,cs]
@@ -435,7 +435,7 @@ a| `options` a| Specify query options a| `TypeDBOptions`
 transaction.Query.GetGroup(query, options)
 ----
 
-[#_IEnumerable__IValueGroup___TypeDB_Driver_Api_IQueryManager_GetGroupAggregate___string_query_]
+[#_IEnumerable_IValueGroup_TypeDB_Driver_Api_IQueryManager_GetGroupAggregate_string_query_]
 ==== GetGroupAggregate
 
 [source,cs]
@@ -462,7 +462,7 @@ IQueryManager::GetGroupAggregate(string, TypeDBOptions)
 .Returns
 `IEnumerable< IValueGroup >`
 
-[#_IEnumerable__IValueGroup___TypeDB_Driver_Api_IQueryManager_GetGroupAggregate___string_query__TypeDBOptions_options_]
+[#_IEnumerable_IValueGroup_TypeDB_Driver_Api_IQueryManager_GetGroupAggregate_string_query_TypeDBOptions_options_]
 ==== GetGroupAggregate
 
 [source,cs]
@@ -496,7 +496,7 @@ a| `options` a| Specify query options a| `TypeDBOptions`
 transaction.Query.GetGroupAggregate(query, options)
 ----
 
-[#_IEnumerable__IConceptMap___TypeDB_Driver_Api_IQueryManager_Insert___string_query_]
+[#_IEnumerable_IConceptMap_TypeDB_Driver_Api_IQueryManager_Insert_string_query_]
 ==== Insert
 
 [source,cs]
@@ -523,7 +523,7 @@ IQueryManager::Insert(string, TypeDBOptions)
 .Returns
 `IEnumerable< IConceptMap >`
 
-[#_IEnumerable__IConceptMap___TypeDB_Driver_Api_IQueryManager_Insert___string_query__TypeDBOptions_options_]
+[#_IEnumerable_IConceptMap_TypeDB_Driver_Api_IQueryManager_Insert_string_query_TypeDBOptions_options_]
 ==== Insert
 
 [source,cs]
@@ -557,7 +557,7 @@ a| `options` a| Specify query options a| `TypeDBOptions`
 transaction.Query.Insert(query, options)
 ----
 
-[#_VoidPromise_TypeDB_Driver_Api_IQueryManager_Undefine___string_query_]
+[#_VoidPromise_TypeDB_Driver_Api_IQueryManager_Undefine_string_query_]
 ==== Undefine
 
 [source,cs]
@@ -584,7 +584,7 @@ IQueryManager::Undefine(string, TypeDBOptions)
 .Returns
 `VoidPromise`
 
-[#_VoidPromise_TypeDB_Driver_Api_IQueryManager_Undefine___string_query__TypeDBOptions_options_]
+[#_VoidPromise_TypeDB_Driver_Api_IQueryManager_Undefine_string_query_TypeDBOptions_options_]
 ==== Undefine
 
 [source,cs]
@@ -618,7 +618,7 @@ a| `options` a| Specify query options a| `TypeDBOptions`
 transaction.Query.Undefine(query, options).Resolve()
 ----
 
-[#_IEnumerable__IConceptMap___TypeDB_Driver_Api_IQueryManager_Update___string_query_]
+[#_IEnumerable_IConceptMap_TypeDB_Driver_Api_IQueryManager_Update_string_query_]
 ==== Update
 
 [source,cs]
@@ -645,7 +645,7 @@ IQueryManager::Update(string, TypeDBOptions)
 .Returns
 `IEnumerable< IConceptMap >`
 
-[#_IEnumerable__IConceptMap___TypeDB_Driver_Api_IQueryManager_Update___string_query__TypeDBOptions_options_]
+[#_IEnumerable_IConceptMap_TypeDB_Driver_Api_IQueryManager_Update_string_query_TypeDBOptions_options_]
 ==== Update
 
 [source,cs]
diff --git a/csharp/docs/transaction/ITypeDBTransaction.adoc b/docs/modules/ROOT/partials/csharp/transaction/ITypeDBTransaction.adoc
similarity index 91%
rename from csharp/docs/transaction/ITypeDBTransaction.adoc
rename to docs/modules/ROOT/partials/csharp/transaction/ITypeDBTransaction.adoc
index 4b16ef727a..e8db0f550b 100644
--- a/csharp/docs/transaction/ITypeDBTransaction.adoc
+++ b/docs/modules/ROOT/partials/csharp/transaction/ITypeDBTransaction.adoc
@@ -4,7 +4,7 @@
 *Package*: `TypeDB.Driver.Api`
 
 // tag::methods[]
-[#_void_TypeDB_Driver_Api_ITypeDBTransaction_Close___]
+[#_void_TypeDB_Driver_Api_ITypeDBTransaction_Close_]
 ==== Close
 
 [source,cs]
@@ -28,7 +28,7 @@ Closes the transaction.
 transaction.Close();
 ----
 
-[#_void_TypeDB_Driver_Api_ITypeDBTransaction_Commit___]
+[#_void_TypeDB_Driver_Api_ITypeDBTransaction_Commit_]
 ==== Commit
 
 [source,cs]
@@ -76,7 +76,7 @@ The ``ConceptManager`` for this transaction, providing access to all Concept API
 transaction.Concepts;
 ----
 
-[#_bool_TypeDB_Driver_Api_ITypeDBTransaction_IsOpen___]
+[#_bool_TypeDB_Driver_Api_ITypeDBTransaction_IsOpen_]
 ==== IsOpen
 
 [source,cs]
@@ -124,7 +124,7 @@ The ``LogicManager`` for this Transaction, providing access to all Concept API -
 transaction.Logic;
 ----
 
-[#_void_TypeDB_Driver_Api_ITypeDBTransaction_OnClose___Action__Exception___function_]
+[#_void_TypeDB_Driver_Api_ITypeDBTransaction_OnClose_Action_Exception_function_]
 ==== OnClose
 
 [source,cs]
@@ -205,7 +205,7 @@ The````QueryManager```` for this Transaction, from which any TypeQL query can be
 transaction.Query;
 ----
 
-[#_void_TypeDB_Driver_Api_ITypeDBTransaction_Rollback___]
+[#_void_TypeDB_Driver_Api_ITypeDBTransaction_Rollback_]
 ==== Rollback
 
 [source,cs]
diff --git a/csharp/docs/transaction/TransactionType.adoc b/docs/modules/ROOT/partials/csharp/transaction/TransactionType.adoc
similarity index 100%
rename from csharp/docs/transaction/TransactionType.adoc
rename to docs/modules/ROOT/partials/csharp/transaction/TransactionType.adoc
diff --git a/java/docs/answer/ConceptMap.Explainable.adoc b/docs/modules/ROOT/partials/java/answer/ConceptMap.Explainable.adoc
similarity index 90%
rename from java/docs/answer/ConceptMap.Explainable.adoc
rename to docs/modules/ROOT/partials/java/answer/ConceptMap.Explainable.adoc
index 83f00b249d..111114a15a 100644
--- a/java/docs/answer/ConceptMap.Explainable.adoc
+++ b/docs/modules/ROOT/partials/java/answer/ConceptMap.Explainable.adoc
@@ -6,7 +6,7 @@
 Contains an explainable object.
 
 // tag::methods[]
-[#_ConceptMap_Explainable_conjunction__]
+[#_ConceptMap_Explainable_conjunction_]
 ==== conjunction
 
 [source,java]
@@ -28,7 +28,7 @@ Retrieves the subquery of the original query that is actually being explained.
 explainable.conjunction();
 ----
 
-[#_ConceptMap_Explainable_id__]
+[#_ConceptMap_Explainable_id_]
 ==== id
 
 [source,java]
diff --git a/java/docs/answer/ConceptMap.Explainables.adoc b/docs/modules/ROOT/partials/java/answer/ConceptMap.Explainables.adoc
similarity index 91%
rename from java/docs/answer/ConceptMap.Explainables.adoc
rename to docs/modules/ROOT/partials/java/answer/ConceptMap.Explainables.adoc
index 2bfffbcfd6..66f0c0c04d 100644
--- a/java/docs/answer/ConceptMap.Explainables.adoc
+++ b/docs/modules/ROOT/partials/java/answer/ConceptMap.Explainables.adoc
@@ -6,7 +6,7 @@
 Contains explainable objects.
 
 // tag::methods[]
-[#_ConceptMap_Explainables_attribute__java_lang_String]
+[#_ConceptMap_Explainables_attribute_java_lang_String]
 ==== attribute
 
 [source,java]
@@ -37,7 +37,7 @@ a| `variable` a| The string representation of a variable a| `java.lang.String`
 conceptMap.explainables().attribute(variable);
 ----
 
-[#_ConceptMap_Explainables_attributes__]
+[#_ConceptMap_Explainables_attributes_]
 ==== attributes
 
 [source,java]
@@ -59,7 +59,7 @@ Retrieves all of this ``ConceptMap``’s explainable attributes.
 conceptMap.explainables().attributes();
 ----
 
-[#_ConceptMap_Explainables_ownership__java_lang_String__java_lang_String]
+[#_ConceptMap_Explainables_ownership_java_lang_String_java_lang_String]
 ==== ownership
 
 [source,java]
@@ -92,7 +92,7 @@ a| `attribute` a| The string representation of the attribute variable a| `java.l
 conceptMap.explainables().ownership(owner, attribute);
 ----
 
-[#_ConceptMap_Explainables_ownerships__]
+[#_ConceptMap_Explainables_ownerships_]
 ==== ownerships
 
 [source,java]
@@ -114,7 +114,7 @@ Retrieves all of this ``ConceptMap``’s explainable ownerships.
 conceptMap.explainables().ownerships();
 ----
 
-[#_ConceptMap_Explainables_relation__java_lang_String]
+[#_ConceptMap_Explainables_relation_java_lang_String]
 ==== relation
 
 [source,java]
@@ -145,7 +145,7 @@ a| `variable` a| The string representation of a variable a| `java.lang.String`
 conceptMap.explainables().relation(variable);
 ----
 
-[#_ConceptMap_Explainables_relations__]
+[#_ConceptMap_Explainables_relations_]
 ==== relations
 
 [source,java]
diff --git a/java/docs/answer/ConceptMap.adoc b/docs/modules/ROOT/partials/java/answer/ConceptMap.adoc
similarity index 93%
rename from java/docs/answer/ConceptMap.adoc
rename to docs/modules/ROOT/partials/java/answer/ConceptMap.adoc
index e61d59a601..d664cf379c 100644
--- a/java/docs/answer/ConceptMap.adoc
+++ b/docs/modules/ROOT/partials/java/answer/ConceptMap.adoc
@@ -6,7 +6,7 @@
 Contains a mapping of variables to concepts.
 
 // tag::methods[]
-[#_ConceptMap_concepts__]
+[#_ConceptMap_concepts_]
 ==== concepts
 
 [source,java]
@@ -29,7 +29,7 @@ Produces a stream over all concepts in this ``ConceptMap``.
 conceptMap.concepts();
 ----
 
-[#_ConceptMap_explainables__]
+[#_ConceptMap_explainables_]
 ==== explainables
 
 [source,java]
@@ -51,7 +51,7 @@ Gets the ``Explainables`` object for this ``ConceptMap``, exposing which of the
 conceptMap.explainables();
 ----
 
-[#_ConceptMap_get__java_lang_String]
+[#_ConceptMap_get_java_lang_String]
 ==== get
 
 [source,java]
@@ -83,7 +83,7 @@ a| `variable` a| The string representation of a variable a| `java.lang.String`
 conceptMap.get(variable);
 ----
 
-[#_ConceptMap_map__]
+[#_ConceptMap_map_]
 ==== map
 
 [source,java]
@@ -106,7 +106,7 @@ Returns the inner ``Map`` where keys are query variables, and values are concept
 conceptMap.map();
 ----
 
-[#_ConceptMap_variables__]
+[#_ConceptMap_variables_]
 ==== variables
 
 [source,java]
diff --git a/java/docs/answer/ConceptMapGroup.adoc b/docs/modules/ROOT/partials/java/answer/ConceptMapGroup.adoc
similarity index 91%
rename from java/docs/answer/ConceptMapGroup.adoc
rename to docs/modules/ROOT/partials/java/answer/ConceptMapGroup.adoc
index 523ea9adfd..50c5e4d2f1 100644
--- a/java/docs/answer/ConceptMapGroup.adoc
+++ b/docs/modules/ROOT/partials/java/answer/ConceptMapGroup.adoc
@@ -6,7 +6,7 @@
 Contains an element of the group query result.
 
 // tag::methods[]
-[#_ConceptMapGroup_conceptMaps__]
+[#_ConceptMapGroup_conceptMaps_]
 ==== conceptMaps
 
 [source,java]
@@ -29,7 +29,7 @@ Retrieves the ``ConceptMap``s of the group.
 conceptMapGroup.conceptMaps();
 ----
 
-[#_ConceptMapGroup_owner__]
+[#_ConceptMapGroup_owner_]
 ==== owner
 
 [source,java]
diff --git a/java/docs/answer/Explanation.adoc b/docs/modules/ROOT/partials/java/answer/Explanation.adoc
similarity index 91%
rename from java/docs/answer/Explanation.adoc
rename to docs/modules/ROOT/partials/java/answer/Explanation.adoc
index 31a334e6d5..96ffdc8f4a 100644
--- a/java/docs/answer/Explanation.adoc
+++ b/docs/modules/ROOT/partials/java/answer/Explanation.adoc
@@ -6,7 +6,7 @@
 An explanation of which rule was used for inferring the explained concept, the condition of the rule, the conclusion of the rule, and the mapping of variables between the query and the rule’s conclusion.
 
 // tag::methods[]
-[#_Explanation_conclusion__]
+[#_Explanation_conclusion_]
 ==== conclusion
 
 [source,java]
@@ -28,7 +28,7 @@ Retrieves the Conclusion for this Explanation.
 explanation.conclusion()
 ----
 
-[#_Explanation_condition__]
+[#_Explanation_condition_]
 ==== condition
 
 [source,java]
@@ -50,7 +50,7 @@ Retrieves the Condition for this Explanation.
 explanation.condition()
 ----
 
-[#_Explanation_queryVariableMapping__java_lang_String]
+[#_Explanation_queryVariableMapping_java_lang_String]
 ==== queryVariableMapping
 
 [source,java]
@@ -81,7 +81,7 @@ a| `var` a| The query variable to map to rule variables. a| `java.lang.String`
 explanation.variableMapping(var)
 ----
 
-[#_Explanation_queryVariables__]
+[#_Explanation_queryVariables_]
 ==== queryVariables
 
 [source,java]
@@ -103,7 +103,7 @@ Retrieves the query variables for this ``Explanation``.
 explanation.queryVariables()
 ----
 
-[#_Explanation_rule__]
+[#_Explanation_rule_]
 ==== rule
 
 [source,java]
diff --git a/java/docs/answer/JSON.adoc b/docs/modules/ROOT/partials/java/answer/JSON.adoc
similarity index 85%
rename from java/docs/answer/JSON.adoc
rename to docs/modules/ROOT/partials/java/answer/JSON.adoc
index 8ca71c24c0..ac1adef6a2 100644
--- a/java/docs/answer/JSON.adoc
+++ b/docs/modules/ROOT/partials/java/answer/JSON.adoc
@@ -4,7 +4,7 @@
 *Package*: `com.vaticle.typedb.driver.api.answer`
 
 // tag::methods[]
-[#_JSON_JSON__]
+[#_JSON_JSON_]
 ==== JSON
 
 [source,java]
@@ -18,7 +18,7 @@ public JSON()
 .Returns
 `public`
 
-[#_JSON_asArray__]
+[#_JSON_asArray_]
 ==== asArray
 
 [source,java]
@@ -32,7 +32,7 @@ public java.util.List asArray()
 .Returns
 `public java.util.List`
 
-[#_JSON_asBoolean__]
+[#_JSON_asBoolean_]
 ==== asBoolean
 
 [source,java]
@@ -46,7 +46,7 @@ public boolean asBoolean()
 .Returns
 `public boolean`
 
-[#_JSON_asNumber__]
+[#_JSON_asNumber_]
 ==== asNumber
 
 [source,java]
@@ -60,7 +60,7 @@ public double asNumber()
 .Returns
 `public double`
 
-[#_JSON_asObject__]
+[#_JSON_asObject_]
 ==== asObject
 
 [source,java]
@@ -74,7 +74,7 @@ public java.util.Map asObject()
 .Returns
 `public java.util.Map`
 
-[#_JSON_asString__]
+[#_JSON_asString_]
 ==== asString
 
 [source,java]
@@ -88,7 +88,7 @@ public java.lang.String asString()
 .Returns
 `public java.lang.String`
 
-[#_JSON_isArray__]
+[#_JSON_isArray_]
 ==== isArray
 
 [source,java]
@@ -102,7 +102,7 @@ public boolean isArray()
 .Returns
 `public boolean`
 
-[#_JSON_isBoolean__]
+[#_JSON_isBoolean_]
 ==== isBoolean
 
 [source,java]
@@ -116,7 +116,7 @@ public boolean isBoolean()
 .Returns
 `public boolean`
 
-[#_JSON_isNumber__]
+[#_JSON_isNumber_]
 ==== isNumber
 
 [source,java]
@@ -130,7 +130,7 @@ public boolean isNumber()
 .Returns
 `public boolean`
 
-[#_JSON_isObject__]
+[#_JSON_isObject_]
 ==== isObject
 
 [source,java]
@@ -144,7 +144,7 @@ public boolean isObject()
 .Returns
 `public boolean`
 
-[#_JSON_isString__]
+[#_JSON_isString_]
 ==== isString
 
 [source,java]
@@ -158,7 +158,7 @@ public boolean isString()
 .Returns
 `public boolean`
 
-[#_JSON_parse__java_lang_String]
+[#_JSON_parse_java_lang_String]
 ==== parse
 
 [source,java]
diff --git a/java/docs/answer/Promise_T_.adoc b/docs/modules/ROOT/partials/java/answer/Promise_T_.adoc
similarity index 90%
rename from java/docs/answer/Promise_T_.adoc
rename to docs/modules/ROOT/partials/java/answer/Promise_T_.adoc
index e64cacc58f..f4fd85c217 100644
--- a/java/docs/answer/Promise_T_.adoc
+++ b/docs/modules/ROOT/partials/java/answer/Promise_T_.adoc
@@ -8,7 +8,7 @@ A ``Promise`` represents an asynchronous network operation.
 The request it represents is performed immediately. The response is only retrieved once the ``Promise`` is ``resolve``d.
 
 // tag::methods[]
-[#_Promise_T_Promise__java_util_function_Supplier_T_]
+[#_Promise_T_Promise_java_util_function_Supplier_T_]
 ==== Promise
 
 [source,java]
@@ -39,7 +39,7 @@ a| `inner` a| The supplier to function to wrap into the promise a| `java.util.fu
 new Promise(supplier)
 ----
 
-[#_Promise_T_map__java_util_function_Supplier_T___java_util_function_Function_T_​U_]
+[#_Promise_T_map_java_util_function_Supplier_T_java_util_function_Function_T_​U_]
 ==== map
 
 [source,java]
@@ -72,7 +72,7 @@ a| `fn` a| The mapping function a| `java.util.function.Function`
 Promise.map(supplier, mapper);
 ----
 
-[#_Promise_T_resolve__]
+[#_Promise_T_resolve_]
 ==== resolve
 
 [source,java]
diff --git a/java/docs/answer/ValueGroup.adoc b/docs/modules/ROOT/partials/java/answer/ValueGroup.adoc
similarity index 93%
rename from java/docs/answer/ValueGroup.adoc
rename to docs/modules/ROOT/partials/java/answer/ValueGroup.adoc
index faa7acfbcd..ff9cd6f310 100644
--- a/java/docs/answer/ValueGroup.adoc
+++ b/docs/modules/ROOT/partials/java/answer/ValueGroup.adoc
@@ -6,7 +6,7 @@
 Contains an element of the group aggregate query result.
 
 // tag::methods[]
-[#_ValueGroup_owner__]
+[#_ValueGroup_owner_]
 ==== owner
 
 [source,java]
@@ -29,7 +29,7 @@ Retrieves the concept that is the group owner.
 conceptMapGroup.owner()
 ----
 
-[#_ValueGroup_value__]
+[#_ValueGroup_value_]
 ==== value
 
 [source,java]
diff --git a/java/docs/concept/Concept.adoc b/docs/modules/ROOT/partials/java/concept/Concept.adoc
similarity index 90%
rename from java/docs/concept/Concept.adoc
rename to docs/modules/ROOT/partials/java/concept/Concept.adoc
index 5136434975..be321c83b8 100644
--- a/java/docs/concept/Concept.adoc
+++ b/docs/modules/ROOT/partials/java/concept/Concept.adoc
@@ -4,7 +4,7 @@
 *Package*: `com.vaticle.typedb.driver.api.concept`
 
 // tag::methods[]
-[#_Concept_asAttribute__]
+[#_Concept_asAttribute_]
 ==== asAttribute
 
 [source,java]
@@ -26,7 +26,7 @@ Casts the concept to ``Attribute``.
 concept.asAttribute();
 ----
 
-[#_Concept_asAttributeType__]
+[#_Concept_asAttributeType_]
 ==== asAttributeType
 
 [source,java]
@@ -48,7 +48,7 @@ Casts the concept to ``AttributeType``.
 concept.asAttributeType();
 ----
 
-[#_Concept_asEntity__]
+[#_Concept_asEntity_]
 ==== asEntity
 
 [source,java]
@@ -70,7 +70,7 @@ Casts the concept to ``Entity``.
 concept.asEntity();
 ----
 
-[#_Concept_asEntityType__]
+[#_Concept_asEntityType_]
 ==== asEntityType
 
 [source,java]
@@ -92,7 +92,7 @@ Casts the concept to ``EntityType``.
 concept.asEntityType();
 ----
 
-[#_Concept_asRelation__]
+[#_Concept_asRelation_]
 ==== asRelation
 
 [source,java]
@@ -114,7 +114,7 @@ Casts the concept to ``Relation``.
 concept.asRelation();
 ----
 
-[#_Concept_asRelationType__]
+[#_Concept_asRelationType_]
 ==== asRelationType
 
 [source,java]
@@ -136,7 +136,7 @@ Casts the concept to ``RelationType``.
 concept.asRelationType();
 ----
 
-[#_Concept_asRoleType__]
+[#_Concept_asRoleType_]
 ==== asRoleType
 
 [source,java]
@@ -158,7 +158,7 @@ Casts the concept to ``RoleType``.
 concept.asRoleType();
 ----
 
-[#_Concept_asThing__]
+[#_Concept_asThing_]
 ==== asThing
 
 [source,java]
@@ -180,7 +180,7 @@ Casts the concept to ``Thing``.
 concept.asThing();
 ----
 
-[#_Concept_asThingType__]
+[#_Concept_asThingType_]
 ==== asThingType
 
 [source,java]
@@ -202,7 +202,7 @@ Casts the concept to ``ThingType``.
 concept.asThingType();
 ----
 
-[#_Concept_asType__]
+[#_Concept_asType_]
 ==== asType
 
 [source,java]
@@ -224,7 +224,7 @@ Casts the concept to ``Type``.
 concept.asType();
 ----
 
-[#_Concept_asValue__]
+[#_Concept_asValue_]
 ==== asValue
 
 [source,java]
@@ -246,7 +246,7 @@ Casts the concept to ``Value``.
 concept.asValue();
 ----
 
-[#_Concept_isAttribute__]
+[#_Concept_isAttribute_]
 ==== isAttribute
 
 [source,java]
@@ -269,7 +269,7 @@ Checks if the concept is an ``Attribute``.
 concept.isAttribute();
 ----
 
-[#_Concept_isAttributeType__]
+[#_Concept_isAttributeType_]
 ==== isAttributeType
 
 [source,java]
@@ -292,7 +292,7 @@ Checks if the concept is an ``AttributeType``.
 concept.isAttributeType();
 ----
 
-[#_Concept_isEntity__]
+[#_Concept_isEntity_]
 ==== isEntity
 
 [source,java]
@@ -315,7 +315,7 @@ Checks if the concept is an ``Entity``.
 concept.isEntity();
 ----
 
-[#_Concept_isEntityType__]
+[#_Concept_isEntityType_]
 ==== isEntityType
 
 [source,java]
@@ -338,7 +338,7 @@ Checks if the concept is an ``EntityType``.
 concept.isEntityType();
 ----
 
-[#_Concept_isRelation__]
+[#_Concept_isRelation_]
 ==== isRelation
 
 [source,java]
@@ -361,7 +361,7 @@ Checks if the concept is a ``Relation``.
 concept.isRelation();
 ----
 
-[#_Concept_isRelationType__]
+[#_Concept_isRelationType_]
 ==== isRelationType
 
 [source,java]
@@ -384,7 +384,7 @@ Checks if the concept is a ``RelationType``.
 concept.isRelationType();
 ----
 
-[#_Concept_isRoleType__]
+[#_Concept_isRoleType_]
 ==== isRoleType
 
 [source,java]
@@ -407,7 +407,7 @@ Checks if the concept is a ``RoleType``.
 concept.isRoleType();
 ----
 
-[#_Concept_isThing__]
+[#_Concept_isThing_]
 ==== isThing
 
 [source,java]
@@ -430,7 +430,7 @@ Checks if the concept is a ``Thing``.
 concept.isThing();
 ----
 
-[#_Concept_isThingType__]
+[#_Concept_isThingType_]
 ==== isThingType
 
 [source,java]
@@ -453,7 +453,7 @@ Checks if the concept is a ``ThingType``.
 concept.isThingType();
 ----
 
-[#_Concept_isType__]
+[#_Concept_isType_]
 ==== isType
 
 [source,java]
@@ -476,7 +476,7 @@ Checks if the concept is a ``Type``.
 concept.isType();
 ----
 
-[#_Concept_isValue__]
+[#_Concept_isValue_]
 ==== isValue
 
 [source,java]
diff --git a/java/docs/concept/ConceptManager.adoc b/docs/modules/ROOT/partials/java/concept/ConceptManager.adoc
similarity index 91%
rename from java/docs/concept/ConceptManager.adoc
rename to docs/modules/ROOT/partials/java/concept/ConceptManager.adoc
index aad2e6c2ea..4622fd5117 100644
--- a/java/docs/concept/ConceptManager.adoc
+++ b/docs/modules/ROOT/partials/java/concept/ConceptManager.adoc
@@ -6,7 +6,7 @@
 Provides access for all Concept API methods.
 
 // tag::methods[]
-[#_ConceptManager_getAttribute__java_lang_String]
+[#_ConceptManager_getAttribute_java_lang_String]
 ==== getAttribute
 
 [source,java]
@@ -38,7 +38,7 @@ a| `iid` a| The iid of the ``Attribute`` to retrieve a| `java.lang.String`
 transaction.concepts().getAttribute(iid).resolve();
 ----
 
-[#_ConceptManager_getAttributeType__java_lang_String]
+[#_ConceptManager_getAttributeType_java_lang_String]
 ==== getAttributeType
 
 [source,java]
@@ -70,7 +70,7 @@ a| `label` a| The label of the ``AttributeType`` to retrieve a| `java.lang.Strin
 transaction.concepts().getAttributeType(label).resolve();
 ----
 
-[#_ConceptManager_getEntity__java_lang_String]
+[#_ConceptManager_getEntity_java_lang_String]
 ==== getEntity
 
 [source,java]
@@ -102,7 +102,7 @@ a| `iid` a| The iid of the ``Entity`` to retrieve a| `java.lang.String`
 transaction.concepts().getEntity(iid).resolve();
 ----
 
-[#_ConceptManager_getEntityType__java_lang_String]
+[#_ConceptManager_getEntityType_java_lang_String]
 ==== getEntityType
 
 [source,java]
@@ -134,7 +134,7 @@ a| `label` a| The label of the ``EntityType`` to retrieve a| `java.lang.String`
 transaction.concepts().getEntityType(label).resolve();
 ----
 
-[#_ConceptManager_getRelation__java_lang_String]
+[#_ConceptManager_getRelation_java_lang_String]
 ==== getRelation
 
 [source,java]
@@ -166,7 +166,7 @@ a| `iid` a| The iid of the ``Relation`` to retrieve a| `java.lang.String`
 transaction.concepts().getRelation(iid).resolve();
 ----
 
-[#_ConceptManager_getRelationType__java_lang_String]
+[#_ConceptManager_getRelationType_java_lang_String]
 ==== getRelationType
 
 [source,java]
@@ -198,7 +198,7 @@ a| `label` a| The label of the ``RelationType`` to retrieve a| `java.lang.String
 transaction.concepts().getRelationType(label).resolve();
 ----
 
-[#_ConceptManager_getRootAttributeType__]
+[#_ConceptManager_getRootAttributeType_]
 ==== getRootAttributeType
 
 [source,java]
@@ -221,7 +221,7 @@ Retrieve the root ``AttributeType``, “attribute”.
 transaction.concepts().getRootAttributeType();
 ----
 
-[#_ConceptManager_getRootEntityType__]
+[#_ConceptManager_getRootEntityType_]
 ==== getRootEntityType
 
 [source,java]
@@ -244,7 +244,7 @@ Retrieves the root ``EntityType``, “entity”.
 transaction.concepts().getRootEntityType();
 ----
 
-[#_ConceptManager_getRootRelationType__]
+[#_ConceptManager_getRootRelationType_]
 ==== getRootRelationType
 
 [source,java]
@@ -267,7 +267,7 @@ Retrieve the root ``RelationType``, “relation”.
 transaction.concepts().getRootRelationType();
 ----
 
-[#_ConceptManager_getSchemaExceptions__]
+[#_ConceptManager_getSchemaExceptions_]
 ==== getSchemaExceptions
 
 [source,java]
@@ -290,7 +290,7 @@ Retrieves a list of all schema exceptions for the current transaction.
 transaction.concepts().getSchemaException();
 ----
 
-[#_ConceptManager_putAttributeType__java_lang_String__Value_Type]
+[#_ConceptManager_putAttributeType_java_lang_String_Value_Type]
 ==== putAttributeType
 
 [source,java]
@@ -324,7 +324,7 @@ a| `valueType` a| The value type of the ``AttributeType`` to create a| `Value.Ty
 await transaction.concepts().putAttributeType(label, valueType).resolve();
 ----
 
-[#_ConceptManager_putEntityType__java_lang_String]
+[#_ConceptManager_putEntityType_java_lang_String]
 ==== putEntityType
 
 [source,java]
@@ -356,7 +356,7 @@ a| `label` a| The label of the ``EntityType`` to create or retrieve a| `java.lan
 transaction.concepts().putEntityType(label).resolve();
 ----
 
-[#_ConceptManager_putRelationType__java_lang_String]
+[#_ConceptManager_putRelationType_java_lang_String]
 ==== putRelationType
 
 [source,java]
diff --git a/java/docs/connection/Database.Replica.adoc b/docs/modules/ROOT/partials/java/connection/Database.Replica.adoc
similarity index 88%
rename from java/docs/connection/Database.Replica.adoc
rename to docs/modules/ROOT/partials/java/connection/Database.Replica.adoc
index 3f5426cf30..5e51894f67 100644
--- a/java/docs/connection/Database.Replica.adoc
+++ b/docs/modules/ROOT/partials/java/connection/Database.Replica.adoc
@@ -6,7 +6,7 @@
 The metadata and state of an individual raft replica of a database.
 
 // tag::methods[]
-[#_Database_Replica_isPreferred__]
+[#_Database_Replica_isPreferred_]
 ==== isPreferred
 
 [source,java]
@@ -21,7 +21,7 @@ Checks whether this is the preferred replica of the raft cluster. If true, Opera
 .Returns
 `boolean`
 
-[#_Database_Replica_isPrimary__]
+[#_Database_Replica_isPrimary_]
 ==== isPrimary
 
 [source,java]
@@ -36,7 +36,7 @@ Checks whether this is the primary replica of the raft cluster.
 .Returns
 `boolean`
 
-[#_Database_Replica_server__]
+[#_Database_Replica_server_]
 ==== server
 
 [source,java]
@@ -51,7 +51,7 @@ The server hosting this replica
 .Returns
 `java.lang.String`
 
-[#_Database_Replica_term__]
+[#_Database_Replica_term_]
 ==== term
 
 [source,java]
diff --git a/java/docs/connection/Database.adoc b/docs/modules/ROOT/partials/java/connection/Database.adoc
similarity index 92%
rename from java/docs/connection/Database.adoc
rename to docs/modules/ROOT/partials/java/connection/Database.adoc
index a1715e037c..7abce59da0 100644
--- a/java/docs/connection/Database.adoc
+++ b/docs/modules/ROOT/partials/java/connection/Database.adoc
@@ -4,7 +4,7 @@
 *Package*: `com.vaticle.typedb.driver.api.database`
 
 // tag::methods[]
-[#_Database_delete__]
+[#_Database_delete_]
 ==== delete
 
 [source,java]
@@ -26,7 +26,7 @@ Deletes this database.
 database.delete()
 ----
 
-[#_Database_name__]
+[#_Database_name_]
 ==== name
 
 [source,java]
@@ -41,7 +41,7 @@ The database name as a string.
 .Returns
 `java.lang.String`
 
-[#_Database_preferredReplica__]
+[#_Database_preferredReplica_]
 ==== preferredReplica
 
 [source,java]
@@ -64,7 +64,7 @@ Returns the preferred replica for this database. Operations which can be run on
 database.preferredReplica()
 ----
 
-[#_Database_primaryReplica__]
+[#_Database_primaryReplica_]
 ==== primaryReplica
 
 [source,java]
@@ -87,7 +87,7 @@ Returns the primary replica for this database. _Only works in TypeDB Cloud_
 database.primaryReplica()
 ----
 
-[#_Database_replicas__]
+[#_Database_replicas_]
 ==== replicas
 
 [source,java]
@@ -110,7 +110,7 @@ Set of ``Replica`` instances for this database. Only works in TypeDB Cloud
 database.replicas()
 ----
 
-[#_Database_ruleSchema__]
+[#_Database_ruleSchema_]
 ==== ruleSchema
 
 [source,java]
@@ -133,7 +133,7 @@ The rules in the schema as a valid TypeQL define query string.
 database.ruleSchema()
 ----
 
-[#_Database_schema__]
+[#_Database_schema_]
 ==== schema
 
 [source,java]
@@ -156,7 +156,7 @@ A full schema text as a valid TypeQL define query string.
 database.schema()
 ----
 
-[#_Database_typeSchema__]
+[#_Database_typeSchema_]
 ==== typeSchema
 
 [source,java]
diff --git a/java/docs/connection/DatabaseManager.adoc b/docs/modules/ROOT/partials/java/connection/DatabaseManager.adoc
similarity index 91%
rename from java/docs/connection/DatabaseManager.adoc
rename to docs/modules/ROOT/partials/java/connection/DatabaseManager.adoc
index d28ce0c722..1a3eb35a50 100644
--- a/java/docs/connection/DatabaseManager.adoc
+++ b/docs/modules/ROOT/partials/java/connection/DatabaseManager.adoc
@@ -6,7 +6,7 @@
 Provides access to all database management methods.
 
 // tag::methods[]
-[#_DatabaseManager_all__]
+[#_DatabaseManager_all_]
 ==== all
 
 [source,java]
@@ -29,7 +29,7 @@ Retrieves all databases present on the TypeDB server
 driver.databases().all()
 ----
 
-[#_DatabaseManager_contains__java_lang_String]
+[#_DatabaseManager_contains_java_lang_String]
 ==== contains
 
 [source,java]
@@ -61,7 +61,7 @@ a| `name` a| The database name to be checked a| `java.lang.String`
 driver.databases().contains(name)
 ----
 
-[#_DatabaseManager_create__java_lang_String]
+[#_DatabaseManager_create_java_lang_String]
 ==== create
 
 [source,java]
@@ -92,7 +92,7 @@ a| `name` a| The name of the database to be created a| `java.lang.String`
 driver.databases().create(name)
 ----
 
-[#_DatabaseManager_get__java_lang_String]
+[#_DatabaseManager_get_java_lang_String]
 ==== get
 
 [source,java]
diff --git a/java/docs/connection/TypeDB.adoc b/docs/modules/ROOT/partials/java/connection/TypeDB.adoc
similarity index 91%
rename from java/docs/connection/TypeDB.adoc
rename to docs/modules/ROOT/partials/java/connection/TypeDB.adoc
index 6411f63d1d..419b84d5dc 100644
--- a/java/docs/connection/TypeDB.adoc
+++ b/docs/modules/ROOT/partials/java/connection/TypeDB.adoc
@@ -15,7 +15,7 @@ a| `DEFAULT_ADDRESS` a| `static java.lang.String` a|
 // end::properties[]
 
 // tag::methods[]
-[#_TypeDB_TypeDB__]
+[#_TypeDB_TypeDB_]
 ==== TypeDB
 
 [source,java]
@@ -29,7 +29,7 @@ public TypeDB()
 .Returns
 `public`
 
-[#_TypeDB_cloudDriver__java_lang_String__TypeDBCredential]
+[#_TypeDB_cloudDriver_java_lang_String_TypeDBCredential]
 ==== cloudDriver
 
 [source,java]
@@ -62,7 +62,7 @@ a| `credential` a| The credential to connect with a| `TypeDBCredential`
 TypeDB.cloudDriver(address, credential);
 ----
 
-[#_TypeDB_cloudDriver__java_util_Set_java_lang_String___TypeDBCredential]
+[#_TypeDB_cloudDriver_java_util_Set_java_lang_String_TypeDBCredential]
 ==== cloudDriver
 
 [source,java]
@@ -95,7 +95,7 @@ a| `credential` a| The credential to connect with a| `TypeDBCredential`
 TypeDB.cloudDriver(addresses, credential);
 ----
 
-[#_TypeDB_cloudDriver__java_util_Map_java_lang_String_​java_lang_String___TypeDBCredential]
+[#_TypeDB_cloudDriver_java_util_Map_java_lang_String_​java_lang_String_TypeDBCredential]
 ==== cloudDriver
 
 [source,java]
@@ -128,7 +128,7 @@ a| `credential` a| The credential to connect with a| `TypeDBCredential`
 TypeDB.cloudDriver(addressTranslation, credential);
 ----
 
-[#_TypeDB_coreDriver__java_lang_String]
+[#_TypeDB_coreDriver_java_lang_String]
 ==== coreDriver
 
 [source,java]
diff --git a/java/docs/connection/TypeDBCredential.adoc b/docs/modules/ROOT/partials/java/connection/TypeDBCredential.adoc
similarity index 91%
rename from java/docs/connection/TypeDBCredential.adoc
rename to docs/modules/ROOT/partials/java/connection/TypeDBCredential.adoc
index f920923028..8084746db8 100644
--- a/java/docs/connection/TypeDBCredential.adoc
+++ b/docs/modules/ROOT/partials/java/connection/TypeDBCredential.adoc
@@ -18,7 +18,7 @@ User credentials and TLS encryption settings for connecting to TypeDB Cloud.
 ----
 
 // tag::methods[]
-[#_TypeDBCredential_TypeDBCredential__java_lang_String__java_lang_String__boolean]
+[#_TypeDBCredential_TypeDBCredential_java_lang_String_java_lang_String_boolean]
 ==== TypeDBCredential
 
 [source,java]
@@ -45,7 +45,7 @@ a| `tlsEnabled` a| Specify whether the connection to TypeDB Cloud must be done o
 .Returns
 `public`
 
-[#_TypeDBCredential_TypeDBCredential__java_lang_String__java_lang_String__java_nio_file_Path]
+[#_TypeDBCredential_TypeDBCredential_java_lang_String_java_lang_String_java_nio_file_Path]
 ==== TypeDBCredential
 
 [source,java]
diff --git a/java/docs/connection/TypeDBDriver.adoc b/docs/modules/ROOT/partials/java/connection/TypeDBDriver.adoc
similarity index 91%
rename from java/docs/connection/TypeDBDriver.adoc
rename to docs/modules/ROOT/partials/java/connection/TypeDBDriver.adoc
index 863c665044..54a71d5269 100644
--- a/java/docs/connection/TypeDBDriver.adoc
+++ b/docs/modules/ROOT/partials/java/connection/TypeDBDriver.adoc
@@ -8,7 +8,7 @@
 * `java.lang.AutoCloseable`
 
 // tag::methods[]
-[#_TypeDBDriver_close__]
+[#_TypeDBDriver_close_]
 ==== close
 
 [source,java]
@@ -30,7 +30,7 @@ Closes the driver. Before instantiating a new driver, the driver that’s curren
 driver.close()
 ----
 
-[#_TypeDBDriver_databases__]
+[#_TypeDBDriver_databases_]
 ==== databases
 
 [source,java]
@@ -45,7 +45,7 @@ The ``DatabaseManager`` for this connection, providing access to database manage
 .Returns
 `DatabaseManager`
 
-[#_TypeDBDriver_isOpen__]
+[#_TypeDBDriver_isOpen_]
 ==== isOpen
 
 [source,java]
@@ -68,7 +68,7 @@ Checks whether this connection is presently open.
 driver.isOpen();
 ----
 
-[#_TypeDBDriver_session__java_lang_String__TypeDBSession_Type]
+[#_TypeDBDriver_session_java_lang_String_TypeDBSession_Type]
 ==== session
 
 [source,java]
@@ -88,7 +88,7 @@ See also: <<#_session_java_lang_String_com_vaticle_typedb_driver_api_TypeDBSessi
 .Returns
 `TypeDBSession`
 
-[#_TypeDBDriver_session__java_lang_String__TypeDBSession_Type__TypeDBOptions]
+[#_TypeDBDriver_session_java_lang_String_TypeDBSession_Type_TypeDBOptions]
 ==== session
 
 [source,java]
@@ -124,7 +124,7 @@ a| `options` a| ``TypeDBOptions`` for the session a| `TypeDBOptions`
 driver.session(database, sessionType, options);
 ----
 
-[#_TypeDBDriver_user__]
+[#_TypeDBDriver_user_]
 ==== user
 
 [source,java]
@@ -147,7 +147,7 @@ Returns the logged-in user for the connection. Only for TypeDB Cloud.
 driver.user();
 ----
 
-[#_TypeDBDriver_users__]
+[#_TypeDBDriver_users_]
 ==== users
 
 [source,java]
diff --git a/java/docs/connection/User.adoc b/docs/modules/ROOT/partials/java/connection/User.adoc
similarity index 89%
rename from java/docs/connection/User.adoc
rename to docs/modules/ROOT/partials/java/connection/User.adoc
index feb0c22155..cd210461a6 100644
--- a/java/docs/connection/User.adoc
+++ b/docs/modules/ROOT/partials/java/connection/User.adoc
@@ -6,7 +6,7 @@
 TypeDB user information
 
 // tag::methods[]
-[#_User_passwordExpirySeconds__]
+[#_User_passwordExpirySeconds_]
 ==== passwordExpirySeconds
 
 [source,java]
@@ -20,7 +20,7 @@ Returns the number of seconds remaining till this user’s current password expi
 .Returns
 `java.util.Optional`
 
-[#_User_passwordUpdate__java_lang_String__java_lang_String]
+[#_User_passwordUpdate_java_lang_String_java_lang_String]
 ==== passwordUpdate
 
 [source,java]
@@ -45,7 +45,7 @@ a| `passwordNew` a| The new password a| `java.lang.String`
 .Returns
 `void`
 
-[#_User_username__]
+[#_User_username_]
 ==== username
 
 [source,java]
diff --git a/java/docs/connection/UserManager.adoc b/docs/modules/ROOT/partials/java/connection/UserManager.adoc
similarity index 91%
rename from java/docs/connection/UserManager.adoc
rename to docs/modules/ROOT/partials/java/connection/UserManager.adoc
index dfa0fcae5e..8582ef1128 100644
--- a/java/docs/connection/UserManager.adoc
+++ b/docs/modules/ROOT/partials/java/connection/UserManager.adoc
@@ -6,7 +6,7 @@
 Provides access to all user management methods.
 
 // tag::methods[]
-[#_UserManager_all__]
+[#_UserManager_all_]
 ==== all
 
 [source,java]
@@ -28,7 +28,7 @@ Retrieves all users which exist on the TypeDB server.
 driver.users().all();
 ----
 
-[#_UserManager_contains__java_lang_String]
+[#_UserManager_contains_java_lang_String]
 ==== contains
 
 [source,java]
@@ -60,7 +60,7 @@ a| `username` a| The user name to be checked a| `java.lang.String`
 driver.users().contains(username);
 ----
 
-[#_UserManager_create__java_lang_String__java_lang_String]
+[#_UserManager_create_java_lang_String_java_lang_String]
 ==== create
 
 [source,java]
@@ -93,7 +93,7 @@ a| `password` a| The password of the user to be created a| `java.lang.String`
 driver.users().create(username, password);
 ----
 
-[#_UserManager_delete__java_lang_String]
+[#_UserManager_delete_java_lang_String]
 ==== delete
 
 [source,java]
@@ -124,7 +124,7 @@ a| `username` a| The name of the user to be deleted a| `java.lang.String`
 driver.users().delete(username);
 ----
 
-[#_UserManager_get__java_lang_String]
+[#_UserManager_get_java_lang_String]
 ==== get
 
 [source,java]
@@ -156,7 +156,7 @@ a| `username` a| The name of the user to retrieve a| `java.lang.String`
 driver.users().get(username);
 ----
 
-[#_UserManager_passwordSet__java_lang_String__java_lang_String]
+[#_UserManager_passwordSet_java_lang_String_java_lang_String]
 ==== passwordSet
 
 [source,java]
diff --git a/java/docs/data/Attribute.adoc b/docs/modules/ROOT/partials/java/data/Attribute.adoc
similarity index 90%
rename from java/docs/data/Attribute.adoc
rename to docs/modules/ROOT/partials/java/data/Attribute.adoc
index 34d927154a..0659b7bc53 100644
--- a/java/docs/data/Attribute.adoc
+++ b/docs/modules/ROOT/partials/java/data/Attribute.adoc
@@ -15,7 +15,7 @@ Attribute is an instance of the attribute type and has a value. This value is fi
 Attributes can be uniquely addressed by their type and value.
 
 // tag::methods[]
-[#_Attribute_asAttribute__]
+[#_Attribute_asAttribute_]
 ==== asAttribute
 
 [source,java]
@@ -38,7 +38,7 @@ Casts the concept to ``Attribute``.
 attribute.asAttribute();
 ----
 
-[#_Attribute_asAttributeType__]
+[#_Attribute_asAttributeType_]
 ==== asAttributeType
 
 [source,java]
@@ -60,7 +60,7 @@ Casts the concept to ``AttributeType``.
 concept.asAttributeType();
 ----
 
-[#_Attribute_asEntity__]
+[#_Attribute_asEntity_]
 ==== asEntity
 
 [source,java]
@@ -82,7 +82,7 @@ Casts the concept to ``Entity``.
 concept.asEntity();
 ----
 
-[#_Attribute_asEntityType__]
+[#_Attribute_asEntityType_]
 ==== asEntityType
 
 [source,java]
@@ -104,7 +104,7 @@ Casts the concept to ``EntityType``.
 concept.asEntityType();
 ----
 
-[#_Attribute_asRelation__]
+[#_Attribute_asRelation_]
 ==== asRelation
 
 [source,java]
@@ -126,7 +126,7 @@ Casts the concept to ``Relation``.
 concept.asRelation();
 ----
 
-[#_Attribute_asRelationType__]
+[#_Attribute_asRelationType_]
 ==== asRelationType
 
 [source,java]
@@ -148,7 +148,7 @@ Casts the concept to ``RelationType``.
 concept.asRelationType();
 ----
 
-[#_Attribute_asRoleType__]
+[#_Attribute_asRoleType_]
 ==== asRoleType
 
 [source,java]
@@ -170,7 +170,7 @@ Casts the concept to ``RoleType``.
 concept.asRoleType();
 ----
 
-[#_Attribute_asThingType__]
+[#_Attribute_asThingType_]
 ==== asThingType
 
 [source,java]
@@ -192,7 +192,7 @@ Casts the concept to ``ThingType``.
 concept.asThingType();
 ----
 
-[#_Attribute_asType__]
+[#_Attribute_asType_]
 ==== asType
 
 [source,java]
@@ -214,7 +214,7 @@ Casts the concept to ``Type``.
 concept.asType();
 ----
 
-[#_Attribute_asValue__]
+[#_Attribute_asValue_]
 ==== asValue
 
 [source,java]
@@ -236,7 +236,7 @@ Casts the concept to ``Value``.
 concept.asValue();
 ----
 
-[#_Attribute_getOwners__TypeDBTransaction]
+[#_Attribute_getOwners_TypeDBTransaction]
 ==== getOwners
 
 [source,java]
@@ -268,7 +268,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 attribute.getOwners(transaction);
 ----
 
-[#_Attribute_getOwners__TypeDBTransaction__ThingType]
+[#_Attribute_getOwners_TypeDBTransaction_ThingType]
 ==== getOwners
 
 [source,java]
@@ -302,7 +302,7 @@ a| `ownerType` a| Filter results for only owners of the given type a| `ThingType
 attribute.getOwners(transaction, ownerType);
 ----
 
-[#_Attribute_getType__]
+[#_Attribute_getType_]
 ==== getType
 
 [source,java]
@@ -325,7 +325,7 @@ Retrieves the type which this ``Attribute`` belongs to.
 attribute.getType();
 ----
 
-[#_Attribute_getValue__]
+[#_Attribute_getValue_]
 ==== getValue
 
 [source,java]
@@ -347,7 +347,7 @@ Retrieves the value which the ``Attribute`` instance holds.
 attribute.getValue();
 ----
 
-[#_Attribute_isAttribute__]
+[#_Attribute_isAttribute_]
 ==== isAttribute
 
 [source,java]
@@ -370,7 +370,7 @@ Checks if the concept is an ``Attribute``.
 attribute.isAttribute();
 ----
 
-[#_Attribute_isAttributeType__]
+[#_Attribute_isAttributeType_]
 ==== isAttributeType
 
 [source,java]
@@ -393,7 +393,7 @@ Checks if the concept is an ``AttributeType``.
 concept.isAttributeType();
 ----
 
-[#_Attribute_isEntity__]
+[#_Attribute_isEntity_]
 ==== isEntity
 
 [source,java]
@@ -416,7 +416,7 @@ Checks if the concept is an ``Entity``.
 concept.isEntity();
 ----
 
-[#_Attribute_isEntityType__]
+[#_Attribute_isEntityType_]
 ==== isEntityType
 
 [source,java]
@@ -439,7 +439,7 @@ Checks if the concept is an ``EntityType``.
 concept.isEntityType();
 ----
 
-[#_Attribute_isRelation__]
+[#_Attribute_isRelation_]
 ==== isRelation
 
 [source,java]
@@ -462,7 +462,7 @@ Checks if the concept is a ``Relation``.
 concept.isRelation();
 ----
 
-[#_Attribute_isRelationType__]
+[#_Attribute_isRelationType_]
 ==== isRelationType
 
 [source,java]
@@ -485,7 +485,7 @@ Checks if the concept is a ``RelationType``.
 concept.isRelationType();
 ----
 
-[#_Attribute_isRoleType__]
+[#_Attribute_isRoleType_]
 ==== isRoleType
 
 [source,java]
@@ -508,7 +508,7 @@ Checks if the concept is a ``RoleType``.
 concept.isRoleType();
 ----
 
-[#_Attribute_isThingType__]
+[#_Attribute_isThingType_]
 ==== isThingType
 
 [source,java]
@@ -531,7 +531,7 @@ Checks if the concept is a ``ThingType``.
 concept.isThingType();
 ----
 
-[#_Attribute_isType__]
+[#_Attribute_isType_]
 ==== isType
 
 [source,java]
@@ -554,7 +554,7 @@ Checks if the concept is a ``Type``.
 concept.isType();
 ----
 
-[#_Attribute_isValue__]
+[#_Attribute_isValue_]
 ==== isValue
 
 [source,java]
diff --git a/java/docs/data/Entity.adoc b/docs/modules/ROOT/partials/java/data/Entity.adoc
similarity index 91%
rename from java/docs/data/Entity.adoc
rename to docs/modules/ROOT/partials/java/data/Entity.adoc
index 362fa53964..141729e3a0 100644
--- a/java/docs/data/Entity.adoc
+++ b/docs/modules/ROOT/partials/java/data/Entity.adoc
@@ -11,7 +11,7 @@
 Instance of data of an entity type, representing a standalone object that exists in the data model independently. Entity does not have a value. It is usually addressed by its ownership over attribute instances and/or roles played in relation instances.
 
 // tag::methods[]
-[#_Entity_asAttribute__]
+[#_Entity_asAttribute_]
 ==== asAttribute
 
 [source,java]
@@ -33,7 +33,7 @@ Casts the concept to ``Attribute``.
 concept.asAttribute();
 ----
 
-[#_Entity_asAttributeType__]
+[#_Entity_asAttributeType_]
 ==== asAttributeType
 
 [source,java]
@@ -55,7 +55,7 @@ Casts the concept to ``AttributeType``.
 concept.asAttributeType();
 ----
 
-[#_Entity_asEntity__]
+[#_Entity_asEntity_]
 ==== asEntity
 
 [source,java]
@@ -78,7 +78,7 @@ Casts the concept to ``Entity``.
 entity.asEntity();
 ----
 
-[#_Entity_asEntityType__]
+[#_Entity_asEntityType_]
 ==== asEntityType
 
 [source,java]
@@ -100,7 +100,7 @@ Casts the concept to ``EntityType``.
 concept.asEntityType();
 ----
 
-[#_Entity_asRelation__]
+[#_Entity_asRelation_]
 ==== asRelation
 
 [source,java]
@@ -122,7 +122,7 @@ Casts the concept to ``Relation``.
 concept.asRelation();
 ----
 
-[#_Entity_asRelationType__]
+[#_Entity_asRelationType_]
 ==== asRelationType
 
 [source,java]
@@ -144,7 +144,7 @@ Casts the concept to ``RelationType``.
 concept.asRelationType();
 ----
 
-[#_Entity_asRoleType__]
+[#_Entity_asRoleType_]
 ==== asRoleType
 
 [source,java]
@@ -166,7 +166,7 @@ Casts the concept to ``RoleType``.
 concept.asRoleType();
 ----
 
-[#_Entity_asThingType__]
+[#_Entity_asThingType_]
 ==== asThingType
 
 [source,java]
@@ -188,7 +188,7 @@ Casts the concept to ``ThingType``.
 concept.asThingType();
 ----
 
-[#_Entity_asType__]
+[#_Entity_asType_]
 ==== asType
 
 [source,java]
@@ -210,7 +210,7 @@ Casts the concept to ``Type``.
 concept.asType();
 ----
 
-[#_Entity_asValue__]
+[#_Entity_asValue_]
 ==== asValue
 
 [source,java]
@@ -232,7 +232,7 @@ Casts the concept to ``Value``.
 concept.asValue();
 ----
 
-[#_Entity_getType__]
+[#_Entity_getType_]
 ==== getType
 
 [source,java]
@@ -255,7 +255,7 @@ Retrieves the type which this ``Entity`` belongs to.
 entity.getType();
 ----
 
-[#_Entity_isAttribute__]
+[#_Entity_isAttribute_]
 ==== isAttribute
 
 [source,java]
@@ -278,7 +278,7 @@ Checks if the concept is an ``Attribute``.
 concept.isAttribute();
 ----
 
-[#_Entity_isAttributeType__]
+[#_Entity_isAttributeType_]
 ==== isAttributeType
 
 [source,java]
@@ -301,7 +301,7 @@ Checks if the concept is an ``AttributeType``.
 concept.isAttributeType();
 ----
 
-[#_Entity_isEntity__]
+[#_Entity_isEntity_]
 ==== isEntity
 
 [source,java]
@@ -324,7 +324,7 @@ Checks if the concept is an ``Entity``.
 entity.isEntity();
 ----
 
-[#_Entity_isEntityType__]
+[#_Entity_isEntityType_]
 ==== isEntityType
 
 [source,java]
@@ -347,7 +347,7 @@ Checks if the concept is an ``EntityType``.
 concept.isEntityType();
 ----
 
-[#_Entity_isRelation__]
+[#_Entity_isRelation_]
 ==== isRelation
 
 [source,java]
@@ -370,7 +370,7 @@ Checks if the concept is a ``Relation``.
 concept.isRelation();
 ----
 
-[#_Entity_isRelationType__]
+[#_Entity_isRelationType_]
 ==== isRelationType
 
 [source,java]
@@ -393,7 +393,7 @@ Checks if the concept is a ``RelationType``.
 concept.isRelationType();
 ----
 
-[#_Entity_isRoleType__]
+[#_Entity_isRoleType_]
 ==== isRoleType
 
 [source,java]
@@ -416,7 +416,7 @@ Checks if the concept is a ``RoleType``.
 concept.isRoleType();
 ----
 
-[#_Entity_isThingType__]
+[#_Entity_isThingType_]
 ==== isThingType
 
 [source,java]
@@ -439,7 +439,7 @@ Checks if the concept is a ``ThingType``.
 concept.isThingType();
 ----
 
-[#_Entity_isType__]
+[#_Entity_isType_]
 ==== isType
 
 [source,java]
@@ -462,7 +462,7 @@ Checks if the concept is a ``Type``.
 concept.isType();
 ----
 
-[#_Entity_isValue__]
+[#_Entity_isValue_]
 ==== isValue
 
 [source,java]
diff --git a/java/docs/data/Relation.adoc b/docs/modules/ROOT/partials/java/data/Relation.adoc
similarity index 91%
rename from java/docs/data/Relation.adoc
rename to docs/modules/ROOT/partials/java/data/Relation.adoc
index 45864166bc..1a4b245c2c 100644
--- a/java/docs/data/Relation.adoc
+++ b/docs/modules/ROOT/partials/java/data/Relation.adoc
@@ -11,7 +11,7 @@
 Relation is an instance of a relation type and can be uniquely addressed by a combination of its type, owned attributes and role players.
 
 // tag::methods[]
-[#_Relation_addPlayer__TypeDBTransaction__RoleType__Thing]
+[#_Relation_addPlayer_TypeDBTransaction_RoleType_Thing]
 ==== addPlayer
 
 [source,java]
@@ -47,7 +47,7 @@ a| `player` a| The thing to play the role a| `Thing`
 relation.addPlayer(transaction, roleType, player).resolve();
 ----
 
-[#_Relation_asAttribute__]
+[#_Relation_asAttribute_]
 ==== asAttribute
 
 [source,java]
@@ -69,7 +69,7 @@ Casts the concept to ``Attribute``.
 concept.asAttribute();
 ----
 
-[#_Relation_asAttributeType__]
+[#_Relation_asAttributeType_]
 ==== asAttributeType
 
 [source,java]
@@ -91,7 +91,7 @@ Casts the concept to ``AttributeType``.
 concept.asAttributeType();
 ----
 
-[#_Relation_asEntity__]
+[#_Relation_asEntity_]
 ==== asEntity
 
 [source,java]
@@ -113,7 +113,7 @@ Casts the concept to ``Entity``.
 concept.asEntity();
 ----
 
-[#_Relation_asEntityType__]
+[#_Relation_asEntityType_]
 ==== asEntityType
 
 [source,java]
@@ -135,7 +135,7 @@ Casts the concept to ``EntityType``.
 concept.asEntityType();
 ----
 
-[#_Relation_asRelation__]
+[#_Relation_asRelation_]
 ==== asRelation
 
 [source,java]
@@ -158,7 +158,7 @@ Casts the concept to ``Relation``.
 relation.asRelation();
 ----
 
-[#_Relation_asRelationType__]
+[#_Relation_asRelationType_]
 ==== asRelationType
 
 [source,java]
@@ -180,7 +180,7 @@ Casts the concept to ``RelationType``.
 concept.asRelationType();
 ----
 
-[#_Relation_asRoleType__]
+[#_Relation_asRoleType_]
 ==== asRoleType
 
 [source,java]
@@ -202,7 +202,7 @@ Casts the concept to ``RoleType``.
 concept.asRoleType();
 ----
 
-[#_Relation_asThingType__]
+[#_Relation_asThingType_]
 ==== asThingType
 
 [source,java]
@@ -224,7 +224,7 @@ Casts the concept to ``ThingType``.
 concept.asThingType();
 ----
 
-[#_Relation_asType__]
+[#_Relation_asType_]
 ==== asType
 
 [source,java]
@@ -246,7 +246,7 @@ Casts the concept to ``Type``.
 concept.asType();
 ----
 
-[#_Relation_asValue__]
+[#_Relation_asValue_]
 ==== asValue
 
 [source,java]
@@ -268,7 +268,7 @@ Casts the concept to ``Value``.
 concept.asValue();
 ----
 
-[#_Relation_getPlayers__TypeDBTransaction]
+[#_Relation_getPlayers_TypeDBTransaction]
 ==== getPlayers
 
 [source,java]
@@ -300,7 +300,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 relation.getPlayers(transaction)
 ----
 
-[#_Relation_getPlayersByRoleType__TypeDBTransaction__RoleType___]
+[#_Relation_getPlayersByRoleType_TypeDBTransaction_RoleType_]
 ==== getPlayersByRoleType
 
 [source,java]
@@ -334,7 +334,7 @@ a| `roleTypes` a| 0 or more role types a| `RoleType[]`
 relation.getPlayersByRoleType(transaction, roleTypes);
 ----
 
-[#_Relation_getRelating__TypeDBTransaction]
+[#_Relation_getRelating_TypeDBTransaction]
 ==== getRelating
 
 [source,java]
@@ -366,7 +366,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 relation.getRelating(transaction);
 ----
 
-[#_Relation_getType__]
+[#_Relation_getType_]
 ==== getType
 
 [source,java]
@@ -389,7 +389,7 @@ Retrieves the type which this ``Relation`` belongs to.
 relation.getType();
 ----
 
-[#_Relation_isAttribute__]
+[#_Relation_isAttribute_]
 ==== isAttribute
 
 [source,java]
@@ -412,7 +412,7 @@ Checks if the concept is an ``Attribute``.
 concept.isAttribute();
 ----
 
-[#_Relation_isAttributeType__]
+[#_Relation_isAttributeType_]
 ==== isAttributeType
 
 [source,java]
@@ -435,7 +435,7 @@ Checks if the concept is an ``AttributeType``.
 concept.isAttributeType();
 ----
 
-[#_Relation_isEntity__]
+[#_Relation_isEntity_]
 ==== isEntity
 
 [source,java]
@@ -458,7 +458,7 @@ Checks if the concept is an ``Entity``.
 concept.isEntity();
 ----
 
-[#_Relation_isEntityType__]
+[#_Relation_isEntityType_]
 ==== isEntityType
 
 [source,java]
@@ -481,7 +481,7 @@ Checks if the concept is an ``EntityType``.
 concept.isEntityType();
 ----
 
-[#_Relation_isRelation__]
+[#_Relation_isRelation_]
 ==== isRelation
 
 [source,java]
@@ -504,7 +504,7 @@ Checks if the concept is a ``Relation``.
 relation.isRelation();
 ----
 
-[#_Relation_isRelationType__]
+[#_Relation_isRelationType_]
 ==== isRelationType
 
 [source,java]
@@ -527,7 +527,7 @@ Checks if the concept is a ``RelationType``.
 concept.isRelationType();
 ----
 
-[#_Relation_isRoleType__]
+[#_Relation_isRoleType_]
 ==== isRoleType
 
 [source,java]
@@ -550,7 +550,7 @@ Checks if the concept is a ``RoleType``.
 concept.isRoleType();
 ----
 
-[#_Relation_isThingType__]
+[#_Relation_isThingType_]
 ==== isThingType
 
 [source,java]
@@ -573,7 +573,7 @@ Checks if the concept is a ``ThingType``.
 concept.isThingType();
 ----
 
-[#_Relation_isType__]
+[#_Relation_isType_]
 ==== isType
 
 [source,java]
@@ -596,7 +596,7 @@ Checks if the concept is a ``Type``.
 concept.isType();
 ----
 
-[#_Relation_isValue__]
+[#_Relation_isValue_]
 ==== isValue
 
 [source,java]
@@ -619,7 +619,7 @@ Checks if the concept is a ``Value``.
 concept.isValue();
 ----
 
-[#_Relation_removePlayer__TypeDBTransaction__RoleType__Thing]
+[#_Relation_removePlayer_TypeDBTransaction_RoleType_Thing]
 ==== removePlayer
 
 [source,java]
diff --git a/java/docs/data/Thing.adoc b/docs/modules/ROOT/partials/java/data/Thing.adoc
similarity index 91%
rename from java/docs/data/Thing.adoc
rename to docs/modules/ROOT/partials/java/data/Thing.adoc
index 1d57d965d2..724bf5cacf 100644
--- a/java/docs/data/Thing.adoc
+++ b/docs/modules/ROOT/partials/java/data/Thing.adoc
@@ -8,7 +8,7 @@
 * `Concept`
 
 // tag::methods[]
-[#_Thing_asAttribute__]
+[#_Thing_asAttribute_]
 ==== asAttribute
 
 [source,java]
@@ -30,7 +30,7 @@ Casts the concept to ``Attribute``.
 concept.asAttribute();
 ----
 
-[#_Thing_asAttributeType__]
+[#_Thing_asAttributeType_]
 ==== asAttributeType
 
 [source,java]
@@ -52,7 +52,7 @@ Casts the concept to ``AttributeType``.
 concept.asAttributeType();
 ----
 
-[#_Thing_asEntity__]
+[#_Thing_asEntity_]
 ==== asEntity
 
 [source,java]
@@ -74,7 +74,7 @@ Casts the concept to ``Entity``.
 concept.asEntity();
 ----
 
-[#_Thing_asEntityType__]
+[#_Thing_asEntityType_]
 ==== asEntityType
 
 [source,java]
@@ -96,7 +96,7 @@ Casts the concept to ``EntityType``.
 concept.asEntityType();
 ----
 
-[#_Thing_asRelation__]
+[#_Thing_asRelation_]
 ==== asRelation
 
 [source,java]
@@ -118,7 +118,7 @@ Casts the concept to ``Relation``.
 concept.asRelation();
 ----
 
-[#_Thing_asRelationType__]
+[#_Thing_asRelationType_]
 ==== asRelationType
 
 [source,java]
@@ -140,7 +140,7 @@ Casts the concept to ``RelationType``.
 concept.asRelationType();
 ----
 
-[#_Thing_asRoleType__]
+[#_Thing_asRoleType_]
 ==== asRoleType
 
 [source,java]
@@ -162,7 +162,7 @@ Casts the concept to ``RoleType``.
 concept.asRoleType();
 ----
 
-[#_Thing_asThing__]
+[#_Thing_asThing_]
 ==== asThing
 
 [source,java]
@@ -185,7 +185,7 @@ Casts the concept to ``Thing``.
 thing.asThing();
 ----
 
-[#_Thing_asThingType__]
+[#_Thing_asThingType_]
 ==== asThingType
 
 [source,java]
@@ -207,7 +207,7 @@ Casts the concept to ``ThingType``.
 concept.asThingType();
 ----
 
-[#_Thing_asType__]
+[#_Thing_asType_]
 ==== asType
 
 [source,java]
@@ -229,7 +229,7 @@ Casts the concept to ``Type``.
 concept.asType();
 ----
 
-[#_Thing_asValue__]
+[#_Thing_asValue_]
 ==== asValue
 
 [source,java]
@@ -251,7 +251,7 @@ Casts the concept to ``Value``.
 concept.asValue();
 ----
 
-[#_Thing_delete__TypeDBTransaction]
+[#_Thing_delete_TypeDBTransaction]
 ==== delete
 
 [source,java]
@@ -283,7 +283,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thing.delete(transaction).resolve();
 ----
 
-[#_Thing_getHas__TypeDBTransaction__AttributeType___]
+[#_Thing_getHas_TypeDBTransaction_AttributeType_]
 ==== getHas
 
 [source,java]
@@ -318,7 +318,7 @@ thing.getHas(transaction);
  thing.getHas(transaction, attributeType);
 ----
 
-[#_Thing_getHas__TypeDBTransaction__java_util_Set_ThingType_Annotation_]
+[#_Thing_getHas_TypeDBTransaction_java_util_Set_ThingType_Annotation_]
 ==== getHas
 
 [source,java]
@@ -353,7 +353,7 @@ thing.getHas(transaction);
  thing.getHas(transaction, set(Annotation.key()));
 ----
 
-[#_Thing_getIID__]
+[#_Thing_getIID_]
 ==== getIID
 
 [source,java]
@@ -376,7 +376,7 @@ Retrieves the unique id of the ``Thing``.
 thing.getIID();
 ----
 
-[#_Thing_getPlaying__TypeDBTransaction]
+[#_Thing_getPlaying_TypeDBTransaction]
 ==== getPlaying
 
 [source,java]
@@ -408,7 +408,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thing.getPlaying(transaction);
 ----
 
-[#_Thing_getRelations__TypeDBTransaction__RoleType___]
+[#_Thing_getRelations_TypeDBTransaction_RoleType_]
 ==== getRelations
 
 [source,java]
@@ -442,7 +442,7 @@ a| `roleTypes` a| The array of roles to filter the relations by. a| `RoleType[]`
 thing.getRelations(transaction, roleTypes);
 ----
 
-[#_Thing_getType__]
+[#_Thing_getType_]
 ==== getType
 
 [source,java]
@@ -465,7 +465,7 @@ Retrieves the type which this ``Thing`` belongs to.
 thing.getType();
 ----
 
-[#_Thing_isAttribute__]
+[#_Thing_isAttribute_]
 ==== isAttribute
 
 [source,java]
@@ -488,7 +488,7 @@ Checks if the concept is an ``Attribute``.
 concept.isAttribute();
 ----
 
-[#_Thing_isAttributeType__]
+[#_Thing_isAttributeType_]
 ==== isAttributeType
 
 [source,java]
@@ -511,7 +511,7 @@ Checks if the concept is an ``AttributeType``.
 concept.isAttributeType();
 ----
 
-[#_Thing_isDeleted__TypeDBTransaction]
+[#_Thing_isDeleted_TypeDBTransaction]
 ==== isDeleted
 
 [source,java]
@@ -543,7 +543,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thing.isDeleted(transaction).resolve();
 ----
 
-[#_Thing_isEntity__]
+[#_Thing_isEntity_]
 ==== isEntity
 
 [source,java]
@@ -566,7 +566,7 @@ Checks if the concept is an ``Entity``.
 concept.isEntity();
 ----
 
-[#_Thing_isEntityType__]
+[#_Thing_isEntityType_]
 ==== isEntityType
 
 [source,java]
@@ -589,7 +589,7 @@ Checks if the concept is an ``EntityType``.
 concept.isEntityType();
 ----
 
-[#_Thing_isInferred__]
+[#_Thing_isInferred_]
 ==== isInferred
 
 [source,java]
@@ -612,7 +612,7 @@ Checks if this ``Thing`` is inferred by a [Reasoning Rule].
 thing.isInferred();
 ----
 
-[#_Thing_isRelation__]
+[#_Thing_isRelation_]
 ==== isRelation
 
 [source,java]
@@ -635,7 +635,7 @@ Checks if the concept is a ``Relation``.
 concept.isRelation();
 ----
 
-[#_Thing_isRelationType__]
+[#_Thing_isRelationType_]
 ==== isRelationType
 
 [source,java]
@@ -658,7 +658,7 @@ Checks if the concept is a ``RelationType``.
 concept.isRelationType();
 ----
 
-[#_Thing_isRoleType__]
+[#_Thing_isRoleType_]
 ==== isRoleType
 
 [source,java]
@@ -681,7 +681,7 @@ Checks if the concept is a ``RoleType``.
 concept.isRoleType();
 ----
 
-[#_Thing_isThing__]
+[#_Thing_isThing_]
 ==== isThing
 
 [source,java]
@@ -704,7 +704,7 @@ Checks if the concept is a ``Thing``.
 thing.isThing();
 ----
 
-[#_Thing_isThingType__]
+[#_Thing_isThingType_]
 ==== isThingType
 
 [source,java]
@@ -727,7 +727,7 @@ Checks if the concept is a ``ThingType``.
 concept.isThingType();
 ----
 
-[#_Thing_isType__]
+[#_Thing_isType_]
 ==== isType
 
 [source,java]
@@ -750,7 +750,7 @@ Checks if the concept is a ``Type``.
 concept.isType();
 ----
 
-[#_Thing_isValue__]
+[#_Thing_isValue_]
 ==== isValue
 
 [source,java]
@@ -773,7 +773,7 @@ Checks if the concept is a ``Value``.
 concept.isValue();
 ----
 
-[#_Thing_setHas__TypeDBTransaction__Attribute]
+[#_Thing_setHas_TypeDBTransaction_Attribute]
 ==== setHas
 
 [source,java]
@@ -807,7 +807,7 @@ a| `attribute` a| The ``Attribute`` to be owned by this ``Thing``. a| `Attribute
 thing.setHas(transaction, attribute).resolve();
 ----
 
-[#_Thing_unsetHas__TypeDBTransaction__Attribute]
+[#_Thing_unsetHas_TypeDBTransaction_Attribute]
 ==== unsetHas
 
 [source,java]
diff --git a/java/docs/data/Value.adoc b/docs/modules/ROOT/partials/java/data/Value.adoc
similarity index 92%
rename from java/docs/data/Value.adoc
rename to docs/modules/ROOT/partials/java/data/Value.adoc
index 78401a53ed..437d37616e 100644
--- a/java/docs/data/Value.adoc
+++ b/docs/modules/ROOT/partials/java/data/Value.adoc
@@ -19,7 +19,7 @@ a| `ISO_LOCAL_DATE_TIME_MILLIS` a| `static java.time.format.DateTimeFormatter` a
 // end::properties[]
 
 // tag::methods[]
-[#_Value_asAttribute__]
+[#_Value_asAttribute_]
 ==== asAttribute
 
 [source,java]
@@ -41,7 +41,7 @@ Casts the concept to ``Attribute``.
 concept.asAttribute();
 ----
 
-[#_Value_asAttributeType__]
+[#_Value_asAttributeType_]
 ==== asAttributeType
 
 [source,java]
@@ -63,7 +63,7 @@ Casts the concept to ``AttributeType``.
 concept.asAttributeType();
 ----
 
-[#_Value_asBoolean__]
+[#_Value_asBoolean_]
 ==== asBoolean
 
 [source,java]
@@ -85,7 +85,7 @@ Returns a ``boolean`` value of this value concept. If the value has another type
 value.asBoolean();
 ----
 
-[#_Value_asDateTime__]
+[#_Value_asDateTime_]
 ==== asDateTime
 
 [source,java]
@@ -107,7 +107,7 @@ Returns a ``datetime`` value of this value concept. If the value has another typ
 value.asDatetime();
 ----
 
-[#_Value_asDouble__]
+[#_Value_asDouble_]
 ==== asDouble
 
 [source,java]
@@ -129,7 +129,7 @@ Returns a ``double`` value of this value concept. If the value has another type,
 value.asDouble();
 ----
 
-[#_Value_asEntity__]
+[#_Value_asEntity_]
 ==== asEntity
 
 [source,java]
@@ -151,7 +151,7 @@ Casts the concept to ``Entity``.
 concept.asEntity();
 ----
 
-[#_Value_asEntityType__]
+[#_Value_asEntityType_]
 ==== asEntityType
 
 [source,java]
@@ -173,7 +173,7 @@ Casts the concept to ``EntityType``.
 concept.asEntityType();
 ----
 
-[#_Value_asLong__]
+[#_Value_asLong_]
 ==== asLong
 
 [source,java]
@@ -195,7 +195,7 @@ Returns a ``long`` value of this value concept. If the value has another type, r
 value.asLong();
 ----
 
-[#_Value_asRelation__]
+[#_Value_asRelation_]
 ==== asRelation
 
 [source,java]
@@ -217,7 +217,7 @@ Casts the concept to ``Relation``.
 concept.asRelation();
 ----
 
-[#_Value_asRelationType__]
+[#_Value_asRelationType_]
 ==== asRelationType
 
 [source,java]
@@ -239,7 +239,7 @@ Casts the concept to ``RelationType``.
 concept.asRelationType();
 ----
 
-[#_Value_asRoleType__]
+[#_Value_asRoleType_]
 ==== asRoleType
 
 [source,java]
@@ -261,7 +261,7 @@ Casts the concept to ``RoleType``.
 concept.asRoleType();
 ----
 
-[#_Value_asString__]
+[#_Value_asString_]
 ==== asString
 
 [source,java]
@@ -283,7 +283,7 @@ Returns a ``string`` value of this value concept. If the value has another type,
 value.asString();
 ----
 
-[#_Value_asThing__]
+[#_Value_asThing_]
 ==== asThing
 
 [source,java]
@@ -305,7 +305,7 @@ Casts the concept to ``Thing``.
 concept.asThing();
 ----
 
-[#_Value_asThingType__]
+[#_Value_asThingType_]
 ==== asThingType
 
 [source,java]
@@ -327,7 +327,7 @@ Casts the concept to ``ThingType``.
 concept.asThingType();
 ----
 
-[#_Value_asType__]
+[#_Value_asType_]
 ==== asType
 
 [source,java]
@@ -349,7 +349,7 @@ Casts the concept to ``Type``.
 concept.asType();
 ----
 
-[#_Value_asUntyped__]
+[#_Value_asUntyped_]
 ==== asUntyped
 
 [source,java]
@@ -371,7 +371,7 @@ Returns an untyped ``Object`` value of this value concept. This is useful for va
 value.asUntyped();
 ----
 
-[#_Value_asValue__]
+[#_Value_asValue_]
 ==== asValue
 
 [source,java]
@@ -393,7 +393,7 @@ Casts the concept to ``Value``.
 concept.asValue();
 ----
 
-[#_Value_getType__]
+[#_Value_getType_]
 ==== getType
 
 [source,java]
@@ -415,7 +415,7 @@ Retrieves the ``Value.Type`` of this value concept.
 value.getType()
 ----
 
-[#_Value_isAttribute__]
+[#_Value_isAttribute_]
 ==== isAttribute
 
 [source,java]
@@ -438,7 +438,7 @@ Checks if the concept is an ``Attribute``.
 concept.isAttribute();
 ----
 
-[#_Value_isAttributeType__]
+[#_Value_isAttributeType_]
 ==== isAttributeType
 
 [source,java]
@@ -461,7 +461,7 @@ Checks if the concept is an ``AttributeType``.
 concept.isAttributeType();
 ----
 
-[#_Value_isBoolean__]
+[#_Value_isBoolean_]
 ==== isBoolean
 
 [source,java]
@@ -483,7 +483,7 @@ Returns ``True`` if the value which this value concept holds is of type ``boolea
 value.isBoolean()
 ----
 
-[#_Value_isDateTime__]
+[#_Value_isDateTime_]
 ==== isDateTime
 
 [source,java]
@@ -505,7 +505,7 @@ Returns ``True`` if the value which this value concept holds is of type ``dateti
 value.isDatetime();
 ----
 
-[#_Value_isDouble__]
+[#_Value_isDouble_]
 ==== isDouble
 
 [source,java]
@@ -527,7 +527,7 @@ Returns ``True`` if the value which this value concept holds is of type ``double
 value.isDouble();
 ----
 
-[#_Value_isEntity__]
+[#_Value_isEntity_]
 ==== isEntity
 
 [source,java]
@@ -550,7 +550,7 @@ Checks if the concept is an ``Entity``.
 concept.isEntity();
 ----
 
-[#_Value_isEntityType__]
+[#_Value_isEntityType_]
 ==== isEntityType
 
 [source,java]
@@ -573,7 +573,7 @@ Checks if the concept is an ``EntityType``.
 concept.isEntityType();
 ----
 
-[#_Value_isLong__]
+[#_Value_isLong_]
 ==== isLong
 
 [source,java]
@@ -595,7 +595,7 @@ Returns ``True`` if the value which this value concept holds is of type ``long``
 value.isLong();
 ----
 
-[#_Value_isRelation__]
+[#_Value_isRelation_]
 ==== isRelation
 
 [source,java]
@@ -618,7 +618,7 @@ Checks if the concept is a ``Relation``.
 concept.isRelation();
 ----
 
-[#_Value_isRelationType__]
+[#_Value_isRelationType_]
 ==== isRelationType
 
 [source,java]
@@ -641,7 +641,7 @@ Checks if the concept is a ``RelationType``.
 concept.isRelationType();
 ----
 
-[#_Value_isRoleType__]
+[#_Value_isRoleType_]
 ==== isRoleType
 
 [source,java]
@@ -664,7 +664,7 @@ Checks if the concept is a ``RoleType``.
 concept.isRoleType();
 ----
 
-[#_Value_isString__]
+[#_Value_isString_]
 ==== isString
 
 [source,java]
@@ -686,7 +686,7 @@ Returns ``True`` if the value which this value concept holds is of type ``string
 value.isString();
 ----
 
-[#_Value_isThing__]
+[#_Value_isThing_]
 ==== isThing
 
 [source,java]
@@ -709,7 +709,7 @@ Checks if the concept is a ``Thing``.
 concept.isThing();
 ----
 
-[#_Value_isThingType__]
+[#_Value_isThingType_]
 ==== isThingType
 
 [source,java]
@@ -732,7 +732,7 @@ Checks if the concept is a ``ThingType``.
 concept.isThingType();
 ----
 
-[#_Value_isType__]
+[#_Value_isType_]
 ==== isType
 
 [source,java]
@@ -755,7 +755,7 @@ Checks if the concept is a ``Type``.
 concept.isType();
 ----
 
-[#_Value_isValue__]
+[#_Value_isValue_]
 ==== isValue
 
 [source,java]
diff --git a/java/docs/errors/TypeDBDriverException.adoc b/docs/modules/ROOT/partials/java/errors/TypeDBDriverException.adoc
similarity index 86%
rename from java/docs/errors/TypeDBDriverException.adoc
rename to docs/modules/ROOT/partials/java/errors/TypeDBDriverException.adoc
index 7dc6126a27..cb53dc1c12 100644
--- a/java/docs/errors/TypeDBDriverException.adoc
+++ b/docs/modules/ROOT/partials/java/errors/TypeDBDriverException.adoc
@@ -6,7 +6,7 @@
 Exceptions raised by the driver.
 
 // tag::methods[]
-[#_TypeDBDriverException_getErrorMessage__]
+[#_TypeDBDriverException_getErrorMessage_]
 ==== getErrorMessage
 
 [source,java]
@@ -21,7 +21,7 @@ public com.vaticle.typedb.driver.common.exception.ErrorMessage getErrorMessage()
 .Returns
 `public com.vaticle.typedb.driver.common.exception.ErrorMessage`
 
-[#_TypeDBDriverException_getName__]
+[#_TypeDBDriverException_getName_]
 ==== getName
 
 [source,java]
diff --git a/java/docs/logic/LogicManager.adoc b/docs/modules/ROOT/partials/java/logic/LogicManager.adoc
similarity index 90%
rename from java/docs/logic/LogicManager.adoc
rename to docs/modules/ROOT/partials/java/logic/LogicManager.adoc
index d3ab2bbe79..da33f501ec 100644
--- a/java/docs/logic/LogicManager.adoc
+++ b/docs/modules/ROOT/partials/java/logic/LogicManager.adoc
@@ -6,7 +6,7 @@
 Provides methods for manipulating rules in the database.
 
 // tag::methods[]
-[#_LogicManager_getRule__java_lang_String]
+[#_LogicManager_getRule_java_lang_String]
 ==== getRule
 
 [source,java]
@@ -38,7 +38,7 @@ a| `label` a| The label of the Rule to create or retrieve a| `java.lang.String`
 transaction.logic().getRule(label).resolve();
 ----
 
-[#_LogicManager_getRules__]
+[#_LogicManager_getRules_]
 ==== getRules
 
 [source,java]
@@ -61,7 +61,7 @@ Retrieves all rules.
 transaction.logic().getRules()
 ----
 
-[#_LogicManager_putRule__java_lang_String__com_vaticle_typeql_lang_pattern_Pattern__com_vaticle_typeql_lang_pattern_Pattern]
+[#_LogicManager_putRule_java_lang_String_com_vaticle_typeql_lang_pattern_Pattern_com_vaticle_typeql_lang_pattern_Pattern]
 ==== putRule
 
 [source,java]
diff --git a/java/docs/logic/Rule.adoc b/docs/modules/ROOT/partials/java/logic/Rule.adoc
similarity index 93%
rename from java/docs/logic/Rule.adoc
rename to docs/modules/ROOT/partials/java/logic/Rule.adoc
index 56f58eda41..e0c0719354 100644
--- a/java/docs/logic/Rule.adoc
+++ b/docs/modules/ROOT/partials/java/logic/Rule.adoc
@@ -6,7 +6,7 @@
 Rules are a part of schema and define embedded logic. The reasoning engine uses rules as a set of logic to infer new data. A rule consists of a condition and a conclusion, and is uniquely identified by a label.
 
 // tag::methods[]
-[#_Rule_delete__TypeDBTransaction]
+[#_Rule_delete_TypeDBTransaction]
 ==== delete
 
 [source,java]
@@ -38,7 +38,7 @@ a| `transaction` a| The current ``Transaction`` a| `TypeDBTransaction`
 rule.delete(transaction).resolve();
 ----
 
-[#_Rule_getLabel__]
+[#_Rule_getLabel_]
 ==== getLabel
 
 [source,java]
@@ -53,7 +53,7 @@ Retrieves the unique label of the rule.
 .Returns
 `java.lang.String`
 
-[#_Rule_getThen__]
+[#_Rule_getThen_]
 ==== getThen
 
 [source,java]
@@ -68,7 +68,7 @@ The single statement that constitutes the ‘then’ of the rule.
 .Returns
 `com.vaticle.typeql.lang.pattern.Pattern`
 
-[#_Rule_getWhen__]
+[#_Rule_getWhen_]
 ==== getWhen
 
 [source,java]
@@ -83,7 +83,7 @@ The statements that constitute the ‘when’ of the rule.
 .Returns
 `com.vaticle.typeql.lang.pattern.Pattern`
 
-[#_Rule_isDeleted__TypeDBTransaction]
+[#_Rule_isDeleted_TypeDBTransaction]
 ==== isDeleted
 
 [source,java]
@@ -115,7 +115,7 @@ a| `transaction` a| The current ``Transaction`` a| `TypeDBTransaction`
 rule.isDeleted(transaction).resolve();
 ----
 
-[#_Rule_setLabel__TypeDBTransaction__java_lang_String]
+[#_Rule_setLabel_TypeDBTransaction_java_lang_String]
 ==== setLabel
 
 [source,java]
diff --git a/java/docs/schema/AttributeType.adoc b/docs/modules/ROOT/partials/java/schema/AttributeType.adoc
similarity index 91%
rename from java/docs/schema/AttributeType.adoc
rename to docs/modules/ROOT/partials/java/schema/AttributeType.adoc
index 0faf6402a2..267f817897 100644
--- a/java/docs/schema/AttributeType.adoc
+++ b/docs/modules/ROOT/partials/java/schema/AttributeType.adoc
@@ -18,7 +18,7 @@ Other types can own an attribute type. That means that instances of these other
 Multiple types can own the same attribute type, and different instances of the same type or different types can share ownership of the same attribute instance.
 
 // tag::methods[]
-[#_AttributeType_asAttribute__]
+[#_AttributeType_asAttribute_]
 ==== asAttribute
 
 [source,java]
@@ -40,7 +40,7 @@ Casts the concept to ``Attribute``.
 concept.asAttribute();
 ----
 
-[#_AttributeType_asAttributeType__]
+[#_AttributeType_asAttributeType_]
 ==== asAttributeType
 
 [source,java]
@@ -63,7 +63,7 @@ Casts the concept to ``AttributeType``.
 concept.asAttributeType();
 ----
 
-[#_AttributeType_asEntity__]
+[#_AttributeType_asEntity_]
 ==== asEntity
 
 [source,java]
@@ -85,7 +85,7 @@ Casts the concept to ``Entity``.
 concept.asEntity();
 ----
 
-[#_AttributeType_asEntityType__]
+[#_AttributeType_asEntityType_]
 ==== asEntityType
 
 [source,java]
@@ -107,7 +107,7 @@ Casts the concept to ``EntityType``.
 concept.asEntityType();
 ----
 
-[#_AttributeType_asRelation__]
+[#_AttributeType_asRelation_]
 ==== asRelation
 
 [source,java]
@@ -129,7 +129,7 @@ Casts the concept to ``Relation``.
 concept.asRelation();
 ----
 
-[#_AttributeType_asRelationType__]
+[#_AttributeType_asRelationType_]
 ==== asRelationType
 
 [source,java]
@@ -151,7 +151,7 @@ Casts the concept to ``RelationType``.
 concept.asRelationType();
 ----
 
-[#_AttributeType_asRoleType__]
+[#_AttributeType_asRoleType_]
 ==== asRoleType
 
 [source,java]
@@ -173,7 +173,7 @@ Casts the concept to ``RoleType``.
 concept.asRoleType();
 ----
 
-[#_AttributeType_asThing__]
+[#_AttributeType_asThing_]
 ==== asThing
 
 [source,java]
@@ -195,7 +195,7 @@ Casts the concept to ``Thing``.
 concept.asThing();
 ----
 
-[#_AttributeType_asValue__]
+[#_AttributeType_asValue_]
 ==== asValue
 
 [source,java]
@@ -217,7 +217,7 @@ Casts the concept to ``Value``.
 concept.asValue();
 ----
 
-[#_AttributeType_get__TypeDBTransaction__Value]
+[#_AttributeType_get_TypeDBTransaction_Value]
 ==== get
 
 [source,java]
@@ -251,7 +251,7 @@ a| `value` a| ``Attribute``’s value a| `Value`
 attributeType.get(transaction, value).resolve();
 ----
 
-[#_AttributeType_get__TypeDBTransaction__java_lang_String]
+[#_AttributeType_get_TypeDBTransaction_java_lang_String]
 ==== get
 
 [source,java]
@@ -285,7 +285,7 @@ a| `value` a| ``Attribute``’s value a| `java.lang.String`
 attributeType.get(transaction, value).resolve();
 ----
 
-[#_AttributeType_get__TypeDBTransaction__long]
+[#_AttributeType_get_TypeDBTransaction_long]
 ==== get
 
 [source,java]
@@ -319,7 +319,7 @@ a| `value` a| ``Attribute``’s value a| `long`
 attributeType.get(transaction, value).resolve();
 ----
 
-[#_AttributeType_get__TypeDBTransaction__double]
+[#_AttributeType_get_TypeDBTransaction_double]
 ==== get
 
 [source,java]
@@ -353,7 +353,7 @@ a| `value` a| ``Attribute``’s value a| `double`
 attributeType.get(transaction, value).resolve();
 ----
 
-[#_AttributeType_get__TypeDBTransaction__boolean]
+[#_AttributeType_get_TypeDBTransaction_boolean]
 ==== get
 
 [source,java]
@@ -387,7 +387,7 @@ a| `value` a| ``Attribute``’s value a| `boolean`
 attributeType.get(transaction, value).resolve();
 ----
 
-[#_AttributeType_get__TypeDBTransaction__java_time_LocalDateTime]
+[#_AttributeType_get_TypeDBTransaction_java_time_LocalDateTime]
 ==== get
 
 [source,java]
@@ -421,7 +421,7 @@ a| `value` a| ``Attribute``’s value a| `java.time.LocalDateTime`
 attributeType.get(transaction, value).resolve();
 ----
 
-[#_AttributeType_getInstances__TypeDBTransaction]
+[#_AttributeType_getInstances_TypeDBTransaction]
 ==== getInstances
 
 [source,java]
@@ -457,7 +457,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 attributeType.getInstances(transaction);
 ----
 
-[#_AttributeType_getInstances__TypeDBTransaction__Concept_Transitivity]
+[#_AttributeType_getInstances_TypeDBTransaction_Concept_Transitivity]
 ==== getInstances
 
 [source,java]
@@ -491,7 +491,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and indirect subtype
 attributeType.getInstances(transaction, transitivity);
 ----
 
-[#_AttributeType_getOwners__TypeDBTransaction]
+[#_AttributeType_getOwners_TypeDBTransaction]
 ==== getOwners
 
 [source,java]
@@ -523,7 +523,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 attributeType.getOwners(transaction);
 ----
 
-[#_AttributeType_getOwners__TypeDBTransaction__java_util_Set_ThingType_Annotation_]
+[#_AttributeType_getOwners_TypeDBTransaction_java_util_Set_ThingType_Annotation_]
 ==== getOwners
 
 [source,java]
@@ -557,7 +557,7 @@ a| `annotations` a| Only retrieve ``ThingTypes`` that have an attribute of this
 attributeType.getOwners(transaction, annotations);
 ----
 
-[#_AttributeType_getOwners__TypeDBTransaction__Concept_Transitivity]
+[#_AttributeType_getOwners_TypeDBTransaction_Concept_Transitivity]
 ==== getOwners
 
 [source,java]
@@ -591,7 +591,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and inherited owners
 attributeType.getOwners(transaction, transitivity);
 ----
 
-[#_AttributeType_getOwners__TypeDBTransaction__java_util_Set_ThingType_Annotation___Concept_Transitivity]
+[#_AttributeType_getOwners_TypeDBTransaction_java_util_Set_ThingType_Annotation_Concept_Transitivity]
 ==== getOwners
 
 [source,java]
@@ -627,7 +627,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and inherited owners
 attributeType.getOwners(transaction, annotations, transitivity);
 ----
 
-[#_AttributeType_getRegex__TypeDBTransaction]
+[#_AttributeType_getRegex_TypeDBTransaction]
 ==== getRegex
 
 [source,java]
@@ -659,7 +659,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 attributeType.getRegex(transaction).resolve();
 ----
 
-[#_AttributeType_getSubtypes__TypeDBTransaction]
+[#_AttributeType_getSubtypes_TypeDBTransaction]
 ==== getSubtypes
 
 [source,java]
@@ -695,7 +695,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 attributeType.getSubtypes(transaction);
 ----
 
-[#_AttributeType_getSubtypes__TypeDBTransaction__Value_Type]
+[#_AttributeType_getSubtypes_TypeDBTransaction_Value_Type]
 ==== getSubtypes
 
 [source,java]
@@ -729,7 +729,7 @@ a| `valueType` a| ``Value.Type`` for retrieving subtypes a| `Value.Type`
 attributeType.getSubtypes(transaction, valueType);
 ----
 
-[#_AttributeType_getSubtypes__TypeDBTransaction__Value_Type__Concept_Transitivity]
+[#_AttributeType_getSubtypes_TypeDBTransaction_Value_Type_Concept_Transitivity]
 ==== getSubtypes
 
 [source,java]
@@ -765,7 +765,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and indirect subtype
 attributeType.getSubtypes(transaction, valueType, transitivity);
 ----
 
-[#_AttributeType_getSubtypes__TypeDBTransaction__Concept_Transitivity]
+[#_AttributeType_getSubtypes_TypeDBTransaction_Concept_Transitivity]
 ==== getSubtypes
 
 [source,java]
@@ -799,7 +799,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and indirect subtype
 attributeType.getSubtypes(transaction, transitivity);
 ----
 
-[#_AttributeType_getValueType__]
+[#_AttributeType_getValueType_]
 ==== getValueType
 
 [source,java]
@@ -822,7 +822,7 @@ Retrieves the ``Value.Type`` of this ``AttributeType``.
 attributeType.getValueType();
 ----
 
-[#_AttributeType_isAttribute__]
+[#_AttributeType_isAttribute_]
 ==== isAttribute
 
 [source,java]
@@ -845,7 +845,7 @@ Checks if the concept is an ``Attribute``.
 concept.isAttribute();
 ----
 
-[#_AttributeType_isAttributeType__]
+[#_AttributeType_isAttributeType_]
 ==== isAttributeType
 
 [source,java]
@@ -868,7 +868,7 @@ Checks if the concept is an ``AttributeType``.
 concept.isAttributeType();
 ----
 
-[#_AttributeType_isBoolean__]
+[#_AttributeType_isBoolean_]
 ==== isBoolean
 
 [source,java]
@@ -891,7 +891,7 @@ Returns ``True`` if the value for attributes of this type is of type ``boolean``
 attributeType.isBoolean();
 ----
 
-[#_AttributeType_isDateTime__]
+[#_AttributeType_isDateTime_]
 ==== isDateTime
 
 [source,java]
@@ -914,7 +914,7 @@ Returns ``True`` if the value for attributes of this type is of type ``datetime`
 attributeType.isDatetime();
 ----
 
-[#_AttributeType_isDouble__]
+[#_AttributeType_isDouble_]
 ==== isDouble
 
 [source,java]
@@ -937,7 +937,7 @@ Returns ``True`` if the value for attributes of this type is of type ``double``.
 attributeType.isDouble();
 ----
 
-[#_AttributeType_isEntity__]
+[#_AttributeType_isEntity_]
 ==== isEntity
 
 [source,java]
@@ -960,7 +960,7 @@ Checks if the concept is an ``Entity``.
 concept.isEntity();
 ----
 
-[#_AttributeType_isEntityType__]
+[#_AttributeType_isEntityType_]
 ==== isEntityType
 
 [source,java]
@@ -983,7 +983,7 @@ Checks if the concept is an ``EntityType``.
 concept.isEntityType();
 ----
 
-[#_AttributeType_isLong__]
+[#_AttributeType_isLong_]
 ==== isLong
 
 [source,java]
@@ -1006,7 +1006,7 @@ Returns ``True`` if the value for attributes of this type is of type ``long``. O
 attributeType.isLong();
 ----
 
-[#_AttributeType_isRelation__]
+[#_AttributeType_isRelation_]
 ==== isRelation
 
 [source,java]
@@ -1029,7 +1029,7 @@ Checks if the concept is a ``Relation``.
 concept.isRelation();
 ----
 
-[#_AttributeType_isRelationType__]
+[#_AttributeType_isRelationType_]
 ==== isRelationType
 
 [source,java]
@@ -1052,7 +1052,7 @@ Checks if the concept is a ``RelationType``.
 concept.isRelationType();
 ----
 
-[#_AttributeType_isRoleType__]
+[#_AttributeType_isRoleType_]
 ==== isRoleType
 
 [source,java]
@@ -1075,7 +1075,7 @@ Checks if the concept is a ``RoleType``.
 concept.isRoleType();
 ----
 
-[#_AttributeType_isString__]
+[#_AttributeType_isString_]
 ==== isString
 
 [source,java]
@@ -1098,7 +1098,7 @@ Returns ``True`` if the value for attributes of this type is of type ``string``.
 attributeType.isString();
 ----
 
-[#_AttributeType_isThing__]
+[#_AttributeType_isThing_]
 ==== isThing
 
 [source,java]
@@ -1121,7 +1121,7 @@ Checks if the concept is a ``Thing``.
 concept.isThing();
 ----
 
-[#_AttributeType_isValue__]
+[#_AttributeType_isValue_]
 ==== isValue
 
 [source,java]
@@ -1144,7 +1144,7 @@ Checks if the concept is a ``Value``.
 concept.isValue();
 ----
 
-[#_AttributeType_put__TypeDBTransaction__Value]
+[#_AttributeType_put_TypeDBTransaction_Value]
 ==== put
 
 [source,java]
@@ -1178,7 +1178,7 @@ a| `value` a| New ``Attribute``’s value a| `Value`
 attributeType.put(transaction, value).resolve();
 ----
 
-[#_AttributeType_put__TypeDBTransaction__java_lang_String]
+[#_AttributeType_put_TypeDBTransaction_java_lang_String]
 ==== put
 
 [source,java]
@@ -1212,7 +1212,7 @@ a| `value` a| New ``Attribute``’s value a| `java.lang.String`
 attributeType.put(transaction, value).resolve();
 ----
 
-[#_AttributeType_put__TypeDBTransaction__long]
+[#_AttributeType_put_TypeDBTransaction_long]
 ==== put
 
 [source,java]
@@ -1246,7 +1246,7 @@ a| `value` a| New ``Attribute``’s value a| `long`
 attributeType.put(transaction, value).resolve();
 ----
 
-[#_AttributeType_put__TypeDBTransaction__double]
+[#_AttributeType_put_TypeDBTransaction_double]
 ==== put
 
 [source,java]
@@ -1280,7 +1280,7 @@ a| `value` a| New ``Attribute``’s value a| `double`
 attributeType.put(transaction, value).resolve();
 ----
 
-[#_AttributeType_put__TypeDBTransaction__boolean]
+[#_AttributeType_put_TypeDBTransaction_boolean]
 ==== put
 
 [source,java]
@@ -1314,7 +1314,7 @@ a| `value` a| New ``Attribute``’s value a| `boolean`
 attributeType.put(transaction, value).resolve();
 ----
 
-[#_AttributeType_put__TypeDBTransaction__java_time_LocalDateTime]
+[#_AttributeType_put_TypeDBTransaction_java_time_LocalDateTime]
 ==== put
 
 [source,java]
@@ -1348,7 +1348,7 @@ a| `value` a| New ``Attribute``’s value a| `java.time.LocalDateTime`
 attributeType.put(transaction, value).resolve();
 ----
 
-[#_AttributeType_setRegex__TypeDBTransaction__java_lang_String]
+[#_AttributeType_setRegex_TypeDBTransaction_java_lang_String]
 ==== setRegex
 
 [source,java]
@@ -1384,7 +1384,7 @@ a| `regex` a| Regular expression a| `java.lang.String`
 attributeType.setRegex(transaction, regex).resolve();
 ----
 
-[#_AttributeType_setSupertype__TypeDBTransaction__AttributeType]
+[#_AttributeType_setSupertype_TypeDBTransaction_AttributeType]
 ==== setSupertype
 
 [source,java]
@@ -1418,7 +1418,7 @@ a| `attributeType` a| The ``AttributeType`` to set as the supertype of this ``At
 attributeType.setSupertype(transaction, superType).resolve();
 ----
 
-[#_AttributeType_unsetRegex__TypeDBTransaction]
+[#_AttributeType_unsetRegex_TypeDBTransaction]
 ==== unsetRegex
 
 [source,java]
diff --git a/java/docs/schema/Concept.Transitivity.adoc b/docs/modules/ROOT/partials/java/schema/Concept.Transitivity.adoc
similarity index 95%
rename from java/docs/schema/Concept.Transitivity.adoc
rename to docs/modules/ROOT/partials/java/schema/Concept.Transitivity.adoc
index 5e206b687d..856038e1b7 100644
--- a/java/docs/schema/Concept.Transitivity.adoc
+++ b/docs/modules/ROOT/partials/java/schema/Concept.Transitivity.adoc
@@ -26,7 +26,7 @@ a| `TRANSITIVE`
 // end::enum_constants[]
 
 // tag::methods[]
-[#_Concept_Transitivity_valueOf__java_lang_String]
+[#_Concept_Transitivity_valueOf_java_lang_String]
 ==== valueOf
 
 [source,java]
@@ -49,7 +49,7 @@ a| `name` a| the name of the enum constant to be returned. a| `java.lang.String`
 .Returns
 `public static Concept.Transitivity`
 
-[#_Concept_Transitivity_values__]
+[#_Concept_Transitivity_values_]
 ==== values
 
 [source,java]
diff --git a/java/docs/schema/EntityType.adoc b/docs/modules/ROOT/partials/java/schema/EntityType.adoc
similarity index 90%
rename from java/docs/schema/EntityType.adoc
rename to docs/modules/ROOT/partials/java/schema/EntityType.adoc
index 9754a1ec96..3b1a363381 100644
--- a/java/docs/schema/EntityType.adoc
+++ b/docs/modules/ROOT/partials/java/schema/EntityType.adoc
@@ -12,7 +12,7 @@
 Entity types represent the classification of independent objects in the data model of the business domain.
 
 // tag::methods[]
-[#_EntityType_asAttribute__]
+[#_EntityType_asAttribute_]
 ==== asAttribute
 
 [source,java]
@@ -34,7 +34,7 @@ Casts the concept to ``Attribute``.
 concept.asAttribute();
 ----
 
-[#_EntityType_asAttributeType__]
+[#_EntityType_asAttributeType_]
 ==== asAttributeType
 
 [source,java]
@@ -56,7 +56,7 @@ Casts the concept to ``AttributeType``.
 concept.asAttributeType();
 ----
 
-[#_EntityType_asEntity__]
+[#_EntityType_asEntity_]
 ==== asEntity
 
 [source,java]
@@ -78,7 +78,7 @@ Casts the concept to ``Entity``.
 concept.asEntity();
 ----
 
-[#_EntityType_asEntityType__]
+[#_EntityType_asEntityType_]
 ==== asEntityType
 
 [source,java]
@@ -101,7 +101,7 @@ Casts the concept to ``EntityType``.
 concept.asEntityType();
 ----
 
-[#_EntityType_asRelation__]
+[#_EntityType_asRelation_]
 ==== asRelation
 
 [source,java]
@@ -123,7 +123,7 @@ Casts the concept to ``Relation``.
 concept.asRelation();
 ----
 
-[#_EntityType_asRelationType__]
+[#_EntityType_asRelationType_]
 ==== asRelationType
 
 [source,java]
@@ -145,7 +145,7 @@ Casts the concept to ``RelationType``.
 concept.asRelationType();
 ----
 
-[#_EntityType_asRoleType__]
+[#_EntityType_asRoleType_]
 ==== asRoleType
 
 [source,java]
@@ -167,7 +167,7 @@ Casts the concept to ``RoleType``.
 concept.asRoleType();
 ----
 
-[#_EntityType_asThing__]
+[#_EntityType_asThing_]
 ==== asThing
 
 [source,java]
@@ -189,7 +189,7 @@ Casts the concept to ``Thing``.
 concept.asThing();
 ----
 
-[#_EntityType_asValue__]
+[#_EntityType_asValue_]
 ==== asValue
 
 [source,java]
@@ -211,7 +211,7 @@ Casts the concept to ``Value``.
 concept.asValue();
 ----
 
-[#_EntityType_create__TypeDBTransaction]
+[#_EntityType_create_TypeDBTransaction]
 ==== create
 
 [source,java]
@@ -243,7 +243,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 entityType.create(transaction).resolve();
 ----
 
-[#_EntityType_getInstances__TypeDBTransaction]
+[#_EntityType_getInstances_TypeDBTransaction]
 ==== getInstances
 
 [source,java]
@@ -262,7 +262,7 @@ See also: <<#_getInstances_com_vaticle_typedb_driver_api_TypeDBTransaction_com_v
 .Returns
 `java.util.stream.Stream`
 
-[#_EntityType_getInstances__TypeDBTransaction__Concept_Transitivity]
+[#_EntityType_getInstances_TypeDBTransaction_Concept_Transitivity]
 ==== getInstances
 
 [source,java]
@@ -296,7 +296,7 @@ a| `transitivity` a| ``Transitivity.EXPLICIT`` for direct instances only, ``Tran
 entityType.getInstances(transaction, transitivity);
 ----
 
-[#_EntityType_getSubtypes__TypeDBTransaction]
+[#_EntityType_getSubtypes_TypeDBTransaction]
 ==== getSubtypes
 
 [source,java]
@@ -315,7 +315,7 @@ See also: <<#_getSubtypes_com_vaticle_typedb_driver_api_TypeDBTransaction_com_va
 .Returns
 `java.util.stream.Stream`
 
-[#_EntityType_getSubtypes__TypeDBTransaction__Concept_Transitivity]
+[#_EntityType_getSubtypes_TypeDBTransaction_Concept_Transitivity]
 ==== getSubtypes
 
 [source,java]
@@ -349,7 +349,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and indirect subtype
 entityType.getSubtypes(transaction, transitivity);
 ----
 
-[#_EntityType_isAttribute__]
+[#_EntityType_isAttribute_]
 ==== isAttribute
 
 [source,java]
@@ -372,7 +372,7 @@ Checks if the concept is an ``Attribute``.
 concept.isAttribute();
 ----
 
-[#_EntityType_isAttributeType__]
+[#_EntityType_isAttributeType_]
 ==== isAttributeType
 
 [source,java]
@@ -395,7 +395,7 @@ Checks if the concept is an ``AttributeType``.
 concept.isAttributeType();
 ----
 
-[#_EntityType_isEntity__]
+[#_EntityType_isEntity_]
 ==== isEntity
 
 [source,java]
@@ -418,7 +418,7 @@ Checks if the concept is an ``Entity``.
 concept.isEntity();
 ----
 
-[#_EntityType_isEntityType__]
+[#_EntityType_isEntityType_]
 ==== isEntityType
 
 [source,java]
@@ -441,7 +441,7 @@ Checks if the concept is an ``EntityType``.
 concept.isEntityType();
 ----
 
-[#_EntityType_isRelation__]
+[#_EntityType_isRelation_]
 ==== isRelation
 
 [source,java]
@@ -464,7 +464,7 @@ Checks if the concept is a ``Relation``.
 concept.isRelation();
 ----
 
-[#_EntityType_isRelationType__]
+[#_EntityType_isRelationType_]
 ==== isRelationType
 
 [source,java]
@@ -487,7 +487,7 @@ Checks if the concept is a ``RelationType``.
 concept.isRelationType();
 ----
 
-[#_EntityType_isRoleType__]
+[#_EntityType_isRoleType_]
 ==== isRoleType
 
 [source,java]
@@ -510,7 +510,7 @@ Checks if the concept is a ``RoleType``.
 concept.isRoleType();
 ----
 
-[#_EntityType_isThing__]
+[#_EntityType_isThing_]
 ==== isThing
 
 [source,java]
@@ -533,7 +533,7 @@ Checks if the concept is a ``Thing``.
 concept.isThing();
 ----
 
-[#_EntityType_isValue__]
+[#_EntityType_isValue_]
 ==== isValue
 
 [source,java]
@@ -556,7 +556,7 @@ Checks if the concept is a ``Value``.
 concept.isValue();
 ----
 
-[#_EntityType_setSupertype__TypeDBTransaction__EntityType]
+[#_EntityType_setSupertype_TypeDBTransaction_EntityType]
 ==== setSupertype
 
 [source,java]
diff --git a/java/docs/schema/Label.adoc b/docs/modules/ROOT/partials/java/schema/Label.adoc
similarity index 93%
rename from java/docs/schema/Label.adoc
rename to docs/modules/ROOT/partials/java/schema/Label.adoc
index e578fe29bd..8d8d5b8525 100644
--- a/java/docs/schema/Label.adoc
+++ b/docs/modules/ROOT/partials/java/schema/Label.adoc
@@ -8,7 +8,7 @@ A ``Label`` holds the uniquely identifying name of a type.
 It consists of an optional ``scope``, and a ``name``, represented ``scope:name``. The scope is used only used to distinguish between role-types of the same name declared in different relation types.
 
 // tag::methods[]
-[#_Label_equals__java_lang_Object]
+[#_Label_equals_java_lang_Object]
 ==== equals
 
 [source,java]
@@ -39,7 +39,7 @@ a| `obj` a| Object to compare with a| `java.lang.Object`
 label.equals(obj);
 ----
 
-[#_Label_name__]
+[#_Label_name_]
 ==== name
 
 [source,java]
@@ -61,7 +61,7 @@ Returns the name of this Label.
 label.name();
 ----
 
-[#_Label_of__java_lang_String]
+[#_Label_of_java_lang_String]
 ==== of
 
 [source,java]
@@ -92,7 +92,7 @@ a| `name` a| Label name a| `java.lang.String`
 Label.of("entity");
 ----
 
-[#_Label_of__java_lang_String__java_lang_String]
+[#_Label_of_java_lang_String_java_lang_String]
 ==== of
 
 [source,java]
@@ -125,7 +125,7 @@ a| `name` a| Label name a| `java.lang.String`
 Label.of("relation", "role");
 ----
 
-[#_Label_scope__]
+[#_Label_scope_]
 ==== scope
 
 [source,java]
@@ -147,7 +147,7 @@ Returns the scope of this Label.
 label.scope();
 ----
 
-[#_Label_scopedName__]
+[#_Label_scopedName_]
 ==== scopedName
 
 [source,java]
@@ -169,7 +169,7 @@ Returns the string representation of the scoped name.
 label.scopedName();
 ----
 
-[#_Label_toString__]
+[#_Label_toString_]
 ==== toString
 
 [source,java]
diff --git a/java/docs/schema/RelationType.adoc b/docs/modules/ROOT/partials/java/schema/RelationType.adoc
similarity index 90%
rename from java/docs/schema/RelationType.adoc
rename to docs/modules/ROOT/partials/java/schema/RelationType.adoc
index d4d1ad8610..66781cd055 100644
--- a/java/docs/schema/RelationType.adoc
+++ b/docs/modules/ROOT/partials/java/schema/RelationType.adoc
@@ -12,7 +12,7 @@
 Relation types (or subtypes of the relation root type) represent relationships between types. Relation types have roles. Other types can play roles in relations if it’s mentioned in their definition. A relation type must specify at least one role.
 
 // tag::methods[]
-[#_RelationType_asAttribute__]
+[#_RelationType_asAttribute_]
 ==== asAttribute
 
 [source,java]
@@ -34,7 +34,7 @@ Casts the concept to ``Attribute``.
 concept.asAttribute();
 ----
 
-[#_RelationType_asAttributeType__]
+[#_RelationType_asAttributeType_]
 ==== asAttributeType
 
 [source,java]
@@ -56,7 +56,7 @@ Casts the concept to ``AttributeType``.
 concept.asAttributeType();
 ----
 
-[#_RelationType_asEntity__]
+[#_RelationType_asEntity_]
 ==== asEntity
 
 [source,java]
@@ -78,7 +78,7 @@ Casts the concept to ``Entity``.
 concept.asEntity();
 ----
 
-[#_RelationType_asEntityType__]
+[#_RelationType_asEntityType_]
 ==== asEntityType
 
 [source,java]
@@ -100,7 +100,7 @@ Casts the concept to ``EntityType``.
 concept.asEntityType();
 ----
 
-[#_RelationType_asRelation__]
+[#_RelationType_asRelation_]
 ==== asRelation
 
 [source,java]
@@ -122,7 +122,7 @@ Casts the concept to ``Relation``.
 concept.asRelation();
 ----
 
-[#_RelationType_asRelationType__]
+[#_RelationType_asRelationType_]
 ==== asRelationType
 
 [source,java]
@@ -145,7 +145,7 @@ Casts the concept to ``RelationType``.
 concept.asRelationType();
 ----
 
-[#_RelationType_asRoleType__]
+[#_RelationType_asRoleType_]
 ==== asRoleType
 
 [source,java]
@@ -167,7 +167,7 @@ Casts the concept to ``RoleType``.
 concept.asRoleType();
 ----
 
-[#_RelationType_asThing__]
+[#_RelationType_asThing_]
 ==== asThing
 
 [source,java]
@@ -189,7 +189,7 @@ Casts the concept to ``Thing``.
 concept.asThing();
 ----
 
-[#_RelationType_asValue__]
+[#_RelationType_asValue_]
 ==== asValue
 
 [source,java]
@@ -211,7 +211,7 @@ Casts the concept to ``Value``.
 concept.asValue();
 ----
 
-[#_RelationType_create__TypeDBTransaction]
+[#_RelationType_create_TypeDBTransaction]
 ==== create
 
 [source,java]
@@ -243,7 +243,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 relationType.create(transaction).resolve();
 ----
 
-[#_RelationType_getInstances__TypeDBTransaction]
+[#_RelationType_getInstances_TypeDBTransaction]
 ==== getInstances
 
 [source,java]
@@ -262,7 +262,7 @@ See also: <<#_getInstances_com_vaticle_typedb_driver_api_TypeDBTransaction_com_v
 .Returns
 `java.util.stream.Stream`
 
-[#_RelationType_getInstances__TypeDBTransaction__Concept_Transitivity]
+[#_RelationType_getInstances_TypeDBTransaction_Concept_Transitivity]
 ==== getInstances
 
 [source,java]
@@ -296,7 +296,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and indirect instanc
 relationType.getInstances(transaction, transitivity)
 ----
 
-[#_RelationType_getRelates__TypeDBTransaction]
+[#_RelationType_getRelates_TypeDBTransaction]
 ==== getRelates
 
 [source,java]
@@ -315,7 +315,7 @@ See also: <<#_getRelates_com_vaticle_typedb_driver_api_TypeDBTransaction_com_vat
 .Returns
 `java.util.stream.Stream`
 
-[#_RelationType_getRelates__TypeDBTransaction__Concept_Transitivity]
+[#_RelationType_getRelates_TypeDBTransaction_Concept_Transitivity]
 ==== getRelates
 
 [source,java]
@@ -349,7 +349,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and inherited relate
 relationType.getRelates(transaction, transitivity);
 ----
 
-[#_RelationType_getRelates__TypeDBTransaction__java_lang_String]
+[#_RelationType_getRelates_TypeDBTransaction_java_lang_String]
 ==== getRelates
 
 [source,java]
@@ -383,7 +383,7 @@ a| `roleLabel` a| Label of the role we wish to retrieve a| `java.lang.String`
 relationType.getRelates(transaction, roleLabel).resolve();
 ----
 
-[#_RelationType_getRelatesOverridden__TypeDBTransaction__RoleType]
+[#_RelationType_getRelatesOverridden_TypeDBTransaction_RoleType]
 ==== getRelatesOverridden
 
 [source,java]
@@ -399,7 +399,7 @@ Promise getRelatesOverridden​(TypeDBTransaction transactio
 .Returns
 `Promise`
 
-[#_RelationType_getRelatesOverridden__TypeDBTransaction__java_lang_String]
+[#_RelationType_getRelatesOverridden_TypeDBTransaction_java_lang_String]
 ==== getRelatesOverridden
 
 [source,java]
@@ -433,7 +433,7 @@ a| `roleLabel` a| Label of the role that overrides an inherited role a| `java.la
 relationType.getRelatesOverridden(transaction, roleLabel).resolve();
 ----
 
-[#_RelationType_getSubtypes__TypeDBTransaction]
+[#_RelationType_getSubtypes_TypeDBTransaction]
 ==== getSubtypes
 
 [source,java]
@@ -452,7 +452,7 @@ See also: <<#_getSubtypes_com_vaticle_typedb_driver_api_TypeDBTransaction_com_va
 .Returns
 `java.util.stream.Stream`
 
-[#_RelationType_getSubtypes__TypeDBTransaction__Concept_Transitivity]
+[#_RelationType_getSubtypes_TypeDBTransaction_Concept_Transitivity]
 ==== getSubtypes
 
 [source,java]
@@ -486,7 +486,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and indirect subtype
 relationType.getSubtypes(transaction, transitivity);
 ----
 
-[#_RelationType_isAttribute__]
+[#_RelationType_isAttribute_]
 ==== isAttribute
 
 [source,java]
@@ -509,7 +509,7 @@ Checks if the concept is an ``Attribute``.
 concept.isAttribute();
 ----
 
-[#_RelationType_isAttributeType__]
+[#_RelationType_isAttributeType_]
 ==== isAttributeType
 
 [source,java]
@@ -532,7 +532,7 @@ Checks if the concept is an ``AttributeType``.
 concept.isAttributeType();
 ----
 
-[#_RelationType_isEntity__]
+[#_RelationType_isEntity_]
 ==== isEntity
 
 [source,java]
@@ -555,7 +555,7 @@ Checks if the concept is an ``Entity``.
 concept.isEntity();
 ----
 
-[#_RelationType_isEntityType__]
+[#_RelationType_isEntityType_]
 ==== isEntityType
 
 [source,java]
@@ -578,7 +578,7 @@ Checks if the concept is an ``EntityType``.
 concept.isEntityType();
 ----
 
-[#_RelationType_isRelation__]
+[#_RelationType_isRelation_]
 ==== isRelation
 
 [source,java]
@@ -601,7 +601,7 @@ Checks if the concept is a ``Relation``.
 concept.isRelation();
 ----
 
-[#_RelationType_isRelationType__]
+[#_RelationType_isRelationType_]
 ==== isRelationType
 
 [source,java]
@@ -624,7 +624,7 @@ Checks if the concept is a ``RelationType``.
 concept.isRelationType();
 ----
 
-[#_RelationType_isRoleType__]
+[#_RelationType_isRoleType_]
 ==== isRoleType
 
 [source,java]
@@ -647,7 +647,7 @@ Checks if the concept is a ``RoleType``.
 concept.isRoleType();
 ----
 
-[#_RelationType_isThing__]
+[#_RelationType_isThing_]
 ==== isThing
 
 [source,java]
@@ -670,7 +670,7 @@ Checks if the concept is a ``Thing``.
 concept.isThing();
 ----
 
-[#_RelationType_isValue__]
+[#_RelationType_isValue_]
 ==== isValue
 
 [source,java]
@@ -693,7 +693,7 @@ Checks if the concept is a ``Value``.
 concept.isValue();
 ----
 
-[#_RelationType_setRelates__TypeDBTransaction__java_lang_String]
+[#_RelationType_setRelates_TypeDBTransaction_java_lang_String]
 ==== setRelates
 
 [source,java]
@@ -713,7 +713,7 @@ See also: <<#_setRelates_com_vaticle_typedb_driver_api_TypeDBTransaction_java_la
 .Returns
 `Promise`
 
-[#_RelationType_setRelates__TypeDBTransaction__java_lang_String__RoleType]
+[#_RelationType_setRelates_TypeDBTransaction_java_lang_String_RoleType]
 ==== setRelates
 
 [source,java]
@@ -734,7 +734,7 @@ See also: <<#_setRelates_com_vaticle_typedb_driver_api_TypeDBTransaction_java_la
 .Returns
 `Promise`
 
-[#_RelationType_setRelates__TypeDBTransaction__java_lang_String__java_lang_String]
+[#_RelationType_setRelates_TypeDBTransaction_java_lang_String_java_lang_String]
 ==== setRelates
 
 [source,java]
@@ -771,7 +771,7 @@ relationType.setRelates(transaction, roleLabel).resolve();
  relationType.setRelates(transaction, roleLabel, overriddenLabel).resolve();
 ----
 
-[#_RelationType_setSupertype__TypeDBTransaction__RelationType]
+[#_RelationType_setSupertype_TypeDBTransaction_RelationType]
 ==== setSupertype
 
 [source,java]
@@ -805,7 +805,7 @@ a| `superRelationType` a| The ``RelationType`` to set as the supertype of this `
 relationType.setSupertype(transaction, superRelationType).resolve();
 ----
 
-[#_RelationType_unsetRelates__TypeDBTransaction__RoleType]
+[#_RelationType_unsetRelates_TypeDBTransaction_RoleType]
 ==== unsetRelates
 
 [source,java]
@@ -825,7 +825,7 @@ See also: <<#_unsetRelates_com_vaticle_typedb_driver_api_TypeDBTransaction_java_
 .Returns
 `Promise`
 
-[#_RelationType_unsetRelates__TypeDBTransaction__java_lang_String]
+[#_RelationType_unsetRelates_TypeDBTransaction_java_lang_String]
 ==== unsetRelates
 
 [source,java]
diff --git a/java/docs/schema/RoleType.adoc b/docs/modules/ROOT/partials/java/schema/RoleType.adoc
similarity index 91%
rename from java/docs/schema/RoleType.adoc
rename to docs/modules/ROOT/partials/java/schema/RoleType.adoc
index ed9e71aa24..799bc108c0 100644
--- a/java/docs/schema/RoleType.adoc
+++ b/docs/modules/ROOT/partials/java/schema/RoleType.adoc
@@ -11,7 +11,7 @@
 Roles are special internal types used by relations. We can not create an instance of a role in a database. But we can set an instance of another type (role player) to play a role in a particular instance of a relation type. Roles allow a schema to enforce logical constraints on types of role players.
 
 // tag::methods[]
-[#_RoleType_asAttribute__]
+[#_RoleType_asAttribute_]
 ==== asAttribute
 
 [source,java]
@@ -33,7 +33,7 @@ Casts the concept to ``Attribute``.
 concept.asAttribute();
 ----
 
-[#_RoleType_asAttributeType__]
+[#_RoleType_asAttributeType_]
 ==== asAttributeType
 
 [source,java]
@@ -55,7 +55,7 @@ Casts the concept to ``AttributeType``.
 concept.asAttributeType();
 ----
 
-[#_RoleType_asEntity__]
+[#_RoleType_asEntity_]
 ==== asEntity
 
 [source,java]
@@ -77,7 +77,7 @@ Casts the concept to ``Entity``.
 concept.asEntity();
 ----
 
-[#_RoleType_asEntityType__]
+[#_RoleType_asEntityType_]
 ==== asEntityType
 
 [source,java]
@@ -99,7 +99,7 @@ Casts the concept to ``EntityType``.
 concept.asEntityType();
 ----
 
-[#_RoleType_asRelation__]
+[#_RoleType_asRelation_]
 ==== asRelation
 
 [source,java]
@@ -121,7 +121,7 @@ Casts the concept to ``Relation``.
 concept.asRelation();
 ----
 
-[#_RoleType_asRelationType__]
+[#_RoleType_asRelationType_]
 ==== asRelationType
 
 [source,java]
@@ -143,7 +143,7 @@ Casts the concept to ``RelationType``.
 concept.asRelationType();
 ----
 
-[#_RoleType_asRoleType__]
+[#_RoleType_asRoleType_]
 ==== asRoleType
 
 [source,java]
@@ -166,7 +166,7 @@ Casts the concept to ``RoleType``.
 concept.asRoleType();
 ----
 
-[#_RoleType_asThing__]
+[#_RoleType_asThing_]
 ==== asThing
 
 [source,java]
@@ -188,7 +188,7 @@ Casts the concept to ``Thing``.
 concept.asThing();
 ----
 
-[#_RoleType_asThingType__]
+[#_RoleType_asThingType_]
 ==== asThingType
 
 [source,java]
@@ -210,7 +210,7 @@ Casts the concept to ``ThingType``.
 concept.asThingType();
 ----
 
-[#_RoleType_asValue__]
+[#_RoleType_asValue_]
 ==== asValue
 
 [source,java]
@@ -232,7 +232,7 @@ Casts the concept to ``Value``.
 concept.asValue();
 ----
 
-[#_RoleType_getPlayerInstances__TypeDBTransaction]
+[#_RoleType_getPlayerInstances_TypeDBTransaction]
 ==== getPlayerInstances
 
 [source,java]
@@ -251,7 +251,7 @@ See also: <<#_getPlayerInstances_com_vaticle_typedb_driver_api_TypeDBTransaction
 .Returns
 `java.util.stream.Stream`
 
-[#_RoleType_getPlayerInstances__TypeDBTransaction__Concept_Transitivity]
+[#_RoleType_getPlayerInstances_TypeDBTransaction_Concept_Transitivity]
 ==== getPlayerInstances
 
 [source,java]
@@ -285,7 +285,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and indirect playing
 roleType.getPlayerInstances(transaction, transitivity);
 ----
 
-[#_RoleType_getPlayerTypes__TypeDBTransaction]
+[#_RoleType_getPlayerTypes_TypeDBTransaction]
 ==== getPlayerTypes
 
 [source,java]
@@ -304,7 +304,7 @@ See also: <<#_getPlayerTypes_com_vaticle_typedb_driver_api_TypeDBTransaction_com
 .Returns
 `java.util.stream.Stream`
 
-[#_RoleType_getPlayerTypes__TypeDBTransaction__Concept_Transitivity]
+[#_RoleType_getPlayerTypes_TypeDBTransaction_Concept_Transitivity]
 ==== getPlayerTypes
 
 [source,java]
@@ -338,7 +338,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and indirect playing
 roleType.getPlayerTypes(transaction, transitivity)
 ----
 
-[#_RoleType_getRelationInstances__TypeDBTransaction]
+[#_RoleType_getRelationInstances_TypeDBTransaction]
 ==== getRelationInstances
 
 [source,java]
@@ -357,7 +357,7 @@ See also: <<#_getRelationInstances_com_vaticle_typedb_driver_api_TypeDBTransacti
 .Returns
 `java.util.stream.Stream`
 
-[#_RoleType_getRelationInstances__TypeDBTransaction__Concept_Transitivity]
+[#_RoleType_getRelationInstances_TypeDBTransaction_Concept_Transitivity]
 ==== getRelationInstances
 
 [source,java]
@@ -391,7 +391,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and indirect relatio
 roleType.getRelationInstances(transaction, transitivity)
 ----
 
-[#_RoleType_getRelationType__TypeDBTransaction]
+[#_RoleType_getRelationType_TypeDBTransaction]
 ==== getRelationType
 
 [source,java]
@@ -423,7 +423,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 roleType.getRelationType(transaction).resolve();
 ----
 
-[#_RoleType_getRelationTypes__TypeDBTransaction]
+[#_RoleType_getRelationTypes_TypeDBTransaction]
 ==== getRelationTypes
 
 [source,java]
@@ -455,7 +455,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 roleType.getRelationTypes(transaction);
 ----
 
-[#_RoleType_getSubtypes__TypeDBTransaction]
+[#_RoleType_getSubtypes_TypeDBTransaction]
 ==== getSubtypes
 
 [source,java]
@@ -474,7 +474,7 @@ See also: <<#_getSubtypes_com_vaticle_typedb_driver_api_TypeDBTransaction_com_va
 .Returns
 `java.util.stream.Stream`
 
-[#_RoleType_getSubtypes__TypeDBTransaction__Concept_Transitivity]
+[#_RoleType_getSubtypes_TypeDBTransaction_Concept_Transitivity]
 ==== getSubtypes
 
 [source,java]
@@ -508,7 +508,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and indirect subtype
 roleType.getSubtypes(transaction, transitivity);
 ----
 
-[#_RoleType_getSupertype__TypeDBTransaction]
+[#_RoleType_getSupertype_TypeDBTransaction]
 ==== getSupertype
 
 [source,java]
@@ -540,7 +540,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 roleType.getSupertype(transaction).resolve();
 ----
 
-[#_RoleType_getSupertypes__TypeDBTransaction]
+[#_RoleType_getSupertypes_TypeDBTransaction]
 ==== getSupertypes
 
 [source,java]
@@ -572,7 +572,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 roleType.getSupertypes(transaction);
 ----
 
-[#_RoleType_isAttribute__]
+[#_RoleType_isAttribute_]
 ==== isAttribute
 
 [source,java]
@@ -595,7 +595,7 @@ Checks if the concept is an ``Attribute``.
 concept.isAttribute();
 ----
 
-[#_RoleType_isAttributeType__]
+[#_RoleType_isAttributeType_]
 ==== isAttributeType
 
 [source,java]
@@ -618,7 +618,7 @@ Checks if the concept is an ``AttributeType``.
 concept.isAttributeType();
 ----
 
-[#_RoleType_isEntity__]
+[#_RoleType_isEntity_]
 ==== isEntity
 
 [source,java]
@@ -641,7 +641,7 @@ Checks if the concept is an ``Entity``.
 concept.isEntity();
 ----
 
-[#_RoleType_isEntityType__]
+[#_RoleType_isEntityType_]
 ==== isEntityType
 
 [source,java]
@@ -664,7 +664,7 @@ Checks if the concept is an ``EntityType``.
 concept.isEntityType();
 ----
 
-[#_RoleType_isRelation__]
+[#_RoleType_isRelation_]
 ==== isRelation
 
 [source,java]
@@ -687,7 +687,7 @@ Checks if the concept is a ``Relation``.
 concept.isRelation();
 ----
 
-[#_RoleType_isRelationType__]
+[#_RoleType_isRelationType_]
 ==== isRelationType
 
 [source,java]
@@ -710,7 +710,7 @@ Checks if the concept is a ``RelationType``.
 concept.isRelationType();
 ----
 
-[#_RoleType_isRoleType__]
+[#_RoleType_isRoleType_]
 ==== isRoleType
 
 [source,java]
@@ -733,7 +733,7 @@ Checks if the concept is a ``RoleType``.
 concept.isRoleType();
 ----
 
-[#_RoleType_isThing__]
+[#_RoleType_isThing_]
 ==== isThing
 
 [source,java]
@@ -756,7 +756,7 @@ Checks if the concept is a ``Thing``.
 concept.isThing();
 ----
 
-[#_RoleType_isThingType__]
+[#_RoleType_isThingType_]
 ==== isThingType
 
 [source,java]
@@ -779,7 +779,7 @@ Checks if the concept is a ``ThingType``.
 concept.isThingType();
 ----
 
-[#_RoleType_isValue__]
+[#_RoleType_isValue_]
 ==== isValue
 
 [source,java]
diff --git a/java/docs/schema/ThingType.Annotation.adoc b/docs/modules/ROOT/partials/java/schema/ThingType.Annotation.adoc
similarity index 88%
rename from java/docs/schema/ThingType.Annotation.adoc
rename to docs/modules/ROOT/partials/java/schema/ThingType.Annotation.adoc
index 1c0ce140eb..d190e18a00 100644
--- a/java/docs/schema/ThingType.Annotation.adoc
+++ b/docs/modules/ROOT/partials/java/schema/ThingType.Annotation.adoc
@@ -6,7 +6,7 @@
 Annotation
 
 // tag::methods[]
-[#_ThingType_Annotation_equals__java_lang_Object]
+[#_ThingType_Annotation_equals_java_lang_Object]
 ==== equals
 
 [source,java]
@@ -37,7 +37,7 @@ a| `obj` a| Object to compare with a| `java.lang.Object`
 annotation.equals(obj);
 ----
 
-[#_ThingType_Annotation_hashCode__]
+[#_ThingType_Annotation_hashCode_]
 ==== hashCode
 
 [source,java]
@@ -51,7 +51,7 @@ public int hashCode()
 .Returns
 `public int`
 
-[#_ThingType_Annotation_isKey__]
+[#_ThingType_Annotation_isKey_]
 ==== isKey
 
 [source,java]
@@ -73,7 +73,7 @@ Checks if this ``Annotation`` is a ``@key`` annotation.
 annotation.isKey();
 ----
 
-[#_ThingType_Annotation_isUnique__]
+[#_ThingType_Annotation_isUnique_]
 ==== isUnique
 
 [source,java]
@@ -95,7 +95,7 @@ Checks if this ``Annotation`` is a ``@unique`` annotation.
 annotation.isUnique();
 ----
 
-[#_ThingType_Annotation_key__]
+[#_ThingType_Annotation_key_]
 ==== key
 
 [source,java]
@@ -117,7 +117,7 @@ Produces a ``@key`` annotation.
 ThingType.Annotation.key();
 ----
 
-[#_ThingType_Annotation_toString__]
+[#_ThingType_Annotation_toString_]
 ==== toString
 
 [source,java]
@@ -139,7 +139,7 @@ Retrieves a string representation of this ``Annotation``.
 annotation.toString();
 ----
 
-[#_ThingType_Annotation_unique__]
+[#_ThingType_Annotation_unique_]
 ==== unique
 
 [source,java]
diff --git a/java/docs/schema/ThingType.adoc b/docs/modules/ROOT/partials/java/schema/ThingType.adoc
similarity index 91%
rename from java/docs/schema/ThingType.adoc
rename to docs/modules/ROOT/partials/java/schema/ThingType.adoc
index 055abec7f4..705fedcd1c 100644
--- a/java/docs/schema/ThingType.adoc
+++ b/docs/modules/ROOT/partials/java/schema/ThingType.adoc
@@ -9,7 +9,7 @@
 * `Type`
 
 // tag::methods[]
-[#_ThingType_asAttribute__]
+[#_ThingType_asAttribute_]
 ==== asAttribute
 
 [source,java]
@@ -31,7 +31,7 @@ Casts the concept to ``Attribute``.
 concept.asAttribute();
 ----
 
-[#_ThingType_asAttributeType__]
+[#_ThingType_asAttributeType_]
 ==== asAttributeType
 
 [source,java]
@@ -53,7 +53,7 @@ Casts the concept to ``AttributeType``.
 concept.asAttributeType();
 ----
 
-[#_ThingType_asEntity__]
+[#_ThingType_asEntity_]
 ==== asEntity
 
 [source,java]
@@ -75,7 +75,7 @@ Casts the concept to ``Entity``.
 concept.asEntity();
 ----
 
-[#_ThingType_asEntityType__]
+[#_ThingType_asEntityType_]
 ==== asEntityType
 
 [source,java]
@@ -97,7 +97,7 @@ Casts the concept to ``EntityType``.
 concept.asEntityType();
 ----
 
-[#_ThingType_asRelation__]
+[#_ThingType_asRelation_]
 ==== asRelation
 
 [source,java]
@@ -119,7 +119,7 @@ Casts the concept to ``Relation``.
 concept.asRelation();
 ----
 
-[#_ThingType_asRelationType__]
+[#_ThingType_asRelationType_]
 ==== asRelationType
 
 [source,java]
@@ -141,7 +141,7 @@ Casts the concept to ``RelationType``.
 concept.asRelationType();
 ----
 
-[#_ThingType_asRoleType__]
+[#_ThingType_asRoleType_]
 ==== asRoleType
 
 [source,java]
@@ -163,7 +163,7 @@ Casts the concept to ``RoleType``.
 concept.asRoleType();
 ----
 
-[#_ThingType_asThing__]
+[#_ThingType_asThing_]
 ==== asThing
 
 [source,java]
@@ -185,7 +185,7 @@ Casts the concept to ``Thing``.
 concept.asThing();
 ----
 
-[#_ThingType_asThingType__]
+[#_ThingType_asThingType_]
 ==== asThingType
 
 [source,java]
@@ -208,7 +208,7 @@ Casts the concept to ``ThingType``.
 concept.asThingType();
 ----
 
-[#_ThingType_asValue__]
+[#_ThingType_asValue_]
 ==== asValue
 
 [source,java]
@@ -230,7 +230,7 @@ Casts the concept to ``Value``.
 concept.asValue();
 ----
 
-[#_ThingType_getInstances__TypeDBTransaction]
+[#_ThingType_getInstances_TypeDBTransaction]
 ==== getInstances
 
 [source,java]
@@ -249,7 +249,7 @@ See also: <<#_getInstances_com_vaticle_typedb_driver_api_TypeDBTransaction_com_v
 .Returns
 `java.util.stream.Stream`
 
-[#_ThingType_getInstances__TypeDBTransaction__Concept_Transitivity]
+[#_ThingType_getInstances_TypeDBTransaction_Concept_Transitivity]
 ==== getInstances
 
 [source,java]
@@ -284,7 +284,7 @@ thingType.getInstances(transaction);
  thingType.getInstances(transaction, Transitivity.EXPLICIT);
 ----
 
-[#_ThingType_getOwns__TypeDBTransaction]
+[#_ThingType_getOwns_TypeDBTransaction]
 ==== getOwns
 
 [source,java]
@@ -303,7 +303,7 @@ See also: <<#_getOwns_com_vaticle_typedb_driver_api_TypeDBTransaction_com_vaticl
 .Returns
 `java.util.stream.Stream`
 
-[#_ThingType_getOwns__TypeDBTransaction__Value_Type]
+[#_ThingType_getOwns_TypeDBTransaction_Value_Type]
 ==== getOwns
 
 [source,java]
@@ -323,7 +323,7 @@ See also: <<#_getOwns_com_vaticle_typedb_driver_api_TypeDBTransaction_com_vaticl
 .Returns
 `java.util.stream.Stream`
 
-[#_ThingType_getOwns__TypeDBTransaction__java_util_Set_ThingType_Annotation_]
+[#_ThingType_getOwns_TypeDBTransaction_java_util_Set_ThingType_Annotation_]
 ==== getOwns
 
 [source,java]
@@ -343,7 +343,7 @@ See also: <<#_getOwns_com_vaticle_typedb_driver_api_TypeDBTransaction_com_vaticl
 .Returns
 `java.util.stream.Stream`
 
-[#_ThingType_getOwns__TypeDBTransaction__Value_Type__java_util_Set_ThingType_Annotation_]
+[#_ThingType_getOwns_TypeDBTransaction_Value_Type_java_util_Set_ThingType_Annotation_]
 ==== getOwns
 
 [source,java]
@@ -364,7 +364,7 @@ See also: <<#_getOwns_com_vaticle_typedb_driver_api_TypeDBTransaction_com_vaticl
 .Returns
 `java.util.stream.Stream`
 
-[#_ThingType_getOwns__TypeDBTransaction__Concept_Transitivity]
+[#_ThingType_getOwns_TypeDBTransaction_Concept_Transitivity]
 ==== getOwns
 
 [source,java]
@@ -384,7 +384,7 @@ See also: <<#_getOwns_com_vaticle_typedb_driver_api_TypeDBTransaction_com_vaticl
 .Returns
 `java.util.stream.Stream`
 
-[#_ThingType_getOwns__TypeDBTransaction__Value_Type__Concept_Transitivity]
+[#_ThingType_getOwns_TypeDBTransaction_Value_Type_Concept_Transitivity]
 ==== getOwns
 
 [source,java]
@@ -405,7 +405,7 @@ See also: <<#_getOwns_com_vaticle_typedb_driver_api_TypeDBTransaction_com_vaticl
 .Returns
 `java.util.stream.Stream`
 
-[#_ThingType_getOwns__TypeDBTransaction__java_util_Set_ThingType_Annotation___Concept_Transitivity]
+[#_ThingType_getOwns_TypeDBTransaction_java_util_Set_ThingType_Annotation_Concept_Transitivity]
 ==== getOwns
 
 [source,java]
@@ -426,7 +426,7 @@ See also: <<#_getOwns_com_vaticle_typedb_driver_api_TypeDBTransaction_com_vaticl
 .Returns
 `java.util.stream.Stream`
 
-[#_ThingType_getOwns__TypeDBTransaction__Value_Type__java_util_Set_ThingType_Annotation___Concept_Transitivity]
+[#_ThingType_getOwns_TypeDBTransaction_Value_Type_java_util_Set_ThingType_Annotation_Concept_Transitivity]
 ==== getOwns
 
 [source,java]
@@ -465,7 +465,7 @@ thingType.getOwns(transaction);
  thingType.getOwns(transaction, valueType, Transitivity.EXPLICIT, Collections.singleton(Annotation.key()));
 ----
 
-[#_ThingType_getOwnsOverridden__TypeDBTransaction__AttributeType]
+[#_ThingType_getOwnsOverridden_TypeDBTransaction_AttributeType]
 ==== getOwnsOverridden
 
 [source,java]
@@ -499,7 +499,7 @@ a| `attributeType` a| The ``AttributeType`` that overrides requested ``Attribute
 thingType.getOwnsOverridden(transaction, attributeType).resolve();
 ----
 
-[#_ThingType_getPlays__TypeDBTransaction]
+[#_ThingType_getPlays_TypeDBTransaction]
 ==== getPlays
 
 [source,java]
@@ -518,7 +518,7 @@ See also: <<#_getPlays_com_vaticle_typedb_driver_api_TypeDBTransaction_com_vatic
 .Returns
 `java.util.stream.Stream`
 
-[#_ThingType_getPlays__TypeDBTransaction__Concept_Transitivity]
+[#_ThingType_getPlays_TypeDBTransaction_Concept_Transitivity]
 ==== getPlays
 
 [source,java]
@@ -553,7 +553,7 @@ thingType.getPlays(transaction).resolve();
  thingType.getPlays(transaction, Transitivity.EXPLICIT).resolve();
 ----
 
-[#_ThingType_getPlaysOverridden__TypeDBTransaction__RoleType]
+[#_ThingType_getPlaysOverridden_TypeDBTransaction_RoleType]
 ==== getPlaysOverridden
 
 [source,java]
@@ -587,7 +587,7 @@ a| `roleType` a| The ``RoleType`` that overrides an inherited role a| `RoleType`
 thingType.getPlaysOverridden(transaction, roleType).resolve();
 ----
 
-[#_ThingType_getSubtypes__TypeDBTransaction]
+[#_ThingType_getSubtypes_TypeDBTransaction]
 ==== getSubtypes
 
 [source,java]
@@ -606,7 +606,7 @@ See also: ``Type.getSubtypes(TypeDBTransaction, Transitivity)``
 .Returns
 `java.util.stream.Stream`
 
-[#_ThingType_getSubtypes__TypeDBTransaction__Concept_Transitivity]
+[#_ThingType_getSubtypes_TypeDBTransaction_Concept_Transitivity]
 ==== getSubtypes
 
 [source,java]
@@ -641,7 +641,7 @@ type.getSubtypes(transaction);
  type.getSubtypes(transaction, Transitivity.EXPLICIT);
 ----
 
-[#_ThingType_getSupertype__TypeDBTransaction]
+[#_ThingType_getSupertype_TypeDBTransaction]
 ==== getSupertype
 
 [source,java]
@@ -673,7 +673,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 type.getSupertype(transaction).resolve();
 ----
 
-[#_ThingType_getSupertypes__TypeDBTransaction]
+[#_ThingType_getSupertypes_TypeDBTransaction]
 ==== getSupertypes
 
 [source,java]
@@ -705,7 +705,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 type.getSupertypes(transaction);
 ----
 
-[#_ThingType_getSyntax__TypeDBTransaction]
+[#_ThingType_getSyntax_TypeDBTransaction]
 ==== getSyntax
 
 [source,java]
@@ -737,7 +737,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.getSyntax(transaction).resolve();
 ----
 
-[#_ThingType_isAttribute__]
+[#_ThingType_isAttribute_]
 ==== isAttribute
 
 [source,java]
@@ -760,7 +760,7 @@ Checks if the concept is an ``Attribute``.
 concept.isAttribute();
 ----
 
-[#_ThingType_isAttributeType__]
+[#_ThingType_isAttributeType_]
 ==== isAttributeType
 
 [source,java]
@@ -783,7 +783,7 @@ Checks if the concept is an ``AttributeType``.
 concept.isAttributeType();
 ----
 
-[#_ThingType_isEntity__]
+[#_ThingType_isEntity_]
 ==== isEntity
 
 [source,java]
@@ -806,7 +806,7 @@ Checks if the concept is an ``Entity``.
 concept.isEntity();
 ----
 
-[#_ThingType_isEntityType__]
+[#_ThingType_isEntityType_]
 ==== isEntityType
 
 [source,java]
@@ -829,7 +829,7 @@ Checks if the concept is an ``EntityType``.
 concept.isEntityType();
 ----
 
-[#_ThingType_isRelation__]
+[#_ThingType_isRelation_]
 ==== isRelation
 
 [source,java]
@@ -852,7 +852,7 @@ Checks if the concept is a ``Relation``.
 concept.isRelation();
 ----
 
-[#_ThingType_isRelationType__]
+[#_ThingType_isRelationType_]
 ==== isRelationType
 
 [source,java]
@@ -875,7 +875,7 @@ Checks if the concept is a ``RelationType``.
 concept.isRelationType();
 ----
 
-[#_ThingType_isRoleType__]
+[#_ThingType_isRoleType_]
 ==== isRoleType
 
 [source,java]
@@ -898,7 +898,7 @@ Checks if the concept is a ``RoleType``.
 concept.isRoleType();
 ----
 
-[#_ThingType_isThing__]
+[#_ThingType_isThing_]
 ==== isThing
 
 [source,java]
@@ -921,7 +921,7 @@ Checks if the concept is a ``Thing``.
 concept.isThing();
 ----
 
-[#_ThingType_isThingType__]
+[#_ThingType_isThingType_]
 ==== isThingType
 
 [source,java]
@@ -944,7 +944,7 @@ Checks if the concept is a ``ThingType``.
 concept.isThingType();
 ----
 
-[#_ThingType_isValue__]
+[#_ThingType_isValue_]
 ==== isValue
 
 [source,java]
@@ -967,7 +967,7 @@ Checks if the concept is a ``Value``.
 concept.isValue();
 ----
 
-[#_ThingType_setAbstract__TypeDBTransaction]
+[#_ThingType_setAbstract_TypeDBTransaction]
 ==== setAbstract
 
 [source,java]
@@ -999,7 +999,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.setAbstract(transaction).resolve();
 ----
 
-[#_ThingType_setOwns__TypeDBTransaction__AttributeType__AttributeType__java_util_Set_ThingType_Annotation_]
+[#_ThingType_setOwns_TypeDBTransaction_AttributeType_AttributeType_java_util_Set_ThingType_Annotation_]
 ==== setOwns
 
 [source,java]
@@ -1038,7 +1038,7 @@ thingType.setOwns(transaction, attributeType).resolve();
  thingType.setOwns(transaction, attributeType, overriddenType, Collections.singleton(Annotation.key())).resolve();
 ----
 
-[#_ThingType_setOwns__TypeDBTransaction__AttributeType__AttributeType]
+[#_ThingType_setOwns_TypeDBTransaction_AttributeType_AttributeType]
 ==== setOwns
 
 [source,java]
@@ -1059,7 +1059,7 @@ See also: <<#_setOwns_com_vaticle_typedb_driver_api_TypeDBTransaction_com_vaticl
 .Returns
 `Promise`
 
-[#_ThingType_setOwns__TypeDBTransaction__AttributeType__java_util_Set_ThingType_Annotation_]
+[#_ThingType_setOwns_TypeDBTransaction_AttributeType_java_util_Set_ThingType_Annotation_]
 ==== setOwns
 
 [source,java]
@@ -1080,7 +1080,7 @@ See also: <<#_setOwns_com_vaticle_typedb_driver_api_TypeDBTransaction_com_vaticl
 .Returns
 `Promise`
 
-[#_ThingType_setOwns__TypeDBTransaction__AttributeType]
+[#_ThingType_setOwns_TypeDBTransaction_AttributeType]
 ==== setOwns
 
 [source,java]
@@ -1100,7 +1100,7 @@ See also: <<#_setOwns_com_vaticle_typedb_driver_api_TypeDBTransaction_com_vaticl
 .Returns
 `Promise`
 
-[#_ThingType_setPlays__TypeDBTransaction__RoleType]
+[#_ThingType_setPlays_TypeDBTransaction_RoleType]
 ==== setPlays
 
 [source,java]
@@ -1120,7 +1120,7 @@ See also: <<#_setPlays_com_vaticle_typedb_driver_api_TypeDBTransaction_com_vatic
 .Returns
 `Promise`
 
-[#_ThingType_setPlays__TypeDBTransaction__RoleType__RoleType]
+[#_ThingType_setPlays_TypeDBTransaction_RoleType_RoleType]
 ==== setPlays
 
 [source,java]
@@ -1157,7 +1157,7 @@ thingType.setPlays(transaction, roleType).resolve();
  thingType.setPlays(transaction, roleType, overriddenType).resolve();
 ----
 
-[#_ThingType_unsetAbstract__TypeDBTransaction]
+[#_ThingType_unsetAbstract_TypeDBTransaction]
 ==== unsetAbstract
 
 [source,java]
@@ -1189,7 +1189,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.unsetAbstract(transaction).resolve();
 ----
 
-[#_ThingType_unsetOwns__TypeDBTransaction__AttributeType]
+[#_ThingType_unsetOwns_TypeDBTransaction_AttributeType]
 ==== unsetOwns
 
 [source,java]
@@ -1223,7 +1223,7 @@ a| `attributeType` a| The ``AttributeType`` to not be owned by the type. a| `Att
 thingType.unsetOwns(transaction, attributeType).resolve();
 ----
 
-[#_ThingType_unsetPlays__TypeDBTransaction__RoleType]
+[#_ThingType_unsetPlays_TypeDBTransaction_RoleType]
 ==== unsetPlays
 
 [source,java]
diff --git a/java/docs/schema/Type.adoc b/docs/modules/ROOT/partials/java/schema/Type.adoc
similarity index 92%
rename from java/docs/schema/Type.adoc
rename to docs/modules/ROOT/partials/java/schema/Type.adoc
index 4edceef048..dfce3c1802 100644
--- a/java/docs/schema/Type.adoc
+++ b/docs/modules/ROOT/partials/java/schema/Type.adoc
@@ -8,7 +8,7 @@
 * `Concept`
 
 // tag::methods[]
-[#_Type_asAttribute__]
+[#_Type_asAttribute_]
 ==== asAttribute
 
 [source,java]
@@ -30,7 +30,7 @@ Casts the concept to ``Attribute``.
 concept.asAttribute();
 ----
 
-[#_Type_asAttributeType__]
+[#_Type_asAttributeType_]
 ==== asAttributeType
 
 [source,java]
@@ -52,7 +52,7 @@ Casts the concept to ``AttributeType``.
 concept.asAttributeType();
 ----
 
-[#_Type_asEntity__]
+[#_Type_asEntity_]
 ==== asEntity
 
 [source,java]
@@ -74,7 +74,7 @@ Casts the concept to ``Entity``.
 concept.asEntity();
 ----
 
-[#_Type_asEntityType__]
+[#_Type_asEntityType_]
 ==== asEntityType
 
 [source,java]
@@ -96,7 +96,7 @@ Casts the concept to ``EntityType``.
 concept.asEntityType();
 ----
 
-[#_Type_asRelation__]
+[#_Type_asRelation_]
 ==== asRelation
 
 [source,java]
@@ -118,7 +118,7 @@ Casts the concept to ``Relation``.
 concept.asRelation();
 ----
 
-[#_Type_asRelationType__]
+[#_Type_asRelationType_]
 ==== asRelationType
 
 [source,java]
@@ -140,7 +140,7 @@ Casts the concept to ``RelationType``.
 concept.asRelationType();
 ----
 
-[#_Type_asRoleType__]
+[#_Type_asRoleType_]
 ==== asRoleType
 
 [source,java]
@@ -162,7 +162,7 @@ Casts the concept to ``RoleType``.
 concept.asRoleType();
 ----
 
-[#_Type_asThing__]
+[#_Type_asThing_]
 ==== asThing
 
 [source,java]
@@ -184,7 +184,7 @@ Casts the concept to ``Thing``.
 concept.asThing();
 ----
 
-[#_Type_asThingType__]
+[#_Type_asThingType_]
 ==== asThingType
 
 [source,java]
@@ -206,7 +206,7 @@ Casts the concept to ``ThingType``.
 concept.asThingType();
 ----
 
-[#_Type_asType__]
+[#_Type_asType_]
 ==== asType
 
 [source,java]
@@ -229,7 +229,7 @@ Casts the concept to ``Type``.
 concept.asType();
 ----
 
-[#_Type_asValue__]
+[#_Type_asValue_]
 ==== asValue
 
 [source,java]
@@ -251,7 +251,7 @@ Casts the concept to ``Value``.
 concept.asValue();
 ----
 
-[#_Type_delete__TypeDBTransaction]
+[#_Type_delete_TypeDBTransaction]
 ==== delete
 
 [source,java]
@@ -283,7 +283,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 type.delete(transaction).resolve();
 ----
 
-[#_Type_getLabel__]
+[#_Type_getLabel_]
 ==== getLabel
 
 [source,java]
@@ -306,7 +306,7 @@ Retrieves the unique label of the type.
 type.getLabel();
 ----
 
-[#_Type_getSubtypes__TypeDBTransaction]
+[#_Type_getSubtypes_TypeDBTransaction]
 ==== getSubtypes
 
 [source,java]
@@ -325,7 +325,7 @@ See also: <<#_getSubtypes_com_vaticle_typedb_driver_api_TypeDBTransaction_com_va
 .Returns
 `java.util.stream.Stream`
 
-[#_Type_getSubtypes__TypeDBTransaction__Concept_Transitivity]
+[#_Type_getSubtypes_TypeDBTransaction_Concept_Transitivity]
 ==== getSubtypes
 
 [source,java]
@@ -360,7 +360,7 @@ type.getSubtypes(transaction);
  type.getSubtypes(transaction, Transitivity.EXPLICIT);
 ----
 
-[#_Type_getSupertype__TypeDBTransaction]
+[#_Type_getSupertype_TypeDBTransaction]
 ==== getSupertype
 
 [source,java]
@@ -392,7 +392,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 type.getSupertype(transaction).resolve();
 ----
 
-[#_Type_getSupertypes__TypeDBTransaction]
+[#_Type_getSupertypes_TypeDBTransaction]
 ==== getSupertypes
 
 [source,java]
@@ -424,7 +424,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 type.getSupertypes(transaction);
 ----
 
-[#_Type_isAbstract__]
+[#_Type_isAbstract_]
 ==== isAbstract
 
 [source,java]
@@ -447,7 +447,7 @@ Checks if the type is prevented from having data instances (i.e., ``abstract``).
 type.isAbstract();
 ----
 
-[#_Type_isAttribute__]
+[#_Type_isAttribute_]
 ==== isAttribute
 
 [source,java]
@@ -470,7 +470,7 @@ Checks if the concept is an ``Attribute``.
 concept.isAttribute();
 ----
 
-[#_Type_isAttributeType__]
+[#_Type_isAttributeType_]
 ==== isAttributeType
 
 [source,java]
@@ -493,7 +493,7 @@ Checks if the concept is an ``AttributeType``.
 concept.isAttributeType();
 ----
 
-[#_Type_isDeleted__TypeDBTransaction]
+[#_Type_isDeleted_TypeDBTransaction]
 ==== isDeleted
 
 [source,java]
@@ -525,7 +525,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 type.isDeleted(transaction).resolve();
 ----
 
-[#_Type_isEntity__]
+[#_Type_isEntity_]
 ==== isEntity
 
 [source,java]
@@ -548,7 +548,7 @@ Checks if the concept is an ``Entity``.
 concept.isEntity();
 ----
 
-[#_Type_isEntityType__]
+[#_Type_isEntityType_]
 ==== isEntityType
 
 [source,java]
@@ -571,7 +571,7 @@ Checks if the concept is an ``EntityType``.
 concept.isEntityType();
 ----
 
-[#_Type_isRelation__]
+[#_Type_isRelation_]
 ==== isRelation
 
 [source,java]
@@ -594,7 +594,7 @@ Checks if the concept is a ``Relation``.
 concept.isRelation();
 ----
 
-[#_Type_isRelationType__]
+[#_Type_isRelationType_]
 ==== isRelationType
 
 [source,java]
@@ -617,7 +617,7 @@ Checks if the concept is a ``RelationType``.
 concept.isRelationType();
 ----
 
-[#_Type_isRoleType__]
+[#_Type_isRoleType_]
 ==== isRoleType
 
 [source,java]
@@ -640,7 +640,7 @@ Checks if the concept is a ``RoleType``.
 concept.isRoleType();
 ----
 
-[#_Type_isRoot__]
+[#_Type_isRoot_]
 ==== isRoot
 
 [source,java]
@@ -663,7 +663,7 @@ Checks if the type is a root type.
 type.isRoot();
 ----
 
-[#_Type_isThing__]
+[#_Type_isThing_]
 ==== isThing
 
 [source,java]
@@ -686,7 +686,7 @@ Checks if the concept is a ``Thing``.
 concept.isThing();
 ----
 
-[#_Type_isThingType__]
+[#_Type_isThingType_]
 ==== isThingType
 
 [source,java]
@@ -709,7 +709,7 @@ Checks if the concept is a ``ThingType``.
 concept.isThingType();
 ----
 
-[#_Type_isType__]
+[#_Type_isType_]
 ==== isType
 
 [source,java]
@@ -732,7 +732,7 @@ Checks if the concept is a ``Type``.
 concept.isType();
 ----
 
-[#_Type_isValue__]
+[#_Type_isValue_]
 ==== isValue
 
 [source,java]
@@ -755,7 +755,7 @@ Checks if the concept is a ``Value``.
 concept.isValue();
 ----
 
-[#_Type_setLabel__TypeDBTransaction__java_lang_String]
+[#_Type_setLabel_TypeDBTransaction_java_lang_String]
 ==== setLabel
 
 [source,java]
diff --git a/java/docs/schema/Value.Type.adoc b/docs/modules/ROOT/partials/java/schema/Value.Type.adoc
similarity index 92%
rename from java/docs/schema/Value.Type.adoc
rename to docs/modules/ROOT/partials/java/schema/Value.Type.adoc
index 765a2e277a..b259b541cb 100644
--- a/java/docs/schema/Value.Type.adoc
+++ b/docs/modules/ROOT/partials/java/schema/Value.Type.adoc
@@ -30,7 +30,7 @@ a| `STRING`
 // end::enum_constants[]
 
 // tag::methods[]
-[#_Value_Type_isKeyable__]
+[#_Value_Type_isKeyable_]
 ==== isKeyable
 
 [source,java]
@@ -53,7 +53,7 @@ Returns ``true`` if this value concept can be used as a key via the @key annotat
 valueType.isKeyable();
 ----
 
-[#_Value_Type_isWritable__]
+[#_Value_Type_isWritable_]
 ==== isWritable
 
 [source,java]
@@ -76,7 +76,7 @@ Returns ``true`` if this value concept can be written to a database. Otherwise,
 valueType.isWritable();
 ----
 
-[#_Value_Type_of__com_vaticle_typedb_driver_jni_ValueType]
+[#_Value_Type_of_com_vaticle_typedb_driver_jni_ValueType]
 ==== of
 
 [source,java]
@@ -91,7 +91,7 @@ public static Value.Type of​(com.vaticle.typedb.driver.jni.ValueType valueType
 .Returns
 `public static Value.Type`
 
-[#_Value_Type_valueClass__]
+[#_Value_Type_valueClass_]
 ==== valueClass
 
 [source,java]
@@ -114,7 +114,7 @@ Returns a ``Class`` equivalent of this value concept for this programming langua
 valueType.valueClass();
 ----
 
-[#_Value_Type_valueOf__java_lang_String]
+[#_Value_Type_valueOf_java_lang_String]
 ==== valueOf
 
 [source,java]
@@ -137,7 +137,7 @@ a| `name` a| the name of the enum constant to be returned. a| `java.lang.String`
 .Returns
 `public static Value.Type`
 
-[#_Value_Type_values__]
+[#_Value_Type_values_]
 ==== values
 
 [source,java]
diff --git a/java/docs/session/TypeDBOptions.adoc b/docs/modules/ROOT/partials/java/session/TypeDBOptions.adoc
similarity index 93%
rename from java/docs/session/TypeDBOptions.adoc
rename to docs/modules/ROOT/partials/java/session/TypeDBOptions.adoc
index 07993dd81e..51b25e78d6 100644
--- a/java/docs/session/TypeDBOptions.adoc
+++ b/docs/modules/ROOT/partials/java/session/TypeDBOptions.adoc
@@ -6,7 +6,7 @@
 TypeDB session and transaction options. ``TypeDBOptions`` object can be used to override the default server behaviour.
 
 // tag::methods[]
-[#_TypeDBOptions_TypeDBOptions__]
+[#_TypeDBOptions_TypeDBOptions_]
 ==== TypeDBOptions
 
 [source,java]
@@ -28,7 +28,7 @@ Produces a new ``TypeDBOptions`` object.
 TypeDBOptions options = TypeDBOptions();
 ----
 
-[#_TypeDBOptions_explain__]
+[#_TypeDBOptions_explain_]
 ==== explain
 
 [source,java]
@@ -51,7 +51,7 @@ Returns the value set for the explanation in this ``TypeDBOptions`` object. If s
 options.explain();
 ----
 
-[#_TypeDBOptions_explain__boolean]
+[#_TypeDBOptions_explain_boolean]
 ==== explain
 
 [source,java]
@@ -82,7 +82,7 @@ a| `explain` a| Explicitly enable or disable explanations a| `boolean`
 options.explain(explain);
 ----
 
-[#_TypeDBOptions_infer__]
+[#_TypeDBOptions_infer_]
 ==== infer
 
 [source,java]
@@ -105,7 +105,7 @@ Returns the value set for the inference in this ``TypeDBOptions`` object.
 options.infer();
 ----
 
-[#_TypeDBOptions_infer__boolean]
+[#_TypeDBOptions_infer_boolean]
 ==== infer
 
 [source,java]
@@ -136,7 +136,7 @@ a| `infer` a| Explicitly enable or disable inference a| `boolean`
 options.infer(infer);
 ----
 
-[#_TypeDBOptions_parallel__]
+[#_TypeDBOptions_parallel_]
 ==== parallel
 
 [source,java]
@@ -159,7 +159,7 @@ Returns the value set for the parallel execution in this ``TypeDBOptions`` objec
 options.parallel();
 ----
 
-[#_TypeDBOptions_parallel__boolean]
+[#_TypeDBOptions_parallel_boolean]
 ==== parallel
 
 [source,java]
@@ -190,7 +190,7 @@ a| `parallel` a| Explicitly enable or disable parallel execution a| `boolean`
 options.parallel(parallel);
 ----
 
-[#_TypeDBOptions_prefetch__]
+[#_TypeDBOptions_prefetch_]
 ==== prefetch
 
 [source,java]
@@ -213,7 +213,7 @@ Returns the value set for the prefetching in this ``TypeDBOptions`` object. If s
 options.prefetch();
 ----
 
-[#_TypeDBOptions_prefetch__boolean]
+[#_TypeDBOptions_prefetch_boolean]
 ==== prefetch
 
 [source,java]
@@ -244,7 +244,7 @@ a| `prefetch` a| Explicitly enable or disable prefetching a| `boolean`
 options.prefetch(prefetch);
 ----
 
-[#_TypeDBOptions_prefetchSize__]
+[#_TypeDBOptions_prefetchSize_]
 ==== prefetchSize
 
 [source,java]
@@ -267,7 +267,7 @@ Returns the value set for the prefetch size in this ``TypeDBOptions`` object. If
 options.prefetchSize();
 ----
 
-[#_TypeDBOptions_prefetchSize__int]
+[#_TypeDBOptions_prefetchSize_int]
 ==== prefetchSize
 
 [source,java]
@@ -298,7 +298,7 @@ a| `prefetchSize` a| Number of answers that the server should send before the dr
 options.prefetchSize(prefetchSize);
 ----
 
-[#_TypeDBOptions_readAnyReplica__]
+[#_TypeDBOptions_readAnyReplica_]
 ==== readAnyReplica
 
 [source,java]
@@ -321,7 +321,7 @@ Returns the value set for reading data from any replica in this ``TypeDBOptions`
 options.readAnyReplica();
 ----
 
-[#_TypeDBOptions_readAnyReplica__boolean]
+[#_TypeDBOptions_readAnyReplica_boolean]
 ==== readAnyReplica
 
 [source,java]
@@ -352,7 +352,7 @@ a| `readAnyReplica` a| Explicitly enable or disable reading data from any replic
 options.readAnyReplica(readAnyReplica);
 ----
 
-[#_TypeDBOptions_schemaLockAcquireTimeoutMillis__]
+[#_TypeDBOptions_schemaLockAcquireTimeoutMillis_]
 ==== schemaLockAcquireTimeoutMillis
 
 [source,java]
@@ -374,7 +374,7 @@ Returns the value set for the schema lock acquire timeout in this ``TypeDBOption
 options.schemaLockAcquireTimeoutMillis();
 ----
 
-[#_TypeDBOptions_schemaLockAcquireTimeoutMillis__int]
+[#_TypeDBOptions_schemaLockAcquireTimeoutMillis_int]
 ==== schemaLockAcquireTimeoutMillis
 
 [source,java]
@@ -405,7 +405,7 @@ a| `schemaLockAcquireTimeoutMillis` a| How long the driver should wait if openin
 options.schemaLockAcquireTimeoutMillis(schemaLockAcquireTimeoutMillis);
 ----
 
-[#_TypeDBOptions_sessionIdleTimeoutMillis__]
+[#_TypeDBOptions_sessionIdleTimeoutMillis_]
 ==== sessionIdleTimeoutMillis
 
 [source,java]
@@ -428,7 +428,7 @@ Returns the value set for the session idle timeout in this ``TypeDBOptions`` obj
 options.sessionIdleTimeoutMillis();
 ----
 
-[#_TypeDBOptions_sessionIdleTimeoutMillis__int]
+[#_TypeDBOptions_sessionIdleTimeoutMillis_int]
 ==== sessionIdleTimeoutMillis
 
 [source,java]
@@ -459,7 +459,7 @@ a| `sessionIdleTimeoutMillis` a| timeout that allows the server to close session
 options.sessionIdleTimeoutMillis(sessionIdleTimeoutMillis);
 ----
 
-[#_TypeDBOptions_traceInference__]
+[#_TypeDBOptions_traceInference_]
 ==== traceInference
 
 [source,java]
@@ -482,7 +482,7 @@ Returns the value set for reasoning tracing in this ``TypeDBOptions`` object. If
 options.traceInference();
 ----
 
-[#_TypeDBOptions_traceInference__boolean]
+[#_TypeDBOptions_traceInference_boolean]
 ==== traceInference
 
 [source,java]
@@ -513,7 +513,7 @@ a| `traceInference` a| Explicitly enable or disable reasoning tracing a| `boolea
 options.traceInference(traceInference);
 ----
 
-[#_TypeDBOptions_transactionTimeoutMillis__]
+[#_TypeDBOptions_transactionTimeoutMillis_]
 ==== transactionTimeoutMillis
 
 [source,java]
@@ -536,7 +536,7 @@ Returns the value set for the transaction timeout in this ``TypeDBOptions`` obje
 options.transactionTimeoutMillis();
 ----
 
-[#_TypeDBOptions_transactionTimeoutMillis__int]
+[#_TypeDBOptions_transactionTimeoutMillis_int]
 ==== transactionTimeoutMillis
 
 [source,java]
diff --git a/java/docs/session/TypeDBSession.Type.adoc b/docs/modules/ROOT/partials/java/session/TypeDBSession.Type.adoc
similarity index 91%
rename from java/docs/session/TypeDBSession.Type.adoc
rename to docs/modules/ROOT/partials/java/session/TypeDBSession.Type.adoc
index 299739b845..5176fbe6d4 100644
--- a/java/docs/session/TypeDBSession.Type.adoc
+++ b/docs/modules/ROOT/partials/java/session/TypeDBSession.Type.adoc
@@ -26,7 +26,7 @@ a| `SCHEMA`
 // end::enum_constants[]
 
 // tag::methods[]
-[#_TypeDBSession_Type_id__]
+[#_TypeDBSession_Type_id_]
 ==== id
 
 [source,java]
@@ -40,7 +40,7 @@ public int id()
 .Returns
 `public int`
 
-[#_TypeDBSession_Type_isData__]
+[#_TypeDBSession_Type_isData_]
 ==== isData
 
 [source,java]
@@ -54,7 +54,7 @@ public boolean isData()
 .Returns
 `public boolean`
 
-[#_TypeDBSession_Type_isSchema__]
+[#_TypeDBSession_Type_isSchema_]
 ==== isSchema
 
 [source,java]
@@ -68,7 +68,7 @@ public boolean isSchema()
 .Returns
 `public boolean`
 
-[#_TypeDBSession_Type_valueOf__java_lang_String]
+[#_TypeDBSession_Type_valueOf_java_lang_String]
 ==== valueOf
 
 [source,java]
@@ -91,7 +91,7 @@ a| `name` a| the name of the enum constant to be returned. a| `java.lang.String`
 .Returns
 `public static TypeDBSession.Type`
 
-[#_TypeDBSession_Type_values__]
+[#_TypeDBSession_Type_values_]
 ==== values
 
 [source,java]
diff --git a/java/docs/session/TypeDBSession.adoc b/docs/modules/ROOT/partials/java/session/TypeDBSession.adoc
similarity index 90%
rename from java/docs/session/TypeDBSession.adoc
rename to docs/modules/ROOT/partials/java/session/TypeDBSession.adoc
index 7be4b8d316..bb06ee1055 100644
--- a/java/docs/session/TypeDBSession.adoc
+++ b/docs/modules/ROOT/partials/java/session/TypeDBSession.adoc
@@ -8,7 +8,7 @@
 * `java.lang.AutoCloseable`
 
 // tag::methods[]
-[#_TypeDBSession_close__]
+[#_TypeDBSession_close_]
 ==== close
 
 [source,java]
@@ -30,7 +30,7 @@ Closes the session. Before opening a new session, the session currently open sho
 session.close();
 ----
 
-[#_TypeDBSession_databaseName__]
+[#_TypeDBSession_databaseName_]
 ==== databaseName
 
 [source,java]
@@ -53,7 +53,7 @@ Returns the name of the database of the session.
 session.databaseName();
 ----
 
-[#_TypeDBSession_isOpen__]
+[#_TypeDBSession_isOpen_]
 ==== isOpen
 
 [source,java]
@@ -76,7 +76,7 @@ Checks whether this session is open.
 session.isOpen();
 ----
 
-[#_TypeDBSession_onClose__java_lang_Runnable]
+[#_TypeDBSession_onClose_java_lang_Runnable]
 ==== onClose
 
 [source,java]
@@ -107,7 +107,7 @@ a| `function` a| The callback function. a| `java.lang.Runnable`
 session.onClose(function)
 ----
 
-[#_TypeDBSession_onReopen__java_lang_Runnable]
+[#_TypeDBSession_onReopen_java_lang_Runnable]
 ==== onReopen
 
 [source,java]
@@ -138,7 +138,7 @@ a| `function` a| The callback function. a| `java.lang.Runnable`
 session.onReopen(function)
 ----
 
-[#_TypeDBSession_options__]
+[#_TypeDBSession_options_]
 ==== options
 
 [source,java]
@@ -153,7 +153,7 @@ Gets the options for the session
 .Returns
 `TypeDBOptions`
 
-[#_TypeDBSession_transaction__TypeDBTransaction_Type]
+[#_TypeDBSession_transaction_TypeDBTransaction_Type]
 ==== transaction
 
 [source,java]
@@ -172,7 +172,7 @@ See also: <<#_transaction_com_vaticle_typedb_driver_api_TypeDBTransaction_Type_c
 .Returns
 `TypeDBTransaction`
 
-[#_TypeDBSession_transaction__TypeDBTransaction_Type__TypeDBOptions]
+[#_TypeDBSession_transaction_TypeDBTransaction_Type_TypeDBOptions]
 ==== transaction
 
 [source,java]
@@ -206,7 +206,7 @@ a| `options` a| Options for the session a| `TypeDBOptions`
 session.transaction(transactionType, options);
 ----
 
-[#_TypeDBSession_type__]
+[#_TypeDBSession_type_]
 ==== type
 
 [source,java]
diff --git a/java/docs/transaction/QueryManager.adoc b/docs/modules/ROOT/partials/java/transaction/QueryManager.adoc
similarity index 88%
rename from java/docs/transaction/QueryManager.adoc
rename to docs/modules/ROOT/partials/java/transaction/QueryManager.adoc
index dd0069ad54..9db0228177 100644
--- a/java/docs/transaction/QueryManager.adoc
+++ b/docs/modules/ROOT/partials/java/transaction/QueryManager.adoc
@@ -6,7 +6,7 @@
 Provides methods for executing TypeQL queries in the transaction.
 
 // tag::methods[]
-[#_QueryManager_define__com_vaticle_typeql_lang_query_TypeQLDefine]
+[#_QueryManager_define_com_vaticle_typeql_lang_query_TypeQLDefine]
 ==== define
 
 [source,java]
@@ -25,7 +25,7 @@ See also: <<#_define_com_vaticle_typeql_lang_query_TypeQLDefine_com_vaticle_type
 .Returns
 `Promise`
 
-[#_QueryManager_define__com_vaticle_typeql_lang_query_TypeQLDefine__TypeDBOptions]
+[#_QueryManager_define_com_vaticle_typeql_lang_query_TypeQLDefine_TypeDBOptions]
 ==== define
 
 [source,java]
@@ -59,7 +59,7 @@ a| `options` a| Specify query options a| `TypeDBOptions`
 transaction.query().define(query, options).resolve()
 ----
 
-[#_QueryManager_define__java_lang_String]
+[#_QueryManager_define_java_lang_String]
 ==== define
 
 [source,java]
@@ -78,7 +78,7 @@ See also: <<#_define_com_vaticle_typeql_lang_query_TypeQLDefine_com_vaticle_type
 .Returns
 `Promise`
 
-[#_QueryManager_define__java_lang_String__TypeDBOptions]
+[#_QueryManager_define_java_lang_String_TypeDBOptions]
 ==== define
 
 [source,java]
@@ -96,7 +96,7 @@ See also: <<#_define_com_vaticle_typeql_lang_query_TypeQLDefine_com_vaticle_type
 .Returns
 `Promise`
 
-[#_QueryManager_delete__com_vaticle_typeql_lang_query_TypeQLDelete]
+[#_QueryManager_delete_com_vaticle_typeql_lang_query_TypeQLDelete]
 ==== delete
 
 [source,java]
@@ -115,7 +115,7 @@ See also: <<#_delete_com_vaticle_typeql_lang_query_TypeQLDelete_com_vaticle_type
 .Returns
 `Promise`
 
-[#_QueryManager_delete__com_vaticle_typeql_lang_query_TypeQLDelete__TypeDBOptions]
+[#_QueryManager_delete_com_vaticle_typeql_lang_query_TypeQLDelete_TypeDBOptions]
 ==== delete
 
 [source,java]
@@ -149,7 +149,7 @@ a| `options` a| Specify query options a| `TypeDBOptions`
 transaction.query().delete(query, options).resolve()
 ----
 
-[#_QueryManager_delete__java_lang_String]
+[#_QueryManager_delete_java_lang_String]
 ==== delete
 
 [source,java]
@@ -168,7 +168,7 @@ See also: <<#_delete_com_vaticle_typeql_lang_query_TypeQLDelete_com_vaticle_type
 .Returns
 `Promise`
 
-[#_QueryManager_delete__java_lang_String__TypeDBOptions]
+[#_QueryManager_delete_java_lang_String_TypeDBOptions]
 ==== delete
 
 [source,java]
@@ -186,7 +186,7 @@ See also: <<#_delete_com_vaticle_typeql_lang_query_TypeQLDelete_com_vaticle_type
 .Returns
 `Promise`
 
-[#_QueryManager_explain__ConceptMap_Explainable]
+[#_QueryManager_explain_ConceptMap_Explainable]
 ==== explain
 
 [source,java]
@@ -205,7 +205,7 @@ See also: <<#_explain_com_vaticle_typedb_driver_api_answer_ConceptMap_Explainabl
 .Returns
 `java.util.stream.Stream`
 
-[#_QueryManager_explain__ConceptMap_Explainable__TypeDBOptions]
+[#_QueryManager_explain_ConceptMap_Explainable_TypeDBOptions]
 ==== explain
 
 [source,java]
@@ -239,7 +239,7 @@ a| `options` a| Specify query options a| `TypeDBOptions`
 transaction.query().explain(explainable, options)
 ----
 
-[#_QueryManager_fetch__com_vaticle_typeql_lang_query_TypeQLFetch]
+[#_QueryManager_fetch_com_vaticle_typeql_lang_query_TypeQLFetch]
 ==== fetch
 
 [source,java]
@@ -258,7 +258,7 @@ See also: <<#_fetch_com_vaticle_typeql_lang_query_TypeQLFetch_com_vaticle_typedb
 .Returns
 `java.util.stream.Stream`
 
-[#_QueryManager_fetch__com_vaticle_typeql_lang_query_TypeQLFetch__TypeDBOptions]
+[#_QueryManager_fetch_com_vaticle_typeql_lang_query_TypeQLFetch_TypeDBOptions]
 ==== fetch
 
 [source,java]
@@ -292,7 +292,7 @@ a| `options` a| Specify query options a| `TypeDBOptions`
 transaction.query().fetch(query, options)
 ----
 
-[#_QueryManager_fetch__java_lang_String]
+[#_QueryManager_fetch_java_lang_String]
 ==== fetch
 
 [source,java]
@@ -311,7 +311,7 @@ See also: <<#_fetch_com_vaticle_typeql_lang_query_TypeQLFetch_com_vaticle_typedb
 .Returns
 `java.util.stream.Stream`
 
-[#_QueryManager_fetch__java_lang_String__TypeDBOptions]
+[#_QueryManager_fetch_java_lang_String_TypeDBOptions]
 ==== fetch
 
 [source,java]
@@ -329,7 +329,7 @@ See also: <<#_fetch_com_vaticle_typeql_lang_query_TypeQLFetch_com_vaticle_typedb
 .Returns
 `java.util.stream.Stream`
 
-[#_QueryManager_get__com_vaticle_typeql_lang_query_TypeQLGet]
+[#_QueryManager_get_com_vaticle_typeql_lang_query_TypeQLGet]
 ==== get
 
 [source,java]
@@ -348,7 +348,7 @@ See also: <<#_get_com_vaticle_typeql_lang_query_TypeQLGet_com_vaticle_typedb_dri
 .Returns
 `java.util.stream.Stream`
 
-[#_QueryManager_get__com_vaticle_typeql_lang_query_TypeQLGet__TypeDBOptions]
+[#_QueryManager_get_com_vaticle_typeql_lang_query_TypeQLGet_TypeDBOptions]
 ==== get
 
 [source,java]
@@ -382,7 +382,7 @@ a| `options` a| Specify query options a| `TypeDBOptions`
 transaction.query().get(query, options)
 ----
 
-[#_QueryManager_get__java_lang_String]
+[#_QueryManager_get_java_lang_String]
 ==== get
 
 [source,java]
@@ -401,7 +401,7 @@ See also: <<#_get_com_vaticle_typeql_lang_query_TypeQLGet_com_vaticle_typedb_dri
 .Returns
 `java.util.stream.Stream`
 
-[#_QueryManager_get__java_lang_String__TypeDBOptions]
+[#_QueryManager_get_java_lang_String_TypeDBOptions]
 ==== get
 
 [source,java]
@@ -419,7 +419,7 @@ See also: <<#_get_com_vaticle_typeql_lang_query_TypeQLGet_com_vaticle_typedb_dri
 .Returns
 `java.util.stream.Stream`
 
-[#_QueryManager_get__com_vaticle_typeql_lang_query_TypeQLGet_Aggregate]
+[#_QueryManager_get_com_vaticle_typeql_lang_query_TypeQLGet_Aggregate]
 ==== get
 
 [source,java]
@@ -438,7 +438,7 @@ See also: <<#_get_com_vaticle_typeql_lang_query_TypeQLGet_Aggregate_com_vaticle_
 .Returns
 `Promise>`
 
-[#_QueryManager_get__com_vaticle_typeql_lang_query_TypeQLGet_Aggregate__TypeDBOptions]
+[#_QueryManager_get_com_vaticle_typeql_lang_query_TypeQLGet_Aggregate_TypeDBOptions]
 ==== get
 
 [source,java]
@@ -472,7 +472,7 @@ a| `options` a| Specify query options a| `TypeDBOptions`
 transaction.query().getAggregate(query, options).resolve()
 ----
 
-[#_QueryManager_get__com_vaticle_typeql_lang_query_TypeQLGet_Group]
+[#_QueryManager_get_com_vaticle_typeql_lang_query_TypeQLGet_Group]
 ==== get
 
 [source,java]
@@ -491,7 +491,7 @@ See also: <<#_get_com_vaticle_typeql_lang_query_TypeQLGet_Group_com_vaticle_type
 .Returns
 `java.util.stream.Stream`
 
-[#_QueryManager_get__com_vaticle_typeql_lang_query_TypeQLGet_Group__TypeDBOptions]
+[#_QueryManager_get_com_vaticle_typeql_lang_query_TypeQLGet_Group_TypeDBOptions]
 ==== get
 
 [source,java]
@@ -525,7 +525,7 @@ a| `options` a| Specify query options a| `TypeDBOptions`
 transaction.query().getGroup(query, options)
 ----
 
-[#_QueryManager_get__com_vaticle_typeql_lang_query_TypeQLGet_Group_Aggregate]
+[#_QueryManager_get_com_vaticle_typeql_lang_query_TypeQLGet_Group_Aggregate]
 ==== get
 
 [source,java]
@@ -544,7 +544,7 @@ See also: <<#_get_com_vaticle_typeql_lang_query_TypeQLGet_Group_Aggregate_com_va
 .Returns
 `java.util.stream.Stream`
 
-[#_QueryManager_get__com_vaticle_typeql_lang_query_TypeQLGet_Group_Aggregate__TypeDBOptions]
+[#_QueryManager_get_com_vaticle_typeql_lang_query_TypeQLGet_Group_Aggregate_TypeDBOptions]
 ==== get
 
 [source,java]
@@ -578,7 +578,7 @@ a| `options` a| Specify query options a| `TypeDBOptions`
 transaction.query().getGroupAggregate(query, options)
 ----
 
-[#_QueryManager_getAggregate__java_lang_String]
+[#_QueryManager_getAggregate_java_lang_String]
 ==== getAggregate
 
 [source,java]
@@ -597,7 +597,7 @@ See also: <<#_get_com_vaticle_typeql_lang_query_TypeQLGet_Aggregate_com_vaticle_
 .Returns
 `Promise>`
 
-[#_QueryManager_getAggregate__java_lang_String__TypeDBOptions]
+[#_QueryManager_getAggregate_java_lang_String_TypeDBOptions]
 ==== getAggregate
 
 [source,java]
@@ -615,7 +615,7 @@ See also: <<#_get_com_vaticle_typeql_lang_query_TypeQLGet_Aggregate_com_vaticle_
 .Returns
 `Promise>`
 
-[#_QueryManager_getGroup__java_lang_String]
+[#_QueryManager_getGroup_java_lang_String]
 ==== getGroup
 
 [source,java]
@@ -634,7 +634,7 @@ See also: <<#_get_com_vaticle_typeql_lang_query_TypeQLGet_Group_com_vaticle_type
 .Returns
 `java.util.stream.Stream`
 
-[#_QueryManager_getGroup__java_lang_String__TypeDBOptions]
+[#_QueryManager_getGroup_java_lang_String_TypeDBOptions]
 ==== getGroup
 
 [source,java]
@@ -652,7 +652,7 @@ See also: <<#_get_com_vaticle_typeql_lang_query_TypeQLGet_Group_com_vaticle_type
 .Returns
 `java.util.stream.Stream`
 
-[#_QueryManager_getGroupAggregate__java_lang_String]
+[#_QueryManager_getGroupAggregate_java_lang_String]
 ==== getGroupAggregate
 
 [source,java]
@@ -671,7 +671,7 @@ See also: <<#_get_com_vaticle_typeql_lang_query_TypeQLGet_Group_Aggregate_com_va
 .Returns
 `java.util.stream.Stream`
 
-[#_QueryManager_getGroupAggregate__java_lang_String__TypeDBOptions]
+[#_QueryManager_getGroupAggregate_java_lang_String_TypeDBOptions]
 ==== getGroupAggregate
 
 [source,java]
@@ -689,7 +689,7 @@ See also: <<#_get_com_vaticle_typeql_lang_query_TypeQLGet_Group_Aggregate_com_va
 .Returns
 `java.util.stream.Stream`
 
-[#_QueryManager_insert__com_vaticle_typeql_lang_query_TypeQLInsert]
+[#_QueryManager_insert_com_vaticle_typeql_lang_query_TypeQLInsert]
 ==== insert
 
 [source,java]
@@ -707,7 +707,7 @@ See also: <<#_insert_com_vaticle_typeql_lang_query_TypeQLInsert_com_vaticle_type
 .Returns
 `java.util.stream.Stream`
 
-[#_QueryManager_insert__com_vaticle_typeql_lang_query_TypeQLInsert__TypeDBOptions]
+[#_QueryManager_insert_com_vaticle_typeql_lang_query_TypeQLInsert_TypeDBOptions]
 ==== insert
 
 [source,java]
@@ -740,7 +740,7 @@ a| `options` a| Specify query options a| `TypeDBOptions`
 transaction.query().insert(query, options)
 ----
 
-[#_QueryManager_insert__java_lang_String]
+[#_QueryManager_insert_java_lang_String]
 ==== insert
 
 [source,java]
@@ -758,7 +758,7 @@ See also: <<#_insert_com_vaticle_typeql_lang_query_TypeQLInsert_com_vaticle_type
 .Returns
 `java.util.stream.Stream`
 
-[#_QueryManager_insert__java_lang_String__TypeDBOptions]
+[#_QueryManager_insert_java_lang_String_TypeDBOptions]
 ==== insert
 
 [source,java]
@@ -775,7 +775,7 @@ See also: <<#_insert_com_vaticle_typeql_lang_query_TypeQLInsert_com_vaticle_type
 .Returns
 `java.util.stream.Stream`
 
-[#_QueryManager_undefine__com_vaticle_typeql_lang_query_TypeQLUndefine]
+[#_QueryManager_undefine_com_vaticle_typeql_lang_query_TypeQLUndefine]
 ==== undefine
 
 [source,java]
@@ -794,7 +794,7 @@ See also: <<#_undefine_com_vaticle_typeql_lang_query_TypeQLUndefine_com_vaticle_
 .Returns
 `Promise`
 
-[#_QueryManager_undefine__com_vaticle_typeql_lang_query_TypeQLUndefine__TypeDBOptions]
+[#_QueryManager_undefine_com_vaticle_typeql_lang_query_TypeQLUndefine_TypeDBOptions]
 ==== undefine
 
 [source,java]
@@ -828,7 +828,7 @@ a| `options` a| Specify query options a| `TypeDBOptions`
 transaction.query().undefine(query, options).resolve()
 ----
 
-[#_QueryManager_undefine__java_lang_String]
+[#_QueryManager_undefine_java_lang_String]
 ==== undefine
 
 [source,java]
@@ -847,7 +847,7 @@ See also: <<#_undefine_com_vaticle_typeql_lang_query_TypeQLUndefine_com_vaticle_
 .Returns
 `Promise`
 
-[#_QueryManager_undefine__java_lang_String__TypeDBOptions]
+[#_QueryManager_undefine_java_lang_String_TypeDBOptions]
 ==== undefine
 
 [source,java]
@@ -865,7 +865,7 @@ See also: <<#_undefine_com_vaticle_typeql_lang_query_TypeQLUndefine_com_vaticle_
 .Returns
 `Promise`
 
-[#_QueryManager_update__com_vaticle_typeql_lang_query_TypeQLUpdate]
+[#_QueryManager_update_com_vaticle_typeql_lang_query_TypeQLUpdate]
 ==== update
 
 [source,java]
@@ -883,7 +883,7 @@ See also: <<#_update_com_vaticle_typeql_lang_query_TypeQLUpdate_com_vaticle_type
 .Returns
 `java.util.stream.Stream`
 
-[#_QueryManager_update__com_vaticle_typeql_lang_query_TypeQLUpdate__TypeDBOptions]
+[#_QueryManager_update_com_vaticle_typeql_lang_query_TypeQLUpdate_TypeDBOptions]
 ==== update
 
 [source,java]
@@ -916,7 +916,7 @@ a| `options` a| Specify query options a| `TypeDBOptions`
 transaction.query().update(query, options)
 ----
 
-[#_QueryManager_update__java_lang_String]
+[#_QueryManager_update_java_lang_String]
 ==== update
 
 [source,java]
@@ -934,7 +934,7 @@ See also: <<#_update_com_vaticle_typeql_lang_query_TypeQLUpdate_com_vaticle_type
 .Returns
 `java.util.stream.Stream`
 
-[#_QueryManager_update__java_lang_String__TypeDBOptions]
+[#_QueryManager_update_java_lang_String_TypeDBOptions]
 ==== update
 
 [source,java]
diff --git a/java/docs/transaction/TypeDBTransaction.Type.adoc b/docs/modules/ROOT/partials/java/transaction/TypeDBTransaction.Type.adoc
similarity index 90%
rename from java/docs/transaction/TypeDBTransaction.Type.adoc
rename to docs/modules/ROOT/partials/java/transaction/TypeDBTransaction.Type.adoc
index 323c8c8a33..fe31ba9086 100644
--- a/java/docs/transaction/TypeDBTransaction.Type.adoc
+++ b/docs/modules/ROOT/partials/java/transaction/TypeDBTransaction.Type.adoc
@@ -26,7 +26,7 @@ a| `WRITE`
 // end::enum_constants[]
 
 // tag::methods[]
-[#_TypeDBTransaction_Type_id__]
+[#_TypeDBTransaction_Type_id_]
 ==== id
 
 [source,java]
@@ -40,7 +40,7 @@ public int id()
 .Returns
 `public int`
 
-[#_TypeDBTransaction_Type_isRead__]
+[#_TypeDBTransaction_Type_isRead_]
 ==== isRead
 
 [source,java]
@@ -54,7 +54,7 @@ public boolean isRead()
 .Returns
 `public boolean`
 
-[#_TypeDBTransaction_Type_isWrite__]
+[#_TypeDBTransaction_Type_isWrite_]
 ==== isWrite
 
 [source,java]
@@ -68,7 +68,7 @@ public boolean isWrite()
 .Returns
 `public boolean`
 
-[#_TypeDBTransaction_Type_valueOf__java_lang_String]
+[#_TypeDBTransaction_Type_valueOf_java_lang_String]
 ==== valueOf
 
 [source,java]
@@ -91,7 +91,7 @@ a| `name` a| the name of the enum constant to be returned. a| `java.lang.String`
 .Returns
 `public static TypeDBTransaction.Type`
 
-[#_TypeDBTransaction_Type_values__]
+[#_TypeDBTransaction_Type_values_]
 ==== values
 
 [source,java]
diff --git a/java/docs/transaction/TypeDBTransaction.adoc b/docs/modules/ROOT/partials/java/transaction/TypeDBTransaction.adoc
similarity index 87%
rename from java/docs/transaction/TypeDBTransaction.adoc
rename to docs/modules/ROOT/partials/java/transaction/TypeDBTransaction.adoc
index 2161540eb3..8ee4d4cceb 100644
--- a/java/docs/transaction/TypeDBTransaction.adoc
+++ b/docs/modules/ROOT/partials/java/transaction/TypeDBTransaction.adoc
@@ -8,7 +8,7 @@
 * `java.lang.AutoCloseable`
 
 // tag::methods[]
-[#_TypeDBTransaction_close__]
+[#_TypeDBTransaction_close_]
 ==== close
 
 [source,java]
@@ -30,7 +30,7 @@ Closes the transaction.
 transaction.close()
 ----
 
-[#_TypeDBTransaction_commit__]
+[#_TypeDBTransaction_commit_]
 ==== commit
 
 [source,java]
@@ -52,7 +52,7 @@ Commits the changes made via this transaction to the TypeDB database. Whether or
 transaction.commit()
 ----
 
-[#_TypeDBTransaction_concepts__]
+[#_TypeDBTransaction_concepts_]
 ==== concepts
 
 [source,java]
@@ -67,7 +67,7 @@ The ``ConceptManager`` for this transaction, providing access to all Concept API
 .Returns
 `ConceptManager`
 
-[#_TypeDBTransaction_isOpen__]
+[#_TypeDBTransaction_isOpen_]
 ==== isOpen
 
 [source,java]
@@ -90,7 +90,7 @@ Checks whether this transaction is open.
 transaction.isOpen();
 ----
 
-[#_TypeDBTransaction_logic__]
+[#_TypeDBTransaction_logic_]
 ==== logic
 
 [source,java]
@@ -105,7 +105,7 @@ The ``LogicManager`` for this Transaction, providing access to all Concept API -
 .Returns
 `LogicManager`
 
-[#_TypeDBTransaction_onClose__java_util_function_Consumer_java_lang_Throwable_]
+[#_TypeDBTransaction_onClose_java_util_function_Consumer_java_lang_Throwable_]
 ==== onClose
 
 [source,java]
@@ -136,7 +136,7 @@ a| `function` a| The callback function. a| `java.util.function.Consumer`
 
-[#_Stream_T_collect__]
+[#_Stream_T_collect_]
 ==== collect
 
 [source,nodejs]
@@ -39,7 +39,7 @@ Collects all the answers from this stream into an array
 results = transaction.query.match(query).collect().await;
 ----
 
-[#_Stream_T_every__callbackFn___value____unknown_]
+[#_Stream_T_every_callbackFn_value_unknown_]
 ==== every
 
 [source,nodejs]
@@ -62,7 +62,7 @@ a| `callbackFn` a|  a| `((value) => unknown)`
 .Returns
 `Promise`
 
-[#_Stream_T_filter__filter___value____boolean_]
+[#_Stream_T_filter_filter_value_boolean_]
 ==== filter
 
 [source,nodejs]
@@ -88,7 +88,7 @@ Examples
 .Returns
 `Stream`
 
-[#_Stream_T_first__]
+[#_Stream_T_first_]
 ==== first
 
 [source,nodejs]
@@ -102,7 +102,7 @@ Returns the first element in the stream.
 .Returns
 `Promise`
 
-[#_Stream_T_flatMap__mapper___value____Stream_U__]
+[#_Stream_T_flatMap_mapper_value_Stream_U_]
 ==== flatMap
 
 [source,nodejs]
@@ -125,7 +125,7 @@ a| `mapper` a| The mapping function to apply. Must return a stream. a| `((value)
 .Returns
 `Stream`
 
-[#_Stream_T_forEach__fn___value____void_]
+[#_Stream_T_forEach_fn_value_void_]
 ==== forEach
 
 [source,nodejs]
@@ -148,7 +148,7 @@ a| `fn` a| The function to evaluate for each element. a| `((value) => void)`
 .Returns
 `Promise`
 
-[#_Stream_T_iterator__]
+[#_Stream_T_iterator_]
 ==== iterator
 
 [source,nodejs]
@@ -162,7 +162,7 @@ iterator(): AsyncIterator
 .Returns
 `AsyncIterator`
 
-[#_Stream_T_map__mapper___value____U_]
+[#_Stream_T_map_mapper_value_U_]
 ==== map
 
 [source,nodejs]
@@ -185,7 +185,7 @@ a| `mapper` a| The mapping function to apply. Returns a new stream from this str
 .Returns
 `Stream`
 
-[#_Stream_T_new_Stream__]
+[#_Stream_T_new_Stream_]
 ==== new Stream
 
 [source,nodejs]
@@ -199,7 +199,7 @@ new Stream(): Stream
 .Returns
 `Stream`
 
-[#_Stream_T_some__callbackFn___value____unknown_]
+[#_Stream_T_some_callbackFn_value_unknown_]
 ==== some
 
 [source,nodejs]
diff --git a/nodejs/docs/answer/ValueGroup.adoc b/docs/modules/ROOT/partials/nodejs/answer/ValueGroup.adoc
similarity index 100%
rename from nodejs/docs/answer/ValueGroup.adoc
rename to docs/modules/ROOT/partials/nodejs/answer/ValueGroup.adoc
diff --git a/nodejs/docs/concept/Concept.adoc b/docs/modules/ROOT/partials/nodejs/concept/Concept.adoc
similarity index 89%
rename from nodejs/docs/concept/Concept.adoc
rename to docs/modules/ROOT/partials/nodejs/concept/Concept.adoc
index ae43e43d1b..bd7208f5b7 100644
--- a/nodejs/docs/concept/Concept.adoc
+++ b/docs/modules/ROOT/partials/nodejs/concept/Concept.adoc
@@ -2,7 +2,7 @@
 === Concept
 
 // tag::methods[]
-[#_Concept_asAttribute__]
+[#_Concept_asAttribute_]
 ==== asAttribute
 
 [source,nodejs]
@@ -23,7 +23,7 @@ Casts the concept to ``Attribute``.
 concept.asAttribute()
 ----
 
-[#_Concept_asAttributeType__]
+[#_Concept_asAttributeType_]
 ==== asAttributeType
 
 [source,nodejs]
@@ -44,7 +44,7 @@ Casts the concept to ``AttributeType``.
 concept.asAttributeType()
 ----
 
-[#_Concept_asEntity__]
+[#_Concept_asEntity_]
 ==== asEntity
 
 [source,nodejs]
@@ -65,7 +65,7 @@ Casts the concept to ``Entity``.
 concept.asEntity()
 ----
 
-[#_Concept_asEntityType__]
+[#_Concept_asEntityType_]
 ==== asEntityType
 
 [source,nodejs]
@@ -86,7 +86,7 @@ Casts the concept to ``EntityType``.
 concept.asEntityType()
 ----
 
-[#_Concept_asRelation__]
+[#_Concept_asRelation_]
 ==== asRelation
 
 [source,nodejs]
@@ -107,7 +107,7 @@ Casts the concept to ``Relation``.
 concept.asRelation()
 ----
 
-[#_Concept_asRelationType__]
+[#_Concept_asRelationType_]
 ==== asRelationType
 
 [source,nodejs]
@@ -128,7 +128,7 @@ Casts the concept to ``RelationType``.
 concept.asRelationType()
 ----
 
-[#_Concept_asRoleType__]
+[#_Concept_asRoleType_]
 ==== asRoleType
 
 [source,nodejs]
@@ -149,7 +149,7 @@ Casts the concept to ``RoleType``.
 concept.asRoleType()
 ----
 
-[#_Concept_asThing__]
+[#_Concept_asThing_]
 ==== asThing
 
 [source,nodejs]
@@ -170,7 +170,7 @@ Casts the concept to ``Thing``.
 concept.asThing()
 ----
 
-[#_Concept_asThingType__]
+[#_Concept_asThingType_]
 ==== asThingType
 
 [source,nodejs]
@@ -191,7 +191,7 @@ Casts the concept to ``ThingType``.
 concept.asThingType()
 ----
 
-[#_Concept_asType__]
+[#_Concept_asType_]
 ==== asType
 
 [source,nodejs]
@@ -212,7 +212,7 @@ Casts the concept to ``Type``.
 concept.asType()
 ----
 
-[#_Concept_asValue__]
+[#_Concept_asValue_]
 ==== asValue
 
 [source,nodejs]
@@ -233,7 +233,7 @@ Casts the concept to ``Value``.
 concept.asValue()
 ----
 
-[#_Concept_equals__concept_Concept]
+[#_Concept_equals_concept_Concept]
 ==== equals
 
 [source,nodejs]
@@ -256,7 +256,7 @@ a| `concept` a| The concept to compare to. a| `Concept`
 .Returns
 `boolean`
 
-[#_Concept_isAttribute__]
+[#_Concept_isAttribute_]
 ==== isAttribute
 
 [source,nodejs]
@@ -277,7 +277,7 @@ Checks if the concept is an ``Attribute``.
 concept.isAttribute()
 ----
 
-[#_Concept_isAttributeType__]
+[#_Concept_isAttributeType_]
 ==== isAttributeType
 
 [source,nodejs]
@@ -298,7 +298,7 @@ Checks if the concept is an ``AttributeType``.
 concept.isAttributeType()
 ----
 
-[#_Concept_isEntity__]
+[#_Concept_isEntity_]
 ==== isEntity
 
 [source,nodejs]
@@ -319,7 +319,7 @@ Checks if the concept is an ``Entity``.
 concept.isEntity()
 ----
 
-[#_Concept_isEntityType__]
+[#_Concept_isEntityType_]
 ==== isEntityType
 
 [source,nodejs]
@@ -340,7 +340,7 @@ Checks if the concept is an ``EntityType``.
 concept.isEntityType()
 ----
 
-[#_Concept_isRelation__]
+[#_Concept_isRelation_]
 ==== isRelation
 
 [source,nodejs]
@@ -361,7 +361,7 @@ Checks if the concept is a ``Relation``.
 concept.isRelation()
 ----
 
-[#_Concept_isRelationType__]
+[#_Concept_isRelationType_]
 ==== isRelationType
 
 [source,nodejs]
@@ -382,7 +382,7 @@ Checks if the concept is a ``RelationType``.
 concept.isRelationType()
 ----
 
-[#_Concept_isRoleType__]
+[#_Concept_isRoleType_]
 ==== isRoleType
 
 [source,nodejs]
@@ -403,7 +403,7 @@ Checks if the concept is a ``RoleType``.
 concept.isRoleType()
 ----
 
-[#_Concept_isThing__]
+[#_Concept_isThing_]
 ==== isThing
 
 [source,nodejs]
@@ -424,7 +424,7 @@ Checks if the concept is a ``Thing``.
 concept.isThing()
 ----
 
-[#_Concept_isThingType__]
+[#_Concept_isThingType_]
 ==== isThingType
 
 [source,nodejs]
@@ -445,7 +445,7 @@ Checks if the concept is a ``ThingType``.
 concept.isThingType()
 ----
 
-[#_Concept_isType__]
+[#_Concept_isType_]
 ==== isType
 
 [source,nodejs]
@@ -466,7 +466,7 @@ Checks if the concept is a ``Type``.
 concept.isType()
 ----
 
-[#_Concept_isValue__]
+[#_Concept_isValue_]
 ==== isValue
 
 [source,nodejs]
diff --git a/nodejs/docs/concept/ConceptManager.adoc b/docs/modules/ROOT/partials/nodejs/concept/ConceptManager.adoc
similarity index 90%
rename from nodejs/docs/concept/ConceptManager.adoc
rename to docs/modules/ROOT/partials/nodejs/concept/ConceptManager.adoc
index 118f515121..b85a800c96 100644
--- a/nodejs/docs/concept/ConceptManager.adoc
+++ b/docs/modules/ROOT/partials/nodejs/concept/ConceptManager.adoc
@@ -4,7 +4,7 @@
 Provides access for all Concept API methods.
 
 // tag::methods[]
-[#_ConceptManager_getAttribute__iid_string]
+[#_ConceptManager_getAttribute_iid_string]
 ==== getAttribute
 
 [source,nodejs]
@@ -34,7 +34,7 @@ a| `iid` a| The iid of the ``Attribute`` to retrieve a| `string`
 transaction.concepts().getAttribute(iid)
 ----
 
-[#_ConceptManager_getAttributeType__label_string]
+[#_ConceptManager_getAttributeType_label_string]
 ==== getAttributeType
 
 [source,nodejs]
@@ -64,7 +64,7 @@ a| `label` a| The label of the ``AttributeType`` to retrieve a| `string`
 transaction.concepts().getAttributeType(label)
 ----
 
-[#_ConceptManager_getEntity__iid_string]
+[#_ConceptManager_getEntity_iid_string]
 ==== getEntity
 
 [source,nodejs]
@@ -94,7 +94,7 @@ a| `iid` a| The iid of the ``Entity`` to retrieve a| `string`
 transaction.concepts().getEntity(iid)
 ----
 
-[#_ConceptManager_getEntityType__label_string]
+[#_ConceptManager_getEntityType_label_string]
 ==== getEntityType
 
 [source,nodejs]
@@ -124,7 +124,7 @@ a| `label` a| The label of the ``EntityType`` to retrieve a| `string`
 transaction.concepts().getEntityType(label)
 ----
 
-[#_ConceptManager_getRelation__iid_string]
+[#_ConceptManager_getRelation_iid_string]
 ==== getRelation
 
 [source,nodejs]
@@ -154,7 +154,7 @@ a| `iid` a| The iid of the ``Relation`` to retrieve a| `string`
 transaction.concepts().getRelation(iid)
 ----
 
-[#_ConceptManager_getRelationType__label_string]
+[#_ConceptManager_getRelationType_label_string]
 ==== getRelationType
 
 [source,nodejs]
@@ -184,7 +184,7 @@ a| `label` a| The label of the ``RelationType`` to retrieve a| `string`
 transaction.concepts().getRelationType(label)
 ----
 
-[#_ConceptManager_getRootAttributeType__]
+[#_ConceptManager_getRootAttributeType_]
 ==== getRootAttributeType
 
 [source,nodejs]
@@ -205,7 +205,7 @@ Retrieve the root ``AttributeType``, “attribute”.
 transaction.concepts().getRootAttributeType()
 ----
 
-[#_ConceptManager_getRootEntityType__]
+[#_ConceptManager_getRootEntityType_]
 ==== getRootEntityType
 
 [source,nodejs]
@@ -226,7 +226,7 @@ Retrieves the root ``EntityType``, “entity”.
 transaction.concepts().getRootEntityType()
 ----
 
-[#_ConceptManager_getRootRelationType__]
+[#_ConceptManager_getRootRelationType_]
 ==== getRootRelationType
 
 [source,nodejs]
@@ -247,7 +247,7 @@ Retrieve the root ``RelationType``, “relation”.
 transaction.concepts().getRootRelationType()
 ----
 
-[#_ConceptManager_getRootThingType__]
+[#_ConceptManager_getRootThingType_]
 ==== getRootThingType
 
 [source,nodejs]
@@ -268,7 +268,7 @@ Retrieves the root ``ThingType``, “thing”.
 transaction.concepts().getRootThingType()
 ----
 
-[#_ConceptManager_getSchemaExceptions__]
+[#_ConceptManager_getSchemaExceptions_]
 ==== getSchemaExceptions
 
 [source,nodejs]
@@ -289,7 +289,7 @@ Retrieves a list of all schema exceptions for the current transaction.
 transaction.concepts().getSchemaException()
 ----
 
-[#_ConceptManager_putAttributeType__label_string__valueType_ValueType]
+[#_ConceptManager_putAttributeType_label_string_valueType_ValueType]
 ==== putAttributeType
 
 [source,nodejs]
@@ -320,7 +320,7 @@ a| `valueType` a| The value type of the ``AttributeType`` to create a| `ValueTyp
 await transaction.concepts().putAttributeType(label, valueType)
 ----
 
-[#_ConceptManager_putEntityType__label_string]
+[#_ConceptManager_putEntityType_label_string]
 ==== putEntityType
 
 [source,nodejs]
@@ -350,7 +350,7 @@ a| `label` a| The label of the ``EntityType`` to create or retrieve a| `string`
 transaction.concepts().putEntityType(label)
 ----
 
-[#_ConceptManager_putRelationType__label_string]
+[#_ConceptManager_putRelationType_label_string]
 ==== putRelationType
 
 [source,nodejs]
diff --git a/nodejs/docs/connection/Database.adoc b/docs/modules/ROOT/partials/nodejs/connection/Database.adoc
similarity index 96%
rename from nodejs/docs/connection/Database.adoc
rename to docs/modules/ROOT/partials/nodejs/connection/Database.adoc
index 2ed9cf874e..cd9193a2b2 100644
--- a/nodejs/docs/connection/Database.adoc
+++ b/docs/modules/ROOT/partials/nodejs/connection/Database.adoc
@@ -16,7 +16,7 @@ a| `replicas` a| `Replica` a| The Replica instances for this database. Only work
 // end::properties[]
 
 // tag::methods[]
-[#_Database_delete__]
+[#_Database_delete_]
 ==== delete
 
 [source,nodejs]
@@ -37,7 +37,7 @@ Deletes this database.
 database.delete()
 ----
 
-[#_Database_schema__]
+[#_Database_schema_]
 ==== schema
 
 [source,nodejs]
diff --git a/nodejs/docs/connection/DatabaseManager.adoc b/docs/modules/ROOT/partials/nodejs/connection/DatabaseManager.adoc
similarity index 91%
rename from nodejs/docs/connection/DatabaseManager.adoc
rename to docs/modules/ROOT/partials/nodejs/connection/DatabaseManager.adoc
index f8cd23c2a0..3d1c76369c 100644
--- a/nodejs/docs/connection/DatabaseManager.adoc
+++ b/docs/modules/ROOT/partials/nodejs/connection/DatabaseManager.adoc
@@ -4,7 +4,7 @@
 Provides access to all database management methods.
 
 // tag::methods[]
-[#_DatabaseManager_all__]
+[#_DatabaseManager_all_]
 ==== all
 
 [source,nodejs]
@@ -25,7 +25,7 @@ Retrieves all databases present on the TypeDB server
 driver.databases().all()
 ----
 
-[#_DatabaseManager_contains__name_string]
+[#_DatabaseManager_contains_name_string]
 ==== contains
 
 [source,nodejs]
@@ -55,7 +55,7 @@ a| `name` a| The database name to be checked a| `string`
 driver.databases().contains(name)
 ----
 
-[#_DatabaseManager_create__name_string]
+[#_DatabaseManager_create_name_string]
 ==== create
 
 [source,nodejs]
@@ -85,7 +85,7 @@ a| `name` a| The name of the database to be created a| `string`
 driver.databases().create(name)
 ----
 
-[#_DatabaseManager_get__name_string]
+[#_DatabaseManager_get_name_string]
 ==== get
 
 [source,nodejs]
diff --git a/nodejs/docs/connection/Replica.adoc b/docs/modules/ROOT/partials/nodejs/connection/Replica.adoc
similarity index 100%
rename from nodejs/docs/connection/Replica.adoc
rename to docs/modules/ROOT/partials/nodejs/connection/Replica.adoc
diff --git a/nodejs/docs/connection/TypeDB.adoc b/docs/modules/ROOT/partials/nodejs/connection/TypeDB.adoc
similarity index 89%
rename from nodejs/docs/connection/TypeDB.adoc
rename to docs/modules/ROOT/partials/nodejs/connection/TypeDB.adoc
index 23e1f06596..47070484bf 100644
--- a/nodejs/docs/connection/TypeDB.adoc
+++ b/docs/modules/ROOT/partials/nodejs/connection/TypeDB.adoc
@@ -13,7 +13,7 @@ a| `DEFAULT_ADDRESS`
 // end::enum_constants[]
 
 // tag::methods[]
-[#_TypeDB_cloudDriver__addresses_string__string____Record_string__string___credential_TypeDBCredential]
+[#_TypeDB_cloudDriver_addresses_string_string_Record_string_string_credential_TypeDBCredential]
 ==== cloudDriver
 
 [source,nodejs]
@@ -40,7 +40,7 @@ Examples
 .Returns
 `Promise`
 
-[#_TypeDB_coreDriver__address_string__DEFAULT_ADDRESS]
+[#_TypeDB_coreDriver_address_string_DEFAULT_ADDRESS]
 ==== coreDriver
 
 [source,nodejs]
diff --git a/nodejs/docs/connection/TypeDBCredential.adoc b/docs/modules/ROOT/partials/nodejs/connection/TypeDBCredential.adoc
similarity index 82%
rename from nodejs/docs/connection/TypeDBCredential.adoc
rename to docs/modules/ROOT/partials/nodejs/connection/TypeDBCredential.adoc
index 8ffc1d38c4..5060374539 100644
--- a/nodejs/docs/connection/TypeDBCredential.adoc
+++ b/docs/modules/ROOT/partials/nodejs/connection/TypeDBCredential.adoc
@@ -4,7 +4,7 @@
 User credentials and TLS encryption settings for connecting to TypeDB Cloud.
 
 // tag::methods[]
-[#_TypeDBCredential__password__]
+[#_TypeDBCredential_password_]
 ====  password
 
 [source,nodejs]
@@ -18,7 +18,7 @@ get password(): string
 .Returns
 `string`
 
-[#_TypeDBCredential__tlsRootCAPath__]
+[#_TypeDBCredential_tlsRootCAPath_]
 ====  tlsRootCAPath
 
 [source,nodejs]
@@ -32,7 +32,7 @@ get tlsRootCAPath(): string
 .Returns
 `string`
 
-[#_TypeDBCredential__username__]
+[#_TypeDBCredential_username_]
 ====  username
 
 [source,nodejs]
@@ -46,7 +46,7 @@ get username(): string
 .Returns
 `string`
 
-[#_TypeDBCredential_new_TypeDBCredential__username_string__password_string__tlsRootCAPath_string]
+[#_TypeDBCredential_new_TypeDBCredential_username_string_password_string_tlsRootCAPath_string]
 ==== new TypeDBCredential
 
 [source,nodejs]
diff --git a/nodejs/docs/connection/TypeDBDriver.adoc b/docs/modules/ROOT/partials/nodejs/connection/TypeDBDriver.adoc
similarity index 90%
rename from nodejs/docs/connection/TypeDBDriver.adoc
rename to docs/modules/ROOT/partials/nodejs/connection/TypeDBDriver.adoc
index 9d53ea1175..075d4ff41a 100644
--- a/nodejs/docs/connection/TypeDBDriver.adoc
+++ b/docs/modules/ROOT/partials/nodejs/connection/TypeDBDriver.adoc
@@ -14,7 +14,7 @@ a| `users` a| `UserManager` a| The UserManager instance for this connection, pro
 // end::properties[]
 
 // tag::methods[]
-[#_TypeDBDriver_close__]
+[#_TypeDBDriver_close_]
 ==== close
 
 [source,nodejs]
@@ -35,7 +35,7 @@ Closes the driver. Before instantiating a new driver, the driver that’s curren
 driver.close()
 ----
 
-[#_TypeDBDriver_isOpen__]
+[#_TypeDBDriver_isOpen_]
 ==== isOpen
 
 [source,nodejs]
@@ -56,7 +56,7 @@ Checks whether this connection is presently open.
 driver.isOpen()
 ----
 
-[#_TypeDBDriver_session__database_string__type_SessionType__options_TypeDBOptions]
+[#_TypeDBDriver_session_database_string_type_SessionType_options_TypeDBOptions]
 ==== session
 
 [source,nodejs]
@@ -81,7 +81,7 @@ a| `options` a|  a| `TypeDBOptions`
 .Returns
 `Promise`
 
-[#_TypeDBDriver_user__]
+[#_TypeDBDriver_user_]
 ==== user
 
 [source,nodejs]
diff --git a/nodejs/docs/connection/User.adoc b/docs/modules/ROOT/partials/nodejs/connection/User.adoc
similarity index 92%
rename from nodejs/docs/connection/User.adoc
rename to docs/modules/ROOT/partials/nodejs/connection/User.adoc
index ce78e6e38d..5d3a3f9ed2 100644
--- a/nodejs/docs/connection/User.adoc
+++ b/docs/modules/ROOT/partials/nodejs/connection/User.adoc
@@ -16,7 +16,7 @@ a| `username` a| `string` a| The name of this user.
 // end::properties[]
 
 // tag::methods[]
-[#_User_passwordUpdate__oldPassword_string__newPassword_string]
+[#_User_passwordUpdate_oldPassword_string_newPassword_string]
 ==== passwordUpdate
 
 [source,nodejs]
diff --git a/nodejs/docs/connection/UserManager.adoc b/docs/modules/ROOT/partials/nodejs/connection/UserManager.adoc
similarity index 90%
rename from nodejs/docs/connection/UserManager.adoc
rename to docs/modules/ROOT/partials/nodejs/connection/UserManager.adoc
index 0a17baa484..8cf38025d2 100644
--- a/nodejs/docs/connection/UserManager.adoc
+++ b/docs/modules/ROOT/partials/nodejs/connection/UserManager.adoc
@@ -4,7 +4,7 @@
 Provides access to all user management methods.
 
 // tag::methods[]
-[#_UserManager_all__]
+[#_UserManager_all_]
 ==== all
 
 [source,nodejs]
@@ -25,7 +25,7 @@ Retrieves all users which exist on the TypeDB server.
 driver.users.all()
 ----
 
-[#_UserManager_contains__name_string]
+[#_UserManager_contains_name_string]
 ==== contains
 
 [source,nodejs]
@@ -55,7 +55,7 @@ a| `name` a|  a| `string`
 driver.users.contains(username)
 ----
 
-[#_UserManager_create__name_string__password_string]
+[#_UserManager_create_name_string_password_string]
 ==== create
 
 [source,nodejs]
@@ -86,7 +86,7 @@ a| `password` a| The password of the user to be created a| `string`
 driver.users.create(username, password)
 ----
 
-[#_UserManager_delete__name_string]
+[#_UserManager_delete_name_string]
 ==== delete
 
 [source,nodejs]
@@ -116,7 +116,7 @@ a| `name` a|  a| `string`
 driver.users.delete(username)
 ----
 
-[#_UserManager_get__name_string]
+[#_UserManager_get_name_string]
 ==== get
 
 [source,nodejs]
@@ -146,7 +146,7 @@ a| `name` a|  a| `string`
 driver.users.get(username)
 ----
 
-[#_UserManager_passwordSet__name_string__password_string]
+[#_UserManager_passwordSet_name_string_password_string]
 ==== passwordSet
 
 [source,nodejs]
diff --git a/nodejs/docs/data/Attribute.adoc b/docs/modules/ROOT/partials/nodejs/data/Attribute.adoc
similarity index 89%
rename from nodejs/docs/data/Attribute.adoc
rename to docs/modules/ROOT/partials/nodejs/data/Attribute.adoc
index 24d8231cb9..7ef6b261b9 100644
--- a/nodejs/docs/data/Attribute.adoc
+++ b/docs/modules/ROOT/partials/nodejs/data/Attribute.adoc
@@ -23,7 +23,7 @@ a| `valueType` a| `ValueType` a| The type of the value which the Attribute insta
 // end::properties[]
 
 // tag::methods[]
-[#_Attribute_asAttribute__]
+[#_Attribute_asAttribute_]
 ==== asAttribute
 
 [source,nodejs]
@@ -44,7 +44,7 @@ Casts the concept to ``Attribute``.
 concept.asAttribute()
 ----
 
-[#_Attribute_asAttributeType__]
+[#_Attribute_asAttributeType_]
 ==== asAttributeType
 
 [source,nodejs]
@@ -65,7 +65,7 @@ Casts the concept to ``AttributeType``.
 concept.asAttributeType()
 ----
 
-[#_Attribute_asEntity__]
+[#_Attribute_asEntity_]
 ==== asEntity
 
 [source,nodejs]
@@ -86,7 +86,7 @@ Casts the concept to ``Entity``.
 concept.asEntity()
 ----
 
-[#_Attribute_asEntityType__]
+[#_Attribute_asEntityType_]
 ==== asEntityType
 
 [source,nodejs]
@@ -107,7 +107,7 @@ Casts the concept to ``EntityType``.
 concept.asEntityType()
 ----
 
-[#_Attribute_asRelation__]
+[#_Attribute_asRelation_]
 ==== asRelation
 
 [source,nodejs]
@@ -128,7 +128,7 @@ Casts the concept to ``Relation``.
 concept.asRelation()
 ----
 
-[#_Attribute_asRelationType__]
+[#_Attribute_asRelationType_]
 ==== asRelationType
 
 [source,nodejs]
@@ -149,7 +149,7 @@ Casts the concept to ``RelationType``.
 concept.asRelationType()
 ----
 
-[#_Attribute_asRoleType__]
+[#_Attribute_asRoleType_]
 ==== asRoleType
 
 [source,nodejs]
@@ -170,7 +170,7 @@ Casts the concept to ``RoleType``.
 concept.asRoleType()
 ----
 
-[#_Attribute_asThing__]
+[#_Attribute_asThing_]
 ==== asThing
 
 [source,nodejs]
@@ -191,7 +191,7 @@ Casts the concept to ``Thing``.
 concept.asThing()
 ----
 
-[#_Attribute_asThingType__]
+[#_Attribute_asThingType_]
 ==== asThingType
 
 [source,nodejs]
@@ -212,7 +212,7 @@ Casts the concept to ``ThingType``.
 concept.asThingType()
 ----
 
-[#_Attribute_asType__]
+[#_Attribute_asType_]
 ==== asType
 
 [source,nodejs]
@@ -233,7 +233,7 @@ Casts the concept to ``Type``.
 concept.asType()
 ----
 
-[#_Attribute_asValue__]
+[#_Attribute_asValue_]
 ==== asValue
 
 [source,nodejs]
@@ -254,7 +254,7 @@ Casts the concept to ``Value``.
 concept.asValue()
 ----
 
-[#_Attribute_delete__transaction_TypeDBTransaction]
+[#_Attribute_delete_transaction_TypeDBTransaction]
 ==== delete
 
 [source,nodejs]
@@ -284,7 +284,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thing.delete(transaction)
 ----
 
-[#_Attribute_equals__concept_Concept]
+[#_Attribute_equals_concept_Concept]
 ==== equals
 
 [source,nodejs]
@@ -307,7 +307,7 @@ a| `concept` a| The concept to compare to. a| `Concept`
 .Returns
 `boolean`
 
-[#_Attribute_getHas__transaction_TypeDBTransaction]
+[#_Attribute_getHas_transaction_TypeDBTransaction]
 ==== getHas
 
 [source,nodejs]
@@ -337,7 +337,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thing.getHas(transaction) thing.getHas(transaction, attributeType, [Annotation.KEY])
 ----
 
-[#_Attribute_getHas__transaction_TypeDBTransaction__annotations_Annotation__]
+[#_Attribute_getHas_transaction_TypeDBTransaction_annotations_Annotation_]
 ==== getHas
 
 [source,nodejs]
@@ -368,7 +368,7 @@ a| `annotations` a| The ``AttributeType``s to filter the attributes by a| `Annot
 thing.getHas(transaction) thing.getHas(transaction, attributeType, [Annotation.KEY])
 ----
 
-[#_Attribute_getHas__transaction_TypeDBTransaction__attributeType_AttributeType]
+[#_Attribute_getHas_transaction_TypeDBTransaction_attributeType_AttributeType]
 ==== getHas
 
 [source,nodejs]
@@ -399,7 +399,7 @@ a| `attributeType` a| The ``AttributeType``s to filter the attributes by a| `Att
 thing.getHas(transaction) thing.getHas(transaction, attributeType, [Annotation.KEY])
 ----
 
-[#_Attribute_getHas__transaction_TypeDBTransaction__attributeTypes_AttributeType__]
+[#_Attribute_getHas_transaction_TypeDBTransaction_attributeTypes_AttributeType_]
 ==== getHas
 
 [source,nodejs]
@@ -430,7 +430,7 @@ a| `attributeTypes` a| The ``AttributeType``s to filter the attributes by a| `At
 thing.getHas(transaction) thing.getHas(transaction, attributeType, [Annotation.KEY])
 ----
 
-[#_Attribute_getHas__transaction_TypeDBTransaction__attributeTypes_AttributeType____annotations_Annotation__]
+[#_Attribute_getHas_transaction_TypeDBTransaction_attributeTypes_AttributeType_annotations_Annotation_]
 ==== getHas
 
 [source,nodejs]
@@ -462,7 +462,7 @@ a| `annotations` a| Only retrieve attributes with all given ``Annotation``s a| `
 thing.getHas(transaction) thing.getHas(transaction, attributeType, [Annotation.KEY])
 ----
 
-[#_Attribute_getOwners__transaction_TypeDBTransaction__ownerType_ThingType]
+[#_Attribute_getOwners_transaction_TypeDBTransaction_ownerType_ThingType]
 ==== getOwners
 
 [source,nodejs]
@@ -493,7 +493,7 @@ a| `ownerType` a| If specified, filter results for only owners of the given type
 attribute.getOwners(transaction) attribute.getOwners(transaction, ownerType)
 ----
 
-[#_Attribute_getPlaying__transaction_TypeDBTransaction]
+[#_Attribute_getPlaying_transaction_TypeDBTransaction]
 ==== getPlaying
 
 [source,nodejs]
@@ -523,7 +523,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thing.getPlaying(transaction)
 ----
 
-[#_Attribute_getRelations__transaction_TypeDBTransaction]
+[#_Attribute_getRelations_transaction_TypeDBTransaction]
 ==== getRelations
 
 [source,nodejs]
@@ -553,7 +553,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thing.getRelations(transaction, roleTypes)
 ----
 
-[#_Attribute_getRelations__transaction_TypeDBTransaction__roleTypes_RoleType__]
+[#_Attribute_getRelations_transaction_TypeDBTransaction_roleTypes_RoleType_]
 ==== getRelations
 
 [source,nodejs]
@@ -584,7 +584,7 @@ a| `roleTypes` a| The list of roles to filter the relations by. a| `RoleType[]`
 thing.getRelations(transaction, roleTypes)
 ----
 
-[#_Attribute_isAttribute__]
+[#_Attribute_isAttribute_]
 ==== isAttribute
 
 [source,nodejs]
@@ -605,7 +605,7 @@ Checks if the concept is an ``Attribute``.
 concept.isAttribute()
 ----
 
-[#_Attribute_isAttributeType__]
+[#_Attribute_isAttributeType_]
 ==== isAttributeType
 
 [source,nodejs]
@@ -626,7 +626,7 @@ Checks if the concept is an ``AttributeType``.
 concept.isAttributeType()
 ----
 
-[#_Attribute_isDeleted__transaction_TypeDBTransaction]
+[#_Attribute_isDeleted_transaction_TypeDBTransaction]
 ==== isDeleted
 
 [source,nodejs]
@@ -656,7 +656,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thing.isDeleted(transaction)
 ----
 
-[#_Attribute_isEntity__]
+[#_Attribute_isEntity_]
 ==== isEntity
 
 [source,nodejs]
@@ -677,7 +677,7 @@ Checks if the concept is an ``Entity``.
 concept.isEntity()
 ----
 
-[#_Attribute_isEntityType__]
+[#_Attribute_isEntityType_]
 ==== isEntityType
 
 [source,nodejs]
@@ -698,7 +698,7 @@ Checks if the concept is an ``EntityType``.
 concept.isEntityType()
 ----
 
-[#_Attribute_isRelation__]
+[#_Attribute_isRelation_]
 ==== isRelation
 
 [source,nodejs]
@@ -719,7 +719,7 @@ Checks if the concept is a ``Relation``.
 concept.isRelation()
 ----
 
-[#_Attribute_isRelationType__]
+[#_Attribute_isRelationType_]
 ==== isRelationType
 
 [source,nodejs]
@@ -740,7 +740,7 @@ Checks if the concept is a ``RelationType``.
 concept.isRelationType()
 ----
 
-[#_Attribute_isRoleType__]
+[#_Attribute_isRoleType_]
 ==== isRoleType
 
 [source,nodejs]
@@ -761,7 +761,7 @@ Checks if the concept is a ``RoleType``.
 concept.isRoleType()
 ----
 
-[#_Attribute_isThing__]
+[#_Attribute_isThing_]
 ==== isThing
 
 [source,nodejs]
@@ -782,7 +782,7 @@ Checks if the concept is a ``Thing``.
 concept.isThing()
 ----
 
-[#_Attribute_isThingType__]
+[#_Attribute_isThingType_]
 ==== isThingType
 
 [source,nodejs]
@@ -803,7 +803,7 @@ Checks if the concept is a ``ThingType``.
 concept.isThingType()
 ----
 
-[#_Attribute_isType__]
+[#_Attribute_isType_]
 ==== isType
 
 [source,nodejs]
@@ -824,7 +824,7 @@ Checks if the concept is a ``Type``.
 concept.isType()
 ----
 
-[#_Attribute_isValue__]
+[#_Attribute_isValue_]
 ==== isValue
 
 [source,nodejs]
@@ -845,7 +845,7 @@ Checks if the concept is a ``Value``.
 concept.isValue()
 ----
 
-[#_Attribute_setHas__transaction_TypeDBTransaction__attribute_Attribute]
+[#_Attribute_setHas_transaction_TypeDBTransaction_attribute_Attribute]
 ==== setHas
 
 [source,nodejs]
@@ -876,7 +876,7 @@ a| `attribute` a| The ``Attribute`` to be owned by this ``Thing``. a| `Attribute
 thing.setHas(transaction, attribute)
 ----
 
-[#_Attribute_unsetHas__transaction_TypeDBTransaction__attribute_Attribute]
+[#_Attribute_unsetHas_transaction_TypeDBTransaction_attribute_Attribute]
 ==== unsetHas
 
 [source,nodejs]
diff --git a/nodejs/docs/data/Entity.adoc b/docs/modules/ROOT/partials/nodejs/data/Entity.adoc
similarity index 90%
rename from nodejs/docs/data/Entity.adoc
rename to docs/modules/ROOT/partials/nodejs/data/Entity.adoc
index c85d7cddfe..421194d982 100644
--- a/nodejs/docs/data/Entity.adoc
+++ b/docs/modules/ROOT/partials/nodejs/data/Entity.adoc
@@ -21,7 +21,7 @@ a| `type` a| `EntityType` a| The type which this Entity belongs to.
 // end::properties[]
 
 // tag::methods[]
-[#_Entity_asAttribute__]
+[#_Entity_asAttribute_]
 ==== asAttribute
 
 [source,nodejs]
@@ -42,7 +42,7 @@ Casts the concept to ``Attribute``.
 concept.asAttribute()
 ----
 
-[#_Entity_asAttributeType__]
+[#_Entity_asAttributeType_]
 ==== asAttributeType
 
 [source,nodejs]
@@ -63,7 +63,7 @@ Casts the concept to ``AttributeType``.
 concept.asAttributeType()
 ----
 
-[#_Entity_asEntity__]
+[#_Entity_asEntity_]
 ==== asEntity
 
 [source,nodejs]
@@ -84,7 +84,7 @@ Casts the concept to ``Entity``.
 concept.asEntity()
 ----
 
-[#_Entity_asEntityType__]
+[#_Entity_asEntityType_]
 ==== asEntityType
 
 [source,nodejs]
@@ -105,7 +105,7 @@ Casts the concept to ``EntityType``.
 concept.asEntityType()
 ----
 
-[#_Entity_asRelation__]
+[#_Entity_asRelation_]
 ==== asRelation
 
 [source,nodejs]
@@ -126,7 +126,7 @@ Casts the concept to ``Relation``.
 concept.asRelation()
 ----
 
-[#_Entity_asRelationType__]
+[#_Entity_asRelationType_]
 ==== asRelationType
 
 [source,nodejs]
@@ -147,7 +147,7 @@ Casts the concept to ``RelationType``.
 concept.asRelationType()
 ----
 
-[#_Entity_asRoleType__]
+[#_Entity_asRoleType_]
 ==== asRoleType
 
 [source,nodejs]
@@ -168,7 +168,7 @@ Casts the concept to ``RoleType``.
 concept.asRoleType()
 ----
 
-[#_Entity_asThing__]
+[#_Entity_asThing_]
 ==== asThing
 
 [source,nodejs]
@@ -189,7 +189,7 @@ Casts the concept to ``Thing``.
 concept.asThing()
 ----
 
-[#_Entity_asThingType__]
+[#_Entity_asThingType_]
 ==== asThingType
 
 [source,nodejs]
@@ -210,7 +210,7 @@ Casts the concept to ``ThingType``.
 concept.asThingType()
 ----
 
-[#_Entity_asType__]
+[#_Entity_asType_]
 ==== asType
 
 [source,nodejs]
@@ -231,7 +231,7 @@ Casts the concept to ``Type``.
 concept.asType()
 ----
 
-[#_Entity_asValue__]
+[#_Entity_asValue_]
 ==== asValue
 
 [source,nodejs]
@@ -252,7 +252,7 @@ Casts the concept to ``Value``.
 concept.asValue()
 ----
 
-[#_Entity_delete__transaction_TypeDBTransaction]
+[#_Entity_delete_transaction_TypeDBTransaction]
 ==== delete
 
 [source,nodejs]
@@ -282,7 +282,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thing.delete(transaction)
 ----
 
-[#_Entity_equals__concept_Concept]
+[#_Entity_equals_concept_Concept]
 ==== equals
 
 [source,nodejs]
@@ -305,7 +305,7 @@ a| `concept` a| The concept to compare to. a| `Concept`
 .Returns
 `boolean`
 
-[#_Entity_getHas__transaction_TypeDBTransaction]
+[#_Entity_getHas_transaction_TypeDBTransaction]
 ==== getHas
 
 [source,nodejs]
@@ -335,7 +335,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thing.getHas(transaction) thing.getHas(transaction, attributeType, [Annotation.KEY])
 ----
 
-[#_Entity_getHas__transaction_TypeDBTransaction__annotations_Annotation__]
+[#_Entity_getHas_transaction_TypeDBTransaction_annotations_Annotation_]
 ==== getHas
 
 [source,nodejs]
@@ -366,7 +366,7 @@ a| `annotations` a| The ``AttributeType``s to filter the attributes by a| `Annot
 thing.getHas(transaction) thing.getHas(transaction, attributeType, [Annotation.KEY])
 ----
 
-[#_Entity_getHas__transaction_TypeDBTransaction__attributeType_AttributeType]
+[#_Entity_getHas_transaction_TypeDBTransaction_attributeType_AttributeType]
 ==== getHas
 
 [source,nodejs]
@@ -397,7 +397,7 @@ a| `attributeType` a| The ``AttributeType``s to filter the attributes by a| `Att
 thing.getHas(transaction) thing.getHas(transaction, attributeType, [Annotation.KEY])
 ----
 
-[#_Entity_getHas__transaction_TypeDBTransaction__attributeTypes_AttributeType__]
+[#_Entity_getHas_transaction_TypeDBTransaction_attributeTypes_AttributeType_]
 ==== getHas
 
 [source,nodejs]
@@ -428,7 +428,7 @@ a| `attributeTypes` a| The ``AttributeType``s to filter the attributes by a| `At
 thing.getHas(transaction) thing.getHas(transaction, attributeType, [Annotation.KEY])
 ----
 
-[#_Entity_getHas__transaction_TypeDBTransaction__attributeTypes_AttributeType____annotations_Annotation__]
+[#_Entity_getHas_transaction_TypeDBTransaction_attributeTypes_AttributeType_annotations_Annotation_]
 ==== getHas
 
 [source,nodejs]
@@ -460,7 +460,7 @@ a| `annotations` a| Only retrieve attributes with all given ``Annotation``s a| `
 thing.getHas(transaction) thing.getHas(transaction, attributeType, [Annotation.KEY])
 ----
 
-[#_Entity_getPlaying__transaction_TypeDBTransaction]
+[#_Entity_getPlaying_transaction_TypeDBTransaction]
 ==== getPlaying
 
 [source,nodejs]
@@ -490,7 +490,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thing.getPlaying(transaction)
 ----
 
-[#_Entity_getRelations__transaction_TypeDBTransaction]
+[#_Entity_getRelations_transaction_TypeDBTransaction]
 ==== getRelations
 
 [source,nodejs]
@@ -520,7 +520,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thing.getRelations(transaction, roleTypes)
 ----
 
-[#_Entity_getRelations__transaction_TypeDBTransaction__roleTypes_RoleType__]
+[#_Entity_getRelations_transaction_TypeDBTransaction_roleTypes_RoleType_]
 ==== getRelations
 
 [source,nodejs]
@@ -551,7 +551,7 @@ a| `roleTypes` a| The list of roles to filter the relations by. a| `RoleType[]`
 thing.getRelations(transaction, roleTypes)
 ----
 
-[#_Entity_isAttribute__]
+[#_Entity_isAttribute_]
 ==== isAttribute
 
 [source,nodejs]
@@ -572,7 +572,7 @@ Checks if the concept is an ``Attribute``.
 concept.isAttribute()
 ----
 
-[#_Entity_isAttributeType__]
+[#_Entity_isAttributeType_]
 ==== isAttributeType
 
 [source,nodejs]
@@ -593,7 +593,7 @@ Checks if the concept is an ``AttributeType``.
 concept.isAttributeType()
 ----
 
-[#_Entity_isDeleted__transaction_TypeDBTransaction]
+[#_Entity_isDeleted_transaction_TypeDBTransaction]
 ==== isDeleted
 
 [source,nodejs]
@@ -623,7 +623,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thing.isDeleted(transaction)
 ----
 
-[#_Entity_isEntity__]
+[#_Entity_isEntity_]
 ==== isEntity
 
 [source,nodejs]
@@ -644,7 +644,7 @@ Checks if the concept is an ``Entity``.
 concept.isEntity()
 ----
 
-[#_Entity_isEntityType__]
+[#_Entity_isEntityType_]
 ==== isEntityType
 
 [source,nodejs]
@@ -665,7 +665,7 @@ Checks if the concept is an ``EntityType``.
 concept.isEntityType()
 ----
 
-[#_Entity_isRelation__]
+[#_Entity_isRelation_]
 ==== isRelation
 
 [source,nodejs]
@@ -686,7 +686,7 @@ Checks if the concept is a ``Relation``.
 concept.isRelation()
 ----
 
-[#_Entity_isRelationType__]
+[#_Entity_isRelationType_]
 ==== isRelationType
 
 [source,nodejs]
@@ -707,7 +707,7 @@ Checks if the concept is a ``RelationType``.
 concept.isRelationType()
 ----
 
-[#_Entity_isRoleType__]
+[#_Entity_isRoleType_]
 ==== isRoleType
 
 [source,nodejs]
@@ -728,7 +728,7 @@ Checks if the concept is a ``RoleType``.
 concept.isRoleType()
 ----
 
-[#_Entity_isThing__]
+[#_Entity_isThing_]
 ==== isThing
 
 [source,nodejs]
@@ -749,7 +749,7 @@ Checks if the concept is a ``Thing``.
 concept.isThing()
 ----
 
-[#_Entity_isThingType__]
+[#_Entity_isThingType_]
 ==== isThingType
 
 [source,nodejs]
@@ -770,7 +770,7 @@ Checks if the concept is a ``ThingType``.
 concept.isThingType()
 ----
 
-[#_Entity_isType__]
+[#_Entity_isType_]
 ==== isType
 
 [source,nodejs]
@@ -791,7 +791,7 @@ Checks if the concept is a ``Type``.
 concept.isType()
 ----
 
-[#_Entity_isValue__]
+[#_Entity_isValue_]
 ==== isValue
 
 [source,nodejs]
@@ -812,7 +812,7 @@ Checks if the concept is a ``Value``.
 concept.isValue()
 ----
 
-[#_Entity_setHas__transaction_TypeDBTransaction__attribute_Attribute]
+[#_Entity_setHas_transaction_TypeDBTransaction_attribute_Attribute]
 ==== setHas
 
 [source,nodejs]
@@ -843,7 +843,7 @@ a| `attribute` a| The ``Attribute`` to be owned by this ``Thing``. a| `Attribute
 thing.setHas(transaction, attribute)
 ----
 
-[#_Entity_unsetHas__transaction_TypeDBTransaction__attribute_Attribute]
+[#_Entity_unsetHas_transaction_TypeDBTransaction_attribute_Attribute]
 ==== unsetHas
 
 [source,nodejs]
diff --git a/nodejs/docs/data/Relation.adoc b/docs/modules/ROOT/partials/nodejs/data/Relation.adoc
similarity index 89%
rename from nodejs/docs/data/Relation.adoc
rename to docs/modules/ROOT/partials/nodejs/data/Relation.adoc
index d30814dea0..1b53fb47e3 100644
--- a/nodejs/docs/data/Relation.adoc
+++ b/docs/modules/ROOT/partials/nodejs/data/Relation.adoc
@@ -21,7 +21,7 @@ a| `type` a| `RelationType` a| The type which this Relation belongs to.
 // end::properties[]
 
 // tag::methods[]
-[#_Relation_addRolePlayer__transaction_TypeDBTransaction__roleType_RoleType__player_Thing]
+[#_Relation_addRolePlayer_transaction_TypeDBTransaction_roleType_RoleType_player_Thing]
 ==== addRolePlayer
 
 [source,nodejs]
@@ -53,7 +53,7 @@ a| `player` a| The thing to play the role a| `Thing`
 relation.addRolePlayer(transaction, roleType, player)
 ----
 
-[#_Relation_asAttribute__]
+[#_Relation_asAttribute_]
 ==== asAttribute
 
 [source,nodejs]
@@ -74,7 +74,7 @@ Casts the concept to ``Attribute``.
 concept.asAttribute()
 ----
 
-[#_Relation_asAttributeType__]
+[#_Relation_asAttributeType_]
 ==== asAttributeType
 
 [source,nodejs]
@@ -95,7 +95,7 @@ Casts the concept to ``AttributeType``.
 concept.asAttributeType()
 ----
 
-[#_Relation_asEntity__]
+[#_Relation_asEntity_]
 ==== asEntity
 
 [source,nodejs]
@@ -116,7 +116,7 @@ Casts the concept to ``Entity``.
 concept.asEntity()
 ----
 
-[#_Relation_asEntityType__]
+[#_Relation_asEntityType_]
 ==== asEntityType
 
 [source,nodejs]
@@ -137,7 +137,7 @@ Casts the concept to ``EntityType``.
 concept.asEntityType()
 ----
 
-[#_Relation_asRelation__]
+[#_Relation_asRelation_]
 ==== asRelation
 
 [source,nodejs]
@@ -158,7 +158,7 @@ Casts the concept to ``Relation``.
 concept.asRelation()
 ----
 
-[#_Relation_asRelationType__]
+[#_Relation_asRelationType_]
 ==== asRelationType
 
 [source,nodejs]
@@ -179,7 +179,7 @@ Casts the concept to ``RelationType``.
 concept.asRelationType()
 ----
 
-[#_Relation_asRoleType__]
+[#_Relation_asRoleType_]
 ==== asRoleType
 
 [source,nodejs]
@@ -200,7 +200,7 @@ Casts the concept to ``RoleType``.
 concept.asRoleType()
 ----
 
-[#_Relation_asThing__]
+[#_Relation_asThing_]
 ==== asThing
 
 [source,nodejs]
@@ -221,7 +221,7 @@ Casts the concept to ``Thing``.
 concept.asThing()
 ----
 
-[#_Relation_asThingType__]
+[#_Relation_asThingType_]
 ==== asThingType
 
 [source,nodejs]
@@ -242,7 +242,7 @@ Casts the concept to ``ThingType``.
 concept.asThingType()
 ----
 
-[#_Relation_asType__]
+[#_Relation_asType_]
 ==== asType
 
 [source,nodejs]
@@ -263,7 +263,7 @@ Casts the concept to ``Type``.
 concept.asType()
 ----
 
-[#_Relation_asValue__]
+[#_Relation_asValue_]
 ==== asValue
 
 [source,nodejs]
@@ -284,7 +284,7 @@ Casts the concept to ``Value``.
 concept.asValue()
 ----
 
-[#_Relation_delete__transaction_TypeDBTransaction]
+[#_Relation_delete_transaction_TypeDBTransaction]
 ==== delete
 
 [source,nodejs]
@@ -314,7 +314,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thing.delete(transaction)
 ----
 
-[#_Relation_equals__concept_Concept]
+[#_Relation_equals_concept_Concept]
 ==== equals
 
 [source,nodejs]
@@ -337,7 +337,7 @@ a| `concept` a| The concept to compare to. a| `Concept`
 .Returns
 `boolean`
 
-[#_Relation_getHas__transaction_TypeDBTransaction]
+[#_Relation_getHas_transaction_TypeDBTransaction]
 ==== getHas
 
 [source,nodejs]
@@ -367,7 +367,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thing.getHas(transaction) thing.getHas(transaction, attributeType, [Annotation.KEY])
 ----
 
-[#_Relation_getHas__transaction_TypeDBTransaction__annotations_Annotation__]
+[#_Relation_getHas_transaction_TypeDBTransaction_annotations_Annotation_]
 ==== getHas
 
 [source,nodejs]
@@ -398,7 +398,7 @@ a| `annotations` a| The ``AttributeType``s to filter the attributes by a| `Annot
 thing.getHas(transaction) thing.getHas(transaction, attributeType, [Annotation.KEY])
 ----
 
-[#_Relation_getHas__transaction_TypeDBTransaction__attributeType_AttributeType]
+[#_Relation_getHas_transaction_TypeDBTransaction_attributeType_AttributeType]
 ==== getHas
 
 [source,nodejs]
@@ -429,7 +429,7 @@ a| `attributeType` a| The ``AttributeType``s to filter the attributes by a| `Att
 thing.getHas(transaction) thing.getHas(transaction, attributeType, [Annotation.KEY])
 ----
 
-[#_Relation_getHas__transaction_TypeDBTransaction__attributeTypes_AttributeType__]
+[#_Relation_getHas_transaction_TypeDBTransaction_attributeTypes_AttributeType_]
 ==== getHas
 
 [source,nodejs]
@@ -460,7 +460,7 @@ a| `attributeTypes` a| The ``AttributeType``s to filter the attributes by a| `At
 thing.getHas(transaction) thing.getHas(transaction, attributeType, [Annotation.KEY])
 ----
 
-[#_Relation_getHas__transaction_TypeDBTransaction__attributeTypes_AttributeType____annotations_Annotation__]
+[#_Relation_getHas_transaction_TypeDBTransaction_attributeTypes_AttributeType_annotations_Annotation_]
 ==== getHas
 
 [source,nodejs]
@@ -492,7 +492,7 @@ a| `annotations` a| Only retrieve attributes with all given ``Annotation``s a| `
 thing.getHas(transaction) thing.getHas(transaction, attributeType, [Annotation.KEY])
 ----
 
-[#_Relation_getPlayersByRoleType__transaction_TypeDBTransaction]
+[#_Relation_getPlayersByRoleType_transaction_TypeDBTransaction]
 ==== getPlayersByRoleType
 
 [source,nodejs]
@@ -522,7 +522,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 relation.getPlayersByRoleType(transaction) relation.getPlayersByRoleType(transaction, [roleType1, roleType2])
 ----
 
-[#_Relation_getPlayersByRoleType__transaction_TypeDBTransaction__roleTypes_RoleType__]
+[#_Relation_getPlayersByRoleType_transaction_TypeDBTransaction_roleTypes_RoleType_]
 ==== getPlayersByRoleType
 
 [source,nodejs]
@@ -553,7 +553,7 @@ a| `roleTypes` a| 0 or more role types a| `RoleType[]`
 relation.getPlayersByRoleType(transaction) relation.getPlayersByRoleType(transaction, [roleType1, roleType2])
 ----
 
-[#_Relation_getPlaying__transaction_TypeDBTransaction]
+[#_Relation_getPlaying_transaction_TypeDBTransaction]
 ==== getPlaying
 
 [source,nodejs]
@@ -583,7 +583,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thing.getPlaying(transaction)
 ----
 
-[#_Relation_getRelating__transaction_TypeDBTransaction]
+[#_Relation_getRelating_transaction_TypeDBTransaction]
 ==== getRelating
 
 [source,nodejs]
@@ -613,7 +613,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 relation.getRelating(transaction)
 ----
 
-[#_Relation_getRelations__transaction_TypeDBTransaction]
+[#_Relation_getRelations_transaction_TypeDBTransaction]
 ==== getRelations
 
 [source,nodejs]
@@ -643,7 +643,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thing.getRelations(transaction, roleTypes)
 ----
 
-[#_Relation_getRelations__transaction_TypeDBTransaction__roleTypes_RoleType__]
+[#_Relation_getRelations_transaction_TypeDBTransaction_roleTypes_RoleType_]
 ==== getRelations
 
 [source,nodejs]
@@ -674,7 +674,7 @@ a| `roleTypes` a| The list of roles to filter the relations by. a| `RoleType[]`
 thing.getRelations(transaction, roleTypes)
 ----
 
-[#_Relation_getRolePlayers__transaction_TypeDBTransaction]
+[#_Relation_getRolePlayers_transaction_TypeDBTransaction]
 ==== getRolePlayers
 
 [source,nodejs]
@@ -704,7 +704,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 relation.getRolePlayers(transaction)
 ----
 
-[#_Relation_isAttribute__]
+[#_Relation_isAttribute_]
 ==== isAttribute
 
 [source,nodejs]
@@ -725,7 +725,7 @@ Checks if the concept is an ``Attribute``.
 concept.isAttribute()
 ----
 
-[#_Relation_isAttributeType__]
+[#_Relation_isAttributeType_]
 ==== isAttributeType
 
 [source,nodejs]
@@ -746,7 +746,7 @@ Checks if the concept is an ``AttributeType``.
 concept.isAttributeType()
 ----
 
-[#_Relation_isDeleted__transaction_TypeDBTransaction]
+[#_Relation_isDeleted_transaction_TypeDBTransaction]
 ==== isDeleted
 
 [source,nodejs]
@@ -776,7 +776,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thing.isDeleted(transaction)
 ----
 
-[#_Relation_isEntity__]
+[#_Relation_isEntity_]
 ==== isEntity
 
 [source,nodejs]
@@ -797,7 +797,7 @@ Checks if the concept is an ``Entity``.
 concept.isEntity()
 ----
 
-[#_Relation_isEntityType__]
+[#_Relation_isEntityType_]
 ==== isEntityType
 
 [source,nodejs]
@@ -818,7 +818,7 @@ Checks if the concept is an ``EntityType``.
 concept.isEntityType()
 ----
 
-[#_Relation_isRelation__]
+[#_Relation_isRelation_]
 ==== isRelation
 
 [source,nodejs]
@@ -839,7 +839,7 @@ Checks if the concept is a ``Relation``.
 concept.isRelation()
 ----
 
-[#_Relation_isRelationType__]
+[#_Relation_isRelationType_]
 ==== isRelationType
 
 [source,nodejs]
@@ -860,7 +860,7 @@ Checks if the concept is a ``RelationType``.
 concept.isRelationType()
 ----
 
-[#_Relation_isRoleType__]
+[#_Relation_isRoleType_]
 ==== isRoleType
 
 [source,nodejs]
@@ -881,7 +881,7 @@ Checks if the concept is a ``RoleType``.
 concept.isRoleType()
 ----
 
-[#_Relation_isThing__]
+[#_Relation_isThing_]
 ==== isThing
 
 [source,nodejs]
@@ -902,7 +902,7 @@ Checks if the concept is a ``Thing``.
 concept.isThing()
 ----
 
-[#_Relation_isThingType__]
+[#_Relation_isThingType_]
 ==== isThingType
 
 [source,nodejs]
@@ -923,7 +923,7 @@ Checks if the concept is a ``ThingType``.
 concept.isThingType()
 ----
 
-[#_Relation_isType__]
+[#_Relation_isType_]
 ==== isType
 
 [source,nodejs]
@@ -944,7 +944,7 @@ Checks if the concept is a ``Type``.
 concept.isType()
 ----
 
-[#_Relation_isValue__]
+[#_Relation_isValue_]
 ==== isValue
 
 [source,nodejs]
@@ -965,7 +965,7 @@ Checks if the concept is a ``Value``.
 concept.isValue()
 ----
 
-[#_Relation_removeRolePlayer__transaction_TypeDBTransaction__roleType_RoleType__player_Thing]
+[#_Relation_removeRolePlayer_transaction_TypeDBTransaction_roleType_RoleType_player_Thing]
 ==== removeRolePlayer
 
 [source,nodejs]
@@ -997,7 +997,7 @@ a| `player` a| The instance to no longer play the role in this ``Relation`` a| `
 relation.removeRolePlayer(transaction, roleType, player)
 ----
 
-[#_Relation_setHas__transaction_TypeDBTransaction__attribute_Attribute]
+[#_Relation_setHas_transaction_TypeDBTransaction_attribute_Attribute]
 ==== setHas
 
 [source,nodejs]
@@ -1028,7 +1028,7 @@ a| `attribute` a| The ``Attribute`` to be owned by this ``Thing``. a| `Attribute
 thing.setHas(transaction, attribute)
 ----
 
-[#_Relation_unsetHas__transaction_TypeDBTransaction__attribute_Attribute]
+[#_Relation_unsetHas_transaction_TypeDBTransaction_attribute_Attribute]
 ==== unsetHas
 
 [source,nodejs]
diff --git a/nodejs/docs/data/Thing.adoc b/docs/modules/ROOT/partials/nodejs/data/Thing.adoc
similarity index 90%
rename from nodejs/docs/data/Thing.adoc
rename to docs/modules/ROOT/partials/nodejs/data/Thing.adoc
index 04f4e92e91..29e0d40843 100644
--- a/nodejs/docs/data/Thing.adoc
+++ b/docs/modules/ROOT/partials/nodejs/data/Thing.adoc
@@ -19,7 +19,7 @@ a| `type` a| `ThingType` a| Retrieves the type which this Thing belongs to.
 // end::properties[]
 
 // tag::methods[]
-[#_Thing_asAttribute__]
+[#_Thing_asAttribute_]
 ==== asAttribute
 
 [source,nodejs]
@@ -40,7 +40,7 @@ Casts the concept to ``Attribute``.
 concept.asAttribute()
 ----
 
-[#_Thing_asAttributeType__]
+[#_Thing_asAttributeType_]
 ==== asAttributeType
 
 [source,nodejs]
@@ -61,7 +61,7 @@ Casts the concept to ``AttributeType``.
 concept.asAttributeType()
 ----
 
-[#_Thing_asEntity__]
+[#_Thing_asEntity_]
 ==== asEntity
 
 [source,nodejs]
@@ -82,7 +82,7 @@ Casts the concept to ``Entity``.
 concept.asEntity()
 ----
 
-[#_Thing_asEntityType__]
+[#_Thing_asEntityType_]
 ==== asEntityType
 
 [source,nodejs]
@@ -103,7 +103,7 @@ Casts the concept to ``EntityType``.
 concept.asEntityType()
 ----
 
-[#_Thing_asRelation__]
+[#_Thing_asRelation_]
 ==== asRelation
 
 [source,nodejs]
@@ -124,7 +124,7 @@ Casts the concept to ``Relation``.
 concept.asRelation()
 ----
 
-[#_Thing_asRelationType__]
+[#_Thing_asRelationType_]
 ==== asRelationType
 
 [source,nodejs]
@@ -145,7 +145,7 @@ Casts the concept to ``RelationType``.
 concept.asRelationType()
 ----
 
-[#_Thing_asRoleType__]
+[#_Thing_asRoleType_]
 ==== asRoleType
 
 [source,nodejs]
@@ -166,7 +166,7 @@ Casts the concept to ``RoleType``.
 concept.asRoleType()
 ----
 
-[#_Thing_asThing__]
+[#_Thing_asThing_]
 ==== asThing
 
 [source,nodejs]
@@ -187,7 +187,7 @@ Casts the concept to ``Thing``.
 concept.asThing()
 ----
 
-[#_Thing_asThingType__]
+[#_Thing_asThingType_]
 ==== asThingType
 
 [source,nodejs]
@@ -208,7 +208,7 @@ Casts the concept to ``ThingType``.
 concept.asThingType()
 ----
 
-[#_Thing_asType__]
+[#_Thing_asType_]
 ==== asType
 
 [source,nodejs]
@@ -229,7 +229,7 @@ Casts the concept to ``Type``.
 concept.asType()
 ----
 
-[#_Thing_asValue__]
+[#_Thing_asValue_]
 ==== asValue
 
 [source,nodejs]
@@ -250,7 +250,7 @@ Casts the concept to ``Value``.
 concept.asValue()
 ----
 
-[#_Thing_delete__transaction_TypeDBTransaction]
+[#_Thing_delete_transaction_TypeDBTransaction]
 ==== delete
 
 [source,nodejs]
@@ -280,7 +280,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thing.delete(transaction)
 ----
 
-[#_Thing_equals__concept_Concept]
+[#_Thing_equals_concept_Concept]
 ==== equals
 
 [source,nodejs]
@@ -303,7 +303,7 @@ a| `concept` a| The concept to compare to. a| `Concept`
 .Returns
 `boolean`
 
-[#_Thing_getHas__transaction_TypeDBTransaction]
+[#_Thing_getHas_transaction_TypeDBTransaction]
 ==== getHas
 
 [source,nodejs]
@@ -333,7 +333,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thing.getHas(transaction) thing.getHas(transaction, attributeType, [Annotation.KEY])
 ----
 
-[#_Thing_getHas__transaction_TypeDBTransaction__annotations_Annotation__]
+[#_Thing_getHas_transaction_TypeDBTransaction_annotations_Annotation_]
 ==== getHas
 
 [source,nodejs]
@@ -364,7 +364,7 @@ a| `annotations` a| The ``AttributeType``s to filter the attributes by a| `Annot
 thing.getHas(transaction) thing.getHas(transaction, attributeType, [Annotation.KEY])
 ----
 
-[#_Thing_getHas__transaction_TypeDBTransaction__attributeType_AttributeType]
+[#_Thing_getHas_transaction_TypeDBTransaction_attributeType_AttributeType]
 ==== getHas
 
 [source,nodejs]
@@ -395,7 +395,7 @@ a| `attributeType` a| The ``AttributeType``s to filter the attributes by a| `Att
 thing.getHas(transaction) thing.getHas(transaction, attributeType, [Annotation.KEY])
 ----
 
-[#_Thing_getHas__transaction_TypeDBTransaction__attributeTypes_AttributeType__]
+[#_Thing_getHas_transaction_TypeDBTransaction_attributeTypes_AttributeType_]
 ==== getHas
 
 [source,nodejs]
@@ -426,7 +426,7 @@ a| `attributeTypes` a| The ``AttributeType``s to filter the attributes by a| `At
 thing.getHas(transaction) thing.getHas(transaction, attributeType, [Annotation.KEY])
 ----
 
-[#_Thing_getHas__transaction_TypeDBTransaction__attributeTypes_AttributeType____annotations_Annotation__]
+[#_Thing_getHas_transaction_TypeDBTransaction_attributeTypes_AttributeType_annotations_Annotation_]
 ==== getHas
 
 [source,nodejs]
@@ -458,7 +458,7 @@ a| `annotations` a| Only retrieve attributes with all given ``Annotation``s a| `
 thing.getHas(transaction) thing.getHas(transaction, attributeType, [Annotation.KEY])
 ----
 
-[#_Thing_getPlaying__transaction_TypeDBTransaction]
+[#_Thing_getPlaying_transaction_TypeDBTransaction]
 ==== getPlaying
 
 [source,nodejs]
@@ -488,7 +488,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thing.getPlaying(transaction)
 ----
 
-[#_Thing_getRelations__transaction_TypeDBTransaction]
+[#_Thing_getRelations_transaction_TypeDBTransaction]
 ==== getRelations
 
 [source,nodejs]
@@ -518,7 +518,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thing.getRelations(transaction, roleTypes)
 ----
 
-[#_Thing_getRelations__transaction_TypeDBTransaction__roleTypes_RoleType__]
+[#_Thing_getRelations_transaction_TypeDBTransaction_roleTypes_RoleType_]
 ==== getRelations
 
 [source,nodejs]
@@ -549,7 +549,7 @@ a| `roleTypes` a| The list of roles to filter the relations by. a| `RoleType[]`
 thing.getRelations(transaction, roleTypes)
 ----
 
-[#_Thing_isAttribute__]
+[#_Thing_isAttribute_]
 ==== isAttribute
 
 [source,nodejs]
@@ -570,7 +570,7 @@ Checks if the concept is an ``Attribute``.
 concept.isAttribute()
 ----
 
-[#_Thing_isAttributeType__]
+[#_Thing_isAttributeType_]
 ==== isAttributeType
 
 [source,nodejs]
@@ -591,7 +591,7 @@ Checks if the concept is an ``AttributeType``.
 concept.isAttributeType()
 ----
 
-[#_Thing_isDeleted__transaction_TypeDBTransaction]
+[#_Thing_isDeleted_transaction_TypeDBTransaction]
 ==== isDeleted
 
 [source,nodejs]
@@ -621,7 +621,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thing.isDeleted(transaction)
 ----
 
-[#_Thing_isEntity__]
+[#_Thing_isEntity_]
 ==== isEntity
 
 [source,nodejs]
@@ -642,7 +642,7 @@ Checks if the concept is an ``Entity``.
 concept.isEntity()
 ----
 
-[#_Thing_isEntityType__]
+[#_Thing_isEntityType_]
 ==== isEntityType
 
 [source,nodejs]
@@ -663,7 +663,7 @@ Checks if the concept is an ``EntityType``.
 concept.isEntityType()
 ----
 
-[#_Thing_isRelation__]
+[#_Thing_isRelation_]
 ==== isRelation
 
 [source,nodejs]
@@ -684,7 +684,7 @@ Checks if the concept is a ``Relation``.
 concept.isRelation()
 ----
 
-[#_Thing_isRelationType__]
+[#_Thing_isRelationType_]
 ==== isRelationType
 
 [source,nodejs]
@@ -705,7 +705,7 @@ Checks if the concept is a ``RelationType``.
 concept.isRelationType()
 ----
 
-[#_Thing_isRoleType__]
+[#_Thing_isRoleType_]
 ==== isRoleType
 
 [source,nodejs]
@@ -726,7 +726,7 @@ Checks if the concept is a ``RoleType``.
 concept.isRoleType()
 ----
 
-[#_Thing_isThing__]
+[#_Thing_isThing_]
 ==== isThing
 
 [source,nodejs]
@@ -747,7 +747,7 @@ Checks if the concept is a ``Thing``.
 concept.isThing()
 ----
 
-[#_Thing_isThingType__]
+[#_Thing_isThingType_]
 ==== isThingType
 
 [source,nodejs]
@@ -768,7 +768,7 @@ Checks if the concept is a ``ThingType``.
 concept.isThingType()
 ----
 
-[#_Thing_isType__]
+[#_Thing_isType_]
 ==== isType
 
 [source,nodejs]
@@ -789,7 +789,7 @@ Checks if the concept is a ``Type``.
 concept.isType()
 ----
 
-[#_Thing_isValue__]
+[#_Thing_isValue_]
 ==== isValue
 
 [source,nodejs]
@@ -810,7 +810,7 @@ Checks if the concept is a ``Value``.
 concept.isValue()
 ----
 
-[#_Thing_setHas__transaction_TypeDBTransaction__attribute_Attribute]
+[#_Thing_setHas_transaction_TypeDBTransaction_attribute_Attribute]
 ==== setHas
 
 [source,nodejs]
@@ -841,7 +841,7 @@ a| `attribute` a| The ``Attribute`` to be owned by this ``Thing``. a| `Attribute
 thing.setHas(transaction, attribute)
 ----
 
-[#_Thing_unsetHas__transaction_TypeDBTransaction__attribute_Attribute]
+[#_Thing_unsetHas_transaction_TypeDBTransaction_attribute_Attribute]
 ==== unsetHas
 
 [source,nodejs]
diff --git a/nodejs/docs/data/Value.adoc b/docs/modules/ROOT/partials/nodejs/data/Value.adoc
similarity index 91%
rename from nodejs/docs/data/Value.adoc
rename to docs/modules/ROOT/partials/nodejs/data/Value.adoc
index eb315da44d..c5746ad598 100644
--- a/nodejs/docs/data/Value.adoc
+++ b/docs/modules/ROOT/partials/nodejs/data/Value.adoc
@@ -18,7 +18,7 @@ a| `valueType` a| `ValueType` a| The ValueType of this value concept
 // end::properties[]
 
 // tag::methods[]
-[#_Value_asAttribute__]
+[#_Value_asAttribute_]
 ==== asAttribute
 
 [source,nodejs]
@@ -39,7 +39,7 @@ Casts the concept to ``Attribute``.
 concept.asAttribute()
 ----
 
-[#_Value_asAttributeType__]
+[#_Value_asAttributeType_]
 ==== asAttributeType
 
 [source,nodejs]
@@ -60,7 +60,7 @@ Casts the concept to ``AttributeType``.
 concept.asAttributeType()
 ----
 
-[#_Value_asBoolean__]
+[#_Value_asBoolean_]
 ==== asBoolean
 
 [source,nodejs]
@@ -81,7 +81,7 @@ Returns a ``boolean`` value of this value concept. If the value has another type
 value.asBoolean()
 ----
 
-[#_Value_asDateTime__]
+[#_Value_asDateTime_]
 ==== asDateTime
 
 [source,nodejs]
@@ -102,7 +102,7 @@ Returns a ``datetime`` value of this value concept. If the value has another typ
 value.asDatetime()
 ----
 
-[#_Value_asDouble__]
+[#_Value_asDouble_]
 ==== asDouble
 
 [source,nodejs]
@@ -123,7 +123,7 @@ Returns a ``number`` value of this value concept. If the value has another type,
 value.asDouble()
 ----
 
-[#_Value_asEntity__]
+[#_Value_asEntity_]
 ==== asEntity
 
 [source,nodejs]
@@ -144,7 +144,7 @@ Casts the concept to ``Entity``.
 concept.asEntity()
 ----
 
-[#_Value_asEntityType__]
+[#_Value_asEntityType_]
 ==== asEntityType
 
 [source,nodejs]
@@ -165,7 +165,7 @@ Casts the concept to ``EntityType``.
 concept.asEntityType()
 ----
 
-[#_Value_asLong__]
+[#_Value_asLong_]
 ==== asLong
 
 [source,nodejs]
@@ -186,7 +186,7 @@ Returns a ``number`` value of this value concept. If the value has another type,
 value.asLong()
 ----
 
-[#_Value_asRelation__]
+[#_Value_asRelation_]
 ==== asRelation
 
 [source,nodejs]
@@ -207,7 +207,7 @@ Casts the concept to ``Relation``.
 concept.asRelation()
 ----
 
-[#_Value_asRelationType__]
+[#_Value_asRelationType_]
 ==== asRelationType
 
 [source,nodejs]
@@ -228,7 +228,7 @@ Casts the concept to ``RelationType``.
 concept.asRelationType()
 ----
 
-[#_Value_asRoleType__]
+[#_Value_asRoleType_]
 ==== asRoleType
 
 [source,nodejs]
@@ -249,7 +249,7 @@ Casts the concept to ``RoleType``.
 concept.asRoleType()
 ----
 
-[#_Value_asString__]
+[#_Value_asString_]
 ==== asString
 
 [source,nodejs]
@@ -270,7 +270,7 @@ Returns a ``string`` value of this value concept. If the value has another type,
 value.asString()
 ----
 
-[#_Value_asThing__]
+[#_Value_asThing_]
 ==== asThing
 
 [source,nodejs]
@@ -291,7 +291,7 @@ Casts the concept to ``Thing``.
 concept.asThing()
 ----
 
-[#_Value_asThingType__]
+[#_Value_asThingType_]
 ==== asThingType
 
 [source,nodejs]
@@ -312,7 +312,7 @@ Casts the concept to ``ThingType``.
 concept.asThingType()
 ----
 
-[#_Value_asType__]
+[#_Value_asType_]
 ==== asType
 
 [source,nodejs]
@@ -333,7 +333,7 @@ Casts the concept to ``Type``.
 concept.asType()
 ----
 
-[#_Value_asValue__]
+[#_Value_asValue_]
 ==== asValue
 
 [source,nodejs]
@@ -354,7 +354,7 @@ Casts the concept to ``Value``.
 concept.asValue()
 ----
 
-[#_Value_equals__concept_Concept]
+[#_Value_equals_concept_Concept]
 ==== equals
 
 [source,nodejs]
@@ -377,7 +377,7 @@ a| `concept` a| The concept to compare to. a| `Concept`
 .Returns
 `boolean`
 
-[#_Value_isAttribute__]
+[#_Value_isAttribute_]
 ==== isAttribute
 
 [source,nodejs]
@@ -398,7 +398,7 @@ Checks if the concept is an ``Attribute``.
 concept.isAttribute()
 ----
 
-[#_Value_isAttributeType__]
+[#_Value_isAttributeType_]
 ==== isAttributeType
 
 [source,nodejs]
@@ -419,7 +419,7 @@ Checks if the concept is an ``AttributeType``.
 concept.isAttributeType()
 ----
 
-[#_Value_isBoolean__]
+[#_Value_isBoolean_]
 ==== isBoolean
 
 [source,nodejs]
@@ -440,7 +440,7 @@ Returns ``True`` if the value which this value concept holds is of type ``boolea
 value.isBoolean()
 ----
 
-[#_Value_isDateTime__]
+[#_Value_isDateTime_]
 ==== isDateTime
 
 [source,nodejs]
@@ -461,7 +461,7 @@ Returns ``True`` if the value which this value concept holds is of type ``dateti
 value.isDatetime()
 ----
 
-[#_Value_isDouble__]
+[#_Value_isDouble_]
 ==== isDouble
 
 [source,nodejs]
@@ -482,7 +482,7 @@ Returns ``True`` if the value which this value concept holds is of type ``double
 value.isDouble()
 ----
 
-[#_Value_isEntity__]
+[#_Value_isEntity_]
 ==== isEntity
 
 [source,nodejs]
@@ -503,7 +503,7 @@ Checks if the concept is an ``Entity``.
 concept.isEntity()
 ----
 
-[#_Value_isEntityType__]
+[#_Value_isEntityType_]
 ==== isEntityType
 
 [source,nodejs]
@@ -524,7 +524,7 @@ Checks if the concept is an ``EntityType``.
 concept.isEntityType()
 ----
 
-[#_Value_isLong__]
+[#_Value_isLong_]
 ==== isLong
 
 [source,nodejs]
@@ -545,7 +545,7 @@ Returns ``True`` if the value which this value concept holds is of type ``long``
 value.isLong()
 ----
 
-[#_Value_isRelation__]
+[#_Value_isRelation_]
 ==== isRelation
 
 [source,nodejs]
@@ -566,7 +566,7 @@ Checks if the concept is a ``Relation``.
 concept.isRelation()
 ----
 
-[#_Value_isRelationType__]
+[#_Value_isRelationType_]
 ==== isRelationType
 
 [source,nodejs]
@@ -587,7 +587,7 @@ Checks if the concept is a ``RelationType``.
 concept.isRelationType()
 ----
 
-[#_Value_isRoleType__]
+[#_Value_isRoleType_]
 ==== isRoleType
 
 [source,nodejs]
@@ -608,7 +608,7 @@ Checks if the concept is a ``RoleType``.
 concept.isRoleType()
 ----
 
-[#_Value_isString__]
+[#_Value_isString_]
 ==== isString
 
 [source,nodejs]
@@ -629,7 +629,7 @@ Returns ``True`` if the value which this value concept holds is of type ``string
 value.isString()
 ----
 
-[#_Value_isThing__]
+[#_Value_isThing_]
 ==== isThing
 
 [source,nodejs]
@@ -650,7 +650,7 @@ Checks if the concept is a ``Thing``.
 concept.isThing()
 ----
 
-[#_Value_isThingType__]
+[#_Value_isThingType_]
 ==== isThingType
 
 [source,nodejs]
@@ -671,7 +671,7 @@ Checks if the concept is a ``ThingType``.
 concept.isThingType()
 ----
 
-[#_Value_isType__]
+[#_Value_isType_]
 ==== isType
 
 [source,nodejs]
@@ -692,7 +692,7 @@ Checks if the concept is a ``Type``.
 concept.isType()
 ----
 
-[#_Value_isValue__]
+[#_Value_isValue_]
 ==== isValue
 
 [source,nodejs]
diff --git a/nodejs/docs/errors/ErrorMessage.adoc b/docs/modules/ROOT/partials/nodejs/errors/ErrorMessage.adoc
similarity index 84%
rename from nodejs/docs/errors/ErrorMessage.adoc
rename to docs/modules/ROOT/partials/nodejs/errors/ErrorMessage.adoc
index de06952967..127e7ed54b 100644
--- a/nodejs/docs/errors/ErrorMessage.adoc
+++ b/docs/modules/ROOT/partials/nodejs/errors/ErrorMessage.adoc
@@ -4,7 +4,7 @@
 Class defining the error-code and message template for ``TypeDBDriverError``s
 
 // tag::methods[]
-[#_ErrorMessage_code__]
+[#_ErrorMessage_code_]
 ==== code
 
 [source,nodejs]
@@ -18,7 +18,7 @@ Retrieves the error-code for this ErrorMessage
 .Returns
 `string`
 
-[#_ErrorMessage_message__args_Stringable__]
+[#_ErrorMessage_message_args_Stringable_]
 ==== message
 
 [source,nodejs]
@@ -41,7 +41,7 @@ a| `args` a| The format arguments to the message-template. a| `Stringable[]`
 .Returns
 `string`
 
-[#_ErrorMessage_new_ErrorMessage__codePrefix_string__codeNumber_number__messagePrefix_string__messageBody___args____string_]
+[#_ErrorMessage_new_ErrorMessage_codePrefix_string_codeNumber_number_messagePrefix_string_messageBody_args_string_]
 ==== new ErrorMessage
 
 [source,nodejs]
@@ -67,7 +67,7 @@ a| `messageBody` a|  a| `((args) => string)`
 .Returns
 `ErrorMessage`
 
-[#_ErrorMessage_toString__]
+[#_ErrorMessage_toString_]
 ==== toString
 
 [source,nodejs]
diff --git a/nodejs/docs/errors/TypeDBDriverError.adoc b/docs/modules/ROOT/partials/nodejs/errors/TypeDBDriverError.adoc
similarity index 85%
rename from nodejs/docs/errors/TypeDBDriverError.adoc
rename to docs/modules/ROOT/partials/nodejs/errors/TypeDBDriverError.adoc
index 6105bbcbee..653f0278d8 100644
--- a/nodejs/docs/errors/TypeDBDriverError.adoc
+++ b/docs/modules/ROOT/partials/nodejs/errors/TypeDBDriverError.adoc
@@ -23,7 +23,7 @@ a| `stackTraceLimit` a| `number` a|
 // end::properties[]
 
 // tag::methods[]
-[#_TypeDBDriverError__messageTemplate__]
+[#_TypeDBDriverError_messageTemplate_]
 ====  messageTemplate
 
 [source,nodejs]
@@ -37,7 +37,7 @@ Returns the message template for this error.
 .Returns
 `ErrorMessage`
 
-[#_TypeDBDriverError_captureStackTrace__targetObject_object__constructorOpt_Function]
+[#_TypeDBDriverError_captureStackTrace_targetObject_object_constructorOpt_Function]
 ==== captureStackTrace
 
 [source,nodejs]
@@ -61,7 +61,7 @@ a| `constructorOpt` a|  a| `Function`
 .Returns
 `void`
 
-[#_TypeDBDriverError_new_TypeDBDriverError__error_string__ErrorMessage__Error__ServiceError]
+[#_TypeDBDriverError_new_TypeDBDriverError_error_string_ErrorMessage_Error_ServiceError]
 ==== new TypeDBDriverError
 
 [source,nodejs]
diff --git a/nodejs/docs/logic/LogicManager.adoc b/docs/modules/ROOT/partials/nodejs/logic/LogicManager.adoc
similarity index 91%
rename from nodejs/docs/logic/LogicManager.adoc
rename to docs/modules/ROOT/partials/nodejs/logic/LogicManager.adoc
index 0eb5bdb571..e6420947dd 100644
--- a/nodejs/docs/logic/LogicManager.adoc
+++ b/docs/modules/ROOT/partials/nodejs/logic/LogicManager.adoc
@@ -4,7 +4,7 @@
 Provides methods for manipulating rules in the database.
 
 // tag::methods[]
-[#_LogicManager_getRule__label_string]
+[#_LogicManager_getRule_label_string]
 ==== getRule
 
 [source,nodejs]
@@ -34,7 +34,7 @@ a| `label` a| The label of the Rule to create or retrieve a| `string`
 transaction.logic.getRule(label)
 ----
 
-[#_LogicManager_getRules__]
+[#_LogicManager_getRules_]
 ==== getRules
 
 [source,nodejs]
@@ -55,7 +55,7 @@ Retrieves all rules.
 transaction.logic.getRules()
 ----
 
-[#_LogicManager_putRule__label_string__when_string__then_string]
+[#_LogicManager_putRule_label_string_when_string_then_string]
 ==== putRule
 
 [source,nodejs]
diff --git a/nodejs/docs/logic/Rule.adoc b/docs/modules/ROOT/partials/nodejs/logic/Rule.adoc
similarity index 92%
rename from nodejs/docs/logic/Rule.adoc
rename to docs/modules/ROOT/partials/nodejs/logic/Rule.adoc
index 4566e39c6f..639bb5801a 100644
--- a/nodejs/docs/logic/Rule.adoc
+++ b/docs/modules/ROOT/partials/nodejs/logic/Rule.adoc
@@ -17,7 +17,7 @@ a| `when` a| `string` a| The statements that constitute the ‘when’ of the ru
 // end::properties[]
 
 // tag::methods[]
-[#_Rule_delete__transaction_TypeDBTransaction]
+[#_Rule_delete_transaction_TypeDBTransaction]
 ==== delete
 
 [source,nodejs]
@@ -47,7 +47,7 @@ a| `transaction` a| The current ``Transaction`` a| `TypeDBTransaction`
 rule.delete(transaction)
 ----
 
-[#_Rule_isDeleted__transaction_TypeDBTransaction]
+[#_Rule_isDeleted_transaction_TypeDBTransaction]
 ==== isDeleted
 
 [source,nodejs]
@@ -77,7 +77,7 @@ a| `transaction` a| The current ``Transaction`` a| `TypeDBTransaction`
 rule.isDeleted(transaction)
 ----
 
-[#_Rule_setLabel__transaction_TypeDBTransaction__label_string]
+[#_Rule_setLabel_transaction_TypeDBTransaction_label_string]
 ==== setLabel
 
 [source,nodejs]
diff --git a/nodejs/docs/schema/Annotation.adoc b/docs/modules/ROOT/partials/nodejs/schema/Annotation.adoc
similarity index 93%
rename from nodejs/docs/schema/Annotation.adoc
rename to docs/modules/ROOT/partials/nodejs/schema/Annotation.adoc
index c9405827d2..a0fd574cc9 100644
--- a/nodejs/docs/schema/Annotation.adoc
+++ b/docs/modules/ROOT/partials/nodejs/schema/Annotation.adoc
@@ -16,7 +16,7 @@ a| `UNIQUE` a| `Annotation` a| Annotation to specify the owned is UNIQUE
 // end::properties[]
 
 // tag::methods[]
-[#_Annotation_parse__string_string]
+[#_Annotation_parse_string_string]
 ==== parse
 
 [source,nodejs]
@@ -39,7 +39,7 @@ a| `string` a| name of the attribute as a string. e.g.: "key", "unique" a| `stri
 .Returns
 `Annotation`
 
-[#_Annotation_toString__]
+[#_Annotation_toString_]
 ==== toString
 
 [source,nodejs]
diff --git a/nodejs/docs/schema/AttributeType.adoc b/docs/modules/ROOT/partials/nodejs/schema/AttributeType.adoc
similarity index 88%
rename from nodejs/docs/schema/AttributeType.adoc
rename to docs/modules/ROOT/partials/nodejs/schema/AttributeType.adoc
index 9c6b6c8662..00fcc9618e 100644
--- a/nodejs/docs/schema/AttributeType.adoc
+++ b/docs/modules/ROOT/partials/nodejs/schema/AttributeType.adoc
@@ -19,7 +19,7 @@ a| `NAME`
 // end::enum_constants[]
 
 // tag::methods[]
-[#_AttributeType_asAttribute__]
+[#_AttributeType_asAttribute_]
 ==== asAttribute
 
 [source,nodejs]
@@ -40,7 +40,7 @@ Casts the concept to ``Attribute``.
 concept.asAttribute()
 ----
 
-[#_AttributeType_asAttributeType__]
+[#_AttributeType_asAttributeType_]
 ==== asAttributeType
 
 [source,nodejs]
@@ -61,7 +61,7 @@ Casts the concept to ``AttributeType``.
 concept.asAttributeType()
 ----
 
-[#_AttributeType_asEntity__]
+[#_AttributeType_asEntity_]
 ==== asEntity
 
 [source,nodejs]
@@ -82,7 +82,7 @@ Casts the concept to ``Entity``.
 concept.asEntity()
 ----
 
-[#_AttributeType_asEntityType__]
+[#_AttributeType_asEntityType_]
 ==== asEntityType
 
 [source,nodejs]
@@ -103,7 +103,7 @@ Casts the concept to ``EntityType``.
 concept.asEntityType()
 ----
 
-[#_AttributeType_asRelation__]
+[#_AttributeType_asRelation_]
 ==== asRelation
 
 [source,nodejs]
@@ -124,7 +124,7 @@ Casts the concept to ``Relation``.
 concept.asRelation()
 ----
 
-[#_AttributeType_asRelationType__]
+[#_AttributeType_asRelationType_]
 ==== asRelationType
 
 [source,nodejs]
@@ -145,7 +145,7 @@ Casts the concept to ``RelationType``.
 concept.asRelationType()
 ----
 
-[#_AttributeType_asRoleType__]
+[#_AttributeType_asRoleType_]
 ==== asRoleType
 
 [source,nodejs]
@@ -166,7 +166,7 @@ Casts the concept to ``RoleType``.
 concept.asRoleType()
 ----
 
-[#_AttributeType_asThing__]
+[#_AttributeType_asThing_]
 ==== asThing
 
 [source,nodejs]
@@ -187,7 +187,7 @@ Casts the concept to ``Thing``.
 concept.asThing()
 ----
 
-[#_AttributeType_asThingType__]
+[#_AttributeType_asThingType_]
 ==== asThingType
 
 [source,nodejs]
@@ -208,7 +208,7 @@ Casts the concept to ``ThingType``.
 concept.asThingType()
 ----
 
-[#_AttributeType_asType__]
+[#_AttributeType_asType_]
 ==== asType
 
 [source,nodejs]
@@ -229,7 +229,7 @@ Casts the concept to ``Type``.
 concept.asType()
 ----
 
-[#_AttributeType_asValue__]
+[#_AttributeType_asValue_]
 ==== asValue
 
 [source,nodejs]
@@ -250,7 +250,7 @@ Casts the concept to ``Value``.
 concept.asValue()
 ----
 
-[#_AttributeType_delete__transaction_TypeDBTransaction]
+[#_AttributeType_delete_transaction_TypeDBTransaction]
 ==== delete
 
 [source,nodejs]
@@ -280,7 +280,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 type.delete(transaction)
 ----
 
-[#_AttributeType_equals__concept_Concept]
+[#_AttributeType_equals_concept_Concept]
 ==== equals
 
 [source,nodejs]
@@ -303,7 +303,7 @@ a| `concept` a| The concept to compare to. a| `Concept`
 .Returns
 `boolean`
 
-[#_AttributeType_get__transaction_TypeDBTransaction__value_Value]
+[#_AttributeType_get_transaction_TypeDBTransaction_value_Value]
 ==== get
 
 [source,nodejs]
@@ -334,7 +334,7 @@ a| `value` a| ``Attribute``’s value a| `Value`
 attribute = attributeType.get(transaction, value)
 ----
 
-[#_AttributeType_getBoolean__transaction_TypeDBTransaction__value_boolean]
+[#_AttributeType_getBoolean_transaction_TypeDBTransaction_value_boolean]
 ==== getBoolean
 
 [source,nodejs]
@@ -365,7 +365,7 @@ a| `value` a| ``Attribute``’s value a| `boolean`
 attribute = attributeType.get(transaction, value)
 ----
 
-[#_AttributeType_getDateTime__transaction_TypeDBTransaction__value_Date]
+[#_AttributeType_getDateTime_transaction_TypeDBTransaction_value_Date]
 ==== getDateTime
 
 [source,nodejs]
@@ -396,7 +396,7 @@ a| `value` a| ``Attribute``’s value a| `Date`
 attribute = attributeType.get(transaction, value)
 ----
 
-[#_AttributeType_getDouble__transaction_TypeDBTransaction__value_number]
+[#_AttributeType_getDouble_transaction_TypeDBTransaction_value_number]
 ==== getDouble
 
 [source,nodejs]
@@ -427,7 +427,7 @@ a| `value` a| ``Attribute``’s value a| `number`
 attribute = attributeType.get(transaction, value)
 ----
 
-[#_AttributeType_getInstances__transaction_TypeDBTransaction__transitivity_Transitivity]
+[#_AttributeType_getInstances_transaction_TypeDBTransaction_transitivity_Transitivity]
 ==== getInstances
 
 [source,nodejs]
@@ -458,7 +458,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and indirect subtype
 attributeType.getInstances(transaction) attributeType.getInstances(transaction, Transitivity.EXPLICIT)
 ----
 
-[#_AttributeType_getInstances__transaction_TypeDBTransaction]
+[#_AttributeType_getInstances_transaction_TypeDBTransaction]
 ==== getInstances
 
 [source,nodejs]
@@ -488,7 +488,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.getInstances(transaction, Transitivity.EXPLICIT)
 ----
 
-[#_AttributeType_getLong__transaction_TypeDBTransaction__value_number]
+[#_AttributeType_getLong_transaction_TypeDBTransaction_value_number]
 ==== getLong
 
 [source,nodejs]
@@ -519,7 +519,7 @@ a| `value` a| ``Attribute``’s value a| `number`
 attribute = attributeType.get(transaction, value)
 ----
 
-[#_AttributeType_getOwners__transaction_TypeDBTransaction__annotations_Annotation____transitivity_Transitivity]
+[#_AttributeType_getOwners_transaction_TypeDBTransaction_annotations_Annotation_transitivity_Transitivity]
 ==== getOwners
 
 [source,nodejs]
@@ -551,7 +551,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and inherited owners
 attributeType.getOwners(transaction) attributeType.getOwners(transaction, [Annotation.UNIQUE]) attributeType.getOwners(transaction, Transitivity.TRANSITIVE) attributeType.getOwners(transaction, [Annotation.UNIQUE], Transitivity.TRANSITIVE)
 ----
 
-[#_AttributeType_getOwners__transaction_TypeDBTransaction]
+[#_AttributeType_getOwners_transaction_TypeDBTransaction]
 ==== getOwners
 
 [source,nodejs]
@@ -574,7 +574,7 @@ a| `transaction` a|  a| `TypeDBTransaction`
 .Returns
 `Stream`
 
-[#_AttributeType_getOwners__transaction_TypeDBTransaction__annotations_Annotation__]
+[#_AttributeType_getOwners_transaction_TypeDBTransaction_annotations_Annotation_]
 ==== getOwners
 
 [source,nodejs]
@@ -598,7 +598,7 @@ a| `annotations` a|  a| `Annotation[]`
 .Returns
 `Stream`
 
-[#_AttributeType_getOwners__transaction_TypeDBTransaction__transitivity_Transitivity]
+[#_AttributeType_getOwners_transaction_TypeDBTransaction_transitivity_Transitivity]
 ==== getOwners
 
 [source,nodejs]
@@ -622,7 +622,7 @@ a| `transitivity` a|  a| `Transitivity`
 .Returns
 `Stream`
 
-[#_AttributeType_getOwns__transaction_TypeDBTransaction]
+[#_AttributeType_getOwns_transaction_TypeDBTransaction]
 ==== getOwns
 
 [source,nodejs]
@@ -652,7 +652,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.getOwns(transaction) thingType.getOwns(transaction, valueType, Transitivity.EXPLICIT,[Annotation.KEY])
 ----
 
-[#_AttributeType_getOwns__transaction_TypeDBTransaction__valueType_ValueType]
+[#_AttributeType_getOwns_transaction_TypeDBTransaction_valueType_ValueType]
 ==== getOwns
 
 [source,nodejs]
@@ -683,7 +683,7 @@ a| `valueType` a| If specified, only attribute types of this ``ValueType`` will
 thingType.getOwns(transaction) thingType.getOwns(transaction, valueType, Transitivity.EXPLICIT,[Annotation.KEY])
 ----
 
-[#_AttributeType_getOwns__transaction_TypeDBTransaction__annotations_Annotation__]
+[#_AttributeType_getOwns_transaction_TypeDBTransaction_annotations_Annotation_]
 ==== getOwns
 
 [source,nodejs]
@@ -714,7 +714,7 @@ a| `annotations` a| If specified, only attribute types of this ``ValueType`` wil
 thingType.getOwns(transaction) thingType.getOwns(transaction, valueType, Transitivity.EXPLICIT,[Annotation.KEY])
 ----
 
-[#_AttributeType_getOwns__transaction_TypeDBTransaction__valueType_ValueType__annotations_Annotation__]
+[#_AttributeType_getOwns_transaction_TypeDBTransaction_valueType_ValueType_annotations_Annotation_]
 ==== getOwns
 
 [source,nodejs]
@@ -746,7 +746,7 @@ a| `annotations` a| Only retrieve attribute types owned with annotations. a| `An
 thingType.getOwns(transaction) thingType.getOwns(transaction, valueType, Transitivity.EXPLICIT,[Annotation.KEY])
 ----
 
-[#_AttributeType_getOwns__transaction_TypeDBTransaction__transitivity_Transitivity]
+[#_AttributeType_getOwns_transaction_TypeDBTransaction_transitivity_Transitivity]
 ==== getOwns
 
 [source,nodejs]
@@ -777,7 +777,7 @@ a| `transitivity` a| If specified, only attribute types of this ``ValueType`` wi
 thingType.getOwns(transaction) thingType.getOwns(transaction, valueType, Transitivity.EXPLICIT,[Annotation.KEY])
 ----
 
-[#_AttributeType_getOwns__transaction_TypeDBTransaction__valueType_ValueType__transitivity_Transitivity]
+[#_AttributeType_getOwns_transaction_TypeDBTransaction_valueType_ValueType_transitivity_Transitivity]
 ==== getOwns
 
 [source,nodejs]
@@ -809,7 +809,7 @@ a| `transitivity` a| Only retrieve attribute types owned with annotations. a| `T
 thingType.getOwns(transaction) thingType.getOwns(transaction, valueType, Transitivity.EXPLICIT,[Annotation.KEY])
 ----
 
-[#_AttributeType_getOwns__transaction_TypeDBTransaction__annotations_Annotation____transitivity_Transitivity]
+[#_AttributeType_getOwns_transaction_TypeDBTransaction_annotations_Annotation_transitivity_Transitivity]
 ==== getOwns
 
 [source,nodejs]
@@ -841,7 +841,7 @@ a| `transitivity` a| Only retrieve attribute types owned with annotations. a| `T
 thingType.getOwns(transaction) thingType.getOwns(transaction, valueType, Transitivity.EXPLICIT,[Annotation.KEY])
 ----
 
-[#_AttributeType_getOwns__transaction_TypeDBTransaction__valueType_ValueType__annotations_Annotation____transitivity_Transitivity]
+[#_AttributeType_getOwns_transaction_TypeDBTransaction_valueType_ValueType_annotations_Annotation_transitivity_Transitivity]
 ==== getOwns
 
 [source,nodejs]
@@ -874,7 +874,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and inherited owners
 thingType.getOwns(transaction) thingType.getOwns(transaction, valueType, Transitivity.EXPLICIT,[Annotation.KEY])
 ----
 
-[#_AttributeType_getOwnsOverridden__transaction_TypeDBTransaction__attributeType_AttributeType]
+[#_AttributeType_getOwnsOverridden_transaction_TypeDBTransaction_attributeType_AttributeType]
 ==== getOwnsOverridden
 
 [source,nodejs]
@@ -905,7 +905,7 @@ a| `attributeType` a| The ``AttributeType`` that overrides requested ``Attribute
 thingType.getOwnsOverridden(transaction, attributeType)
 ----
 
-[#_AttributeType_getPlays__transaction_TypeDBTransaction]
+[#_AttributeType_getPlays_transaction_TypeDBTransaction]
 ==== getPlays
 
 [source,nodejs]
@@ -935,7 +935,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.getPlays(transaction) thingType.getPlays(transaction, Transitivity.EXPLICIT)
 ----
 
-[#_AttributeType_getPlays__transaction_TypeDBTransaction__transitivity_Transitivity]
+[#_AttributeType_getPlays_transaction_TypeDBTransaction_transitivity_Transitivity]
 ==== getPlays
 
 [source,nodejs]
@@ -966,7 +966,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and indirect playing
 thingType.getPlays(transaction) thingType.getPlays(transaction, Transitivity.EXPLICIT)
 ----
 
-[#_AttributeType_getPlaysOverridden__transaction_TypeDBTransaction__role_RoleType]
+[#_AttributeType_getPlaysOverridden_transaction_TypeDBTransaction_role_RoleType]
 ==== getPlaysOverridden
 
 [source,nodejs]
@@ -997,7 +997,7 @@ a| `role` a| The ``RoleType`` that overrides an inherited role a| `RoleType`
 thingType.getPlaysOverridden(transaction, role)
 ----
 
-[#_AttributeType_getRegex__transaction_TypeDBTransaction]
+[#_AttributeType_getRegex_transaction_TypeDBTransaction]
 ==== getRegex
 
 [source,nodejs]
@@ -1027,7 +1027,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 attributeType.getRegex(transaction)
 ----
 
-[#_AttributeType_getString__transaction_TypeDBTransaction__value_string]
+[#_AttributeType_getString_transaction_TypeDBTransaction_value_string]
 ==== getString
 
 [source,nodejs]
@@ -1058,7 +1058,7 @@ a| `value` a| ``Attribute``’s value a| `string`
 attribute = attributeType.get(transaction, value)
 ----
 
-[#_AttributeType_getSubtypes__transaction_TypeDBTransaction]
+[#_AttributeType_getSubtypes_transaction_TypeDBTransaction]
 ==== getSubtypes
 
 [source,nodejs]
@@ -1088,7 +1088,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.getSubtypes(transaction)
 ----
 
-[#_AttributeType_getSubtypes__transaction_TypeDBTransaction__valueType_ValueType]
+[#_AttributeType_getSubtypes_transaction_TypeDBTransaction_valueType_ValueType]
 ==== getSubtypes
 
 [source,nodejs]
@@ -1119,7 +1119,7 @@ a| `valueType` a| ``Transitivity.TRANSITIVE`` for direct and indirect subtypes,
 thingType.getSubtypes(transaction, Transitivity.EXPLICIT)
 ----
 
-[#_AttributeType_getSubtypes__transaction_TypeDBTransaction__transitivity_Transitivity]
+[#_AttributeType_getSubtypes_transaction_TypeDBTransaction_transitivity_Transitivity]
 ==== getSubtypes
 
 [source,nodejs]
@@ -1143,7 +1143,7 @@ a| `transitivity` a|  a| `Transitivity`
 .Returns
 `Stream`
 
-[#_AttributeType_getSubtypes__transaction_TypeDBTransaction__valueType_ValueType__transitivity_Transitivity]
+[#_AttributeType_getSubtypes_transaction_TypeDBTransaction_valueType_ValueType_transitivity_Transitivity]
 ==== getSubtypes
 
 [source,nodejs]
@@ -1168,7 +1168,7 @@ a| `transitivity` a|  a| `Transitivity`
 .Returns
 `Stream`
 
-[#_AttributeType_getSupertype__transaction_TypeDBTransaction]
+[#_AttributeType_getSupertype_transaction_TypeDBTransaction]
 ==== getSupertype
 
 [source,nodejs]
@@ -1198,7 +1198,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.getSupertype(transaction)
 ----
 
-[#_AttributeType_getSupertypes__transaction_TypeDBTransaction]
+[#_AttributeType_getSupertypes_transaction_TypeDBTransaction]
 ==== getSupertypes
 
 [source,nodejs]
@@ -1228,7 +1228,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.getSupertypes(transaction)
 ----
 
-[#_AttributeType_getSyntax__transaction_TypeDBTransaction]
+[#_AttributeType_getSyntax_transaction_TypeDBTransaction]
 ==== getSyntax
 
 [source,nodejs]
@@ -1258,7 +1258,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.getSyntax(transaction)
 ----
 
-[#_AttributeType_isAttribute__]
+[#_AttributeType_isAttribute_]
 ==== isAttribute
 
 [source,nodejs]
@@ -1279,7 +1279,7 @@ Checks if the concept is an ``Attribute``.
 concept.isAttribute()
 ----
 
-[#_AttributeType_isAttributeType__]
+[#_AttributeType_isAttributeType_]
 ==== isAttributeType
 
 [source,nodejs]
@@ -1300,7 +1300,7 @@ Checks if the concept is an ``AttributeType``.
 concept.isAttributeType()
 ----
 
-[#_AttributeType_isDeleted__transaction_TypeDBTransaction]
+[#_AttributeType_isDeleted_transaction_TypeDBTransaction]
 ==== isDeleted
 
 [source,nodejs]
@@ -1323,7 +1323,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 .Returns
 `Promise`
 
-[#_AttributeType_isEntity__]
+[#_AttributeType_isEntity_]
 ==== isEntity
 
 [source,nodejs]
@@ -1344,7 +1344,7 @@ Checks if the concept is an ``Entity``.
 concept.isEntity()
 ----
 
-[#_AttributeType_isEntityType__]
+[#_AttributeType_isEntityType_]
 ==== isEntityType
 
 [source,nodejs]
@@ -1365,7 +1365,7 @@ Checks if the concept is an ``EntityType``.
 concept.isEntityType()
 ----
 
-[#_AttributeType_isRelation__]
+[#_AttributeType_isRelation_]
 ==== isRelation
 
 [source,nodejs]
@@ -1386,7 +1386,7 @@ Checks if the concept is a ``Relation``.
 concept.isRelation()
 ----
 
-[#_AttributeType_isRelationType__]
+[#_AttributeType_isRelationType_]
 ==== isRelationType
 
 [source,nodejs]
@@ -1407,7 +1407,7 @@ Checks if the concept is a ``RelationType``.
 concept.isRelationType()
 ----
 
-[#_AttributeType_isRoleType__]
+[#_AttributeType_isRoleType_]
 ==== isRoleType
 
 [source,nodejs]
@@ -1428,7 +1428,7 @@ Checks if the concept is a ``RoleType``.
 concept.isRoleType()
 ----
 
-[#_AttributeType_isThing__]
+[#_AttributeType_isThing_]
 ==== isThing
 
 [source,nodejs]
@@ -1449,7 +1449,7 @@ Checks if the concept is a ``Thing``.
 concept.isThing()
 ----
 
-[#_AttributeType_isThingType__]
+[#_AttributeType_isThingType_]
 ==== isThingType
 
 [source,nodejs]
@@ -1470,7 +1470,7 @@ Checks if the concept is a ``ThingType``.
 concept.isThingType()
 ----
 
-[#_AttributeType_isType__]
+[#_AttributeType_isType_]
 ==== isType
 
 [source,nodejs]
@@ -1491,7 +1491,7 @@ Checks if the concept is a ``Type``.
 concept.isType()
 ----
 
-[#_AttributeType_isValue__]
+[#_AttributeType_isValue_]
 ==== isValue
 
 [source,nodejs]
@@ -1512,7 +1512,7 @@ Checks if the concept is a ``Value``.
 concept.isValue()
 ----
 
-[#_AttributeType_put__transaction_TypeDBTransaction__value_Value]
+[#_AttributeType_put_transaction_TypeDBTransaction_value_Value]
 ==== put
 
 [source,nodejs]
@@ -1543,7 +1543,7 @@ a| `value` a| New ``Attribute``’s value a| `Value`
 attribute = attributeType.put(transaction, value)
 ----
 
-[#_AttributeType_putBoolean__transaction_TypeDBTransaction__value_boolean]
+[#_AttributeType_putBoolean_transaction_TypeDBTransaction_value_boolean]
 ==== putBoolean
 
 [source,nodejs]
@@ -1574,7 +1574,7 @@ a| `value` a| New ``Attribute``’s value a| `boolean`
 attribute = attributeType.put(transaction, value)
 ----
 
-[#_AttributeType_putDateTime__transaction_TypeDBTransaction__value_Date]
+[#_AttributeType_putDateTime_transaction_TypeDBTransaction_value_Date]
 ==== putDateTime
 
 [source,nodejs]
@@ -1605,7 +1605,7 @@ a| `value` a| New ``Attribute``’s value a| `Date`
 attribute = attributeType.put(transaction, value)
 ----
 
-[#_AttributeType_putDouble__transaction_TypeDBTransaction__value_number]
+[#_AttributeType_putDouble_transaction_TypeDBTransaction_value_number]
 ==== putDouble
 
 [source,nodejs]
@@ -1636,7 +1636,7 @@ a| `value` a| New ``Attribute``’s value a| `number`
 attribute = attributeType.put(transaction, value)
 ----
 
-[#_AttributeType_putLong__transaction_TypeDBTransaction__value_number]
+[#_AttributeType_putLong_transaction_TypeDBTransaction_value_number]
 ==== putLong
 
 [source,nodejs]
@@ -1667,7 +1667,7 @@ a| `value` a| New ``Attribute``’s value a| `number`
 attribute = attributeType.put(transaction, value)
 ----
 
-[#_AttributeType_putString__transaction_TypeDBTransaction__value_string]
+[#_AttributeType_putString_transaction_TypeDBTransaction_value_string]
 ==== putString
 
 [source,nodejs]
@@ -1698,7 +1698,7 @@ a| `value` a| New ``Attribute``’s value a| `string`
 attribute = attributeType.put(transaction, value)
 ----
 
-[#_AttributeType_setAbstract__transaction_TypeDBTransaction]
+[#_AttributeType_setAbstract_transaction_TypeDBTransaction]
 ==== setAbstract
 
 [source,nodejs]
@@ -1728,7 +1728,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.setAbstract(transaction)
 ----
 
-[#_AttributeType_setLabel__transaction_TypeDBTransaction__label_string]
+[#_AttributeType_setLabel_transaction_TypeDBTransaction_label_string]
 ==== setLabel
 
 [source,nodejs]
@@ -1759,7 +1759,7 @@ a| `label` a| The new ``Label`` to be given to the type. a| `string`
 type.setLabel(transaction, label)
 ----
 
-[#_AttributeType_setOwns__transaction_TypeDBTransaction__attributeType_AttributeType]
+[#_AttributeType_setOwns_transaction_TypeDBTransaction_attributeType_AttributeType]
 ==== setOwns
 
 [source,nodejs]
@@ -1790,7 +1790,7 @@ a| `attributeType` a| The ``AttributeType`` to be owned by the instances of this
 thingType.setOwns(transaction, attributeType) thingType.setOwns(transaction, attributeType, overriddenType,[Annotation.KEY])
 ----
 
-[#_AttributeType_setOwns__transaction_TypeDBTransaction__attributeType_AttributeType__annotations_Annotation__]
+[#_AttributeType_setOwns_transaction_TypeDBTransaction_attributeType_AttributeType_annotations_Annotation_]
 ==== setOwns
 
 [source,nodejs]
@@ -1822,7 +1822,7 @@ a| `annotations` a| The ``AttributeType`` that this attribute ownership override
 thingType.setOwns(transaction, attributeType) thingType.setOwns(transaction, attributeType, overriddenType,[Annotation.KEY])
 ----
 
-[#_AttributeType_setOwns__transaction_TypeDBTransaction__attributeType_AttributeType__overriddenType_AttributeType]
+[#_AttributeType_setOwns_transaction_TypeDBTransaction_attributeType_AttributeType_overriddenType_AttributeType]
 ==== setOwns
 
 [source,nodejs]
@@ -1854,7 +1854,7 @@ a| `overriddenType` a| The ``AttributeType`` that this attribute ownership overr
 thingType.setOwns(transaction, attributeType) thingType.setOwns(transaction, attributeType, overriddenType,[Annotation.KEY])
 ----
 
-[#_AttributeType_setOwns__transaction_TypeDBTransaction__attributeType_AttributeType__overriddenType_AttributeType__annotations_Annotation__]
+[#_AttributeType_setOwns_transaction_TypeDBTransaction_attributeType_AttributeType_overriddenType_AttributeType_annotations_Annotation_]
 ==== setOwns
 
 [source,nodejs]
@@ -1887,7 +1887,7 @@ a| `annotations` a| Adds annotations to the ownership. a| `Annotation[]`
 thingType.setOwns(transaction, attributeType) thingType.setOwns(transaction, attributeType, overriddenType,[Annotation.KEY])
 ----
 
-[#_AttributeType_setPlays__transaction_TypeDBTransaction__role_RoleType]
+[#_AttributeType_setPlays_transaction_TypeDBTransaction_role_RoleType]
 ==== setPlays
 
 [source,nodejs]
@@ -1918,7 +1918,7 @@ a| `role` a| The role to be played by the instances of this type a| `RoleType`
 thingType.setPlays(transaction, role) thingType.setPlays(transaction, role, overriddenType)
 ----
 
-[#_AttributeType_setPlays__transaction_TypeDBTransaction__role_RoleType__overriddenType_RoleType]
+[#_AttributeType_setPlays_transaction_TypeDBTransaction_role_RoleType_overriddenType_RoleType]
 ==== setPlays
 
 [source,nodejs]
@@ -1950,7 +1950,7 @@ a| `overriddenType` a| The role type that this role overrides, if applicable a|
 thingType.setPlays(transaction, role) thingType.setPlays(transaction, role, overriddenType)
 ----
 
-[#_AttributeType_setRegex__transaction_TypeDBTransaction__regex_string]
+[#_AttributeType_setRegex_transaction_TypeDBTransaction_regex_string]
 ==== setRegex
 
 [source,nodejs]
@@ -1981,7 +1981,7 @@ a| `regex` a| Regular expression a| `string`
 attributeType.setRegex(transaction, regex)
 ----
 
-[#_AttributeType_setSupertype__transaction_TypeDBTransaction__type_AttributeType]
+[#_AttributeType_setSupertype_transaction_TypeDBTransaction_type_AttributeType]
 ==== setSupertype
 
 [source,nodejs]
@@ -2012,7 +2012,7 @@ a| `type` a|  a| `AttributeType`
 attributeType.setSupertype(transaction, superAttributeType).resolve();
 ----
 
-[#_AttributeType_unsetAbstract__transaction_TypeDBTransaction]
+[#_AttributeType_unsetAbstract_transaction_TypeDBTransaction]
 ==== unsetAbstract
 
 [source,nodejs]
@@ -2042,7 +2042,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.unsetAbstract(transaction)
 ----
 
-[#_AttributeType_unsetOwns__transaction_TypeDBTransaction__attributeType_AttributeType]
+[#_AttributeType_unsetOwns_transaction_TypeDBTransaction_attributeType_AttributeType]
 ==== unsetOwns
 
 [source,nodejs]
@@ -2073,7 +2073,7 @@ a| `attributeType` a| The ``AttributeType`` to not be owned by the type. a| `Att
 thingType.unsetOwns(transaction, attributeType)
 ----
 
-[#_AttributeType_unsetPlays__transaction_TypeDBTransaction__role_RoleType]
+[#_AttributeType_unsetPlays_transaction_TypeDBTransaction_role_RoleType]
 ==== unsetPlays
 
 [source,nodejs]
@@ -2104,7 +2104,7 @@ a| `role` a| The role to not be played by the instances of this type. a| `RoleTy
 thingType.unsetPlays(transaction, role)
 ----
 
-[#_AttributeType_unsetRegex__transaction_TypeDBTransaction]
+[#_AttributeType_unsetRegex_transaction_TypeDBTransaction]
 ==== unsetRegex
 
 [source,nodejs]
diff --git a/nodejs/docs/schema/EntityType.adoc b/docs/modules/ROOT/partials/nodejs/schema/EntityType.adoc
similarity index 88%
rename from nodejs/docs/schema/EntityType.adoc
rename to docs/modules/ROOT/partials/nodejs/schema/EntityType.adoc
index baf6604f21..d0e898426d 100644
--- a/nodejs/docs/schema/EntityType.adoc
+++ b/docs/modules/ROOT/partials/nodejs/schema/EntityType.adoc
@@ -17,7 +17,7 @@ a| `NAME`
 // end::enum_constants[]
 
 // tag::methods[]
-[#_EntityType_asAttribute__]
+[#_EntityType_asAttribute_]
 ==== asAttribute
 
 [source,nodejs]
@@ -38,7 +38,7 @@ Casts the concept to ``Attribute``.
 concept.asAttribute()
 ----
 
-[#_EntityType_asAttributeType__]
+[#_EntityType_asAttributeType_]
 ==== asAttributeType
 
 [source,nodejs]
@@ -59,7 +59,7 @@ Casts the concept to ``AttributeType``.
 concept.asAttributeType()
 ----
 
-[#_EntityType_asEntity__]
+[#_EntityType_asEntity_]
 ==== asEntity
 
 [source,nodejs]
@@ -80,7 +80,7 @@ Casts the concept to ``Entity``.
 concept.asEntity()
 ----
 
-[#_EntityType_asEntityType__]
+[#_EntityType_asEntityType_]
 ==== asEntityType
 
 [source,nodejs]
@@ -101,7 +101,7 @@ Casts the concept to ``EntityType``.
 concept.asEntityType()
 ----
 
-[#_EntityType_asRelation__]
+[#_EntityType_asRelation_]
 ==== asRelation
 
 [source,nodejs]
@@ -122,7 +122,7 @@ Casts the concept to ``Relation``.
 concept.asRelation()
 ----
 
-[#_EntityType_asRelationType__]
+[#_EntityType_asRelationType_]
 ==== asRelationType
 
 [source,nodejs]
@@ -143,7 +143,7 @@ Casts the concept to ``RelationType``.
 concept.asRelationType()
 ----
 
-[#_EntityType_asRoleType__]
+[#_EntityType_asRoleType_]
 ==== asRoleType
 
 [source,nodejs]
@@ -164,7 +164,7 @@ Casts the concept to ``RoleType``.
 concept.asRoleType()
 ----
 
-[#_EntityType_asThing__]
+[#_EntityType_asThing_]
 ==== asThing
 
 [source,nodejs]
@@ -185,7 +185,7 @@ Casts the concept to ``Thing``.
 concept.asThing()
 ----
 
-[#_EntityType_asThingType__]
+[#_EntityType_asThingType_]
 ==== asThingType
 
 [source,nodejs]
@@ -206,7 +206,7 @@ Casts the concept to ``ThingType``.
 concept.asThingType()
 ----
 
-[#_EntityType_asType__]
+[#_EntityType_asType_]
 ==== asType
 
 [source,nodejs]
@@ -227,7 +227,7 @@ Casts the concept to ``Type``.
 concept.asType()
 ----
 
-[#_EntityType_asValue__]
+[#_EntityType_asValue_]
 ==== asValue
 
 [source,nodejs]
@@ -248,7 +248,7 @@ Casts the concept to ``Value``.
 concept.asValue()
 ----
 
-[#_EntityType_create__transaction_TypeDBTransaction]
+[#_EntityType_create_transaction_TypeDBTransaction]
 ==== create
 
 [source,nodejs]
@@ -271,7 +271,7 @@ a| `transaction` a|  a| `TypeDBTransaction`
 .Returns
 `Promise`
 
-[#_EntityType_delete__transaction_TypeDBTransaction]
+[#_EntityType_delete_transaction_TypeDBTransaction]
 ==== delete
 
 [source,nodejs]
@@ -301,7 +301,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 type.delete(transaction)
 ----
 
-[#_EntityType_equals__concept_Concept]
+[#_EntityType_equals_concept_Concept]
 ==== equals
 
 [source,nodejs]
@@ -324,7 +324,7 @@ a| `concept` a| The concept to compare to. a| `Concept`
 .Returns
 `boolean`
 
-[#_EntityType_getInstances__transaction_TypeDBTransaction]
+[#_EntityType_getInstances_transaction_TypeDBTransaction]
 ==== getInstances
 
 [source,nodejs]
@@ -354,7 +354,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.getInstances(transaction)
 ----
 
-[#_EntityType_getInstances__transaction_TypeDBTransaction__transitivity_Transitivity]
+[#_EntityType_getInstances_transaction_TypeDBTransaction_transitivity_Transitivity]
 ==== getInstances
 
 [source,nodejs]
@@ -385,7 +385,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and indirect instanc
 thingType.getInstances(transaction, Transitivity.EXPLICIT)
 ----
 
-[#_EntityType_getOwns__transaction_TypeDBTransaction]
+[#_EntityType_getOwns_transaction_TypeDBTransaction]
 ==== getOwns
 
 [source,nodejs]
@@ -415,7 +415,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.getOwns(transaction) thingType.getOwns(transaction, valueType, Transitivity.EXPLICIT,[Annotation.KEY])
 ----
 
-[#_EntityType_getOwns__transaction_TypeDBTransaction__valueType_ValueType]
+[#_EntityType_getOwns_transaction_TypeDBTransaction_valueType_ValueType]
 ==== getOwns
 
 [source,nodejs]
@@ -446,7 +446,7 @@ a| `valueType` a| If specified, only attribute types of this ``ValueType`` will
 thingType.getOwns(transaction) thingType.getOwns(transaction, valueType, Transitivity.EXPLICIT,[Annotation.KEY])
 ----
 
-[#_EntityType_getOwns__transaction_TypeDBTransaction__annotations_Annotation__]
+[#_EntityType_getOwns_transaction_TypeDBTransaction_annotations_Annotation_]
 ==== getOwns
 
 [source,nodejs]
@@ -477,7 +477,7 @@ a| `annotations` a| If specified, only attribute types of this ``ValueType`` wil
 thingType.getOwns(transaction) thingType.getOwns(transaction, valueType, Transitivity.EXPLICIT,[Annotation.KEY])
 ----
 
-[#_EntityType_getOwns__transaction_TypeDBTransaction__valueType_ValueType__annotations_Annotation__]
+[#_EntityType_getOwns_transaction_TypeDBTransaction_valueType_ValueType_annotations_Annotation_]
 ==== getOwns
 
 [source,nodejs]
@@ -509,7 +509,7 @@ a| `annotations` a| Only retrieve attribute types owned with annotations. a| `An
 thingType.getOwns(transaction) thingType.getOwns(transaction, valueType, Transitivity.EXPLICIT,[Annotation.KEY])
 ----
 
-[#_EntityType_getOwns__transaction_TypeDBTransaction__transitivity_Transitivity]
+[#_EntityType_getOwns_transaction_TypeDBTransaction_transitivity_Transitivity]
 ==== getOwns
 
 [source,nodejs]
@@ -540,7 +540,7 @@ a| `transitivity` a| If specified, only attribute types of this ``ValueType`` wi
 thingType.getOwns(transaction) thingType.getOwns(transaction, valueType, Transitivity.EXPLICIT,[Annotation.KEY])
 ----
 
-[#_EntityType_getOwns__transaction_TypeDBTransaction__valueType_ValueType__transitivity_Transitivity]
+[#_EntityType_getOwns_transaction_TypeDBTransaction_valueType_ValueType_transitivity_Transitivity]
 ==== getOwns
 
 [source,nodejs]
@@ -572,7 +572,7 @@ a| `transitivity` a| Only retrieve attribute types owned with annotations. a| `T
 thingType.getOwns(transaction) thingType.getOwns(transaction, valueType, Transitivity.EXPLICIT,[Annotation.KEY])
 ----
 
-[#_EntityType_getOwns__transaction_TypeDBTransaction__annotations_Annotation____transitivity_Transitivity]
+[#_EntityType_getOwns_transaction_TypeDBTransaction_annotations_Annotation_transitivity_Transitivity]
 ==== getOwns
 
 [source,nodejs]
@@ -604,7 +604,7 @@ a| `transitivity` a| Only retrieve attribute types owned with annotations. a| `T
 thingType.getOwns(transaction) thingType.getOwns(transaction, valueType, Transitivity.EXPLICIT,[Annotation.KEY])
 ----
 
-[#_EntityType_getOwns__transaction_TypeDBTransaction__valueType_ValueType__annotations_Annotation____transitivity_Transitivity]
+[#_EntityType_getOwns_transaction_TypeDBTransaction_valueType_ValueType_annotations_Annotation_transitivity_Transitivity]
 ==== getOwns
 
 [source,nodejs]
@@ -637,7 +637,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and inherited owners
 thingType.getOwns(transaction) thingType.getOwns(transaction, valueType, Transitivity.EXPLICIT,[Annotation.KEY])
 ----
 
-[#_EntityType_getOwnsOverridden__transaction_TypeDBTransaction__attributeType_AttributeType]
+[#_EntityType_getOwnsOverridden_transaction_TypeDBTransaction_attributeType_AttributeType]
 ==== getOwnsOverridden
 
 [source,nodejs]
@@ -668,7 +668,7 @@ a| `attributeType` a| The ``AttributeType`` that overrides requested ``Attribute
 thingType.getOwnsOverridden(transaction, attributeType)
 ----
 
-[#_EntityType_getPlays__transaction_TypeDBTransaction]
+[#_EntityType_getPlays_transaction_TypeDBTransaction]
 ==== getPlays
 
 [source,nodejs]
@@ -698,7 +698,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.getPlays(transaction) thingType.getPlays(transaction, Transitivity.EXPLICIT)
 ----
 
-[#_EntityType_getPlays__transaction_TypeDBTransaction__transitivity_Transitivity]
+[#_EntityType_getPlays_transaction_TypeDBTransaction_transitivity_Transitivity]
 ==== getPlays
 
 [source,nodejs]
@@ -729,7 +729,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and indirect playing
 thingType.getPlays(transaction) thingType.getPlays(transaction, Transitivity.EXPLICIT)
 ----
 
-[#_EntityType_getPlaysOverridden__transaction_TypeDBTransaction__role_RoleType]
+[#_EntityType_getPlaysOverridden_transaction_TypeDBTransaction_role_RoleType]
 ==== getPlaysOverridden
 
 [source,nodejs]
@@ -760,7 +760,7 @@ a| `role` a| The ``RoleType`` that overrides an inherited role a| `RoleType`
 thingType.getPlaysOverridden(transaction, role)
 ----
 
-[#_EntityType_getSubtypes__transaction_TypeDBTransaction]
+[#_EntityType_getSubtypes_transaction_TypeDBTransaction]
 ==== getSubtypes
 
 [source,nodejs]
@@ -790,7 +790,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.getSubtypes(transaction)
 ----
 
-[#_EntityType_getSubtypes__transaction_TypeDBTransaction__transitivity_Transitivity]
+[#_EntityType_getSubtypes_transaction_TypeDBTransaction_transitivity_Transitivity]
 ==== getSubtypes
 
 [source,nodejs]
@@ -821,7 +821,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and indirect subtype
 thingType.getSubtypes(transaction, Transitivity.EXPLICIT)
 ----
 
-[#_EntityType_getSupertype__transaction_TypeDBTransaction]
+[#_EntityType_getSupertype_transaction_TypeDBTransaction]
 ==== getSupertype
 
 [source,nodejs]
@@ -851,7 +851,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.getSupertype(transaction)
 ----
 
-[#_EntityType_getSupertypes__transaction_TypeDBTransaction]
+[#_EntityType_getSupertypes_transaction_TypeDBTransaction]
 ==== getSupertypes
 
 [source,nodejs]
@@ -881,7 +881,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.getSupertypes(transaction)
 ----
 
-[#_EntityType_getSyntax__transaction_TypeDBTransaction]
+[#_EntityType_getSyntax_transaction_TypeDBTransaction]
 ==== getSyntax
 
 [source,nodejs]
@@ -911,7 +911,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.getSyntax(transaction)
 ----
 
-[#_EntityType_isAttribute__]
+[#_EntityType_isAttribute_]
 ==== isAttribute
 
 [source,nodejs]
@@ -932,7 +932,7 @@ Checks if the concept is an ``Attribute``.
 concept.isAttribute()
 ----
 
-[#_EntityType_isAttributeType__]
+[#_EntityType_isAttributeType_]
 ==== isAttributeType
 
 [source,nodejs]
@@ -953,7 +953,7 @@ Checks if the concept is an ``AttributeType``.
 concept.isAttributeType()
 ----
 
-[#_EntityType_isDeleted__transaction_TypeDBTransaction]
+[#_EntityType_isDeleted_transaction_TypeDBTransaction]
 ==== isDeleted
 
 [source,nodejs]
@@ -976,7 +976,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 .Returns
 `Promise`
 
-[#_EntityType_isEntity__]
+[#_EntityType_isEntity_]
 ==== isEntity
 
 [source,nodejs]
@@ -997,7 +997,7 @@ Checks if the concept is an ``Entity``.
 concept.isEntity()
 ----
 
-[#_EntityType_isEntityType__]
+[#_EntityType_isEntityType_]
 ==== isEntityType
 
 [source,nodejs]
@@ -1018,7 +1018,7 @@ Checks if the concept is an ``EntityType``.
 concept.isEntityType()
 ----
 
-[#_EntityType_isRelation__]
+[#_EntityType_isRelation_]
 ==== isRelation
 
 [source,nodejs]
@@ -1039,7 +1039,7 @@ Checks if the concept is a ``Relation``.
 concept.isRelation()
 ----
 
-[#_EntityType_isRelationType__]
+[#_EntityType_isRelationType_]
 ==== isRelationType
 
 [source,nodejs]
@@ -1060,7 +1060,7 @@ Checks if the concept is a ``RelationType``.
 concept.isRelationType()
 ----
 
-[#_EntityType_isRoleType__]
+[#_EntityType_isRoleType_]
 ==== isRoleType
 
 [source,nodejs]
@@ -1081,7 +1081,7 @@ Checks if the concept is a ``RoleType``.
 concept.isRoleType()
 ----
 
-[#_EntityType_isThing__]
+[#_EntityType_isThing_]
 ==== isThing
 
 [source,nodejs]
@@ -1102,7 +1102,7 @@ Checks if the concept is a ``Thing``.
 concept.isThing()
 ----
 
-[#_EntityType_isThingType__]
+[#_EntityType_isThingType_]
 ==== isThingType
 
 [source,nodejs]
@@ -1123,7 +1123,7 @@ Checks if the concept is a ``ThingType``.
 concept.isThingType()
 ----
 
-[#_EntityType_isType__]
+[#_EntityType_isType_]
 ==== isType
 
 [source,nodejs]
@@ -1144,7 +1144,7 @@ Checks if the concept is a ``Type``.
 concept.isType()
 ----
 
-[#_EntityType_isValue__]
+[#_EntityType_isValue_]
 ==== isValue
 
 [source,nodejs]
@@ -1165,7 +1165,7 @@ Checks if the concept is a ``Value``.
 concept.isValue()
 ----
 
-[#_EntityType_setAbstract__transaction_TypeDBTransaction]
+[#_EntityType_setAbstract_transaction_TypeDBTransaction]
 ==== setAbstract
 
 [source,nodejs]
@@ -1195,7 +1195,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.setAbstract(transaction)
 ----
 
-[#_EntityType_setLabel__transaction_TypeDBTransaction__label_string]
+[#_EntityType_setLabel_transaction_TypeDBTransaction_label_string]
 ==== setLabel
 
 [source,nodejs]
@@ -1226,7 +1226,7 @@ a| `label` a| The new ``Label`` to be given to the type. a| `string`
 type.setLabel(transaction, label)
 ----
 
-[#_EntityType_setOwns__transaction_TypeDBTransaction__attributeType_AttributeType]
+[#_EntityType_setOwns_transaction_TypeDBTransaction_attributeType_AttributeType]
 ==== setOwns
 
 [source,nodejs]
@@ -1257,7 +1257,7 @@ a| `attributeType` a| The ``AttributeType`` to be owned by the instances of this
 thingType.setOwns(transaction, attributeType) thingType.setOwns(transaction, attributeType, overriddenType,[Annotation.KEY])
 ----
 
-[#_EntityType_setOwns__transaction_TypeDBTransaction__attributeType_AttributeType__annotations_Annotation__]
+[#_EntityType_setOwns_transaction_TypeDBTransaction_attributeType_AttributeType_annotations_Annotation_]
 ==== setOwns
 
 [source,nodejs]
@@ -1289,7 +1289,7 @@ a| `annotations` a| The ``AttributeType`` that this attribute ownership override
 thingType.setOwns(transaction, attributeType) thingType.setOwns(transaction, attributeType, overriddenType,[Annotation.KEY])
 ----
 
-[#_EntityType_setOwns__transaction_TypeDBTransaction__attributeType_AttributeType__overriddenType_AttributeType]
+[#_EntityType_setOwns_transaction_TypeDBTransaction_attributeType_AttributeType_overriddenType_AttributeType]
 ==== setOwns
 
 [source,nodejs]
@@ -1321,7 +1321,7 @@ a| `overriddenType` a| The ``AttributeType`` that this attribute ownership overr
 thingType.setOwns(transaction, attributeType) thingType.setOwns(transaction, attributeType, overriddenType,[Annotation.KEY])
 ----
 
-[#_EntityType_setOwns__transaction_TypeDBTransaction__attributeType_AttributeType__overriddenType_AttributeType__annotations_Annotation__]
+[#_EntityType_setOwns_transaction_TypeDBTransaction_attributeType_AttributeType_overriddenType_AttributeType_annotations_Annotation_]
 ==== setOwns
 
 [source,nodejs]
@@ -1354,7 +1354,7 @@ a| `annotations` a| Adds annotations to the ownership. a| `Annotation[]`
 thingType.setOwns(transaction, attributeType) thingType.setOwns(transaction, attributeType, overriddenType,[Annotation.KEY])
 ----
 
-[#_EntityType_setPlays__transaction_TypeDBTransaction__role_RoleType]
+[#_EntityType_setPlays_transaction_TypeDBTransaction_role_RoleType]
 ==== setPlays
 
 [source,nodejs]
@@ -1385,7 +1385,7 @@ a| `role` a| The role to be played by the instances of this type a| `RoleType`
 thingType.setPlays(transaction, role) thingType.setPlays(transaction, role, overriddenType)
 ----
 
-[#_EntityType_setPlays__transaction_TypeDBTransaction__role_RoleType__overriddenType_RoleType]
+[#_EntityType_setPlays_transaction_TypeDBTransaction_role_RoleType_overriddenType_RoleType]
 ==== setPlays
 
 [source,nodejs]
@@ -1417,7 +1417,7 @@ a| `overriddenType` a| The role type that this role overrides, if applicable a|
 thingType.setPlays(transaction, role) thingType.setPlays(transaction, role, overriddenType)
 ----
 
-[#_EntityType_setSupertype__transaction_TypeDBTransaction__superEntityType_EntityType]
+[#_EntityType_setSupertype_transaction_TypeDBTransaction_superEntityType_EntityType]
 ==== setSupertype
 
 [source,nodejs]
@@ -1448,7 +1448,7 @@ a| `superEntityType` a| The ``EntityType`` to set as the supertype of this ``Ent
 entityType.setSupertype(transaction, superEntityType).resolve();
 ----
 
-[#_EntityType_unsetAbstract__transaction_TypeDBTransaction]
+[#_EntityType_unsetAbstract_transaction_TypeDBTransaction]
 ==== unsetAbstract
 
 [source,nodejs]
@@ -1478,7 +1478,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.unsetAbstract(transaction)
 ----
 
-[#_EntityType_unsetOwns__transaction_TypeDBTransaction__attributeType_AttributeType]
+[#_EntityType_unsetOwns_transaction_TypeDBTransaction_attributeType_AttributeType]
 ==== unsetOwns
 
 [source,nodejs]
@@ -1509,7 +1509,7 @@ a| `attributeType` a| The ``AttributeType`` to not be owned by the type. a| `Att
 thingType.unsetOwns(transaction, attributeType)
 ----
 
-[#_EntityType_unsetPlays__transaction_TypeDBTransaction__role_RoleType]
+[#_EntityType_unsetPlays_transaction_TypeDBTransaction_role_RoleType]
 ==== unsetPlays
 
 [source,nodejs]
diff --git a/nodejs/docs/schema/Label.adoc b/docs/modules/ROOT/partials/nodejs/schema/Label.adoc
similarity index 91%
rename from nodejs/docs/schema/Label.adoc
rename to docs/modules/ROOT/partials/nodejs/schema/Label.adoc
index fbf9a5c782..0cd4f6fc9f 100644
--- a/nodejs/docs/schema/Label.adoc
+++ b/docs/modules/ROOT/partials/nodejs/schema/Label.adoc
@@ -6,7 +6,7 @@ A ``Label`` holds the uniquely identifying name of a type.
 It consists of an optional 'scope', and a 'name', represented "scope:name". The scope is used only used to distinguish between role-types of the same name declared in different relation types.
 
 // tag::methods[]
-[#_Label__name__]
+[#_Label_name_]
 ====  name
 
 [source,nodejs]
@@ -20,7 +20,7 @@ Returns the name part of the label.
 .Returns
 `string`
 
-[#_Label__scope__]
+[#_Label_scope_]
 ====  scope
 
 [source,nodejs]
@@ -34,7 +34,7 @@ Returns the (possibly null) scope part of the label.
 .Returns
 `string`
 
-[#_Label__scopedName__]
+[#_Label_scopedName_]
 ====  scopedName
 
 [source,nodejs]
@@ -48,7 +48,7 @@ Returns the string representation of the scoped name.
 .Returns
 `string`
 
-[#_Label_equals__that_Label]
+[#_Label_equals_that_Label]
 ==== equals
 
 [source,nodejs]
@@ -71,7 +71,7 @@ a| `that` a| The label to compare to. a| `Label`
 .Returns
 `boolean`
 
-[#_Label_toString__]
+[#_Label_toString_]
 ==== toString
 
 [source,nodejs]
diff --git a/nodejs/docs/schema/RelationType.adoc b/docs/modules/ROOT/partials/nodejs/schema/RelationType.adoc
similarity index 88%
rename from nodejs/docs/schema/RelationType.adoc
rename to docs/modules/ROOT/partials/nodejs/schema/RelationType.adoc
index 01a2120683..eaa1b8630e 100644
--- a/nodejs/docs/schema/RelationType.adoc
+++ b/docs/modules/ROOT/partials/nodejs/schema/RelationType.adoc
@@ -17,7 +17,7 @@ a| `NAME`
 // end::enum_constants[]
 
 // tag::methods[]
-[#_RelationType_asAttribute__]
+[#_RelationType_asAttribute_]
 ==== asAttribute
 
 [source,nodejs]
@@ -38,7 +38,7 @@ Casts the concept to ``Attribute``.
 concept.asAttribute()
 ----
 
-[#_RelationType_asAttributeType__]
+[#_RelationType_asAttributeType_]
 ==== asAttributeType
 
 [source,nodejs]
@@ -59,7 +59,7 @@ Casts the concept to ``AttributeType``.
 concept.asAttributeType()
 ----
 
-[#_RelationType_asEntity__]
+[#_RelationType_asEntity_]
 ==== asEntity
 
 [source,nodejs]
@@ -80,7 +80,7 @@ Casts the concept to ``Entity``.
 concept.asEntity()
 ----
 
-[#_RelationType_asEntityType__]
+[#_RelationType_asEntityType_]
 ==== asEntityType
 
 [source,nodejs]
@@ -101,7 +101,7 @@ Casts the concept to ``EntityType``.
 concept.asEntityType()
 ----
 
-[#_RelationType_asRelation__]
+[#_RelationType_asRelation_]
 ==== asRelation
 
 [source,nodejs]
@@ -122,7 +122,7 @@ Casts the concept to ``Relation``.
 concept.asRelation()
 ----
 
-[#_RelationType_asRelationType__]
+[#_RelationType_asRelationType_]
 ==== asRelationType
 
 [source,nodejs]
@@ -143,7 +143,7 @@ Casts the concept to ``RelationType``.
 concept.asRelationType()
 ----
 
-[#_RelationType_asRoleType__]
+[#_RelationType_asRoleType_]
 ==== asRoleType
 
 [source,nodejs]
@@ -164,7 +164,7 @@ Casts the concept to ``RoleType``.
 concept.asRoleType()
 ----
 
-[#_RelationType_asThing__]
+[#_RelationType_asThing_]
 ==== asThing
 
 [source,nodejs]
@@ -185,7 +185,7 @@ Casts the concept to ``Thing``.
 concept.asThing()
 ----
 
-[#_RelationType_asThingType__]
+[#_RelationType_asThingType_]
 ==== asThingType
 
 [source,nodejs]
@@ -206,7 +206,7 @@ Casts the concept to ``ThingType``.
 concept.asThingType()
 ----
 
-[#_RelationType_asType__]
+[#_RelationType_asType_]
 ==== asType
 
 [source,nodejs]
@@ -227,7 +227,7 @@ Casts the concept to ``Type``.
 concept.asType()
 ----
 
-[#_RelationType_asValue__]
+[#_RelationType_asValue_]
 ==== asValue
 
 [source,nodejs]
@@ -248,7 +248,7 @@ Casts the concept to ``Value``.
 concept.asValue()
 ----
 
-[#_RelationType_create__transaction_TypeDBTransaction]
+[#_RelationType_create_transaction_TypeDBTransaction]
 ==== create
 
 [source,nodejs]
@@ -278,7 +278,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 relationType.create(transaction)
 ----
 
-[#_RelationType_delete__transaction_TypeDBTransaction]
+[#_RelationType_delete_transaction_TypeDBTransaction]
 ==== delete
 
 [source,nodejs]
@@ -308,7 +308,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 type.delete(transaction)
 ----
 
-[#_RelationType_equals__concept_Concept]
+[#_RelationType_equals_concept_Concept]
 ==== equals
 
 [source,nodejs]
@@ -331,7 +331,7 @@ a| `concept` a| The concept to compare to. a| `Concept`
 .Returns
 `boolean`
 
-[#_RelationType_getInstances__transaction_TypeDBTransaction]
+[#_RelationType_getInstances_transaction_TypeDBTransaction]
 ==== getInstances
 
 [source,nodejs]
@@ -361,7 +361,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.getInstances(transaction)
 ----
 
-[#_RelationType_getInstances__transaction_TypeDBTransaction__transitivity_Transitivity]
+[#_RelationType_getInstances_transaction_TypeDBTransaction_transitivity_Transitivity]
 ==== getInstances
 
 [source,nodejs]
@@ -392,7 +392,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and indirect instanc
 thingType.getInstances(transaction, Transitivity.EXPLICIT)
 ----
 
-[#_RelationType_getOwns__transaction_TypeDBTransaction]
+[#_RelationType_getOwns_transaction_TypeDBTransaction]
 ==== getOwns
 
 [source,nodejs]
@@ -422,7 +422,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.getOwns(transaction) thingType.getOwns(transaction, valueType, Transitivity.EXPLICIT,[Annotation.KEY])
 ----
 
-[#_RelationType_getOwns__transaction_TypeDBTransaction__valueType_ValueType]
+[#_RelationType_getOwns_transaction_TypeDBTransaction_valueType_ValueType]
 ==== getOwns
 
 [source,nodejs]
@@ -453,7 +453,7 @@ a| `valueType` a| If specified, only attribute types of this ``ValueType`` will
 thingType.getOwns(transaction) thingType.getOwns(transaction, valueType, Transitivity.EXPLICIT,[Annotation.KEY])
 ----
 
-[#_RelationType_getOwns__transaction_TypeDBTransaction__annotations_Annotation__]
+[#_RelationType_getOwns_transaction_TypeDBTransaction_annotations_Annotation_]
 ==== getOwns
 
 [source,nodejs]
@@ -484,7 +484,7 @@ a| `annotations` a| If specified, only attribute types of this ``ValueType`` wil
 thingType.getOwns(transaction) thingType.getOwns(transaction, valueType, Transitivity.EXPLICIT,[Annotation.KEY])
 ----
 
-[#_RelationType_getOwns__transaction_TypeDBTransaction__valueType_ValueType__annotations_Annotation__]
+[#_RelationType_getOwns_transaction_TypeDBTransaction_valueType_ValueType_annotations_Annotation_]
 ==== getOwns
 
 [source,nodejs]
@@ -516,7 +516,7 @@ a| `annotations` a| Only retrieve attribute types owned with annotations. a| `An
 thingType.getOwns(transaction) thingType.getOwns(transaction, valueType, Transitivity.EXPLICIT,[Annotation.KEY])
 ----
 
-[#_RelationType_getOwns__transaction_TypeDBTransaction__transitivity_Transitivity]
+[#_RelationType_getOwns_transaction_TypeDBTransaction_transitivity_Transitivity]
 ==== getOwns
 
 [source,nodejs]
@@ -547,7 +547,7 @@ a| `transitivity` a| If specified, only attribute types of this ``ValueType`` wi
 thingType.getOwns(transaction) thingType.getOwns(transaction, valueType, Transitivity.EXPLICIT,[Annotation.KEY])
 ----
 
-[#_RelationType_getOwns__transaction_TypeDBTransaction__valueType_ValueType__transitivity_Transitivity]
+[#_RelationType_getOwns_transaction_TypeDBTransaction_valueType_ValueType_transitivity_Transitivity]
 ==== getOwns
 
 [source,nodejs]
@@ -579,7 +579,7 @@ a| `transitivity` a| Only retrieve attribute types owned with annotations. a| `T
 thingType.getOwns(transaction) thingType.getOwns(transaction, valueType, Transitivity.EXPLICIT,[Annotation.KEY])
 ----
 
-[#_RelationType_getOwns__transaction_TypeDBTransaction__annotations_Annotation____transitivity_Transitivity]
+[#_RelationType_getOwns_transaction_TypeDBTransaction_annotations_Annotation_transitivity_Transitivity]
 ==== getOwns
 
 [source,nodejs]
@@ -611,7 +611,7 @@ a| `transitivity` a| Only retrieve attribute types owned with annotations. a| `T
 thingType.getOwns(transaction) thingType.getOwns(transaction, valueType, Transitivity.EXPLICIT,[Annotation.KEY])
 ----
 
-[#_RelationType_getOwns__transaction_TypeDBTransaction__valueType_ValueType__annotations_Annotation____transitivity_Transitivity]
+[#_RelationType_getOwns_transaction_TypeDBTransaction_valueType_ValueType_annotations_Annotation_transitivity_Transitivity]
 ==== getOwns
 
 [source,nodejs]
@@ -644,7 +644,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and inherited owners
 thingType.getOwns(transaction) thingType.getOwns(transaction, valueType, Transitivity.EXPLICIT,[Annotation.KEY])
 ----
 
-[#_RelationType_getOwnsOverridden__transaction_TypeDBTransaction__attributeType_AttributeType]
+[#_RelationType_getOwnsOverridden_transaction_TypeDBTransaction_attributeType_AttributeType]
 ==== getOwnsOverridden
 
 [source,nodejs]
@@ -675,7 +675,7 @@ a| `attributeType` a| The ``AttributeType`` that overrides requested ``Attribute
 thingType.getOwnsOverridden(transaction, attributeType)
 ----
 
-[#_RelationType_getPlays__transaction_TypeDBTransaction]
+[#_RelationType_getPlays_transaction_TypeDBTransaction]
 ==== getPlays
 
 [source,nodejs]
@@ -705,7 +705,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.getPlays(transaction) thingType.getPlays(transaction, Transitivity.EXPLICIT)
 ----
 
-[#_RelationType_getPlays__transaction_TypeDBTransaction__transitivity_Transitivity]
+[#_RelationType_getPlays_transaction_TypeDBTransaction_transitivity_Transitivity]
 ==== getPlays
 
 [source,nodejs]
@@ -736,7 +736,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and indirect playing
 thingType.getPlays(transaction) thingType.getPlays(transaction, Transitivity.EXPLICIT)
 ----
 
-[#_RelationType_getPlaysOverridden__transaction_TypeDBTransaction__role_RoleType]
+[#_RelationType_getPlaysOverridden_transaction_TypeDBTransaction_role_RoleType]
 ==== getPlaysOverridden
 
 [source,nodejs]
@@ -767,7 +767,7 @@ a| `role` a| The ``RoleType`` that overrides an inherited role a| `RoleType`
 thingType.getPlaysOverridden(transaction, role)
 ----
 
-[#_RelationType_getRelates__transaction_TypeDBTransaction]
+[#_RelationType_getRelates_transaction_TypeDBTransaction]
 ==== getRelates
 
 [source,nodejs]
@@ -790,7 +790,7 @@ a| `transaction` a|  a| `TypeDBTransaction`
 .Returns
 `Stream`
 
-[#_RelationType_getRelates__transaction_TypeDBTransaction__transitivity_Transitivity]
+[#_RelationType_getRelates_transaction_TypeDBTransaction_transitivity_Transitivity]
 ==== getRelates
 
 [source,nodejs]
@@ -821,7 +821,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and inherited relate
 relationType.getRelates(transaction, roleLabel, transitivity)
 ----
 
-[#_RelationType_getRelatesForRoleLabel__transaction_TypeDBTransaction__roleLabel_string]
+[#_RelationType_getRelatesForRoleLabel_transaction_TypeDBTransaction_roleLabel_string]
 ==== getRelatesForRoleLabel
 
 [source,nodejs]
@@ -845,7 +845,7 @@ a| `roleLabel` a|  a| `string`
 .Returns
 `Promise`
 
-[#_RelationType_getRelatesOverridden__transaction_TypeDBTransaction__roleLabel_string]
+[#_RelationType_getRelatesOverridden_transaction_TypeDBTransaction_roleLabel_string]
 ==== getRelatesOverridden
 
 [source,nodejs]
@@ -876,7 +876,7 @@ a| `roleLabel` a| Label of the role that overrides an inherited role a| `string`
 relationType.getRelatesOverridden(transaction, roleLabel)
 ----
 
-[#_RelationType_getSubtypes__transaction_TypeDBTransaction]
+[#_RelationType_getSubtypes_transaction_TypeDBTransaction]
 ==== getSubtypes
 
 [source,nodejs]
@@ -906,7 +906,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.getSubtypes(transaction)
 ----
 
-[#_RelationType_getSubtypes__transaction_TypeDBTransaction__transitivity_Transitivity]
+[#_RelationType_getSubtypes_transaction_TypeDBTransaction_transitivity_Transitivity]
 ==== getSubtypes
 
 [source,nodejs]
@@ -937,7 +937,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and indirect subtype
 thingType.getSubtypes(transaction, Transitivity.EXPLICIT)
 ----
 
-[#_RelationType_getSupertype__transaction_TypeDBTransaction]
+[#_RelationType_getSupertype_transaction_TypeDBTransaction]
 ==== getSupertype
 
 [source,nodejs]
@@ -967,7 +967,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.getSupertype(transaction)
 ----
 
-[#_RelationType_getSupertypes__transaction_TypeDBTransaction]
+[#_RelationType_getSupertypes_transaction_TypeDBTransaction]
 ==== getSupertypes
 
 [source,nodejs]
@@ -997,7 +997,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.getSupertypes(transaction)
 ----
 
-[#_RelationType_getSyntax__transaction_TypeDBTransaction]
+[#_RelationType_getSyntax_transaction_TypeDBTransaction]
 ==== getSyntax
 
 [source,nodejs]
@@ -1027,7 +1027,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.getSyntax(transaction)
 ----
 
-[#_RelationType_isAttribute__]
+[#_RelationType_isAttribute_]
 ==== isAttribute
 
 [source,nodejs]
@@ -1048,7 +1048,7 @@ Checks if the concept is an ``Attribute``.
 concept.isAttribute()
 ----
 
-[#_RelationType_isAttributeType__]
+[#_RelationType_isAttributeType_]
 ==== isAttributeType
 
 [source,nodejs]
@@ -1069,7 +1069,7 @@ Checks if the concept is an ``AttributeType``.
 concept.isAttributeType()
 ----
 
-[#_RelationType_isDeleted__transaction_TypeDBTransaction]
+[#_RelationType_isDeleted_transaction_TypeDBTransaction]
 ==== isDeleted
 
 [source,nodejs]
@@ -1092,7 +1092,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 .Returns
 `Promise`
 
-[#_RelationType_isEntity__]
+[#_RelationType_isEntity_]
 ==== isEntity
 
 [source,nodejs]
@@ -1113,7 +1113,7 @@ Checks if the concept is an ``Entity``.
 concept.isEntity()
 ----
 
-[#_RelationType_isEntityType__]
+[#_RelationType_isEntityType_]
 ==== isEntityType
 
 [source,nodejs]
@@ -1134,7 +1134,7 @@ Checks if the concept is an ``EntityType``.
 concept.isEntityType()
 ----
 
-[#_RelationType_isRelation__]
+[#_RelationType_isRelation_]
 ==== isRelation
 
 [source,nodejs]
@@ -1155,7 +1155,7 @@ Checks if the concept is a ``Relation``.
 concept.isRelation()
 ----
 
-[#_RelationType_isRelationType__]
+[#_RelationType_isRelationType_]
 ==== isRelationType
 
 [source,nodejs]
@@ -1176,7 +1176,7 @@ Checks if the concept is a ``RelationType``.
 concept.isRelationType()
 ----
 
-[#_RelationType_isRoleType__]
+[#_RelationType_isRoleType_]
 ==== isRoleType
 
 [source,nodejs]
@@ -1197,7 +1197,7 @@ Checks if the concept is a ``RoleType``.
 concept.isRoleType()
 ----
 
-[#_RelationType_isThing__]
+[#_RelationType_isThing_]
 ==== isThing
 
 [source,nodejs]
@@ -1218,7 +1218,7 @@ Checks if the concept is a ``Thing``.
 concept.isThing()
 ----
 
-[#_RelationType_isThingType__]
+[#_RelationType_isThingType_]
 ==== isThingType
 
 [source,nodejs]
@@ -1239,7 +1239,7 @@ Checks if the concept is a ``ThingType``.
 concept.isThingType()
 ----
 
-[#_RelationType_isType__]
+[#_RelationType_isType_]
 ==== isType
 
 [source,nodejs]
@@ -1260,7 +1260,7 @@ Checks if the concept is a ``Type``.
 concept.isType()
 ----
 
-[#_RelationType_isValue__]
+[#_RelationType_isValue_]
 ==== isValue
 
 [source,nodejs]
@@ -1281,7 +1281,7 @@ Checks if the concept is a ``Value``.
 concept.isValue()
 ----
 
-[#_RelationType_setAbstract__transaction_TypeDBTransaction]
+[#_RelationType_setAbstract_transaction_TypeDBTransaction]
 ==== setAbstract
 
 [source,nodejs]
@@ -1311,7 +1311,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.setAbstract(transaction)
 ----
 
-[#_RelationType_setLabel__transaction_TypeDBTransaction__label_string]
+[#_RelationType_setLabel_transaction_TypeDBTransaction_label_string]
 ==== setLabel
 
 [source,nodejs]
@@ -1342,7 +1342,7 @@ a| `label` a| The new ``Label`` to be given to the type. a| `string`
 type.setLabel(transaction, label)
 ----
 
-[#_RelationType_setOwns__transaction_TypeDBTransaction__attributeType_AttributeType]
+[#_RelationType_setOwns_transaction_TypeDBTransaction_attributeType_AttributeType]
 ==== setOwns
 
 [source,nodejs]
@@ -1373,7 +1373,7 @@ a| `attributeType` a| The ``AttributeType`` to be owned by the instances of this
 thingType.setOwns(transaction, attributeType) thingType.setOwns(transaction, attributeType, overriddenType,[Annotation.KEY])
 ----
 
-[#_RelationType_setOwns__transaction_TypeDBTransaction__attributeType_AttributeType__annotations_Annotation__]
+[#_RelationType_setOwns_transaction_TypeDBTransaction_attributeType_AttributeType_annotations_Annotation_]
 ==== setOwns
 
 [source,nodejs]
@@ -1405,7 +1405,7 @@ a| `annotations` a| The ``AttributeType`` that this attribute ownership override
 thingType.setOwns(transaction, attributeType) thingType.setOwns(transaction, attributeType, overriddenType,[Annotation.KEY])
 ----
 
-[#_RelationType_setOwns__transaction_TypeDBTransaction__attributeType_AttributeType__overriddenType_AttributeType]
+[#_RelationType_setOwns_transaction_TypeDBTransaction_attributeType_AttributeType_overriddenType_AttributeType]
 ==== setOwns
 
 [source,nodejs]
@@ -1437,7 +1437,7 @@ a| `overriddenType` a| The ``AttributeType`` that this attribute ownership overr
 thingType.setOwns(transaction, attributeType) thingType.setOwns(transaction, attributeType, overriddenType,[Annotation.KEY])
 ----
 
-[#_RelationType_setOwns__transaction_TypeDBTransaction__attributeType_AttributeType__overriddenType_AttributeType__annotations_Annotation__]
+[#_RelationType_setOwns_transaction_TypeDBTransaction_attributeType_AttributeType_overriddenType_AttributeType_annotations_Annotation_]
 ==== setOwns
 
 [source,nodejs]
@@ -1470,7 +1470,7 @@ a| `annotations` a| Adds annotations to the ownership. a| `Annotation[]`
 thingType.setOwns(transaction, attributeType) thingType.setOwns(transaction, attributeType, overriddenType,[Annotation.KEY])
 ----
 
-[#_RelationType_setPlays__transaction_TypeDBTransaction__role_RoleType]
+[#_RelationType_setPlays_transaction_TypeDBTransaction_role_RoleType]
 ==== setPlays
 
 [source,nodejs]
@@ -1501,7 +1501,7 @@ a| `role` a| The role to be played by the instances of this type a| `RoleType`
 thingType.setPlays(transaction, role) thingType.setPlays(transaction, role, overriddenType)
 ----
 
-[#_RelationType_setPlays__transaction_TypeDBTransaction__role_RoleType__overriddenType_RoleType]
+[#_RelationType_setPlays_transaction_TypeDBTransaction_role_RoleType_overriddenType_RoleType]
 ==== setPlays
 
 [source,nodejs]
@@ -1533,7 +1533,7 @@ a| `overriddenType` a| The role type that this role overrides, if applicable a|
 thingType.setPlays(transaction, role) thingType.setPlays(transaction, role, overriddenType)
 ----
 
-[#_RelationType_setRelates__transaction_TypeDBTransaction__roleLabel_string__overriddenLabel_string]
+[#_RelationType_setRelates_transaction_TypeDBTransaction_roleLabel_string_overriddenLabel_string]
 ==== setRelates
 
 [source,nodejs]
@@ -1565,7 +1565,7 @@ a| `overriddenLabel` a| The label being overridden, if applicable a| `string`
 relationType.setRelates(transaction, roleLabel) relationType.setRelates(transaction, roleLabel, overriddenLabel)
 ----
 
-[#_RelationType_setSupertype__transaction_TypeDBTransaction__type_RelationType]
+[#_RelationType_setSupertype_transaction_TypeDBTransaction_type_RelationType]
 ==== setSupertype
 
 [source,nodejs]
@@ -1596,7 +1596,7 @@ a| `type` a|  a| `RelationType`
 relationType.setSupertype(transaction, superRelationType).resolve();
 ----
 
-[#_RelationType_unsetAbstract__transaction_TypeDBTransaction]
+[#_RelationType_unsetAbstract_transaction_TypeDBTransaction]
 ==== unsetAbstract
 
 [source,nodejs]
@@ -1626,7 +1626,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.unsetAbstract(transaction)
 ----
 
-[#_RelationType_unsetOwns__transaction_TypeDBTransaction__attributeType_AttributeType]
+[#_RelationType_unsetOwns_transaction_TypeDBTransaction_attributeType_AttributeType]
 ==== unsetOwns
 
 [source,nodejs]
@@ -1657,7 +1657,7 @@ a| `attributeType` a| The ``AttributeType`` to not be owned by the type. a| `Att
 thingType.unsetOwns(transaction, attributeType)
 ----
 
-[#_RelationType_unsetPlays__transaction_TypeDBTransaction__role_RoleType]
+[#_RelationType_unsetPlays_transaction_TypeDBTransaction_role_RoleType]
 ==== unsetPlays
 
 [source,nodejs]
@@ -1688,7 +1688,7 @@ a| `role` a| The role to not be played by the instances of this type. a| `RoleTy
 thingType.unsetPlays(transaction, role)
 ----
 
-[#_RelationType_unsetRelates__transaction_TypeDBTransaction__roleLabel_string]
+[#_RelationType_unsetRelates_transaction_TypeDBTransaction_roleLabel_string]
 ==== unsetRelates
 
 [source,nodejs]
diff --git a/nodejs/docs/schema/RoleType.adoc b/docs/modules/ROOT/partials/nodejs/schema/RoleType.adoc
similarity index 89%
rename from nodejs/docs/schema/RoleType.adoc
rename to docs/modules/ROOT/partials/nodejs/schema/RoleType.adoc
index b0eddd18bc..54481b56b7 100644
--- a/nodejs/docs/schema/RoleType.adoc
+++ b/docs/modules/ROOT/partials/nodejs/schema/RoleType.adoc
@@ -19,7 +19,7 @@ a| `NAME`
 // end::enum_constants[]
 
 // tag::methods[]
-[#_RoleType_asAttribute__]
+[#_RoleType_asAttribute_]
 ==== asAttribute
 
 [source,nodejs]
@@ -40,7 +40,7 @@ Casts the concept to ``Attribute``.
 concept.asAttribute()
 ----
 
-[#_RoleType_asAttributeType__]
+[#_RoleType_asAttributeType_]
 ==== asAttributeType
 
 [source,nodejs]
@@ -61,7 +61,7 @@ Casts the concept to ``AttributeType``.
 concept.asAttributeType()
 ----
 
-[#_RoleType_asEntity__]
+[#_RoleType_asEntity_]
 ==== asEntity
 
 [source,nodejs]
@@ -82,7 +82,7 @@ Casts the concept to ``Entity``.
 concept.asEntity()
 ----
 
-[#_RoleType_asEntityType__]
+[#_RoleType_asEntityType_]
 ==== asEntityType
 
 [source,nodejs]
@@ -103,7 +103,7 @@ Casts the concept to ``EntityType``.
 concept.asEntityType()
 ----
 
-[#_RoleType_asRelation__]
+[#_RoleType_asRelation_]
 ==== asRelation
 
 [source,nodejs]
@@ -124,7 +124,7 @@ Casts the concept to ``Relation``.
 concept.asRelation()
 ----
 
-[#_RoleType_asRelationType__]
+[#_RoleType_asRelationType_]
 ==== asRelationType
 
 [source,nodejs]
@@ -145,7 +145,7 @@ Casts the concept to ``RelationType``.
 concept.asRelationType()
 ----
 
-[#_RoleType_asRoleType__]
+[#_RoleType_asRoleType_]
 ==== asRoleType
 
 [source,nodejs]
@@ -166,7 +166,7 @@ Casts the concept to ``RoleType``.
 concept.asRoleType()
 ----
 
-[#_RoleType_asThing__]
+[#_RoleType_asThing_]
 ==== asThing
 
 [source,nodejs]
@@ -187,7 +187,7 @@ Casts the concept to ``Thing``.
 concept.asThing()
 ----
 
-[#_RoleType_asThingType__]
+[#_RoleType_asThingType_]
 ==== asThingType
 
 [source,nodejs]
@@ -208,7 +208,7 @@ Casts the concept to ``ThingType``.
 concept.asThingType()
 ----
 
-[#_RoleType_asType__]
+[#_RoleType_asType_]
 ==== asType
 
 [source,nodejs]
@@ -229,7 +229,7 @@ Casts the concept to ``Type``.
 concept.asType()
 ----
 
-[#_RoleType_asValue__]
+[#_RoleType_asValue_]
 ==== asValue
 
 [source,nodejs]
@@ -250,7 +250,7 @@ Casts the concept to ``Value``.
 concept.asValue()
 ----
 
-[#_RoleType_delete__transaction_TypeDBTransaction]
+[#_RoleType_delete_transaction_TypeDBTransaction]
 ==== delete
 
 [source,nodejs]
@@ -280,7 +280,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 type.delete(transaction)
 ----
 
-[#_RoleType_equals__concept_Concept]
+[#_RoleType_equals_concept_Concept]
 ==== equals
 
 [source,nodejs]
@@ -303,7 +303,7 @@ a| `concept` a| The concept to compare to. a| `Concept`
 .Returns
 `boolean`
 
-[#_RoleType_getPlayerInstances__transaction_TypeDBTransaction]
+[#_RoleType_getPlayerInstances_transaction_TypeDBTransaction]
 ==== getPlayerInstances
 
 [source,nodejs]
@@ -333,7 +333,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 roleType.getPlayerInstances(transaction, transitivity)
 ----
 
-[#_RoleType_getPlayerInstances__transaction_TypeDBTransaction__transitivity_Transitivity]
+[#_RoleType_getPlayerInstances_transaction_TypeDBTransaction_transitivity_Transitivity]
 ==== getPlayerInstances
 
 [source,nodejs]
@@ -364,7 +364,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and indirect playing
 roleType.getPlayerInstances(transaction, transitivity)
 ----
 
-[#_RoleType_getPlayerTypes__transaction_TypeDBTransaction]
+[#_RoleType_getPlayerTypes_transaction_TypeDBTransaction]
 ==== getPlayerTypes
 
 [source,nodejs]
@@ -394,7 +394,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 roleType.getPlayerTypes(transaction, transitivity)
 ----
 
-[#_RoleType_getPlayerTypes__transaction_TypeDBTransaction__transitivity_Transitivity]
+[#_RoleType_getPlayerTypes_transaction_TypeDBTransaction_transitivity_Transitivity]
 ==== getPlayerTypes
 
 [source,nodejs]
@@ -425,7 +425,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and indirect playing
 roleType.getPlayerTypes(transaction, transitivity)
 ----
 
-[#_RoleType_getRelationInstances__transaction_TypeDBTransaction]
+[#_RoleType_getRelationInstances_transaction_TypeDBTransaction]
 ==== getRelationInstances
 
 [source,nodejs]
@@ -455,7 +455,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 roleType.getRelationInstances(transaction, transitivity)
 ----
 
-[#_RoleType_getRelationInstances__transaction_TypeDBTransaction__transitivity_Transitivity]
+[#_RoleType_getRelationInstances_transaction_TypeDBTransaction_transitivity_Transitivity]
 ==== getRelationInstances
 
 [source,nodejs]
@@ -486,7 +486,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and indirect relatio
 roleType.getRelationInstances(transaction, transitivity)
 ----
 
-[#_RoleType_getRelationType__transaction_TypeDBTransaction]
+[#_RoleType_getRelationType_transaction_TypeDBTransaction]
 ==== getRelationType
 
 [source,nodejs]
@@ -516,7 +516,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 roleType.getRelationType(transaction)
 ----
 
-[#_RoleType_getRelationTypes__transaction_TypeDBTransaction]
+[#_RoleType_getRelationTypes_transaction_TypeDBTransaction]
 ==== getRelationTypes
 
 [source,nodejs]
@@ -546,7 +546,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 roleType.getRelationTypes(transaction)
 ----
 
-[#_RoleType_getSubtypes__transaction_TypeDBTransaction]
+[#_RoleType_getSubtypes_transaction_TypeDBTransaction]
 ==== getSubtypes
 
 [source,nodejs]
@@ -576,7 +576,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 type.getSubtypes(transaction) type.getSubtypes(transaction, Transitivity.EXPLICIT)
 ----
 
-[#_RoleType_getSupertype__transaction_TypeDBTransaction]
+[#_RoleType_getSupertype_transaction_TypeDBTransaction]
 ==== getSupertype
 
 [source,nodejs]
@@ -606,7 +606,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 type.getSupertype(transaction)
 ----
 
-[#_RoleType_getSupertypes__transaction_TypeDBTransaction]
+[#_RoleType_getSupertypes_transaction_TypeDBTransaction]
 ==== getSupertypes
 
 [source,nodejs]
@@ -636,7 +636,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 type.getSupertypes(transaction)
 ----
 
-[#_RoleType_isAttribute__]
+[#_RoleType_isAttribute_]
 ==== isAttribute
 
 [source,nodejs]
@@ -657,7 +657,7 @@ Checks if the concept is an ``Attribute``.
 concept.isAttribute()
 ----
 
-[#_RoleType_isAttributeType__]
+[#_RoleType_isAttributeType_]
 ==== isAttributeType
 
 [source,nodejs]
@@ -678,7 +678,7 @@ Checks if the concept is an ``AttributeType``.
 concept.isAttributeType()
 ----
 
-[#_RoleType_isDeleted__transaction_TypeDBTransaction]
+[#_RoleType_isDeleted_transaction_TypeDBTransaction]
 ==== isDeleted
 
 [source,nodejs]
@@ -701,7 +701,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 .Returns
 `Promise`
 
-[#_RoleType_isEntity__]
+[#_RoleType_isEntity_]
 ==== isEntity
 
 [source,nodejs]
@@ -722,7 +722,7 @@ Checks if the concept is an ``Entity``.
 concept.isEntity()
 ----
 
-[#_RoleType_isEntityType__]
+[#_RoleType_isEntityType_]
 ==== isEntityType
 
 [source,nodejs]
@@ -743,7 +743,7 @@ Checks if the concept is an ``EntityType``.
 concept.isEntityType()
 ----
 
-[#_RoleType_isRelation__]
+[#_RoleType_isRelation_]
 ==== isRelation
 
 [source,nodejs]
@@ -764,7 +764,7 @@ Checks if the concept is a ``Relation``.
 concept.isRelation()
 ----
 
-[#_RoleType_isRelationType__]
+[#_RoleType_isRelationType_]
 ==== isRelationType
 
 [source,nodejs]
@@ -785,7 +785,7 @@ Checks if the concept is a ``RelationType``.
 concept.isRelationType()
 ----
 
-[#_RoleType_isRoleType__]
+[#_RoleType_isRoleType_]
 ==== isRoleType
 
 [source,nodejs]
@@ -806,7 +806,7 @@ Checks if the concept is a ``RoleType``.
 concept.isRoleType()
 ----
 
-[#_RoleType_isThing__]
+[#_RoleType_isThing_]
 ==== isThing
 
 [source,nodejs]
@@ -827,7 +827,7 @@ Checks if the concept is a ``Thing``.
 concept.isThing()
 ----
 
-[#_RoleType_isThingType__]
+[#_RoleType_isThingType_]
 ==== isThingType
 
 [source,nodejs]
@@ -848,7 +848,7 @@ Checks if the concept is a ``ThingType``.
 concept.isThingType()
 ----
 
-[#_RoleType_isType__]
+[#_RoleType_isType_]
 ==== isType
 
 [source,nodejs]
@@ -869,7 +869,7 @@ Checks if the concept is a ``Type``.
 concept.isType()
 ----
 
-[#_RoleType_isValue__]
+[#_RoleType_isValue_]
 ==== isValue
 
 [source,nodejs]
@@ -890,7 +890,7 @@ Checks if the concept is a ``Value``.
 concept.isValue()
 ----
 
-[#_RoleType_setLabel__transaction_TypeDBTransaction__label_string]
+[#_RoleType_setLabel_transaction_TypeDBTransaction_label_string]
 ==== setLabel
 
 [source,nodejs]
diff --git a/nodejs/docs/schema/ThingType.adoc b/docs/modules/ROOT/partials/nodejs/schema/ThingType.adoc
similarity index 88%
rename from nodejs/docs/schema/ThingType.adoc
rename to docs/modules/ROOT/partials/nodejs/schema/ThingType.adoc
index 9fdbcbf85f..5f8d591284 100644
--- a/nodejs/docs/schema/ThingType.adoc
+++ b/docs/modules/ROOT/partials/nodejs/schema/ThingType.adoc
@@ -17,7 +17,7 @@ a| `NAME`
 // end::enum_constants[]
 
 // tag::methods[]
-[#_ThingType_asAttribute__]
+[#_ThingType_asAttribute_]
 ==== asAttribute
 
 [source,nodejs]
@@ -38,7 +38,7 @@ Casts the concept to ``Attribute``.
 concept.asAttribute()
 ----
 
-[#_ThingType_asAttributeType__]
+[#_ThingType_asAttributeType_]
 ==== asAttributeType
 
 [source,nodejs]
@@ -59,7 +59,7 @@ Casts the concept to ``AttributeType``.
 concept.asAttributeType()
 ----
 
-[#_ThingType_asEntity__]
+[#_ThingType_asEntity_]
 ==== asEntity
 
 [source,nodejs]
@@ -80,7 +80,7 @@ Casts the concept to ``Entity``.
 concept.asEntity()
 ----
 
-[#_ThingType_asEntityType__]
+[#_ThingType_asEntityType_]
 ==== asEntityType
 
 [source,nodejs]
@@ -101,7 +101,7 @@ Casts the concept to ``EntityType``.
 concept.asEntityType()
 ----
 
-[#_ThingType_asRelation__]
+[#_ThingType_asRelation_]
 ==== asRelation
 
 [source,nodejs]
@@ -122,7 +122,7 @@ Casts the concept to ``Relation``.
 concept.asRelation()
 ----
 
-[#_ThingType_asRelationType__]
+[#_ThingType_asRelationType_]
 ==== asRelationType
 
 [source,nodejs]
@@ -143,7 +143,7 @@ Casts the concept to ``RelationType``.
 concept.asRelationType()
 ----
 
-[#_ThingType_asRoleType__]
+[#_ThingType_asRoleType_]
 ==== asRoleType
 
 [source,nodejs]
@@ -164,7 +164,7 @@ Casts the concept to ``RoleType``.
 concept.asRoleType()
 ----
 
-[#_ThingType_asThing__]
+[#_ThingType_asThing_]
 ==== asThing
 
 [source,nodejs]
@@ -185,7 +185,7 @@ Casts the concept to ``Thing``.
 concept.asThing()
 ----
 
-[#_ThingType_asThingType__]
+[#_ThingType_asThingType_]
 ==== asThingType
 
 [source,nodejs]
@@ -206,7 +206,7 @@ Casts the concept to ``ThingType``.
 concept.asThingType()
 ----
 
-[#_ThingType_asType__]
+[#_ThingType_asType_]
 ==== asType
 
 [source,nodejs]
@@ -227,7 +227,7 @@ Casts the concept to ``Type``.
 concept.asType()
 ----
 
-[#_ThingType_asValue__]
+[#_ThingType_asValue_]
 ==== asValue
 
 [source,nodejs]
@@ -248,7 +248,7 @@ Casts the concept to ``Value``.
 concept.asValue()
 ----
 
-[#_ThingType_delete__transaction_TypeDBTransaction]
+[#_ThingType_delete_transaction_TypeDBTransaction]
 ==== delete
 
 [source,nodejs]
@@ -278,7 +278,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 type.delete(transaction)
 ----
 
-[#_ThingType_equals__concept_Concept]
+[#_ThingType_equals_concept_Concept]
 ==== equals
 
 [source,nodejs]
@@ -301,7 +301,7 @@ a| `concept` a| The concept to compare to. a| `Concept`
 .Returns
 `boolean`
 
-[#_ThingType_getInstances__transaction_TypeDBTransaction]
+[#_ThingType_getInstances_transaction_TypeDBTransaction]
 ==== getInstances
 
 [source,nodejs]
@@ -331,7 +331,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.getInstances(transaction)
 ----
 
-[#_ThingType_getInstances__transaction_TypeDBTransaction__transitivity_Transitivity]
+[#_ThingType_getInstances_transaction_TypeDBTransaction_transitivity_Transitivity]
 ==== getInstances
 
 [source,nodejs]
@@ -362,7 +362,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and indirect instanc
 thingType.getInstances(transaction, Transitivity.EXPLICIT)
 ----
 
-[#_ThingType_getOwns__transaction_TypeDBTransaction]
+[#_ThingType_getOwns_transaction_TypeDBTransaction]
 ==== getOwns
 
 [source,nodejs]
@@ -392,7 +392,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.getOwns(transaction) thingType.getOwns(transaction, valueType, Transitivity.EXPLICIT,[Annotation.KEY])
 ----
 
-[#_ThingType_getOwns__transaction_TypeDBTransaction__valueType_ValueType]
+[#_ThingType_getOwns_transaction_TypeDBTransaction_valueType_ValueType]
 ==== getOwns
 
 [source,nodejs]
@@ -423,7 +423,7 @@ a| `valueType` a| If specified, only attribute types of this ``ValueType`` will
 thingType.getOwns(transaction) thingType.getOwns(transaction, valueType, Transitivity.EXPLICIT,[Annotation.KEY])
 ----
 
-[#_ThingType_getOwns__transaction_TypeDBTransaction__annotations_Annotation__]
+[#_ThingType_getOwns_transaction_TypeDBTransaction_annotations_Annotation_]
 ==== getOwns
 
 [source,nodejs]
@@ -454,7 +454,7 @@ a| `annotations` a| If specified, only attribute types of this ``ValueType`` wil
 thingType.getOwns(transaction) thingType.getOwns(transaction, valueType, Transitivity.EXPLICIT,[Annotation.KEY])
 ----
 
-[#_ThingType_getOwns__transaction_TypeDBTransaction__valueType_ValueType__annotations_Annotation__]
+[#_ThingType_getOwns_transaction_TypeDBTransaction_valueType_ValueType_annotations_Annotation_]
 ==== getOwns
 
 [source,nodejs]
@@ -486,7 +486,7 @@ a| `annotations` a| Only retrieve attribute types owned with annotations. a| `An
 thingType.getOwns(transaction) thingType.getOwns(transaction, valueType, Transitivity.EXPLICIT,[Annotation.KEY])
 ----
 
-[#_ThingType_getOwns__transaction_TypeDBTransaction__transitivity_Transitivity]
+[#_ThingType_getOwns_transaction_TypeDBTransaction_transitivity_Transitivity]
 ==== getOwns
 
 [source,nodejs]
@@ -517,7 +517,7 @@ a| `transitivity` a| If specified, only attribute types of this ``ValueType`` wi
 thingType.getOwns(transaction) thingType.getOwns(transaction, valueType, Transitivity.EXPLICIT,[Annotation.KEY])
 ----
 
-[#_ThingType_getOwns__transaction_TypeDBTransaction__valueType_ValueType__transitivity_Transitivity]
+[#_ThingType_getOwns_transaction_TypeDBTransaction_valueType_ValueType_transitivity_Transitivity]
 ==== getOwns
 
 [source,nodejs]
@@ -549,7 +549,7 @@ a| `transitivity` a| Only retrieve attribute types owned with annotations. a| `T
 thingType.getOwns(transaction) thingType.getOwns(transaction, valueType, Transitivity.EXPLICIT,[Annotation.KEY])
 ----
 
-[#_ThingType_getOwns__transaction_TypeDBTransaction__annotations_Annotation____transitivity_Transitivity]
+[#_ThingType_getOwns_transaction_TypeDBTransaction_annotations_Annotation_transitivity_Transitivity]
 ==== getOwns
 
 [source,nodejs]
@@ -581,7 +581,7 @@ a| `transitivity` a| Only retrieve attribute types owned with annotations. a| `T
 thingType.getOwns(transaction) thingType.getOwns(transaction, valueType, Transitivity.EXPLICIT,[Annotation.KEY])
 ----
 
-[#_ThingType_getOwns__transaction_TypeDBTransaction__valueType_ValueType__annotations_Annotation____transitivity_Transitivity]
+[#_ThingType_getOwns_transaction_TypeDBTransaction_valueType_ValueType_annotations_Annotation_transitivity_Transitivity]
 ==== getOwns
 
 [source,nodejs]
@@ -614,7 +614,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and inherited owners
 thingType.getOwns(transaction) thingType.getOwns(transaction, valueType, Transitivity.EXPLICIT,[Annotation.KEY])
 ----
 
-[#_ThingType_getOwnsOverridden__transaction_TypeDBTransaction__attributeType_AttributeType]
+[#_ThingType_getOwnsOverridden_transaction_TypeDBTransaction_attributeType_AttributeType]
 ==== getOwnsOverridden
 
 [source,nodejs]
@@ -645,7 +645,7 @@ a| `attributeType` a| The ``AttributeType`` that overrides requested ``Attribute
 thingType.getOwnsOverridden(transaction, attributeType)
 ----
 
-[#_ThingType_getPlays__transaction_TypeDBTransaction]
+[#_ThingType_getPlays_transaction_TypeDBTransaction]
 ==== getPlays
 
 [source,nodejs]
@@ -675,7 +675,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.getPlays(transaction) thingType.getPlays(transaction, Transitivity.EXPLICIT)
 ----
 
-[#_ThingType_getPlays__transaction_TypeDBTransaction__transitivity_Transitivity]
+[#_ThingType_getPlays_transaction_TypeDBTransaction_transitivity_Transitivity]
 ==== getPlays
 
 [source,nodejs]
@@ -706,7 +706,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and indirect playing
 thingType.getPlays(transaction) thingType.getPlays(transaction, Transitivity.EXPLICIT)
 ----
 
-[#_ThingType_getPlaysOverridden__transaction_TypeDBTransaction__role_RoleType]
+[#_ThingType_getPlaysOverridden_transaction_TypeDBTransaction_role_RoleType]
 ==== getPlaysOverridden
 
 [source,nodejs]
@@ -737,7 +737,7 @@ a| `role` a| The ``RoleType`` that overrides an inherited role a| `RoleType`
 thingType.getPlaysOverridden(transaction, role)
 ----
 
-[#_ThingType_getSubtypes__transaction_TypeDBTransaction]
+[#_ThingType_getSubtypes_transaction_TypeDBTransaction]
 ==== getSubtypes
 
 [source,nodejs]
@@ -767,7 +767,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.getSubtypes(transaction)
 ----
 
-[#_ThingType_getSubtypes__transaction_TypeDBTransaction__transitivity_Transitivity]
+[#_ThingType_getSubtypes_transaction_TypeDBTransaction_transitivity_Transitivity]
 ==== getSubtypes
 
 [source,nodejs]
@@ -798,7 +798,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and indirect subtype
 thingType.getSubtypes(transaction, Transitivity.EXPLICIT)
 ----
 
-[#_ThingType_getSupertype__transaction_TypeDBTransaction]
+[#_ThingType_getSupertype_transaction_TypeDBTransaction]
 ==== getSupertype
 
 [source,nodejs]
@@ -828,7 +828,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.getSupertype(transaction)
 ----
 
-[#_ThingType_getSupertypes__transaction_TypeDBTransaction]
+[#_ThingType_getSupertypes_transaction_TypeDBTransaction]
 ==== getSupertypes
 
 [source,nodejs]
@@ -858,7 +858,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.getSupertypes(transaction)
 ----
 
-[#_ThingType_getSyntax__transaction_TypeDBTransaction]
+[#_ThingType_getSyntax_transaction_TypeDBTransaction]
 ==== getSyntax
 
 [source,nodejs]
@@ -888,7 +888,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.getSyntax(transaction)
 ----
 
-[#_ThingType_isAttribute__]
+[#_ThingType_isAttribute_]
 ==== isAttribute
 
 [source,nodejs]
@@ -909,7 +909,7 @@ Checks if the concept is an ``Attribute``.
 concept.isAttribute()
 ----
 
-[#_ThingType_isAttributeType__]
+[#_ThingType_isAttributeType_]
 ==== isAttributeType
 
 [source,nodejs]
@@ -930,7 +930,7 @@ Checks if the concept is an ``AttributeType``.
 concept.isAttributeType()
 ----
 
-[#_ThingType_isDeleted__transaction_TypeDBTransaction]
+[#_ThingType_isDeleted_transaction_TypeDBTransaction]
 ==== isDeleted
 
 [source,nodejs]
@@ -953,7 +953,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 .Returns
 `Promise`
 
-[#_ThingType_isEntity__]
+[#_ThingType_isEntity_]
 ==== isEntity
 
 [source,nodejs]
@@ -974,7 +974,7 @@ Checks if the concept is an ``Entity``.
 concept.isEntity()
 ----
 
-[#_ThingType_isEntityType__]
+[#_ThingType_isEntityType_]
 ==== isEntityType
 
 [source,nodejs]
@@ -995,7 +995,7 @@ Checks if the concept is an ``EntityType``.
 concept.isEntityType()
 ----
 
-[#_ThingType_isRelation__]
+[#_ThingType_isRelation_]
 ==== isRelation
 
 [source,nodejs]
@@ -1016,7 +1016,7 @@ Checks if the concept is a ``Relation``.
 concept.isRelation()
 ----
 
-[#_ThingType_isRelationType__]
+[#_ThingType_isRelationType_]
 ==== isRelationType
 
 [source,nodejs]
@@ -1037,7 +1037,7 @@ Checks if the concept is a ``RelationType``.
 concept.isRelationType()
 ----
 
-[#_ThingType_isRoleType__]
+[#_ThingType_isRoleType_]
 ==== isRoleType
 
 [source,nodejs]
@@ -1058,7 +1058,7 @@ Checks if the concept is a ``RoleType``.
 concept.isRoleType()
 ----
 
-[#_ThingType_isThing__]
+[#_ThingType_isThing_]
 ==== isThing
 
 [source,nodejs]
@@ -1079,7 +1079,7 @@ Checks if the concept is a ``Thing``.
 concept.isThing()
 ----
 
-[#_ThingType_isThingType__]
+[#_ThingType_isThingType_]
 ==== isThingType
 
 [source,nodejs]
@@ -1100,7 +1100,7 @@ Checks if the concept is a ``ThingType``.
 concept.isThingType()
 ----
 
-[#_ThingType_isType__]
+[#_ThingType_isType_]
 ==== isType
 
 [source,nodejs]
@@ -1121,7 +1121,7 @@ Checks if the concept is a ``Type``.
 concept.isType()
 ----
 
-[#_ThingType_isValue__]
+[#_ThingType_isValue_]
 ==== isValue
 
 [source,nodejs]
@@ -1142,7 +1142,7 @@ Checks if the concept is a ``Value``.
 concept.isValue()
 ----
 
-[#_ThingType_setAbstract__transaction_TypeDBTransaction]
+[#_ThingType_setAbstract_transaction_TypeDBTransaction]
 ==== setAbstract
 
 [source,nodejs]
@@ -1172,7 +1172,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.setAbstract(transaction)
 ----
 
-[#_ThingType_setLabel__transaction_TypeDBTransaction__label_string]
+[#_ThingType_setLabel_transaction_TypeDBTransaction_label_string]
 ==== setLabel
 
 [source,nodejs]
@@ -1203,7 +1203,7 @@ a| `label` a| The new ``Label`` to be given to the type. a| `string`
 type.setLabel(transaction, label)
 ----
 
-[#_ThingType_setOwns__transaction_TypeDBTransaction__attributeType_AttributeType]
+[#_ThingType_setOwns_transaction_TypeDBTransaction_attributeType_AttributeType]
 ==== setOwns
 
 [source,nodejs]
@@ -1234,7 +1234,7 @@ a| `attributeType` a| The ``AttributeType`` to be owned by the instances of this
 thingType.setOwns(transaction, attributeType) thingType.setOwns(transaction, attributeType, overriddenType,[Annotation.KEY])
 ----
 
-[#_ThingType_setOwns__transaction_TypeDBTransaction__attributeType_AttributeType__annotations_Annotation__]
+[#_ThingType_setOwns_transaction_TypeDBTransaction_attributeType_AttributeType_annotations_Annotation_]
 ==== setOwns
 
 [source,nodejs]
@@ -1266,7 +1266,7 @@ a| `annotations` a| The ``AttributeType`` that this attribute ownership override
 thingType.setOwns(transaction, attributeType) thingType.setOwns(transaction, attributeType, overriddenType,[Annotation.KEY])
 ----
 
-[#_ThingType_setOwns__transaction_TypeDBTransaction__attributeType_AttributeType__overriddenType_AttributeType]
+[#_ThingType_setOwns_transaction_TypeDBTransaction_attributeType_AttributeType_overriddenType_AttributeType]
 ==== setOwns
 
 [source,nodejs]
@@ -1298,7 +1298,7 @@ a| `overriddenType` a| The ``AttributeType`` that this attribute ownership overr
 thingType.setOwns(transaction, attributeType) thingType.setOwns(transaction, attributeType, overriddenType,[Annotation.KEY])
 ----
 
-[#_ThingType_setOwns__transaction_TypeDBTransaction__attributeType_AttributeType__overriddenType_AttributeType__annotations_Annotation__]
+[#_ThingType_setOwns_transaction_TypeDBTransaction_attributeType_AttributeType_overriddenType_AttributeType_annotations_Annotation_]
 ==== setOwns
 
 [source,nodejs]
@@ -1331,7 +1331,7 @@ a| `annotations` a| Adds annotations to the ownership. a| `Annotation[]`
 thingType.setOwns(transaction, attributeType) thingType.setOwns(transaction, attributeType, overriddenType,[Annotation.KEY])
 ----
 
-[#_ThingType_setPlays__transaction_TypeDBTransaction__role_RoleType]
+[#_ThingType_setPlays_transaction_TypeDBTransaction_role_RoleType]
 ==== setPlays
 
 [source,nodejs]
@@ -1362,7 +1362,7 @@ a| `role` a| The role to be played by the instances of this type a| `RoleType`
 thingType.setPlays(transaction, role) thingType.setPlays(transaction, role, overriddenType)
 ----
 
-[#_ThingType_setPlays__transaction_TypeDBTransaction__role_RoleType__overriddenType_RoleType]
+[#_ThingType_setPlays_transaction_TypeDBTransaction_role_RoleType_overriddenType_RoleType]
 ==== setPlays
 
 [source,nodejs]
@@ -1394,7 +1394,7 @@ a| `overriddenType` a| The role type that this role overrides, if applicable a|
 thingType.setPlays(transaction, role) thingType.setPlays(transaction, role, overriddenType)
 ----
 
-[#_ThingType_unsetAbstract__transaction_TypeDBTransaction]
+[#_ThingType_unsetAbstract_transaction_TypeDBTransaction]
 ==== unsetAbstract
 
 [source,nodejs]
@@ -1424,7 +1424,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 thingType.unsetAbstract(transaction)
 ----
 
-[#_ThingType_unsetOwns__transaction_TypeDBTransaction__attributeType_AttributeType]
+[#_ThingType_unsetOwns_transaction_TypeDBTransaction_attributeType_AttributeType]
 ==== unsetOwns
 
 [source,nodejs]
@@ -1455,7 +1455,7 @@ a| `attributeType` a| The ``AttributeType`` to not be owned by the type. a| `Att
 thingType.unsetOwns(transaction, attributeType)
 ----
 
-[#_ThingType_unsetPlays__transaction_TypeDBTransaction__role_RoleType]
+[#_ThingType_unsetPlays_transaction_TypeDBTransaction_role_RoleType]
 ==== unsetPlays
 
 [source,nodejs]
diff --git a/nodejs/docs/schema/Transitivity.adoc b/docs/modules/ROOT/partials/nodejs/schema/Transitivity.adoc
similarity index 88%
rename from nodejs/docs/schema/Transitivity.adoc
rename to docs/modules/ROOT/partials/nodejs/schema/Transitivity.adoc
index 621df2f740..e900d8aea8 100644
--- a/nodejs/docs/schema/Transitivity.adoc
+++ b/docs/modules/ROOT/partials/nodejs/schema/Transitivity.adoc
@@ -14,7 +14,7 @@ a| `TRANSITIVE`
 // end::enum_constants[]
 
 // tag::methods[]
-[#_Transitivity_new_Transitivity__transitivity_TypeTransitivity]
+[#_Transitivity_new_Transitivity_transitivity_TypeTransitivity]
 ==== new Transitivity
 
 [source,nodejs]
diff --git a/nodejs/docs/schema/Type.adoc b/docs/modules/ROOT/partials/nodejs/schema/Type.adoc
similarity index 90%
rename from nodejs/docs/schema/Type.adoc
rename to docs/modules/ROOT/partials/nodejs/schema/Type.adoc
index d61be92d1d..9fd353b5b0 100644
--- a/nodejs/docs/schema/Type.adoc
+++ b/docs/modules/ROOT/partials/nodejs/schema/Type.adoc
@@ -19,7 +19,7 @@ a| `root` a| `boolean` a| Whether the type is a root type.
 // end::properties[]
 
 // tag::methods[]
-[#_Type_asAttribute__]
+[#_Type_asAttribute_]
 ==== asAttribute
 
 [source,nodejs]
@@ -40,7 +40,7 @@ Casts the concept to ``Attribute``.
 concept.asAttribute()
 ----
 
-[#_Type_asAttributeType__]
+[#_Type_asAttributeType_]
 ==== asAttributeType
 
 [source,nodejs]
@@ -61,7 +61,7 @@ Casts the concept to ``AttributeType``.
 concept.asAttributeType()
 ----
 
-[#_Type_asEntity__]
+[#_Type_asEntity_]
 ==== asEntity
 
 [source,nodejs]
@@ -82,7 +82,7 @@ Casts the concept to ``Entity``.
 concept.asEntity()
 ----
 
-[#_Type_asEntityType__]
+[#_Type_asEntityType_]
 ==== asEntityType
 
 [source,nodejs]
@@ -103,7 +103,7 @@ Casts the concept to ``EntityType``.
 concept.asEntityType()
 ----
 
-[#_Type_asRelation__]
+[#_Type_asRelation_]
 ==== asRelation
 
 [source,nodejs]
@@ -124,7 +124,7 @@ Casts the concept to ``Relation``.
 concept.asRelation()
 ----
 
-[#_Type_asRelationType__]
+[#_Type_asRelationType_]
 ==== asRelationType
 
 [source,nodejs]
@@ -145,7 +145,7 @@ Casts the concept to ``RelationType``.
 concept.asRelationType()
 ----
 
-[#_Type_asRoleType__]
+[#_Type_asRoleType_]
 ==== asRoleType
 
 [source,nodejs]
@@ -166,7 +166,7 @@ Casts the concept to ``RoleType``.
 concept.asRoleType()
 ----
 
-[#_Type_asThing__]
+[#_Type_asThing_]
 ==== asThing
 
 [source,nodejs]
@@ -187,7 +187,7 @@ Casts the concept to ``Thing``.
 concept.asThing()
 ----
 
-[#_Type_asThingType__]
+[#_Type_asThingType_]
 ==== asThingType
 
 [source,nodejs]
@@ -208,7 +208,7 @@ Casts the concept to ``ThingType``.
 concept.asThingType()
 ----
 
-[#_Type_asType__]
+[#_Type_asType_]
 ==== asType
 
 [source,nodejs]
@@ -229,7 +229,7 @@ Casts the concept to ``Type``.
 concept.asType()
 ----
 
-[#_Type_asValue__]
+[#_Type_asValue_]
 ==== asValue
 
 [source,nodejs]
@@ -250,7 +250,7 @@ Casts the concept to ``Value``.
 concept.asValue()
 ----
 
-[#_Type_delete__transaction_TypeDBTransaction]
+[#_Type_delete_transaction_TypeDBTransaction]
 ==== delete
 
 [source,nodejs]
@@ -280,7 +280,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 type.delete(transaction)
 ----
 
-[#_Type_equals__concept_Concept]
+[#_Type_equals_concept_Concept]
 ==== equals
 
 [source,nodejs]
@@ -303,7 +303,7 @@ a| `concept` a| The concept to compare to. a| `Concept`
 .Returns
 `boolean`
 
-[#_Type_getSubtypes__transaction_TypeDBTransaction]
+[#_Type_getSubtypes_transaction_TypeDBTransaction]
 ==== getSubtypes
 
 [source,nodejs]
@@ -333,7 +333,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 type.getSubtypes(transaction) type.getSubtypes(transaction, Transitivity.EXPLICIT)
 ----
 
-[#_Type_getSubtypes__transaction_TypeDBTransaction__transitivity_Transitivity]
+[#_Type_getSubtypes_transaction_TypeDBTransaction_transitivity_Transitivity]
 ==== getSubtypes
 
 [source,nodejs]
@@ -364,7 +364,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and indirect subtype
 type.getSubtypes(transaction) type.getSubtypes(transaction, Transitivity.EXPLICIT)
 ----
 
-[#_Type_getSupertype__transaction_TypeDBTransaction]
+[#_Type_getSupertype_transaction_TypeDBTransaction]
 ==== getSupertype
 
 [source,nodejs]
@@ -394,7 +394,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 type.getSupertype(transaction)
 ----
 
-[#_Type_getSupertypes__transaction_TypeDBTransaction]
+[#_Type_getSupertypes_transaction_TypeDBTransaction]
 ==== getSupertypes
 
 [source,nodejs]
@@ -424,7 +424,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 type.getSupertypes(transaction)
 ----
 
-[#_Type_isAttribute__]
+[#_Type_isAttribute_]
 ==== isAttribute
 
 [source,nodejs]
@@ -445,7 +445,7 @@ Checks if the concept is an ``Attribute``.
 concept.isAttribute()
 ----
 
-[#_Type_isAttributeType__]
+[#_Type_isAttributeType_]
 ==== isAttributeType
 
 [source,nodejs]
@@ -466,7 +466,7 @@ Checks if the concept is an ``AttributeType``.
 concept.isAttributeType()
 ----
 
-[#_Type_isDeleted__transaction_TypeDBTransaction]
+[#_Type_isDeleted_transaction_TypeDBTransaction]
 ==== isDeleted
 
 [source,nodejs]
@@ -489,7 +489,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction`
 .Returns
 `Promise`
 
-[#_Type_isEntity__]
+[#_Type_isEntity_]
 ==== isEntity
 
 [source,nodejs]
@@ -510,7 +510,7 @@ Checks if the concept is an ``Entity``.
 concept.isEntity()
 ----
 
-[#_Type_isEntityType__]
+[#_Type_isEntityType_]
 ==== isEntityType
 
 [source,nodejs]
@@ -531,7 +531,7 @@ Checks if the concept is an ``EntityType``.
 concept.isEntityType()
 ----
 
-[#_Type_isRelation__]
+[#_Type_isRelation_]
 ==== isRelation
 
 [source,nodejs]
@@ -552,7 +552,7 @@ Checks if the concept is a ``Relation``.
 concept.isRelation()
 ----
 
-[#_Type_isRelationType__]
+[#_Type_isRelationType_]
 ==== isRelationType
 
 [source,nodejs]
@@ -573,7 +573,7 @@ Checks if the concept is a ``RelationType``.
 concept.isRelationType()
 ----
 
-[#_Type_isRoleType__]
+[#_Type_isRoleType_]
 ==== isRoleType
 
 [source,nodejs]
@@ -594,7 +594,7 @@ Checks if the concept is a ``RoleType``.
 concept.isRoleType()
 ----
 
-[#_Type_isThing__]
+[#_Type_isThing_]
 ==== isThing
 
 [source,nodejs]
@@ -615,7 +615,7 @@ Checks if the concept is a ``Thing``.
 concept.isThing()
 ----
 
-[#_Type_isThingType__]
+[#_Type_isThingType_]
 ==== isThingType
 
 [source,nodejs]
@@ -636,7 +636,7 @@ Checks if the concept is a ``ThingType``.
 concept.isThingType()
 ----
 
-[#_Type_isType__]
+[#_Type_isType_]
 ==== isType
 
 [source,nodejs]
@@ -657,7 +657,7 @@ Checks if the concept is a ``Type``.
 concept.isType()
 ----
 
-[#_Type_isValue__]
+[#_Type_isValue_]
 ==== isValue
 
 [source,nodejs]
@@ -678,7 +678,7 @@ Checks if the concept is a ``Value``.
 concept.isValue()
 ----
 
-[#_Type_setLabel__transaction_TypeDBTransaction__label_string]
+[#_Type_setLabel_transaction_TypeDBTransaction_label_string]
 ==== setLabel
 
 [source,nodejs]
diff --git a/nodejs/docs/schema/ValueType.adoc b/docs/modules/ROOT/partials/nodejs/schema/ValueType.adoc
similarity index 88%
rename from nodejs/docs/schema/ValueType.adoc
rename to docs/modules/ROOT/partials/nodejs/schema/ValueType.adoc
index 186bac84fe..c920884ea4 100644
--- a/nodejs/docs/schema/ValueType.adoc
+++ b/docs/modules/ROOT/partials/nodejs/schema/ValueType.adoc
@@ -20,7 +20,7 @@ a| `STRING`
 // end::enum_constants[]
 
 // tag::methods[]
-[#_ValueType_name__]
+[#_ValueType_name_]
 ==== name
 
 [source,nodejs]
@@ -34,7 +34,7 @@ name(): string
 .Returns
 `string`
 
-[#_ValueType_new_ValueType__type_ValueType__name_string]
+[#_ValueType_new_ValueType_type_ValueType_name_string]
 ==== new ValueType
 
 [source,nodejs]
@@ -58,7 +58,7 @@ a| `name` a|  a| `string`
 .Returns
 `ValueType`
 
-[#_ValueType_toString__]
+[#_ValueType_toString_]
 ==== toString
 
 [source,nodejs]
diff --git a/nodejs/docs/session/Opts.adoc b/docs/modules/ROOT/partials/nodejs/session/Opts.adoc
similarity index 100%
rename from nodejs/docs/session/Opts.adoc
rename to docs/modules/ROOT/partials/nodejs/session/Opts.adoc
diff --git a/nodejs/docs/session/SessionType.adoc b/docs/modules/ROOT/partials/nodejs/session/SessionType.adoc
similarity index 90%
rename from nodejs/docs/session/SessionType.adoc
rename to docs/modules/ROOT/partials/nodejs/session/SessionType.adoc
index 6cacf8882b..3caf39e650 100644
--- a/nodejs/docs/session/SessionType.adoc
+++ b/docs/modules/ROOT/partials/nodejs/session/SessionType.adoc
@@ -16,7 +16,7 @@ a| `SCHEMA`
 // end::enum_constants[]
 
 // tag::methods[]
-[#_SessionType_isData__]
+[#_SessionType_isData_]
 ==== isData
 
 [source,nodejs]
@@ -30,7 +30,7 @@ isData(): boolean
 .Returns
 `boolean`
 
-[#_SessionType_isSchema__]
+[#_SessionType_isSchema_]
 ==== isSchema
 
 [source,nodejs]
diff --git a/nodejs/docs/session/TypeDBOptions.adoc b/docs/modules/ROOT/partials/nodejs/session/TypeDBOptions.adoc
similarity index 82%
rename from nodejs/docs/session/TypeDBOptions.adoc
rename to docs/modules/ROOT/partials/nodejs/session/TypeDBOptions.adoc
index c294493af0..10e9076013 100644
--- a/nodejs/docs/session/TypeDBOptions.adoc
+++ b/docs/modules/ROOT/partials/nodejs/session/TypeDBOptions.adoc
@@ -4,7 +4,7 @@
 TypeDB session and transaction options. ``TypeDBOptions`` object can be used to override the default server behaviour. Options could be specified either as constructor arguments or using setters.
 
 // tag::methods[]
-[#_TypeDBOptions__explain__]
+[#_TypeDBOptions_explain_]
 ====  explain
 
 [source,nodejs]
@@ -18,7 +18,7 @@ If set to ``True``, enables explanations for queries. Only affects read transact
 .Returns
 `boolean`
 
-[#_TypeDBOptions__explain__value_boolean]
+[#_TypeDBOptions_explain_value_boolean]
 ====  explain
 
 [source,nodejs]
@@ -32,7 +32,7 @@ If set to ``True``, enables explanations for queries. Only affects read transact
 .Returns
 `void`
 
-[#_TypeDBOptions__infer__]
+[#_TypeDBOptions_infer_]
 ====  infer
 
 [source,nodejs]
@@ -46,7 +46,7 @@ If set to ``True``, enables inference for queries. Only settable at transaction
 .Returns
 `boolean`
 
-[#_TypeDBOptions__infer__value_boolean]
+[#_TypeDBOptions_infer_value_boolean]
 ====  infer
 
 [source,nodejs]
@@ -60,7 +60,7 @@ If set to ``True``, enables inference for queries. Only settable at transaction
 .Returns
 `void`
 
-[#_TypeDBOptions__parallel__]
+[#_TypeDBOptions_parallel_]
 ====  parallel
 
 [source,nodejs]
@@ -74,7 +74,7 @@ If set to ``True``, the server uses parallel instead of single-threaded executio
 .Returns
 `boolean`
 
-[#_TypeDBOptions__parallel__value_boolean]
+[#_TypeDBOptions_parallel_value_boolean]
 ====  parallel
 
 [source,nodejs]
@@ -88,7 +88,7 @@ If set to ``True``, the server uses parallel instead of single-threaded executio
 .Returns
 `void`
 
-[#_TypeDBOptions__prefetch__]
+[#_TypeDBOptions_prefetch_]
 ====  prefetch
 
 [source,nodejs]
@@ -102,7 +102,7 @@ If set to ``True``, the first batch of answers is streamed to the driver even wi
 .Returns
 `boolean`
 
-[#_TypeDBOptions__prefetch__value_boolean]
+[#_TypeDBOptions_prefetch_value_boolean]
 ====  prefetch
 
 [source,nodejs]
@@ -116,7 +116,7 @@ If set to ``True``, the first batch of answers is streamed to the driver even wi
 .Returns
 `void`
 
-[#_TypeDBOptions__prefetchSize__]
+[#_TypeDBOptions_prefetchSize_]
 ====  prefetchSize
 
 [source,nodejs]
@@ -130,7 +130,7 @@ If set, specifies a guideline number of answers that the server should send befo
 .Returns
 `number`
 
-[#_TypeDBOptions__prefetchSize__value_number]
+[#_TypeDBOptions_prefetchSize_value_number]
 ====  prefetchSize
 
 [source,nodejs]
@@ -144,7 +144,7 @@ If set, specifies a guideline number of answers that the server should send befo
 .Returns
 `void`
 
-[#_TypeDBOptions__readAnyReplica__]
+[#_TypeDBOptions_readAnyReplica_]
 ====  readAnyReplica
 
 [source,nodejs]
@@ -158,7 +158,7 @@ If set to ``True``, enables reading data from any replica, potentially boosting
 .Returns
 `boolean`
 
-[#_TypeDBOptions__readAnyReplica__value_boolean]
+[#_TypeDBOptions_readAnyReplica_value_boolean]
 ====  readAnyReplica
 
 [source,nodejs]
@@ -172,7 +172,7 @@ If set to ``True``, enables reading data from any replica, potentially boosting
 .Returns
 `void`
 
-[#_TypeDBOptions__schemaLockAcquireTimeoutMillis__]
+[#_TypeDBOptions_schemaLockAcquireTimeoutMillis_]
 ====  schemaLockAcquireTimeoutMillis
 
 [source,nodejs]
@@ -186,7 +186,7 @@ If set, specifies how long the driver should wait if opening a session or transa
 .Returns
 `number`
 
-[#_TypeDBOptions__schemaLockAcquireTimeoutMillis__value_number]
+[#_TypeDBOptions_schemaLockAcquireTimeoutMillis_value_number]
 ====  schemaLockAcquireTimeoutMillis
 
 [source,nodejs]
@@ -200,7 +200,7 @@ If set, specifies how long the driver should wait if opening a session or transa
 .Returns
 `void`
 
-[#_TypeDBOptions__sessionIdleTimeoutMillis__]
+[#_TypeDBOptions_sessionIdleTimeoutMillis_]
 ====  sessionIdleTimeoutMillis
 
 [source,nodejs]
@@ -214,7 +214,7 @@ If set, specifies a timeout that allows the server to close sessions if the driv
 .Returns
 `number`
 
-[#_TypeDBOptions__sessionIdleTimeoutMillis__millis_number]
+[#_TypeDBOptions_sessionIdleTimeoutMillis_millis_number]
 ====  sessionIdleTimeoutMillis
 
 [source,nodejs]
@@ -228,7 +228,7 @@ If set, specifies a timeout that allows the server to close sessions if the driv
 .Returns
 `void`
 
-[#_TypeDBOptions__traceInference__]
+[#_TypeDBOptions_traceInference_]
 ====  traceInference
 
 [source,nodejs]
@@ -242,7 +242,7 @@ If set to ``True``, reasoning tracing graphs are output in the logging directory
 .Returns
 `boolean`
 
-[#_TypeDBOptions__traceInference__value_boolean]
+[#_TypeDBOptions_traceInference_value_boolean]
 ====  traceInference
 
 [source,nodejs]
@@ -256,7 +256,7 @@ If set to ``True``, reasoning tracing graphs are output in the logging directory
 .Returns
 `void`
 
-[#_TypeDBOptions__transactionTimeoutMillis__]
+[#_TypeDBOptions_transactionTimeoutMillis_]
 ====  transactionTimeoutMillis
 
 [source,nodejs]
@@ -270,7 +270,7 @@ If set, specifies a timeout for killing transactions automatically, preventing m
 .Returns
 `number`
 
-[#_TypeDBOptions__transactionTimeoutMillis__millis_number]
+[#_TypeDBOptions_transactionTimeoutMillis_millis_number]
 ====  transactionTimeoutMillis
 
 [source,nodejs]
@@ -284,7 +284,7 @@ If set, specifies a timeout for killing transactions automatically, preventing m
 .Returns
 `void`
 
-[#_TypeDBOptions_new_TypeDBOptions__obj__explain_boolean_infer_boolean_parallel_boolean_prefetch_boolean_prefetchSize_number_readAnyReplica_boolean_schemaLockAcquireTimeoutMillis_number_sessionIdleTimeoutMillis_number_traceInference_boolean_transactionTimeoutMillis_number___]
+[#_TypeDBOptions_new_TypeDBOptions_obj_explain_boolean_infer_boolean_parallel_boolean_prefetch_boolean_prefetchSize_number_readAnyReplica_boolean_schemaLockAcquireTimeoutMillis_number_sessionIdleTimeoutMillis_number_traceInference_boolean_transactionTimeoutMillis_number_]
 ==== new TypeDBOptions
 
 [source,nodejs]
diff --git a/nodejs/docs/session/TypeDBSession.adoc b/docs/modules/ROOT/partials/nodejs/session/TypeDBSession.adoc
similarity index 91%
rename from nodejs/docs/session/TypeDBSession.adoc
rename to docs/modules/ROOT/partials/nodejs/session/TypeDBSession.adoc
index 9c9ed43646..75d2d01088 100644
--- a/nodejs/docs/session/TypeDBSession.adoc
+++ b/docs/modules/ROOT/partials/nodejs/session/TypeDBSession.adoc
@@ -16,7 +16,7 @@ a| `type` a| `SessionType` a| The current session’s type (SCHEMA or DATA)
 // end::properties[]
 
 // tag::methods[]
-[#_TypeDBSession_close__]
+[#_TypeDBSession_close_]
 ==== close
 
 [source,nodejs]
@@ -37,7 +37,7 @@ Closes the session. Before opening a new session, the session currently open sho
 session.close()
 ----
 
-[#_TypeDBSession_isOpen__]
+[#_TypeDBSession_isOpen_]
 ==== isOpen
 
 [source,nodejs]
@@ -58,7 +58,7 @@ Checks whether this session is open.
 session.isOpen()
 ----
 
-[#_TypeDBSession_onClose__callback_______Promise_void__]
+[#_TypeDBSession_onClose_callback_Promise_void_]
 ==== onClose
 
 [source,nodejs]
@@ -88,7 +88,7 @@ a| `callback` a| The callback function. a| `(() => Promise)`
 session.onClose(function)
 ----
 
-[#_TypeDBSession_onReopen__callback_______Promise_void__]
+[#_TypeDBSession_onReopen_callback_Promise_void_]
 ==== onReopen
 
 [source,nodejs]
@@ -118,7 +118,7 @@ a| `callback` a| The callback function. a| `(() => Promise)`
 session.onReopen(function)
 ----
 
-[#_TypeDBSession_transaction__type_TransactionType__options_TypeDBOptions]
+[#_TypeDBSession_transaction_type_TransactionType_options_TypeDBOptions]
 ==== transaction
 
 [source,nodejs]
diff --git a/nodejs/docs/transaction/QueryManager.adoc b/docs/modules/ROOT/partials/nodejs/transaction/QueryManager.adoc
similarity index 89%
rename from nodejs/docs/transaction/QueryManager.adoc
rename to docs/modules/ROOT/partials/nodejs/transaction/QueryManager.adoc
index 2977f71576..af0a0dc350 100644
--- a/nodejs/docs/transaction/QueryManager.adoc
+++ b/docs/modules/ROOT/partials/nodejs/transaction/QueryManager.adoc
@@ -4,7 +4,7 @@
 Provides methods for executing TypeQL queries in the transaction.
 
 // tag::methods[]
-[#_QueryManager_define__query_string__options_TypeDBOptions]
+[#_QueryManager_define_query_string_options_TypeDBOptions]
 ==== define
 
 [source,nodejs]
@@ -35,7 +35,7 @@ a| `options` a| Specify query options a| `TypeDBOptions`
 transaction.query.define(query, options)
 ----
 
-[#_QueryManager_delete__query_string__options_TypeDBOptions]
+[#_QueryManager_delete_query_string_options_TypeDBOptions]
 ==== delete
 
 [source,nodejs]
@@ -66,7 +66,7 @@ a| `options` a| Specify query options a| `TypeDBOptions`
 transaction.query.delete(query, options)
 ----
 
-[#_QueryManager_explain__explainable_Explainable__options_TypeDBOptions]
+[#_QueryManager_explain_explainable_Explainable_options_TypeDBOptions]
 ==== explain
 
 [source,nodejs]
@@ -97,7 +97,7 @@ a| `options` a| Specify query options a| `TypeDBOptions`
 transaction.query.explain(explainable, options)
 ----
 
-[#_QueryManager_fetch__query_string__options_TypeDBOptions]
+[#_QueryManager_fetch_query_string_options_TypeDBOptions]
 ==== fetch
 
 [source,nodejs]
@@ -130,7 +130,7 @@ a| `options` a| Specify query options a| `TypeDBOptions`
 transaction.query.fetch(query, options)
 ----
 
-[#_QueryManager_get__query_string__options_TypeDBOptions]
+[#_QueryManager_get_query_string_options_TypeDBOptions]
 ==== get
 
 [source,nodejs]
@@ -161,7 +161,7 @@ a| `options` a| Specify query options a| `TypeDBOptions`
 transaction.query.get(query, options)
 ----
 
-[#_QueryManager_getAggregate__query_string__options_TypeDBOptions]
+[#_QueryManager_getAggregate_query_string_options_TypeDBOptions]
 ==== getAggregate
 
 [source,nodejs]
@@ -192,7 +192,7 @@ a| `options` a| Specify query options a| `TypeDBOptions`
 transaction.query.getAggregate(query, options)
 ----
 
-[#_QueryManager_getGroup__query_string__options_TypeDBOptions]
+[#_QueryManager_getGroup_query_string_options_TypeDBOptions]
 ==== getGroup
 
 [source,nodejs]
@@ -223,7 +223,7 @@ a| `options` a| Specify query options a| `TypeDBOptions`
 transaction.query.getGroup(query, options)
 ----
 
-[#_QueryManager_getGroupAggregate__query_string__options_TypeDBOptions]
+[#_QueryManager_getGroupAggregate_query_string_options_TypeDBOptions]
 ==== getGroupAggregate
 
 [source,nodejs]
@@ -254,7 +254,7 @@ a| `options` a| Specify query options a| `TypeDBOptions`
 transaction.query.getGroupAggregate(query, options)
 ----
 
-[#_QueryManager_insert__query_string__options_TypeDBOptions]
+[#_QueryManager_insert_query_string_options_TypeDBOptions]
 ==== insert
 
 [source,nodejs]
@@ -285,7 +285,7 @@ a| `options` a| Specify query options a| `TypeDBOptions`
 transaction.query.insert(query, options)
 ----
 
-[#_QueryManager_undefine__query_string__options_TypeDBOptions]
+[#_QueryManager_undefine_query_string_options_TypeDBOptions]
 ==== undefine
 
 [source,nodejs]
@@ -316,7 +316,7 @@ a| `options` a| Specify query options a| `TypeDBOptions`
 transaction.query.undefine(query, options)
 ----
 
-[#_QueryManager_update__query_string__options_TypeDBOptions]
+[#_QueryManager_update_query_string_options_TypeDBOptions]
 ==== update
 
 [source,nodejs]
diff --git a/nodejs/docs/transaction/TransactionType.adoc b/docs/modules/ROOT/partials/nodejs/transaction/TransactionType.adoc
similarity index 90%
rename from nodejs/docs/transaction/TransactionType.adoc
rename to docs/modules/ROOT/partials/nodejs/transaction/TransactionType.adoc
index 942bb4ee68..140c7e66e7 100644
--- a/nodejs/docs/transaction/TransactionType.adoc
+++ b/docs/modules/ROOT/partials/nodejs/transaction/TransactionType.adoc
@@ -16,7 +16,7 @@ a| `WRITE`
 // end::enum_constants[]
 
 // tag::methods[]
-[#_TransactionType_isRead__]
+[#_TransactionType_isRead_]
 ==== isRead
 
 [source,nodejs]
@@ -30,7 +30,7 @@ Checks whether this is the READ TransactionType
 .Returns
 `boolean`
 
-[#_TransactionType_isWrite__]
+[#_TransactionType_isWrite_]
 ==== isWrite
 
 [source,nodejs]
diff --git a/nodejs/docs/transaction/TypeDBTransaction.adoc b/docs/modules/ROOT/partials/nodejs/transaction/TypeDBTransaction.adoc
similarity index 91%
rename from nodejs/docs/transaction/TypeDBTransaction.adoc
rename to docs/modules/ROOT/partials/nodejs/transaction/TypeDBTransaction.adoc
index 42227d420d..5ebb24a0cd 100644
--- a/nodejs/docs/transaction/TypeDBTransaction.adoc
+++ b/docs/modules/ROOT/partials/nodejs/transaction/TypeDBTransaction.adoc
@@ -17,7 +17,7 @@ a| `type` a| `TransactionType` a| The transaction’s type (READ or WRITE)
 // end::properties[]
 
 // tag::methods[]
-[#_TypeDBTransaction_close__]
+[#_TypeDBTransaction_close_]
 ==== close
 
 [source,nodejs]
@@ -38,7 +38,7 @@ Closes the transaction.
 transaction.close()
 ----
 
-[#_TypeDBTransaction_commit__]
+[#_TypeDBTransaction_commit_]
 ==== commit
 
 [source,nodejs]
@@ -59,7 +59,7 @@ Commits the changes made via this transaction to the TypeDB database. Whether or
 transaction.commit()
 ----
 
-[#_TypeDBTransaction_isOpen__]
+[#_TypeDBTransaction_isOpen_]
 ==== isOpen
 
 [source,nodejs]
@@ -80,7 +80,7 @@ Checks whether this transaction is open.
 transaction.isOpen()
 ----
 
-[#_TypeDBTransaction_onClose__callback___error____Promise_void__]
+[#_TypeDBTransaction_onClose_callback_error_Promise_void_]
 ==== onClose
 
 [source,nodejs]
@@ -110,7 +110,7 @@ a| `callback` a| The callback function. a| `((error?) => Promise)`
 transaction.onClose(function);
 ----
 
-[#_TypeDBTransaction_rollback__]
+[#_TypeDBTransaction_rollback_]
 ==== rollback
 
 [source,nodejs]
diff --git a/python/docs/answer/ConceptMap.adoc b/docs/modules/ROOT/partials/python/answer/ConceptMap.adoc
similarity index 92%
rename from python/docs/answer/ConceptMap.adoc
rename to docs/modules/ROOT/partials/python/answer/ConceptMap.adoc
index 20c0ac2b08..ae8f43a089 100644
--- a/python/docs/answer/ConceptMap.adoc
+++ b/docs/modules/ROOT/partials/python/answer/ConceptMap.adoc
@@ -4,7 +4,7 @@
 Contains a mapping of variables to concepts.
 
 // tag::methods[]
-[#_ConceptMap_concepts__]
+[#_ConceptMap_concepts_]
 ==== concepts
 
 [source,python]
@@ -25,7 +25,7 @@ Produces an iterator over all concepts in this ``ConceptMap``.
 concept_map.concepts()
 ----
 
-[#_ConceptMap_explainables__]
+[#_ConceptMap_explainables_]
 ==== explainables
 
 [source,python]
@@ -46,7 +46,7 @@ Gets the ``Explainables`` object for this ``ConceptMap``, exposing which of the
 concept_map.explainables()
 ----
 
-[#_ConceptMap_get__variable_str]
+[#_ConceptMap_get_variable_str]
 ==== get
 
 [source,python]
@@ -76,7 +76,7 @@ a| `variable` a| The string representation of a variable a| `str` a|
 concept_map.get(variable)
 ----
 
-[#_ConceptMap_map__]
+[#_ConceptMap_map_]
 ==== map
 
 [source,python]
@@ -97,7 +97,7 @@ Returns the inner ``Mapping`` where keys are query variables, and values are con
 concept_map.concepts()
 ----
 
-[#_ConceptMap_variables__]
+[#_ConceptMap_variables_]
 ==== variables
 
 [source,python]
diff --git a/python/docs/answer/ConceptMapGroup.adoc b/docs/modules/ROOT/partials/python/answer/ConceptMapGroup.adoc
similarity index 90%
rename from python/docs/answer/ConceptMapGroup.adoc
rename to docs/modules/ROOT/partials/python/answer/ConceptMapGroup.adoc
index 3f6e079ab6..5215e9b91a 100644
--- a/python/docs/answer/ConceptMapGroup.adoc
+++ b/docs/modules/ROOT/partials/python/answer/ConceptMapGroup.adoc
@@ -4,7 +4,7 @@
 Contains an element of the group query result.
 
 // tag::methods[]
-[#_ConceptMapGroup_concept_maps__]
+[#_ConceptMapGroup_concept_maps_]
 ==== concept_maps
 
 [source,python]
@@ -25,7 +25,7 @@ Retrieves the ConceptMaps of the group.
 concept_map_group.concept_maps()
 ----
 
-[#_ConceptMapGroup_owner__]
+[#_ConceptMapGroup_owner_]
 ==== owner
 
 [source,python]
diff --git a/python/docs/answer/Explainable.adoc b/docs/modules/ROOT/partials/python/answer/Explainable.adoc
similarity index 91%
rename from python/docs/answer/Explainable.adoc
rename to docs/modules/ROOT/partials/python/answer/Explainable.adoc
index 1747ab957e..c3674382ce 100644
--- a/python/docs/answer/Explainable.adoc
+++ b/docs/modules/ROOT/partials/python/answer/Explainable.adoc
@@ -4,7 +4,7 @@
 Contains an explainable object.
 
 // tag::methods[]
-[#_Explainable_conjunction__]
+[#_Explainable_conjunction_]
 ==== conjunction
 
 [source,python]
@@ -25,7 +25,7 @@ Retrieves the subquery of the original query that is actually being explained.
 explainable.conjunction()
 ----
 
-[#_Explainable_id__]
+[#_Explainable_id_]
 ==== id
 
 [source,python]
diff --git a/python/docs/answer/Explainables.adoc b/docs/modules/ROOT/partials/python/answer/Explainables.adoc
similarity index 92%
rename from python/docs/answer/Explainables.adoc
rename to docs/modules/ROOT/partials/python/answer/Explainables.adoc
index b98d2b9a73..ca338e1f89 100644
--- a/python/docs/answer/Explainables.adoc
+++ b/docs/modules/ROOT/partials/python/answer/Explainables.adoc
@@ -4,7 +4,7 @@
 Contains explainable objects.
 
 // tag::methods[]
-[#_Explainables_attribute__variable_str]
+[#_Explainables_attribute_variable_str]
 ==== attribute
 
 [source,python]
@@ -34,7 +34,7 @@ a| `variable` a| The string representation of a variable a| `str` a|
 concept_map.explainables().attribute(variable)
 ----
 
-[#_Explainables_attributes__]
+[#_Explainables_attributes_]
 ==== attributes
 
 [source,python]
@@ -55,7 +55,7 @@ Retrieves all of this ``ConceptMap``’s explainable attributes.
 concept_map.explainables().attributes()
 ----
 
-[#_Explainables_ownership__owner_str__attribute_str]
+[#_Explainables_ownership_owner_str_attribute_str]
 ==== ownership
 
 [source,python]
@@ -86,7 +86,7 @@ a| `attribute` a| The string representation of the attribute variable a| `str` a
 concept_map.explainables().ownership(owner, attribute)
 ----
 
-[#_Explainables_ownerships__]
+[#_Explainables_ownerships_]
 ==== ownerships
 
 [source,python]
@@ -107,7 +107,7 @@ Retrieves all of this ``ConceptMap``’s explainable ownerships.
 concept_map.explainables().ownerships()
 ----
 
-[#_Explainables_relation__variable_str]
+[#_Explainables_relation_variable_str]
 ==== relation
 
 [source,python]
@@ -137,7 +137,7 @@ a| `variable` a| The string representation of a variable a| `str` a|
 concept_map.explainables().relation(variable)
 ----
 
-[#_Explainables_relations__]
+[#_Explainables_relations_]
 ==== relations
 
 [source,python]
diff --git a/python/docs/answer/Explanation.adoc b/docs/modules/ROOT/partials/python/answer/Explanation.adoc
similarity index 91%
rename from python/docs/answer/Explanation.adoc
rename to docs/modules/ROOT/partials/python/answer/Explanation.adoc
index ca6a9022fa..86e1913774 100644
--- a/python/docs/answer/Explanation.adoc
+++ b/docs/modules/ROOT/partials/python/answer/Explanation.adoc
@@ -4,7 +4,7 @@
 An explanation of which rule was used for inferring the explained concept, the condition of the rule, the conclusion of the rule, and the mapping of variables between the query and the rule’s conclusion.
 
 // tag::methods[]
-[#_Explanation_conclusion__]
+[#_Explanation_conclusion_]
 ==== conclusion
 
 [source,python]
@@ -25,7 +25,7 @@ Retrieves the Conclusion for this Explanation.
 explanation.conclusion()
 ----
 
-[#_Explanation_condition__]
+[#_Explanation_condition_]
 ==== condition
 
 [source,python]
@@ -46,7 +46,7 @@ Retrieves the Condition for this Explanation.
 explanation.condition()
 ----
 
-[#_Explanation_query_variable_mapping__var_str]
+[#_Explanation_query_variable_mapping_var_str]
 ==== query_variable_mapping
 
 [source,python]
@@ -76,7 +76,7 @@ a| `var` a| The query variable to map to rule variables. a| `str` a|
 explanation.variable_mapping(var)
 ----
 
-[#_Explanation_query_variables__]
+[#_Explanation_query_variables_]
 ==== query_variables
 
 [source,python]
@@ -97,7 +97,7 @@ Retrieves the query variables for this ``Explanation``.
 explanation.query_variables()
 ----
 
-[#_Explanation_rule__]
+[#_Explanation_rule_]
 ==== rule
 
 [source,python]
diff --git a/python/docs/answer/Promise.adoc b/docs/modules/ROOT/partials/python/answer/Promise.adoc
similarity index 93%
rename from python/docs/answer/Promise.adoc
rename to docs/modules/ROOT/partials/python/answer/Promise.adoc
index 43a6b38305..149fe85bc5 100644
--- a/python/docs/answer/Promise.adoc
+++ b/docs/modules/ROOT/partials/python/answer/Promise.adoc
@@ -6,7 +6,7 @@ A ``Promise`` represents an asynchronous network operation.
 The request it represents is performed immediately. The response is only retrieved once the ``Promise`` is ``resolve``d.
 
 // tag::methods[]
-[#_Promise_map__]
+[#_Promise_map_]
 ==== map
 
 [source,python]
@@ -20,7 +20,7 @@ classmethod map(ctor: Callable[[U], T], raw: Callable[[], U]) -> Promise[T]
 .Returns
 `Promise[T]`
 
-[#_Promise_resolve__]
+[#_Promise_resolve_]
 ==== resolve
 
 [source,python]
diff --git a/python/docs/answer/ValueGroup.adoc b/docs/modules/ROOT/partials/python/answer/ValueGroup.adoc
similarity index 92%
rename from python/docs/answer/ValueGroup.adoc
rename to docs/modules/ROOT/partials/python/answer/ValueGroup.adoc
index bd7cb081d0..731901f4c2 100644
--- a/python/docs/answer/ValueGroup.adoc
+++ b/docs/modules/ROOT/partials/python/answer/ValueGroup.adoc
@@ -4,7 +4,7 @@
 Contains an element of the group aggregate query result.
 
 // tag::methods[]
-[#_ValueGroup_owner__]
+[#_ValueGroup_owner_]
 ==== owner
 
 [source,python]
@@ -25,7 +25,7 @@ Retrieves the concept that is the group owner.
 value_group.owner()
 ----
 
-[#_ValueGroup_value__]
+[#_ValueGroup_value_]
 ==== value
 
 [source,python]
diff --git a/python/docs/concept/Concept.adoc b/docs/modules/ROOT/partials/python/concept/Concept.adoc
similarity index 89%
rename from python/docs/concept/Concept.adoc
rename to docs/modules/ROOT/partials/python/concept/Concept.adoc
index 5f0827891c..535470c3fa 100644
--- a/python/docs/concept/Concept.adoc
+++ b/docs/modules/ROOT/partials/python/concept/Concept.adoc
@@ -2,7 +2,7 @@
 === Concept
 
 // tag::methods[]
-[#_Concept_as_attribute__]
+[#_Concept_as_attribute_]
 ==== as_attribute
 
 [source,python]
@@ -23,7 +23,7 @@ Casts the concept to ``Attribute``.
 concept.as_attribute()
 ----
 
-[#_Concept_as_attribute_type__]
+[#_Concept_as_attribute_type_]
 ==== as_attribute_type
 
 [source,python]
@@ -44,7 +44,7 @@ Casts the concept to ``AttributeType``.
 concept.as_attribute_type()
 ----
 
-[#_Concept_as_entity__]
+[#_Concept_as_entity_]
 ==== as_entity
 
 [source,python]
@@ -65,7 +65,7 @@ Casts the concept to ``Entity``.
 concept.as_entity()
 ----
 
-[#_Concept_as_entity_type__]
+[#_Concept_as_entity_type_]
 ==== as_entity_type
 
 [source,python]
@@ -86,7 +86,7 @@ Casts the concept to ``EntityType``.
 concept.as_entity_type()
 ----
 
-[#_Concept_as_relation__]
+[#_Concept_as_relation_]
 ==== as_relation
 
 [source,python]
@@ -107,7 +107,7 @@ Casts the concept to ``Relation``.
 concept.as_relation()
 ----
 
-[#_Concept_as_relation_type__]
+[#_Concept_as_relation_type_]
 ==== as_relation_type
 
 [source,python]
@@ -128,7 +128,7 @@ Casts the concept to ``RelationType``.
 concept.as_relation_type()
 ----
 
-[#_Concept_as_role_type__]
+[#_Concept_as_role_type_]
 ==== as_role_type
 
 [source,python]
@@ -149,7 +149,7 @@ Casts the concept to ``RoleType``.
 concept.as_role_type()
 ----
 
-[#_Concept_as_thing__]
+[#_Concept_as_thing_]
 ==== as_thing
 
 [source,python]
@@ -170,7 +170,7 @@ Casts the concept to ``Thing``.
 concept.as_thing()
 ----
 
-[#_Concept_as_thing_type__]
+[#_Concept_as_thing_type_]
 ==== as_thing_type
 
 [source,python]
@@ -191,7 +191,7 @@ Casts the concept to ``ThingType``.
 concept.as_thing_type()
 ----
 
-[#_Concept_as_type__]
+[#_Concept_as_type_]
 ==== as_type
 
 [source,python]
@@ -212,7 +212,7 @@ Casts the concept to ``Type``.
 concept.as_type()
 ----
 
-[#_Concept_as_value__]
+[#_Concept_as_value_]
 ==== as_value
 
 [source,python]
@@ -233,7 +233,7 @@ Casts the concept to ``Value``.
 concept.as_value()
 ----
 
-[#_Concept_is_attribute__]
+[#_Concept_is_attribute_]
 ==== is_attribute
 
 [source,python]
@@ -254,7 +254,7 @@ Checks if the concept is an ``Attribute``.
 concept.is_attribute()
 ----
 
-[#_Concept_is_attribute_type__]
+[#_Concept_is_attribute_type_]
 ==== is_attribute_type
 
 [source,python]
@@ -275,7 +275,7 @@ Checks if the concept is an ``AttributeType``.
 concept.is_attribute_type()
 ----
 
-[#_Concept_is_entity__]
+[#_Concept_is_entity_]
 ==== is_entity
 
 [source,python]
@@ -296,7 +296,7 @@ Checks if the concept is an ``Entity``.
 concept.is_entity()
 ----
 
-[#_Concept_is_entity_type__]
+[#_Concept_is_entity_type_]
 ==== is_entity_type
 
 [source,python]
@@ -317,7 +317,7 @@ Checks if the concept is an ``EntityType``.
 concept.is_entity_type()
 ----
 
-[#_Concept_is_relation__]
+[#_Concept_is_relation_]
 ==== is_relation
 
 [source,python]
@@ -338,7 +338,7 @@ Checks if the concept is a ``Relation``.
 concept.is_relation()
 ----
 
-[#_Concept_is_relation_type__]
+[#_Concept_is_relation_type_]
 ==== is_relation_type
 
 [source,python]
@@ -359,7 +359,7 @@ Checks if the concept is a ``RelationType``.
 concept.is_relation_type()
 ----
 
-[#_Concept_is_role_type__]
+[#_Concept_is_role_type_]
 ==== is_role_type
 
 [source,python]
@@ -380,7 +380,7 @@ Checks if the concept is a ``RoleType``.
 concept.is_role_type()
 ----
 
-[#_Concept_is_thing__]
+[#_Concept_is_thing_]
 ==== is_thing
 
 [source,python]
@@ -401,7 +401,7 @@ Checks if the concept is a ``Thing``.
 concept.is_thing()
 ----
 
-[#_Concept_is_thing_type__]
+[#_Concept_is_thing_type_]
 ==== is_thing_type
 
 [source,python]
@@ -422,7 +422,7 @@ Checks if the concept is a ``ThingType``.
 concept.is_thing_type()
 ----
 
-[#_Concept_is_type__]
+[#_Concept_is_type_]
 ==== is_type
 
 [source,python]
@@ -443,7 +443,7 @@ Checks if the concept is a ``Type``.
 concept.is_type()
 ----
 
-[#_Concept_is_value__]
+[#_Concept_is_value_]
 ==== is_value
 
 [source,python]
diff --git a/python/docs/concept/ConceptManager.adoc b/docs/modules/ROOT/partials/python/concept/ConceptManager.adoc
similarity index 90%
rename from python/docs/concept/ConceptManager.adoc
rename to docs/modules/ROOT/partials/python/concept/ConceptManager.adoc
index 037b0a275c..7c5a511549 100644
--- a/python/docs/concept/ConceptManager.adoc
+++ b/docs/modules/ROOT/partials/python/concept/ConceptManager.adoc
@@ -4,7 +4,7 @@
 Provides access for all Concept API methods.
 
 // tag::methods[]
-[#_ConceptManager_get_attribute__iid_str]
+[#_ConceptManager_get_attribute_iid_str]
 ==== get_attribute
 
 [source,python]
@@ -34,7 +34,7 @@ a| `iid` a| The iid of the ``Attribute`` to retrieve a| `str` a|
 transaction.concepts.get_attribute(iid).resolve()
 ----
 
-[#_ConceptManager_get_attribute_type__label_str]
+[#_ConceptManager_get_attribute_type_label_str]
 ==== get_attribute_type
 
 [source,python]
@@ -64,7 +64,7 @@ a| `label` a| The label of the ``AttributeType`` to retrieve a| `str` a|
 transaction.concepts.get_attribute_type(label).resolve()
 ----
 
-[#_ConceptManager_get_entity__iid_str]
+[#_ConceptManager_get_entity_iid_str]
 ==== get_entity
 
 [source,python]
@@ -94,7 +94,7 @@ a| `iid` a| The iid of the ``Entity`` to retrieve a| `str` a|
 transaction.concepts.get_entity(iid).resolve()
 ----
 
-[#_ConceptManager_get_entity_type__label_str]
+[#_ConceptManager_get_entity_type_label_str]
 ==== get_entity_type
 
 [source,python]
@@ -124,7 +124,7 @@ a| `label` a| The label of the ``EntityType`` to retrieve a| `str` a|
 transaction.concepts.get_entity_type(label).resolve()
 ----
 
-[#_ConceptManager_get_relation__iid_str]
+[#_ConceptManager_get_relation_iid_str]
 ==== get_relation
 
 [source,python]
@@ -154,7 +154,7 @@ a| `iid` a| The iid of the ``Relation`` to retrieve a| `str` a|
 transaction.concepts.get_relation(iid).resolve()
 ----
 
-[#_ConceptManager_get_relation_type__label_str]
+[#_ConceptManager_get_relation_type_label_str]
 ==== get_relation_type
 
 [source,python]
@@ -184,7 +184,7 @@ a| `label` a| The label of the ``RelationType`` to retrieve a| `str` a|
 transaction.concepts.get_relation_type(label).resolve()
 ----
 
-[#_ConceptManager_get_root_attribute_type__]
+[#_ConceptManager_get_root_attribute_type_]
 ==== get_root_attribute_type
 
 [source,python]
@@ -205,7 +205,7 @@ Retrieve the root ``AttributeType``, “attribute”.
 transaction.concepts.get_root_attribute_type()
 ----
 
-[#_ConceptManager_get_root_entity_type__]
+[#_ConceptManager_get_root_entity_type_]
 ==== get_root_entity_type
 
 [source,python]
@@ -226,7 +226,7 @@ Retrieves the root ``EntityType``, “entity”.
 transaction.concepts.get_root_entity_type()
 ----
 
-[#_ConceptManager_get_root_relation_type__]
+[#_ConceptManager_get_root_relation_type_]
 ==== get_root_relation_type
 
 [source,python]
@@ -247,7 +247,7 @@ Retrieve the root ``RelationType``, “relation”.
 transaction.concepts.get_root_relation_type()
 ----
 
-[#_ConceptManager_get_schema_exception__]
+[#_ConceptManager_get_schema_exception_]
 ==== get_schema_exception
 
 [source,python]
@@ -268,7 +268,7 @@ Retrieves a list of all schema exceptions for the current transaction.
 transaction.concepts.get_schema_exception()
 ----
 
-[#_ConceptManager_put_attribute_type__label_str__value_type_ValueType]
+[#_ConceptManager_put_attribute_type_label_str_value_type_ValueType]
 ==== put_attribute_type
 
 [source,python]
@@ -299,7 +299,7 @@ a| `value_type` a| The value type of the ``AttributeType`` to create or retrieve
 transaction.concepts.put_attribute_type(label, value_type).resolve()
 ----
 
-[#_ConceptManager_put_entity_type__label_str]
+[#_ConceptManager_put_entity_type_label_str]
 ==== put_entity_type
 
 [source,python]
@@ -329,7 +329,7 @@ a| `label` a| The label of the ``EntityType`` to create or retrieve a| `str` a|
 transaction.concepts.put_entity_type(label).resolve()
 ----
 
-[#_ConceptManager_put_relation_type__label_str]
+[#_ConceptManager_put_relation_type_label_str]
 ==== put_relation_type
 
 [source,python]
diff --git a/python/docs/connection/Database.adoc b/docs/modules/ROOT/partials/python/connection/Database.adoc
similarity index 91%
rename from python/docs/connection/Database.adoc
rename to docs/modules/ROOT/partials/python/connection/Database.adoc
index 5e2bbdbd49..9efb176031 100644
--- a/python/docs/connection/Database.adoc
+++ b/docs/modules/ROOT/partials/python/connection/Database.adoc
@@ -13,7 +13,7 @@ a| `name` a| `str` a| The database name as a string.
 // end::properties[]
 
 // tag::methods[]
-[#_Database_delete__]
+[#_Database_delete_]
 ==== delete
 
 [source,python]
@@ -34,7 +34,7 @@ Deletes this database.
 database.delete()
 ----
 
-[#_Database_preferred_replica__]
+[#_Database_preferred_replica_]
 ==== preferred_replica
 
 [source,python]
@@ -55,7 +55,7 @@ Returns the preferred replica for this database. Operations which can be run on
 database.preferred_replica()
 ----
 
-[#_Database_primary_replica__]
+[#_Database_primary_replica_]
 ==== primary_replica
 
 [source,python]
@@ -76,7 +76,7 @@ Returns the primary replica for this database. _Only works in TypeDB Cloud_
 database.primary_replica()
 ----
 
-[#_Database_replicas__]
+[#_Database_replicas_]
 ==== replicas
 
 [source,python]
@@ -97,7 +97,7 @@ Set of ``Replica`` instances for this database. _Only works in TypeDB Cloud_
 database.replicas()
 ----
 
-[#_Database_rule_schema__]
+[#_Database_rule_schema_]
 ==== rule_schema
 
 [source,python]
@@ -118,7 +118,7 @@ Returns the rules in the schema as a valid TypeQL define query string.
 database.rule_schema()
 ----
 
-[#_Database_schema__]
+[#_Database_schema_]
 ==== schema
 
 [source,python]
@@ -139,7 +139,7 @@ Returns a full schema text as a valid TypeQL define query string.
 database.schema()
 ----
 
-[#_Database_type_schema__]
+[#_Database_type_schema_]
 ==== type_schema
 
 [source,python]
diff --git a/python/docs/connection/DatabaseManager.adoc b/docs/modules/ROOT/partials/python/connection/DatabaseManager.adoc
similarity index 92%
rename from python/docs/connection/DatabaseManager.adoc
rename to docs/modules/ROOT/partials/python/connection/DatabaseManager.adoc
index 5a0cd02ea6..5d29a9a843 100644
--- a/python/docs/connection/DatabaseManager.adoc
+++ b/docs/modules/ROOT/partials/python/connection/DatabaseManager.adoc
@@ -4,7 +4,7 @@
 Provides access to all database management methods.
 
 // tag::methods[]
-[#_DatabaseManager_all__]
+[#_DatabaseManager_all_]
 ==== all
 
 [source,python]
@@ -25,7 +25,7 @@ Retrieves all databases present on the TypeDB server
 driver.databases.all()
 ----
 
-[#_DatabaseManager_contains__name_str]
+[#_DatabaseManager_contains_name_str]
 ==== contains
 
 [source,python]
@@ -55,7 +55,7 @@ a| `name` a| The database name to be checked a| `str` a|
 driver.databases.contains(name)
 ----
 
-[#_DatabaseManager_create__name_str]
+[#_DatabaseManager_create_name_str]
 ==== create
 
 [source,python]
@@ -85,7 +85,7 @@ a| `name` a| The name of the database to be created a| `str` a|
 driver.databases.create(name)
 ----
 
-[#_DatabaseManager_get__name_str]
+[#_DatabaseManager_get_name_str]
 ==== get
 
 [source,python]
diff --git a/python/docs/connection/Replica.adoc b/docs/modules/ROOT/partials/python/connection/Replica.adoc
similarity index 89%
rename from python/docs/connection/Replica.adoc
rename to docs/modules/ROOT/partials/python/connection/Replica.adoc
index d686bd4f8a..e21b969add 100644
--- a/python/docs/connection/Replica.adoc
+++ b/docs/modules/ROOT/partials/python/connection/Replica.adoc
@@ -4,7 +4,7 @@
 The metadata and state of an individual raft replica of a database.
 
 // tag::methods[]
-[#_Replica_database__]
+[#_Replica_database_]
 ==== database
 
 [source,python]
@@ -18,7 +18,7 @@ Retrieves the database for which this is a replica
 .Returns
 `Database`
 
-[#_Replica_is_preferred__]
+[#_Replica_is_preferred_]
 ==== is_preferred
 
 [source,python]
@@ -32,7 +32,7 @@ Checks whether this is the preferred replica of the raft cluster. If true, Opera
 .Returns
 `bool`
 
-[#_Replica_is_primary__]
+[#_Replica_is_primary_]
 ==== is_primary
 
 [source,python]
@@ -46,7 +46,7 @@ Checks whether this is the primary replica of the raft cluster.
 .Returns
 `bool`
 
-[#_Replica_server__]
+[#_Replica_server_]
 ==== server
 
 [source,python]
@@ -60,7 +60,7 @@ The server hosting this replica
 .Returns
 `str`
 
-[#_Replica_term__]
+[#_Replica_term_]
 ==== term
 
 [source,python]
diff --git a/python/docs/connection/TypeDB.adoc b/docs/modules/ROOT/partials/python/connection/TypeDB.adoc
similarity index 86%
rename from python/docs/connection/TypeDB.adoc
rename to docs/modules/ROOT/partials/python/connection/TypeDB.adoc
index 49c8a01fb4..b7defbcc49 100644
--- a/python/docs/connection/TypeDB.adoc
+++ b/docs/modules/ROOT/partials/python/connection/TypeDB.adoc
@@ -2,7 +2,7 @@
 === TypeDB
 
 // tag::methods[]
-[#_TypeDB_cloud_driver__addresses_Mapping_str__str___Iterable_str___str__credential_TypeDBCredential]
+[#_TypeDB_cloud_driver_addresses_Mapping_str_str_Iterable_str_str_credential_TypeDBCredential]
 ==== cloud_driver
 
 [source,python]
@@ -26,7 +26,7 @@ a| `credential` a|  – a| `TypeDBCredential` a|
 .Returns
 `TypeDBDriver`
 
-[#_TypeDB_core_driver__address_str]
+[#_TypeDB_core_driver_address_str]
 ==== core_driver
 
 [source,python]
diff --git a/python/docs/connection/TypeDBCredential.adoc b/docs/modules/ROOT/partials/python/connection/TypeDBCredential.adoc
similarity index 100%
rename from python/docs/connection/TypeDBCredential.adoc
rename to docs/modules/ROOT/partials/python/connection/TypeDBCredential.adoc
diff --git a/python/docs/connection/TypeDBDriver.adoc b/docs/modules/ROOT/partials/python/connection/TypeDBDriver.adoc
similarity index 92%
rename from python/docs/connection/TypeDBDriver.adoc
rename to docs/modules/ROOT/partials/python/connection/TypeDBDriver.adoc
index 1b9998b81a..2faa504fcd 100644
--- a/python/docs/connection/TypeDBDriver.adoc
+++ b/docs/modules/ROOT/partials/python/connection/TypeDBDriver.adoc
@@ -14,7 +14,7 @@ a| `users` a| `UserManager` a| The ``UserManager`` instance for this connection,
 // end::properties[]
 
 // tag::methods[]
-[#_TypeDBDriver_close__]
+[#_TypeDBDriver_close_]
 ==== close
 
 [source,python]
@@ -35,7 +35,7 @@ Closes the driver. Before instantiating a new driver, the driver that’s curren
 driver.close()
 ----
 
-[#_TypeDBDriver_is_open__]
+[#_TypeDBDriver_is_open_]
 ==== is_open
 
 [source,python]
@@ -56,7 +56,7 @@ Checks whether this connection is presently open.
 driver.is_open()
 ----
 
-[#_TypeDBDriver_session__database_name_str__session_type_SessionType__options_TypeDBOptions__None]
+[#_TypeDBDriver_session_database_name_str_session_type_SessionType_options_TypeDBOptions_None]
 ==== session
 
 [source,python]
@@ -88,7 +88,7 @@ a| `options` a| ``TypeDBOptions`` for the session a| `TypeDBOptions \| None` a|
 driver.session(database, session_type, options)
 ----
 
-[#_TypeDBDriver_user__]
+[#_TypeDBDriver_user_]
 ==== user
 
 [source,python]
diff --git a/python/docs/connection/User.adoc b/docs/modules/ROOT/partials/python/connection/User.adoc
similarity index 87%
rename from python/docs/connection/User.adoc
rename to docs/modules/ROOT/partials/python/connection/User.adoc
index 48e7d9d8e7..fee5da7d06 100644
--- a/python/docs/connection/User.adoc
+++ b/docs/modules/ROOT/partials/python/connection/User.adoc
@@ -4,7 +4,7 @@
 TypeDB user information
 
 // tag::methods[]
-[#_User_password_expiry_seconds__]
+[#_User_password_expiry_seconds_]
 ==== password_expiry_seconds
 
 [source,python]
@@ -18,7 +18,7 @@ Returns the number of seconds remaining till this user’s current password expi
 .Returns
 `int | None`
 
-[#_User_password_update__password_old_str__password_new_str]
+[#_User_password_update_password_old_str_password_new_str]
 ==== password_update
 
 [source,python]
@@ -42,7 +42,7 @@ a| `password_new` a| The new password a| `str` a|
 .Returns
 `None`
 
-[#_User_username__]
+[#_User_username_]
 ==== username
 
 [source,python]
diff --git a/python/docs/connection/UserManager.adoc b/docs/modules/ROOT/partials/python/connection/UserManager.adoc
similarity index 91%
rename from python/docs/connection/UserManager.adoc
rename to docs/modules/ROOT/partials/python/connection/UserManager.adoc
index dc9a1b2a79..7b8ee68240 100644
--- a/python/docs/connection/UserManager.adoc
+++ b/docs/modules/ROOT/partials/python/connection/UserManager.adoc
@@ -4,7 +4,7 @@
 Provides access to all user management methods.
 
 // tag::methods[]
-[#_UserManager_all__]
+[#_UserManager_all_]
 ==== all
 
 [source,python]
@@ -25,7 +25,7 @@ Retrieves all users which exist on the TypeDB server.
 driver.users.all()
 ----
 
-[#_UserManager_contains__username_str]
+[#_UserManager_contains_username_str]
 ==== contains
 
 [source,python]
@@ -55,7 +55,7 @@ a| `username` a| The user name to be checked a| `str` a|
 driver.users.contains(username)
 ----
 
-[#_UserManager_create__username_str__password_str]
+[#_UserManager_create_username_str_password_str]
 ==== create
 
 [source,python]
@@ -86,7 +86,7 @@ a| `password` a| The password of the user to be created a| `str` a|
 driver.users.create(username, password)
 ----
 
-[#_UserManager_delete__username_str]
+[#_UserManager_delete_username_str]
 ==== delete
 
 [source,python]
@@ -116,7 +116,7 @@ a| `username` a| The name of the user to be deleted a| `str` a|
 driver.users.delete(username)
 ----
 
-[#_UserManager_get__username_str]
+[#_UserManager_get_username_str]
 ==== get
 
 [source,python]
@@ -146,7 +146,7 @@ a| `username` a| The name of the user to retrieve a| `str` a|
 driver.users.get(username)
 ----
 
-[#_UserManager_password_set__username_str__password_str]
+[#_UserManager_password_set_username_str_password_str]
 ==== password_set
 
 [source,python]
diff --git a/python/docs/data/Attribute.adoc b/docs/modules/ROOT/partials/python/data/Attribute.adoc
similarity index 90%
rename from python/docs/data/Attribute.adoc
rename to docs/modules/ROOT/partials/python/data/Attribute.adoc
index 2b86ae16f1..b04fdc763f 100644
--- a/python/docs/data/Attribute.adoc
+++ b/docs/modules/ROOT/partials/python/data/Attribute.adoc
@@ -10,7 +10,7 @@ Attribute is an instance of the attribute type and has a value. This value is fi
 Attributes can be uniquely addressed by their type and value.
 
 // tag::methods[]
-[#_Attribute_as_attribute__]
+[#_Attribute_as_attribute_]
 ==== as_attribute
 
 [source,python]
@@ -31,7 +31,7 @@ Casts the concept to ``Attribute``.
 attribute.as_attribute()
 ----
 
-[#_Attribute_as_boolean__]
+[#_Attribute_as_boolean_]
 ==== as_boolean
 
 [source,python]
@@ -52,7 +52,7 @@ Returns a ``boolean`` value of the attribute. If the value has another type, rai
 attribute.as_boolean()
 ----
 
-[#_Attribute_as_datetime__]
+[#_Attribute_as_datetime_]
 ==== as_datetime
 
 [source,python]
@@ -73,7 +73,7 @@ Returns a ``datetime`` value of the attribute. If the value has another type, ra
 attribute.as_boolean()
 ----
 
-[#_Attribute_as_double__]
+[#_Attribute_as_double_]
 ==== as_double
 
 [source,python]
@@ -94,7 +94,7 @@ Returns a ``double`` value of the attribute. If the value has another type, rais
 attribute.as_boolean()
 ----
 
-[#_Attribute_as_long__]
+[#_Attribute_as_long_]
 ==== as_long
 
 [source,python]
@@ -115,7 +115,7 @@ Returns a ``long`` value of the attribute. If the value has another type, raises
 attribute.as_long()
 ----
 
-[#_Attribute_as_string__]
+[#_Attribute_as_string_]
 ==== as_string
 
 [source,python]
@@ -136,7 +136,7 @@ Returns a ``string`` value of the attribute. If the value has another type, rais
 attribute.as_boolean()
 ----
 
-[#_Attribute_get_owners__transaction_TypeDBTransaction__owner_type_ThingType__None]
+[#_Attribute_get_owners_transaction_TypeDBTransaction_owner_type_ThingType_None]
 ==== get_owners
 
 [source,python]
@@ -168,7 +168,7 @@ attribute.get_owners(transaction)
 attribute.get_owners(transaction, owner_type)
 ----
 
-[#_Attribute_get_type__]
+[#_Attribute_get_type_]
 ==== get_type
 
 [source,python]
@@ -189,7 +189,7 @@ Retrieves the type which this ``Attribute`` belongs to.
 attribute.get_type()
 ----
 
-[#_Attribute_get_value__]
+[#_Attribute_get_value_]
 ==== get_value
 
 [source,python]
@@ -210,7 +210,7 @@ Retrieves the value which the ``Attribute`` instance holds.
 attribute.get_value()
 ----
 
-[#_Attribute_get_value_type__]
+[#_Attribute_get_value_type_]
 ==== get_value_type
 
 [source,python]
@@ -231,7 +231,7 @@ Retrieves the type of the value which the ``Attribute`` instance holds.
 attribute.get_value_type()
 ----
 
-[#_Attribute_is_attribute__]
+[#_Attribute_is_attribute_]
 ==== is_attribute
 
 [source,python]
@@ -252,7 +252,7 @@ Checks if the concept is an ``Attribute``.
 attribute.is_attribute()
 ----
 
-[#_Attribute_is_boolean__]
+[#_Attribute_is_boolean_]
 ==== is_boolean
 
 [source,python]
@@ -273,7 +273,7 @@ Returns ``True`` if the attribute value is of type ``boolean``. Otherwise, retur
 attribute.is_boolean()
 ----
 
-[#_Attribute_is_datetime__]
+[#_Attribute_is_datetime_]
 ==== is_datetime
 
 [source,python]
@@ -294,7 +294,7 @@ Returns ``True`` if the attribute value is of type ``datetime``. Otherwise, retu
 attribute.is_datetime()
 ----
 
-[#_Attribute_is_double__]
+[#_Attribute_is_double_]
 ==== is_double
 
 [source,python]
@@ -315,7 +315,7 @@ Returns ``True`` if the attribute value is of type ``double``. Otherwise, return
 attribute.is_double()
 ----
 
-[#_Attribute_is_long__]
+[#_Attribute_is_long_]
 ==== is_long
 
 [source,python]
@@ -336,7 +336,7 @@ Returns ``True`` if the attribute value is of type ``long``. Otherwise, returns
 attribute.is_long()
 ----
 
-[#_Attribute_is_string__]
+[#_Attribute_is_string_]
 ==== is_string
 
 [source,python]
diff --git a/python/docs/data/Entity.adoc b/docs/modules/ROOT/partials/python/data/Entity.adoc
similarity index 93%
rename from python/docs/data/Entity.adoc
rename to docs/modules/ROOT/partials/python/data/Entity.adoc
index b358991d60..df3267d8b5 100644
--- a/python/docs/data/Entity.adoc
+++ b/docs/modules/ROOT/partials/python/data/Entity.adoc
@@ -10,7 +10,7 @@ Instance of data of an entity type, representing a standalone object that exists
 Entity does not have a value. It is usually addressed by its ownership over attribute instances and/or roles played in relation instances.
 
 // tag::methods[]
-[#_Entity_as_entity__]
+[#_Entity_as_entity_]
 ==== as_entity
 
 [source,python]
@@ -31,7 +31,7 @@ Casts the concept to ``Entity``.
 entity.as_entity()
 ----
 
-[#_Entity_get_type__]
+[#_Entity_get_type_]
 ==== get_type
 
 [source,python]
@@ -52,7 +52,7 @@ Retrieves the type which this ``Entity`` belongs to.
 entity.get_type()
 ----
 
-[#_Entity_is_entity__]
+[#_Entity_is_entity_]
 ==== is_entity
 
 [source,python]
diff --git a/python/docs/data/Relation.adoc b/docs/modules/ROOT/partials/python/data/Relation.adoc
similarity index 89%
rename from python/docs/data/Relation.adoc
rename to docs/modules/ROOT/partials/python/data/Relation.adoc
index 13a3da00a4..373aa3ce83 100644
--- a/python/docs/data/Relation.adoc
+++ b/docs/modules/ROOT/partials/python/data/Relation.adoc
@@ -8,7 +8,7 @@
 Relation is an instance of a relation type and can be uniquely addressed by a combination of its type, owned attributes and role players.
 
 // tag::methods[]
-[#_Relation_add_player__transaction_TypeDBTransaction__role_type_RoleType__player_Thing]
+[#_Relation_add_player_transaction_TypeDBTransaction_role_type_RoleType_player_Thing]
 ==== add_player
 
 [source,python]
@@ -40,7 +40,7 @@ a| `player` a| The thing to play the role a| `Thing` a|
 relation.add_player(transaction, role_type, player).resolve()
 ----
 
-[#_Relation_as_relation__]
+[#_Relation_as_relation_]
 ==== as_relation
 
 [source,python]
@@ -61,7 +61,7 @@ Casts the concept to ``Relation``.
 relation.as_relation()
 ----
 
-[#_Relation_get_players__transaction_TypeDBTransaction]
+[#_Relation_get_players_transaction_TypeDBTransaction]
 ==== get_players
 
 [source,python]
@@ -91,7 +91,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction` a|
 relation.get_players(transaction)
 ----
 
-[#_Relation_get_players_by_role_type__transaction_TypeDBTransaction__role_types_RoleType]
+[#_Relation_get_players_by_role_type_transaction_TypeDBTransaction_role_types_RoleType]
 ==== get_players_by_role_type
 
 [source,python]
@@ -123,7 +123,7 @@ relation.get_players_by_role_type(transaction)
 relation.get_players_by_role_type(transaction, role_type1, role_type2)
 ----
 
-[#_Relation_get_relating__transaction_TypeDBTransaction]
+[#_Relation_get_relating_transaction_TypeDBTransaction]
 ==== get_relating
 
 [source,python]
@@ -153,7 +153,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction` a|
 relation.get_relating(transaction)
 ----
 
-[#_Relation_get_type__]
+[#_Relation_get_type_]
 ==== get_type
 
 [source,python]
@@ -174,7 +174,7 @@ Retrieves the type which this ``Relation`` belongs to.
 relation.get_type()
 ----
 
-[#_Relation_is_relation__]
+[#_Relation_is_relation_]
 ==== is_relation
 
 [source,python]
@@ -195,7 +195,7 @@ Checks if the concept is a ``Relation``.
 relation.is_relation()
 ----
 
-[#_Relation_remove_player__transaction_TypeDBTransaction__role_type_RoleType__player_Thing]
+[#_Relation_remove_player_transaction_TypeDBTransaction_role_type_RoleType_player_Thing]
 ==== remove_player
 
 [source,python]
diff --git a/python/docs/data/Thing.adoc b/docs/modules/ROOT/partials/python/data/Thing.adoc
similarity index 89%
rename from python/docs/data/Thing.adoc
rename to docs/modules/ROOT/partials/python/data/Thing.adoc
index 3635e10dd4..204b5c89e0 100644
--- a/python/docs/data/Thing.adoc
+++ b/docs/modules/ROOT/partials/python/data/Thing.adoc
@@ -6,7 +6,7 @@
 * `Concept`
 
 // tag::methods[]
-[#_Thing_as_thing__]
+[#_Thing_as_thing_]
 ==== as_thing
 
 [source,python]
@@ -27,7 +27,7 @@ Casts the concept to ``Thing``.
 thing.as_thing()
 ----
 
-[#_Thing_delete__transaction_TypeDBTransaction]
+[#_Thing_delete_transaction_TypeDBTransaction]
 ==== delete
 
 [source,python]
@@ -57,7 +57,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction` a|
 thing.delete(transaction).resolve()
 ----
 
-[#_Thing_get_has__transaction_TypeDBTransaction__attribute_type_AttributeType__attribute_types_list_AttributeType___annotations_set_Annotation_]
+[#_Thing_get_has_transaction_TypeDBTransaction_attribute_type_AttributeType_attribute_types_list_AttributeType_annotations_set_Annotation_]
 ==== get_has
 
 [source,python]
@@ -92,7 +92,7 @@ thing.get_has(transaction, attribute_type=attribute_type,
               annotations=set(Annotation.key()))
 ----
 
-[#_Thing_get_iid__]
+[#_Thing_get_iid_]
 ==== get_iid
 
 [source,python]
@@ -113,7 +113,7 @@ Retrieves the unique id of the ``Thing``.
 thing.get_iid()
 ----
 
-[#_Thing_get_playing__transaction_TypeDBTransaction]
+[#_Thing_get_playing_transaction_TypeDBTransaction]
 ==== get_playing
 
 [source,python]
@@ -143,7 +143,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction` a|
 thing.get_playing(transaction)
 ----
 
-[#_Thing_get_relations__transaction_TypeDBTransaction__role_types_RoleType]
+[#_Thing_get_relations_transaction_TypeDBTransaction_role_types_RoleType]
 ==== get_relations
 
 [source,python]
@@ -174,7 +174,7 @@ a| `role_types` a| 0 or more role types to filter the relations by. a| `RoleType
 thing.get_relations(transaction, role_types)
 ----
 
-[#_Thing_get_type__]
+[#_Thing_get_type_]
 ==== get_type
 
 [source,python]
@@ -195,7 +195,7 @@ Retrieves the type which this ``Thing`` belongs to.
 thing.get_type()
 ----
 
-[#_Thing_is_deleted__transaction_TypeDBTransaction]
+[#_Thing_is_deleted_transaction_TypeDBTransaction]
 ==== is_deleted
 
 [source,python]
@@ -225,7 +225,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction` a|
 thing.is_deleted(transaction).resolve()
 ----
 
-[#_Thing_is_inferred__]
+[#_Thing_is_inferred_]
 ==== is_inferred
 
 [source,python]
@@ -246,7 +246,7 @@ Checks if this ``Thing`` is inferred by a [Reasoning Rule].
 thing.is_inferred()
 ----
 
-[#_Thing_is_thing__]
+[#_Thing_is_thing_]
 ==== is_thing
 
 [source,python]
@@ -267,7 +267,7 @@ Checks if the concept is a ``Thing``.
 thing.is_thing()
 ----
 
-[#_Thing_set_has__transaction_TypeDBTransaction__attribute_Attribute]
+[#_Thing_set_has_transaction_TypeDBTransaction_attribute_Attribute]
 ==== set_has
 
 [source,python]
@@ -298,7 +298,7 @@ a| `attribute` a| The ``Attribute`` to be owned by this ``Thing``. a| `Attribute
 thing.set_has(transaction, attribute).resolve()
 ----
 
-[#_Thing_unset_has__transaction_TypeDBTransaction__attribute_Attribute]
+[#_Thing_unset_has_transaction_TypeDBTransaction_attribute_Attribute]
 ==== unset_has
 
 [source,python]
diff --git a/python/docs/data/Value.adoc b/docs/modules/ROOT/partials/python/data/Value.adoc
similarity index 92%
rename from python/docs/data/Value.adoc
rename to docs/modules/ROOT/partials/python/data/Value.adoc
index cd61ca5b0f..f384fc9e74 100644
--- a/python/docs/data/Value.adoc
+++ b/docs/modules/ROOT/partials/python/data/Value.adoc
@@ -6,7 +6,7 @@
 * `Concept`
 
 // tag::methods[]
-[#_Value_as_boolean__]
+[#_Value_as_boolean_]
 ==== as_boolean
 
 [source,python]
@@ -27,7 +27,7 @@ Returns a ``boolean`` value of this value concept. If the value has another type
 value.as_boolean()
 ----
 
-[#_Value_as_datetime__]
+[#_Value_as_datetime_]
 ==== as_datetime
 
 [source,python]
@@ -48,7 +48,7 @@ Returns a timezone naive ``datetime`` value of this value concept. If the value
 value.as_datetime()
 ----
 
-[#_Value_as_double__]
+[#_Value_as_double_]
 ==== as_double
 
 [source,python]
@@ -69,7 +69,7 @@ Returns a ``double`` value of this value concept. If the value has another type,
 value.as_double()
 ----
 
-[#_Value_as_long__]
+[#_Value_as_long_]
 ==== as_long
 
 [source,python]
@@ -90,7 +90,7 @@ Returns a ``long`` value of this value concept. If the value has another type, r
 value.as_long()
 ----
 
-[#_Value_as_string__]
+[#_Value_as_string_]
 ==== as_string
 
 [source,python]
@@ -111,7 +111,7 @@ Returns a ``string`` value of this value concept. If the value has another type,
 value.as_string()
 ----
 
-[#_Value_as_value__]
+[#_Value_as_value_]
 ==== as_value
 
 [source,python]
@@ -132,7 +132,7 @@ Casts the concept to ``Value``.
 value.as_value()
 ----
 
-[#_Value_get__]
+[#_Value_get_]
 ==== get
 
 [source,python]
@@ -153,7 +153,7 @@ Retrieves the value which this value concept holds.
 value.get()
 ----
 
-[#_Value_get_value_type__]
+[#_Value_get_value_type_]
 ==== get_value_type
 
 [source,python]
@@ -174,7 +174,7 @@ Retrieves the ``ValueType`` of this value concept.
 value.get_value_type()
 ----
 
-[#_Value_is_boolean__]
+[#_Value_is_boolean_]
 ==== is_boolean
 
 [source,python]
@@ -195,7 +195,7 @@ Returns ``True`` if the value which this value concept holds is of type ``boolea
 value.is_boolean()
 ----
 
-[#_Value_is_datetime__]
+[#_Value_is_datetime_]
 ==== is_datetime
 
 [source,python]
@@ -216,7 +216,7 @@ Returns ``True`` if the value which this value concept holds is of type ``dateti
 value.is_datetime()
 ----
 
-[#_Value_is_double__]
+[#_Value_is_double_]
 ==== is_double
 
 [source,python]
@@ -237,7 +237,7 @@ Returns ``True`` if the value which this value concept holds is of type ``double
 value.is_double()
 ----
 
-[#_Value_is_long__]
+[#_Value_is_long_]
 ==== is_long
 
 [source,python]
@@ -258,7 +258,7 @@ Returns ``True`` if the value which this value concept holds is of type ``long``
 value.is_long()
 ----
 
-[#_Value_is_string__]
+[#_Value_is_string_]
 ==== is_string
 
 [source,python]
@@ -279,7 +279,7 @@ Returns ``True`` if the value which this value concept holds is of type ``string
 value.is_string()
 ----
 
-[#_Value_is_value__]
+[#_Value_is_value_]
 ==== is_value
 
 [source,python]
diff --git a/python/docs/errors/TypeDBDriverException.adoc b/docs/modules/ROOT/partials/python/errors/TypeDBDriverException.adoc
similarity index 100%
rename from python/docs/errors/TypeDBDriverException.adoc
rename to docs/modules/ROOT/partials/python/errors/TypeDBDriverException.adoc
diff --git a/python/docs/logic/LogicManager.adoc b/docs/modules/ROOT/partials/python/logic/LogicManager.adoc
similarity index 92%
rename from python/docs/logic/LogicManager.adoc
rename to docs/modules/ROOT/partials/python/logic/LogicManager.adoc
index 49da570916..7626421ace 100644
--- a/python/docs/logic/LogicManager.adoc
+++ b/docs/modules/ROOT/partials/python/logic/LogicManager.adoc
@@ -4,7 +4,7 @@
 Provides methods for manipulating rules in the database.
 
 // tag::methods[]
-[#_LogicManager_get_rule__label_str]
+[#_LogicManager_get_rule_label_str]
 ==== get_rule
 
 [source,python]
@@ -34,7 +34,7 @@ a| `label` a| The label of the Rule to create or retrieve a| `str` a|
 transaction.logic.get_rule(label).resolve()
 ----
 
-[#_LogicManager_get_rules__]
+[#_LogicManager_get_rules_]
 ==== get_rules
 
 [source,python]
@@ -55,7 +55,7 @@ Retrieves all rules.
 transaction.logic.get_rules()
 ----
 
-[#_LogicManager_put_rule__label_str__when_str__then_str]
+[#_LogicManager_put_rule_label_str_when_str_then_str]
 ==== put_rule
 
 [source,python]
diff --git a/python/docs/logic/Rule.adoc b/docs/modules/ROOT/partials/python/logic/Rule.adoc
similarity index 92%
rename from python/docs/logic/Rule.adoc
rename to docs/modules/ROOT/partials/python/logic/Rule.adoc
index 40da9c0c1e..56325f8834 100644
--- a/python/docs/logic/Rule.adoc
+++ b/docs/modules/ROOT/partials/python/logic/Rule.adoc
@@ -17,7 +17,7 @@ a| `when` a| `str` a| The statements that constitute the ‘when’ of the rule.
 // end::properties[]
 
 // tag::methods[]
-[#_Rule_delete__transaction_TypeDBTransaction]
+[#_Rule_delete_transaction_TypeDBTransaction]
 ==== delete
 
 [source,python]
@@ -47,7 +47,7 @@ a| `transaction` a| The current ``Transaction`` a| `TypeDBTransaction` a|
 rule.delete(transaction).resolve()
 ----
 
-[#_Rule_is_deleted__transaction_TypeDBTransaction]
+[#_Rule_is_deleted_transaction_TypeDBTransaction]
 ==== is_deleted
 
 [source,python]
@@ -77,7 +77,7 @@ a| `transaction` a| The current ``Transaction`` a| `TypeDBTransaction` a|
 rule.is_deleted(transaction).resolve()
 ----
 
-[#_Rule_set_label__transaction_TypeDBTransaction__new_label_str]
+[#_Rule_set_label_transaction_TypeDBTransaction_new_label_str]
 ==== set_label
 
 [source,python]
diff --git a/python/docs/schema/Annotation.adoc b/docs/modules/ROOT/partials/python/schema/Annotation.adoc
similarity index 90%
rename from python/docs/schema/Annotation.adoc
rename to docs/modules/ROOT/partials/python/schema/Annotation.adoc
index 22dadb9087..b84980b557 100644
--- a/python/docs/schema/Annotation.adoc
+++ b/docs/modules/ROOT/partials/python/schema/Annotation.adoc
@@ -2,7 +2,7 @@
 === Annotation
 
 // tag::methods[]
-[#_Annotation_is_key__]
+[#_Annotation_is_key_]
 ==== is_key
 
 [source,python]
@@ -23,7 +23,7 @@ Checks if this ``Annotation`` is a ``@key`` annotation.
 annotation.is_key()
 ----
 
-[#_Annotation_is_unique__]
+[#_Annotation_is_unique_]
 ==== is_unique
 
 [source,python]
@@ -44,7 +44,7 @@ Checks if this ``Annotation`` is a ``@unique`` annotation.
 annotation.is_unique()
 ----
 
-[#_Annotation_key__]
+[#_Annotation_key_]
 ==== key
 
 [source,python]
@@ -65,7 +65,7 @@ Produces a ``@key`` annotation.
 Annotation.key()
 ----
 
-[#_Annotation_unique__]
+[#_Annotation_unique_]
 ==== unique
 
 [source,python]
diff --git a/python/docs/schema/AttributeType.adoc b/docs/modules/ROOT/partials/python/schema/AttributeType.adoc
similarity index 90%
rename from python/docs/schema/AttributeType.adoc
rename to docs/modules/ROOT/partials/python/schema/AttributeType.adoc
index 77e0377fa4..3d1bdf0109 100644
--- a/python/docs/schema/AttributeType.adoc
+++ b/docs/modules/ROOT/partials/python/schema/AttributeType.adoc
@@ -14,7 +14,7 @@ Other types can own an attribute type. That means that instances of these other
 Multiple types can own the same attribute type, and different instances of the same type or different types can share ownership of the same attribute instance.
 
 // tag::methods[]
-[#_AttributeType_as_attribute_type__]
+[#_AttributeType_as_attribute_type_]
 ==== as_attribute_type
 
 [source,python]
@@ -35,7 +35,7 @@ Casts the concept to ``AttributeType``.
 attribute.as_attribute_type()
 ----
 
-[#_AttributeType_get__transaction_TypeDBTransaction__value_Value__bool__int__float__str__datetime]
+[#_AttributeType_get_transaction_TypeDBTransaction_value_Value_bool_int_float_str_datetime]
 ==== get
 
 [source,python]
@@ -66,7 +66,7 @@ a| `value` a| ``Attribute``’s value a| `Value \| bool \| int \| float \| str \
 attribute = attribute_type.get(transaction, value).resolve()
 ----
 
-[#_AttributeType_get_instances__transaction_TypeDBTransaction__transitivity_Transitivity]
+[#_AttributeType_get_instances_transaction_TypeDBTransaction_transitivity_Transitivity]
 ==== get_instances
 
 [source,python]
@@ -98,7 +98,7 @@ attribute_type.get_instances(transaction)
 attribute_type.get_instances(transaction, Transitivity.EXPLICIT)
 ----
 
-[#_AttributeType_get_owners__transaction_TypeDBTransaction__annotations_set_Annotation___None__transitivity_Transitivity]
+[#_AttributeType_get_owners_transaction_TypeDBTransaction_annotations_set_Annotation_None_transitivity_Transitivity]
 ==== get_owners
 
 [source,python]
@@ -131,7 +131,7 @@ attribute_type.get_owners(transaction)
 attribute_type.get_owners(transaction, annotations=Annotation.unique(), transitivity=Transitivity.EXPLICIT)
 ----
 
-[#_AttributeType_get_regex__transaction_TypeDBTransaction]
+[#_AttributeType_get_regex_transaction_TypeDBTransaction]
 ==== get_regex
 
 [source,python]
@@ -161,7 +161,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction` a|
 attribute_type.get_regex(transaction).resolve()
 ----
 
-[#_AttributeType_get_subtypes_with_value_type__transaction_TypeDBTransaction__value_type_ValueType__transitivity_Transitivity]
+[#_AttributeType_get_subtypes_with_value_type_transaction_TypeDBTransaction_value_type_ValueType_transitivity_Transitivity]
 ==== get_subtypes_with_value_type
 
 [source,python]
@@ -195,7 +195,7 @@ attribute_type.get_subtypes_with_value_type(transaction, value_type,
                                             Transitivity.EXPLICIT)
 ----
 
-[#_AttributeType_get_value_type__]
+[#_AttributeType_get_value_type_]
 ==== get_value_type
 
 [source,python]
@@ -216,7 +216,7 @@ Retrieves the ``ValueType`` of this ``AttributeType``.
 attribute_type.get_value_type()
 ----
 
-[#_AttributeType_is_attribute_type__]
+[#_AttributeType_is_attribute_type_]
 ==== is_attribute_type
 
 [source,python]
@@ -237,7 +237,7 @@ Checks if the concept is an ``AttributeType``.
 attribute.is_attribute_type()
 ----
 
-[#_AttributeType_is_boolean__]
+[#_AttributeType_is_boolean_]
 ==== is_boolean
 
 [source,python]
@@ -258,7 +258,7 @@ Returns ``True`` if the value for attributes of this type is of type ``boolean``
 attribute_type.is_boolean()
 ----
 
-[#_AttributeType_is_datetime__]
+[#_AttributeType_is_datetime_]
 ==== is_datetime
 
 [source,python]
@@ -279,7 +279,7 @@ Returns ``True`` if the value for attributes of this type is of type ``datetime`
 attribute_type.is_datetime()
 ----
 
-[#_AttributeType_is_double__]
+[#_AttributeType_is_double_]
 ==== is_double
 
 [source,python]
@@ -300,7 +300,7 @@ Returns ``True`` if the value for attributes of this type is of type ``double``.
 attribute_type.is_double()
 ----
 
-[#_AttributeType_is_long__]
+[#_AttributeType_is_long_]
 ==== is_long
 
 [source,python]
@@ -321,7 +321,7 @@ Returns ``True`` if the value for attributes of this type is of type ``long``. O
 attribute_type.is_long()
 ----
 
-[#_AttributeType_is_string__]
+[#_AttributeType_is_string_]
 ==== is_string
 
 [source,python]
@@ -342,7 +342,7 @@ Returns ``True`` if the value for attributes of this type is of type ``string``.
 attribute_type.is_string()
 ----
 
-[#_AttributeType_put__transaction_TypeDBTransaction__value_Value__bool__int__float__str__datetime]
+[#_AttributeType_put_transaction_TypeDBTransaction_value_Value_bool_int_float_str_datetime]
 ==== put
 
 [source,python]
@@ -373,7 +373,7 @@ a| `value` a| New ``Attribute``’s value (datetime values are treated as timezo
 attribute = attribute_type.put(transaction, value).resolve()
 ----
 
-[#_AttributeType_set_regex__transaction_TypeDBTransaction__regex_str]
+[#_AttributeType_set_regex_transaction_TypeDBTransaction_regex_str]
 ==== set_regex
 
 [source,python]
@@ -406,7 +406,7 @@ a| `regex` a| Regular expression a| `str` a|
 attribute_type.set_regex(transaction, regex).resolve()
 ----
 
-[#_AttributeType_set_supertype__transaction_TypeDBTransaction__super_attribute_type_AttributeType]
+[#_AttributeType_set_supertype_transaction_TypeDBTransaction_super_attribute_type_AttributeType]
 ==== set_supertype
 
 [source,python]
@@ -437,7 +437,7 @@ a| `super_attribute_type` a| The ``AttributeType`` to set as the supertype of th
 attribute_type.set_supertype(transaction, super_attribute_type).resolve()
 ----
 
-[#_AttributeType_unset_regex__transaction_TypeDBTransaction]
+[#_AttributeType_unset_regex_transaction_TypeDBTransaction]
 ==== unset_regex
 
 [source,python]
diff --git a/python/docs/schema/EntityType.adoc b/docs/modules/ROOT/partials/python/schema/EntityType.adoc
similarity index 89%
rename from python/docs/schema/EntityType.adoc
rename to docs/modules/ROOT/partials/python/schema/EntityType.adoc
index 2400261f27..c236646085 100644
--- a/python/docs/schema/EntityType.adoc
+++ b/docs/modules/ROOT/partials/python/schema/EntityType.adoc
@@ -8,7 +8,7 @@
 Entity types represent the classification of independent objects in the data model of the business domain.
 
 // tag::methods[]
-[#_EntityType_as_entity_type__]
+[#_EntityType_as_entity_type_]
 ==== as_entity_type
 
 [source,python]
@@ -29,7 +29,7 @@ Casts the concept to ``EntityType``.
 entity_type.as_entity_type()
 ----
 
-[#_EntityType_create__transaction_TypeDBTransaction]
+[#_EntityType_create_transaction_TypeDBTransaction]
 ==== create
 
 [source,python]
@@ -59,7 +59,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction` a|
 entity_type.create(transaction).resolve()
 ----
 
-[#_EntityType_get_instances__transaction_TypeDBTransaction__transitivity_Transitivity]
+[#_EntityType_get_instances_transaction_TypeDBTransaction_transitivity_Transitivity]
 ==== get_instances
 
 [source,python]
@@ -90,7 +90,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and indirect instanc
 entity_type.get_instances(transaction, transitivity)
 ----
 
-[#_EntityType_get_subtypes__transaction_TypeDBTransaction__transitivity_Transitivity]
+[#_EntityType_get_subtypes_transaction_TypeDBTransaction_transitivity_Transitivity]
 ==== get_subtypes
 
 [source,python]
@@ -121,7 +121,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and indirect subtype
 entity_type.get_subtypes(transaction, transitivity)
 ----
 
-[#_EntityType_is_entity_type__]
+[#_EntityType_is_entity_type_]
 ==== is_entity_type
 
 [source,python]
@@ -142,7 +142,7 @@ Checks if the concept is an ``EntityType``.
 entity_type.is_entity_type()
 ----
 
-[#_EntityType_set_supertype__transaction_TypeDBTransaction__super_entity_type_EntityType]
+[#_EntityType_set_supertype_transaction_TypeDBTransaction_super_entity_type_EntityType]
 ==== set_supertype
 
 [source,python]
diff --git a/python/docs/schema/Label.adoc b/docs/modules/ROOT/partials/python/schema/Label.adoc
similarity index 96%
rename from python/docs/schema/Label.adoc
rename to docs/modules/ROOT/partials/python/schema/Label.adoc
index 7addea50cf..610f77b13c 100644
--- a/python/docs/schema/Label.adoc
+++ b/docs/modules/ROOT/partials/python/schema/Label.adoc
@@ -18,7 +18,7 @@ a| `scope` a| `str \| None` a| The scope part of the label
 // end::properties[]
 
 // tag::methods[]
-[#_Label_of__args_str]
+[#_Label_of_args_str]
 ==== of
 
 [source,python]
@@ -49,7 +49,7 @@ Label.of("entity")
 Label.of("relation", "role")
 ----
 
-[#_Label_scoped_name__]
+[#_Label_scoped_name_]
 ==== scoped_name
 
 [source,python]
diff --git a/python/docs/schema/RelationType.adoc b/docs/modules/ROOT/partials/python/schema/RelationType.adoc
similarity index 89%
rename from python/docs/schema/RelationType.adoc
rename to docs/modules/ROOT/partials/python/schema/RelationType.adoc
index 0e4a7f6362..dc1534a2ac 100644
--- a/python/docs/schema/RelationType.adoc
+++ b/docs/modules/ROOT/partials/python/schema/RelationType.adoc
@@ -12,7 +12,7 @@ Other types can play roles in relations if it’s mentioned in their definition.
 A relation type must specify at least one role.
 
 // tag::methods[]
-[#_RelationType_as_relation_type__]
+[#_RelationType_as_relation_type_]
 ==== as_relation_type
 
 [source,python]
@@ -33,7 +33,7 @@ Casts the concept to ``RelationType``.
 relation_type.as_relation_type()
 ----
 
-[#_RelationType_create__transaction_TypeDBTransaction]
+[#_RelationType_create_transaction_TypeDBTransaction]
 ==== create
 
 [source,python]
@@ -63,7 +63,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction` a|
 relation_type.create(transaction).resolve()
 ----
 
-[#_RelationType_get_instances__transaction_TypeDBTransaction__transitivity_Transitivity]
+[#_RelationType_get_instances_transaction_TypeDBTransaction_transitivity_Transitivity]
 ==== get_instances
 
 [source,python]
@@ -94,7 +94,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and indirect instanc
 relation_type.get_instances(transaction, transitivity)
 ----
 
-[#_RelationType_get_relates__transaction_TypeDBTransaction__role_label_str__None__transitivity_Transitivity]
+[#_RelationType_get_relates_transaction_TypeDBTransaction_role_label_str_None_transitivity_Transitivity]
 ==== get_relates
 
 [source,python]
@@ -127,7 +127,7 @@ relation_type.get_relates(transaction, role_label, transitivity).resolve()
 relation_type.get_relates(transaction, transitivity)
 ----
 
-[#_RelationType_get_relates_overridden__transaction_TypeDBTransaction__role_label_str]
+[#_RelationType_get_relates_overridden_transaction_TypeDBTransaction_role_label_str]
 ==== get_relates_overridden
 
 [source,python]
@@ -158,7 +158,7 @@ a| `role_label` a| Label of the role that overrides an inherited role a| `str` a
 relation_type.get_relates_overridden(transaction, role_label).resolve()
 ----
 
-[#_RelationType_get_subtypes__transaction_TypeDBTransaction__transitivity_Transitivity]
+[#_RelationType_get_subtypes_transaction_TypeDBTransaction_transitivity_Transitivity]
 ==== get_subtypes
 
 [source,python]
@@ -189,7 +189,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and indirect subtype
 relation_type.get_subtypes(transaction, transitivity)
 ----
 
-[#_RelationType_is_relation_type__]
+[#_RelationType_is_relation_type_]
 ==== is_relation_type
 
 [source,python]
@@ -210,7 +210,7 @@ Checks if the concept is a ``RelationType``.
 relation_type.is_relation_type()
 ----
 
-[#_RelationType_set_relates__transaction_TypeDBTransaction__role_label_str__overridden_label_str__None]
+[#_RelationType_set_relates_transaction_TypeDBTransaction_role_label_str_overridden_label_str_None]
 ==== set_relates
 
 [source,python]
@@ -243,7 +243,7 @@ relation_type.set_relates(transaction, role_label).resolve()
 relation_type.set_relates(transaction, role_label, overridden_label).resolve()
 ----
 
-[#_RelationType_set_supertype__transaction_TypeDBTransaction__super_relation_type_RelationType]
+[#_RelationType_set_supertype_transaction_TypeDBTransaction_super_relation_type_RelationType]
 ==== set_supertype
 
 [source,python]
@@ -274,7 +274,7 @@ a| `super_relation_type` a| The ``RelationType`` to set as the supertype of this
 relation_type.set_supertype(transaction, super_relation_type).resolve()
 ----
 
-[#_RelationType_unset_relates__transaction_TypeDBTransaction__role_label_str]
+[#_RelationType_unset_relates_transaction_TypeDBTransaction_role_label_str]
 ==== unset_relates
 
 [source,python]
diff --git a/python/docs/schema/RoleType.adoc b/docs/modules/ROOT/partials/python/schema/RoleType.adoc
similarity index 90%
rename from python/docs/schema/RoleType.adoc
rename to docs/modules/ROOT/partials/python/schema/RoleType.adoc
index 29eb5cb76d..2881e7e8b5 100644
--- a/python/docs/schema/RoleType.adoc
+++ b/docs/modules/ROOT/partials/python/schema/RoleType.adoc
@@ -10,7 +10,7 @@ Roles are special internal types used by relations. We can not create an instanc
 Roles allow a schema to enforce logical constraints on types of role players.
 
 // tag::methods[]
-[#_RoleType_as_role_type__]
+[#_RoleType_as_role_type_]
 ==== as_role_type
 
 [source,python]
@@ -31,7 +31,7 @@ Casts the concept to ``RoleType``.
 role_type.as_role_type()
 ----
 
-[#_RoleType_get_player_instances__transaction_TypeDBTransaction__transitivity_Transitivity]
+[#_RoleType_get_player_instances_transaction_TypeDBTransaction_transitivity_Transitivity]
 ==== get_player_instances
 
 [source,python]
@@ -62,7 +62,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and indirect playing
 role_type.get_player_instances(transaction, transitivity)
 ----
 
-[#_RoleType_get_player_types__transaction_TypeDBTransaction__transitivity_Transitivity]
+[#_RoleType_get_player_types_transaction_TypeDBTransaction_transitivity_Transitivity]
 ==== get_player_types
 
 [source,python]
@@ -93,7 +93,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and indirect playing
 role_type.get_player_types(transaction, transitivity)
 ----
 
-[#_RoleType_get_relation_instances__transaction_TypeDBTransaction__transitivity_Transitivity]
+[#_RoleType_get_relation_instances_transaction_TypeDBTransaction_transitivity_Transitivity]
 ==== get_relation_instances
 
 [source,python]
@@ -124,7 +124,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and indirect relatio
 role_type.get_relation_instances(transaction, transitivity)
 ----
 
-[#_RoleType_get_relation_type__transaction_TypeDBTransaction]
+[#_RoleType_get_relation_type_transaction_TypeDBTransaction]
 ==== get_relation_type
 
 [source,python]
@@ -154,7 +154,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction` a|
 role_type.get_relation_type(transaction).resolve()
 ----
 
-[#_RoleType_get_relation_types__transaction_TypeDBTransaction]
+[#_RoleType_get_relation_types_transaction_TypeDBTransaction]
 ==== get_relation_types
 
 [source,python]
@@ -184,7 +184,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction` a|
 role_type.get_relation_types(transaction)
 ----
 
-[#_RoleType_get_subtypes__transaction_TypeDBTransaction__transitivity_Transitivity]
+[#_RoleType_get_subtypes_transaction_TypeDBTransaction_transitivity_Transitivity]
 ==== get_subtypes
 
 [source,python]
@@ -215,7 +215,7 @@ a| `transitivity` a| ``Transitivity.TRANSITIVE`` for direct and indirect subtype
 role_type.get_subtypes(transaction, transitivity)
 ----
 
-[#_RoleType_get_supertype__transaction_TypeDBTransaction]
+[#_RoleType_get_supertype_transaction_TypeDBTransaction]
 ==== get_supertype
 
 [source,python]
@@ -245,7 +245,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction` a|
 role_type.get_supertype(transaction).resolve()
 ----
 
-[#_RoleType_get_supertypes__transaction_TypeDBTransaction]
+[#_RoleType_get_supertypes_transaction_TypeDBTransaction]
 ==== get_supertypes
 
 [source,python]
@@ -275,7 +275,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction` a|
 role_type.get_supertypes(transaction)
 ----
 
-[#_RoleType_is_role_type__]
+[#_RoleType_is_role_type_]
 ==== is_role_type
 
 [source,python]
diff --git a/python/docs/schema/ThingType.adoc b/docs/modules/ROOT/partials/python/schema/ThingType.adoc
similarity index 89%
rename from python/docs/schema/ThingType.adoc
rename to docs/modules/ROOT/partials/python/schema/ThingType.adoc
index 7b3eb73dae..dc66fe6f43 100644
--- a/python/docs/schema/ThingType.adoc
+++ b/docs/modules/ROOT/partials/python/schema/ThingType.adoc
@@ -6,7 +6,7 @@
 * `Type`
 
 // tag::methods[]
-[#_ThingType_get_instances__transaction_TypeDBTransaction__transitivity_Transitivity]
+[#_ThingType_get_instances_transaction_TypeDBTransaction_transitivity_Transitivity]
 ==== get_instances
 
 [source,python]
@@ -38,7 +38,7 @@ thing_type.get_instances(transaction)
 thing_type.get_instances(transaction, Transitivity.EXPLICIT)
 ----
 
-[#_ThingType_get_owns__transaction_TypeDBTransaction__value_type_ValueType__None__transitivity_Transitivity__annotations_set_Annotation___None]
+[#_ThingType_get_owns_transaction_TypeDBTransaction_value_type_ValueType_None_transitivity_Transitivity_annotations_set_Annotation_None]
 ==== get_owns
 
 [source,python]
@@ -74,7 +74,7 @@ thing_type.get_owns(transaction, value_type,
                     annotations={Annotation.key()})
 ----
 
-[#_ThingType_get_owns_overridden__transaction_TypeDBTransaction__attribute_type_AttributeType]
+[#_ThingType_get_owns_overridden_transaction_TypeDBTransaction_attribute_type_AttributeType]
 ==== get_owns_overridden
 
 [source,python]
@@ -105,7 +105,7 @@ a| `attribute_type` a| The ``AttributeType`` that overrides requested ``Attribut
 thing_type.get_owns_overridden(transaction, attribute_type).resolve()
 ----
 
-[#_ThingType_get_plays__transaction_TypeDBTransaction__transitivity_Transitivity]
+[#_ThingType_get_plays_transaction_TypeDBTransaction_transitivity_Transitivity]
 ==== get_plays
 
 [source,python]
@@ -137,7 +137,7 @@ thing_type.get_plays(transaction)
 thing_type.get_plays(transaction, Transitivity.EXPLICIT)
 ----
 
-[#_ThingType_get_plays_overridden__transaction_TypeDBTransaction__role_type_RoleType]
+[#_ThingType_get_plays_overridden_transaction_TypeDBTransaction_role_type_RoleType]
 ==== get_plays_overridden
 
 [source,python]
@@ -168,7 +168,7 @@ a| `role_type` a| The ``RoleType`` that overrides an inherited role a| `RoleType
 thing_type.get_plays_overridden(transaction, role_type).resolve()
 ----
 
-[#_ThingType_get_subtypes__transaction_TypeDBTransaction__transitivity_Transitivity]
+[#_ThingType_get_subtypes_transaction_TypeDBTransaction_transitivity_Transitivity]
 ==== get_subtypes
 
 [source,python]
@@ -200,7 +200,7 @@ thing_type.get_subtypes(transaction)
 thing_type.get_subtypes(transaction, Transitivity.EXPLICIT)
 ----
 
-[#_ThingType_get_supertype__transaction_TypeDBTransaction]
+[#_ThingType_get_supertype_transaction_TypeDBTransaction]
 ==== get_supertype
 
 [source,python]
@@ -230,7 +230,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction` a|
 thing_type.get_supertype(transaction).resolve()
 ----
 
-[#_ThingType_get_supertypes__transaction_TypeDBTransaction]
+[#_ThingType_get_supertypes_transaction_TypeDBTransaction]
 ==== get_supertypes
 
 [source,python]
@@ -260,7 +260,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction` a|
 thing_type.get_supertypes(transaction)
 ----
 
-[#_ThingType_get_syntax__transaction_TypeDBTransaction]
+[#_ThingType_get_syntax_transaction_TypeDBTransaction]
 ==== get_syntax
 
 [source,python]
@@ -290,7 +290,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction` a|
 thing_type.get_syntax(transaction).resolve()
 ----
 
-[#_ThingType_is_thing_type__]
+[#_ThingType_is_thing_type_]
 ==== is_thing_type
 
 [source,python]
@@ -311,7 +311,7 @@ Checks if the concept is a ``ThingType``.
 thing_type.is_thing_type()
 ----
 
-[#_ThingType_set_abstract__transaction_TypeDBTransaction]
+[#_ThingType_set_abstract_transaction_TypeDBTransaction]
 ==== set_abstract
 
 [source,python]
@@ -341,7 +341,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction` a|
 thing_type.set_abstract(transaction).resolve()
 ----
 
-[#_ThingType_set_owns__transaction_TypeDBTransaction__attribute_type_AttributeType__overridden_type_AttributeType__None__annotations_set_Annotation___None]
+[#_ThingType_set_owns_transaction_TypeDBTransaction_attribute_type_AttributeType_overridden_type_AttributeType_None_annotations_set_Annotation_None]
 ==== set_owns
 
 [source,python]
@@ -377,7 +377,7 @@ thing_type.set_owns(transaction, attribute_type,
                     annotations={Annotation.key()}).resolve()
 ----
 
-[#_ThingType_set_plays__transaction_TypeDBTransaction__role_type_RoleType__overriden_type_RoleType__None]
+[#_ThingType_set_plays_transaction_TypeDBTransaction_role_type_RoleType_overriden_type_RoleType_None]
 ==== set_plays
 
 [source,python]
@@ -410,7 +410,7 @@ thing_type.set_plays(transaction, role_type).resolve()
 thing_type.set_plays(transaction, role_type, overridden_type).resolve()
 ----
 
-[#_ThingType_unset_abstract__transaction_TypeDBTransaction]
+[#_ThingType_unset_abstract_transaction_TypeDBTransaction]
 ==== unset_abstract
 
 [source,python]
@@ -440,7 +440,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction` a|
 thing_type.unset_abstract(transaction).resolve()
 ----
 
-[#_ThingType_unset_owns__transaction_TypeDBTransaction__attribute_type_AttributeType]
+[#_ThingType_unset_owns_transaction_TypeDBTransaction_attribute_type_AttributeType]
 ==== unset_owns
 
 [source,python]
@@ -471,7 +471,7 @@ a| `attribute_type` a| The ``AttributeType`` to not be owned by the type. a| `At
 thing_type.unset_owns(transaction, attribute_type).resolve()
 ----
 
-[#_ThingType_unset_plays__transaction_TypeDBTransaction__role_type_RoleType]
+[#_ThingType_unset_plays_transaction_TypeDBTransaction_role_type_RoleType]
 ==== unset_plays
 
 [source,python]
diff --git a/python/docs/schema/Transitivity.adoc b/docs/modules/ROOT/partials/python/schema/Transitivity.adoc
similarity index 100%
rename from python/docs/schema/Transitivity.adoc
rename to docs/modules/ROOT/partials/python/schema/Transitivity.adoc
diff --git a/python/docs/schema/Type.adoc b/docs/modules/ROOT/partials/python/schema/Type.adoc
similarity index 90%
rename from python/docs/schema/Type.adoc
rename to docs/modules/ROOT/partials/python/schema/Type.adoc
index 79118adcf8..f4555151a7 100644
--- a/python/docs/schema/Type.adoc
+++ b/docs/modules/ROOT/partials/python/schema/Type.adoc
@@ -6,7 +6,7 @@
 * `Concept`
 
 // tag::methods[]
-[#_Type_delete__transaction_TypeDBTransaction]
+[#_Type_delete_transaction_TypeDBTransaction]
 ==== delete
 
 [source,python]
@@ -36,7 +36,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction` a|
 type_.delete(transaction).resolve()
 ----
 
-[#_Type_get_label__]
+[#_Type_get_label_]
 ==== get_label
 
 [source,python]
@@ -57,7 +57,7 @@ Retrieves the unique label of the type.
 type_.get_label()
 ----
 
-[#_Type_get_subtypes__transaction_TypeDBTransaction__transitivity_Transitivity]
+[#_Type_get_subtypes_transaction_TypeDBTransaction_transitivity_Transitivity]
 ==== get_subtypes
 
 [source,python]
@@ -89,7 +89,7 @@ type_.get_subtypes(transaction)
 type_.get_subtypes(transaction, Transitivity.EXPLICIT)
 ----
 
-[#_Type_get_supertype__transaction_TypeDBTransaction]
+[#_Type_get_supertype_transaction_TypeDBTransaction]
 ==== get_supertype
 
 [source,python]
@@ -119,7 +119,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction` a|
 type_.get_supertype(transaction).resolve()
 ----
 
-[#_Type_get_supertypes__transaction_TypeDBTransaction]
+[#_Type_get_supertypes_transaction_TypeDBTransaction]
 ==== get_supertypes
 
 [source,python]
@@ -149,7 +149,7 @@ a| `transaction` a| The current transaction a| `TypeDBTransaction` a|
 type_.get_supertypes(transaction)
 ----
 
-[#_Type_is_abstract__]
+[#_Type_is_abstract_]
 ==== is_abstract
 
 [source,python]
@@ -170,7 +170,7 @@ Checks if the type is prevented from having data instances (i.e., ``abstract``).
 type_.is_abstract()
 ----
 
-[#_Type_is_root__]
+[#_Type_is_root_]
 ==== is_root
 
 [source,python]
@@ -191,7 +191,7 @@ Checks if the type is a root type.
 type_.is_root()
 ----
 
-[#_Type_is_type__]
+[#_Type_is_type_]
 ==== is_type
 
 [source,python]
@@ -212,7 +212,7 @@ Checks if the concept is a ``Type``.
 type_.is_type()
 ----
 
-[#_Type_set_label__transaction_TypeDBTransaction__new_label_str]
+[#_Type_set_label_transaction_TypeDBTransaction_new_label_str]
 ==== set_label
 
 [source,python]
diff --git a/python/docs/schema/ValueType.adoc b/docs/modules/ROOT/partials/python/schema/ValueType.adoc
similarity index 100%
rename from python/docs/schema/ValueType.adoc
rename to docs/modules/ROOT/partials/python/schema/ValueType.adoc
diff --git a/python/docs/session/SessionType.adoc b/docs/modules/ROOT/partials/python/session/SessionType.adoc
similarity index 91%
rename from python/docs/session/SessionType.adoc
rename to docs/modules/ROOT/partials/python/session/SessionType.adoc
index 817d8a1839..739d822762 100644
--- a/python/docs/session/SessionType.adoc
+++ b/docs/modules/ROOT/partials/python/session/SessionType.adoc
@@ -23,7 +23,7 @@ a| `SCHEMA` a| `1`
 // end::enum_constants[]
 
 // tag::methods[]
-[#_SessionType_is_data__]
+[#_SessionType_is_data_]
 ==== is_data
 
 [source,python]
@@ -37,7 +37,7 @@ is_data() -> bool
 .Returns
 `bool`
 
-[#_SessionType_is_schema__]
+[#_SessionType_is_schema_]
 ==== is_schema
 
 [source,python]
diff --git a/python/docs/session/TypeDBOptions.adoc b/docs/modules/ROOT/partials/python/session/TypeDBOptions.adoc
similarity index 100%
rename from python/docs/session/TypeDBOptions.adoc
rename to docs/modules/ROOT/partials/python/session/TypeDBOptions.adoc
diff --git a/python/docs/session/TypeDBSession.adoc b/docs/modules/ROOT/partials/python/session/TypeDBSession.adoc
similarity index 91%
rename from python/docs/session/TypeDBSession.adoc
rename to docs/modules/ROOT/partials/python/session/TypeDBSession.adoc
index 8a149ec2e9..a3bc908380 100644
--- a/python/docs/session/TypeDBSession.adoc
+++ b/docs/modules/ROOT/partials/python/session/TypeDBSession.adoc
@@ -14,7 +14,7 @@ a| `type` a| `SessionType` a| The current session’s type (SCHEMA or DATA)
 // end::properties[]
 
 // tag::methods[]
-[#_TypeDBSession_close__]
+[#_TypeDBSession_close_]
 ==== close
 
 [source,python]
@@ -35,7 +35,7 @@ Closes the session. Before opening a new session, the session currently open sho
 session.close()
 ----
 
-[#_TypeDBSession_database_name__]
+[#_TypeDBSession_database_name_]
 ==== database_name
 
 [source,python]
@@ -56,7 +56,7 @@ Returns the name of the database of the session.
 session.database_name()
 ----
 
-[#_TypeDBSession_is_open__]
+[#_TypeDBSession_is_open_]
 ==== is_open
 
 [source,python]
@@ -77,7 +77,7 @@ Checks whether this session is open.
 session.is_open()
 ----
 
-[#_TypeDBSession_on_close__function_callable]
+[#_TypeDBSession_on_close_function_callable]
 ==== on_close
 
 [source,python]
@@ -107,7 +107,7 @@ a| `function` a| The callback function. a| `callable` a|
 session.on_close(function)
 ----
 
-[#_TypeDBSession_on_reopen__function_callable]
+[#_TypeDBSession_on_reopen_function_callable]
 ==== on_reopen
 
 [source,python]
@@ -137,7 +137,7 @@ a| `function` a| The callback function. a| `callable` a|
 session.on_close(function)
 ----
 
-[#_TypeDBSession_transaction__transaction_type_TransactionType__options_TypeDBOptions]
+[#_TypeDBSession_transaction_transaction_type_TransactionType_options_TypeDBOptions]
 ==== transaction
 
 [source,python]
diff --git a/python/docs/transaction/QueryManager.adoc b/docs/modules/ROOT/partials/python/transaction/QueryManager.adoc
similarity index 89%
rename from python/docs/transaction/QueryManager.adoc
rename to docs/modules/ROOT/partials/python/transaction/QueryManager.adoc
index 823e49941f..c91a1c0ce4 100644
--- a/python/docs/transaction/QueryManager.adoc
+++ b/docs/modules/ROOT/partials/python/transaction/QueryManager.adoc
@@ -4,7 +4,7 @@
 Provides methods for executing TypeQL queries in the transaction.
 
 // tag::methods[]
-[#_QueryManager_define__query_str__options_TypeDBOptions]
+[#_QueryManager_define_query_str_options_TypeDBOptions]
 ==== define
 
 [source,python]
@@ -35,7 +35,7 @@ a| `options` a| Specify query options a| `TypeDBOptions` a| `None`
 transaction.query.define(query, options).resolve()
 ----
 
-[#_QueryManager_delete__query_str__options_TypeDBOptions__None]
+[#_QueryManager_delete_query_str_options_TypeDBOptions_None]
 ==== delete
 
 [source,python]
@@ -66,7 +66,7 @@ a| `options` a| Specify query options a| `TypeDBOptions \| None` a| `None`
 transaction.query.delete(query, options).resolve()
 ----
 
-[#_QueryManager_explain__explainable_ConceptMap_Explainable__options_TypeDBOptions__None]
+[#_QueryManager_explain_explainable_ConceptMap_Explainable_options_TypeDBOptions_None]
 ==== explain
 
 [source,python]
@@ -97,7 +97,7 @@ a| `options` a| Specify query options a| `TypeDBOptions \| None` a| `None`
 transaction.query.explain(explainable, options)
 ----
 
-[#_QueryManager_fetch__query_str__options_TypeDBOptions__None]
+[#_QueryManager_fetch_query_str_options_TypeDBOptions_None]
 ==== fetch
 
 [source,python]
@@ -128,7 +128,7 @@ a| `options` a| Specify query options a| `TypeDBOptions \| None` a| `None`
 transaction.query.fetch(query, options)
 ----
 
-[#_QueryManager_get__query_str__options_TypeDBOptions__None]
+[#_QueryManager_get_query_str_options_TypeDBOptions_None]
 ==== get
 
 [source,python]
@@ -159,7 +159,7 @@ a| `options` a| Specify query options a| `TypeDBOptions \| None` a| `None`
 transaction.query.get(query, options)
 ----
 
-[#_QueryManager_get_aggregate__query_str__options_TypeDBOptions__None]
+[#_QueryManager_get_aggregate_query_str_options_TypeDBOptions_None]
 ==== get_aggregate
 
 [source,python]
@@ -190,7 +190,7 @@ a| `options` a| Specify query options a| `TypeDBOptions \| None` a| `None`
 transaction.query.get_aggregate(query, options).resolve()
 ----
 
-[#_QueryManager_get_group__query_str__options_TypeDBOptions__None]
+[#_QueryManager_get_group_query_str_options_TypeDBOptions_None]
 ==== get_group
 
 [source,python]
@@ -221,7 +221,7 @@ a| `options` a| Specify query options a| `TypeDBOptions \| None` a| `None`
 transaction.query.get_group(query, options)
 ----
 
-[#_QueryManager_get_group_aggregate__query_str__options_TypeDBOptions__None]
+[#_QueryManager_get_group_aggregate_query_str_options_TypeDBOptions_None]
 ==== get_group_aggregate
 
 [source,python]
@@ -252,7 +252,7 @@ a| `options` a| Specify query options a| `TypeDBOptions \| None` a| `None`
 transaction.query.get_group_aggregate(query, options)
 ----
 
-[#_QueryManager_insert__query_str__options_TypeDBOptions__None]
+[#_QueryManager_insert_query_str_options_TypeDBOptions_None]
 ==== insert
 
 [source,python]
@@ -283,7 +283,7 @@ a| `options` a| Specify query options a| `TypeDBOptions \| None` a| `None`
 transaction.query.insert(query, options)
 ----
 
-[#_QueryManager_undefine__query_str__options_TypeDBOptions]
+[#_QueryManager_undefine_query_str_options_TypeDBOptions]
 ==== undefine
 
 [source,python]
@@ -314,7 +314,7 @@ a| `options` a| Specify query options a| `TypeDBOptions` a| `None`
 transaction.query.undefine(query, options).resolve()
 ----
 
-[#_QueryManager_update__query_str__options_TypeDBOptions__None]
+[#_QueryManager_update_query_str_options_TypeDBOptions_None]
 ==== update
 
 [source,python]
diff --git a/python/docs/transaction/TransactionType.adoc b/docs/modules/ROOT/partials/python/transaction/TransactionType.adoc
similarity index 90%
rename from python/docs/transaction/TransactionType.adoc
rename to docs/modules/ROOT/partials/python/transaction/TransactionType.adoc
index 4053ff04d1..10a7087d8b 100644
--- a/python/docs/transaction/TransactionType.adoc
+++ b/docs/modules/ROOT/partials/python/transaction/TransactionType.adoc
@@ -23,7 +23,7 @@ a| `WRITE` a| `1`
 // end::enum_constants[]
 
 // tag::methods[]
-[#_TransactionType_is_read__]
+[#_TransactionType_is_read_]
 ==== is_read
 
 [source,python]
@@ -37,7 +37,7 @@ is_read() -> bool
 .Returns
 `bool`
 
-[#_TransactionType_is_write__]
+[#_TransactionType_is_write_]
 ==== is_write
 
 [source,python]
diff --git a/python/docs/transaction/TypeDBTransaction.adoc b/docs/modules/ROOT/partials/python/transaction/TypeDBTransaction.adoc
similarity index 92%
rename from python/docs/transaction/TypeDBTransaction.adoc
rename to docs/modules/ROOT/partials/python/transaction/TypeDBTransaction.adoc
index 1ca5c4ba4d..b20e27c889 100644
--- a/python/docs/transaction/TypeDBTransaction.adoc
+++ b/docs/modules/ROOT/partials/python/transaction/TypeDBTransaction.adoc
@@ -17,7 +17,7 @@ a| `transaction_type` a| `TransactionType` a| The transaction’s type (READ or
 // end::properties[]
 
 // tag::methods[]
-[#_TypeDBTransaction_close__]
+[#_TypeDBTransaction_close_]
 ==== close
 
 [source,python]
@@ -38,7 +38,7 @@ Closes the transaction.
 transaction.close()
 ----
 
-[#_TypeDBTransaction_commit__]
+[#_TypeDBTransaction_commit_]
 ==== commit
 
 [source,python]
@@ -59,7 +59,7 @@ Commits the changes made via this transaction to the TypeDB database. Whether or
 transaction.commit()
 ----
 
-[#_TypeDBTransaction_is_open__]
+[#_TypeDBTransaction_is_open_]
 ==== is_open
 
 [source,python]
@@ -80,7 +80,7 @@ Checks whether this transaction is open.
 transaction.is_open()
 ----
 
-[#_TypeDBTransaction_on_close__function_callable]
+[#_TypeDBTransaction_on_close_function_callable]
 ==== on_close
 
 [source,python]
@@ -110,7 +110,7 @@ a| `function` a| The callback function. a| `callable` a|
 transaction.on_close(function)
 ----
 
-[#_TypeDBTransaction_rollback__]
+[#_TypeDBTransaction_rollback_]
 ==== rollback
 
 [source,python]
diff --git a/rust/docs/answer/ConceptMap.adoc b/docs/modules/ROOT/partials/rust/answer/ConceptMap.adoc
similarity index 95%
rename from rust/docs/answer/ConceptMap.adoc
rename to docs/modules/ROOT/partials/rust/answer/ConceptMap.adoc
index dc7b100583..e93282830e 100644
--- a/rust/docs/answer/ConceptMap.adoc
+++ b/docs/modules/ROOT/partials/rust/answer/ConceptMap.adoc
@@ -26,7 +26,7 @@ a| `map` a| `HashMap` a| The ``HashMap`` where keys are query v
 // end::properties[]
 
 // tag::methods[]
-[#_struct_ConceptMap_concepts__]
+[#_struct_ConceptMap_concepts_]
 ==== concepts
 
 [source,rust]
@@ -50,7 +50,7 @@ impl Iterator
 concept_map.concepts()
 ----
 
-[#_struct_ConceptMap_get__var_name_str]
+[#_struct_ConceptMap_get_var_name_str]
 ==== get
 
 [source,rust]
diff --git a/rust/docs/answer/ConceptMapGroup.adoc b/docs/modules/ROOT/partials/rust/answer/ConceptMapGroup.adoc
similarity index 100%
rename from rust/docs/answer/ConceptMapGroup.adoc
rename to docs/modules/ROOT/partials/rust/answer/ConceptMapGroup.adoc
diff --git a/rust/docs/answer/Explainable.adoc b/docs/modules/ROOT/partials/rust/answer/Explainable.adoc
similarity index 100%
rename from rust/docs/answer/Explainable.adoc
rename to docs/modules/ROOT/partials/rust/answer/Explainable.adoc
diff --git a/rust/docs/answer/Explainables.adoc b/docs/modules/ROOT/partials/rust/answer/Explainables.adoc
similarity index 96%
rename from rust/docs/answer/Explainables.adoc
rename to docs/modules/ROOT/partials/rust/answer/Explainables.adoc
index 9799030cf2..c38239c276 100644
--- a/rust/docs/answer/Explainables.adoc
+++ b/docs/modules/ROOT/partials/rust/answer/Explainables.adoc
@@ -25,7 +25,7 @@ a| `relations` a| `HashMap` a| Explainable relations
 // end::properties[]
 
 // tag::methods[]
-[#_struct_Explainables_is_empty__]
+[#_struct_Explainables_is_empty_]
 ==== is_empty
 
 [source,rust]
diff --git a/rust/docs/answer/Explanation.adoc b/docs/modules/ROOT/partials/rust/answer/Explanation.adoc
similarity index 100%
rename from rust/docs/answer/Explanation.adoc
rename to docs/modules/ROOT/partials/rust/answer/Explanation.adoc
diff --git a/rust/docs/answer/JSON.adoc b/docs/modules/ROOT/partials/rust/answer/JSON.adoc
similarity index 100%
rename from rust/docs/answer/JSON.adoc
rename to docs/modules/ROOT/partials/rust/answer/JSON.adoc
diff --git a/rust/docs/answer/Trait_Promise.adoc b/docs/modules/ROOT/partials/rust/answer/Trait_Promise.adoc
similarity index 100%
rename from rust/docs/answer/Trait_Promise.adoc
rename to docs/modules/ROOT/partials/rust/answer/Trait_Promise.adoc
diff --git a/rust/docs/answer/ValueGroup.adoc b/docs/modules/ROOT/partials/rust/answer/ValueGroup.adoc
similarity index 100%
rename from rust/docs/answer/ValueGroup.adoc
rename to docs/modules/ROOT/partials/rust/answer/ValueGroup.adoc
diff --git a/rust/docs/concept/Concept.adoc b/docs/modules/ROOT/partials/rust/concept/Concept.adoc
similarity index 100%
rename from rust/docs/concept/Concept.adoc
rename to docs/modules/ROOT/partials/rust/concept/Concept.adoc
diff --git a/rust/docs/concept/ConceptManager.adoc b/docs/modules/ROOT/partials/rust/concept/ConceptManager.adoc
similarity index 92%
rename from rust/docs/concept/ConceptManager.adoc
rename to docs/modules/ROOT/partials/rust/concept/ConceptManager.adoc
index 0a363fdcc5..ff568fdd6f 100644
--- a/rust/docs/concept/ConceptManager.adoc
+++ b/docs/modules/ROOT/partials/rust/concept/ConceptManager.adoc
@@ -8,7 +8,7 @@
 Provides access for all Concept API methods.
 
 // tag::methods[]
-[#_struct_ConceptManager_get_attribute__iid_IID]
+[#_struct_ConceptManager_get_attribute_iid_IID]
 ==== get_attribute
 
 [source,rust]
@@ -62,7 +62,7 @@ transaction.concepts().get_attribute(iid).resolve()
 --
 ====
 
-[#_struct_ConceptManager_get_attribute_type__label_String]
+[#_struct_ConceptManager_get_attribute_type_label_String]
 ==== get_attribute_type
 
 [source,rust]
@@ -116,7 +116,7 @@ transaction.concepts().get_attribute_type(label).resolve()
 --
 ====
 
-[#_struct_ConceptManager_get_entity__iid_IID]
+[#_struct_ConceptManager_get_entity_iid_IID]
 ==== get_entity
 
 [source,rust]
@@ -167,7 +167,7 @@ transaction.concepts().get_entity(iid).resolve()
 --
 ====
 
-[#_struct_ConceptManager_get_entity_type__label_String]
+[#_struct_ConceptManager_get_entity_type_label_String]
 ==== get_entity_type
 
 [source,rust]
@@ -221,7 +221,7 @@ transaction.concepts().get_entity_type(label).resolve()
 --
 ====
 
-[#_struct_ConceptManager_get_relation__iid_IID]
+[#_struct_ConceptManager_get_relation_iid_IID]
 ==== get_relation
 
 [source,rust]
@@ -275,7 +275,7 @@ transaction.concepts().get_relation(iid).resolve()
 --
 ====
 
-[#_struct_ConceptManager_get_relation_type__label_String]
+[#_struct_ConceptManager_get_relation_type_label_String]
 ==== get_relation_type
 
 [source,rust]
@@ -329,7 +329,7 @@ transaction.concepts().get_relation_type(label).resolve()
 --
 ====
 
-[#_struct_ConceptManager_get_schema_exceptions__]
+[#_struct_ConceptManager_get_schema_exceptions_]
 ==== get_schema_exceptions
 
 [source,rust]
@@ -355,7 +355,7 @@ Result> + 'tx>
 transaction.concepts().get_schema_exceptions()
 ----
 
-[#_struct_ConceptManager_put_attribute_type__label_String__value_type_ValueType]
+[#_struct_ConceptManager_put_attribute_type_label_String_value_type_ValueType]
 ==== put_attribute_type
 
 [source,rust]
@@ -411,7 +411,7 @@ transaction.concepts().put_attribute_type(label, value_type).resolve()
 --
 ====
 
-[#_struct_ConceptManager_put_entity_type__label_String]
+[#_struct_ConceptManager_put_entity_type_label_String]
 ==== put_entity_type
 
 [source,rust]
@@ -465,7 +465,7 @@ transaction.concepts().put_entity_type(label).resolve()
 --
 ====
 
-[#_struct_ConceptManager_put_relation_type__label_String]
+[#_struct_ConceptManager_put_relation_type_label_String]
 ==== put_relation_type
 
 [source,rust]
diff --git a/rust/docs/connection/Connection.adoc b/docs/modules/ROOT/partials/rust/connection/Connection.adoc
similarity index 90%
rename from rust/docs/connection/Connection.adoc
rename to docs/modules/ROOT/partials/rust/connection/Connection.adoc
index 639d3222a1..023365dad9 100644
--- a/rust/docs/connection/Connection.adoc
+++ b/docs/modules/ROOT/partials/rust/connection/Connection.adoc
@@ -9,7 +9,7 @@
 A connection to a TypeDB server which serves as the starting point for all interaction.
 
 // tag::methods[]
-[#_struct_Connection_force_close__]
+[#_struct_Connection_force_close_]
 ==== force_close
 
 [source,rust]
@@ -33,7 +33,7 @@ Result
 connection.force_close()
 ----
 
-[#_struct_Connection_is_cloud__]
+[#_struct_Connection_is_cloud_]
 ==== is_cloud
 
 [source,rust]
@@ -57,7 +57,7 @@ bool
 connection.is_cloud()
 ----
 
-[#_struct_Connection_is_open__]
+[#_struct_Connection_is_open_]
 ==== is_open
 
 [source,rust]
@@ -81,7 +81,7 @@ bool
 connection.is_open()
 ----
 
-[#_struct_Connection_new_cloud__init_addresses__T___credential_Credential]
+[#_struct_Connection_new_cloud_init_addresses_T_credential_Credential]
 ==== new_cloud
 
 [source,rust]
@@ -128,7 +128,7 @@ Connection::new_cloud(
 )
 ----
 
-[#_struct_Connection_new_cloud_with_translation__address_translation_HashMap_T__credential_Credential]
+[#_struct_Connection_new_cloud_with_translation_address_translation_HashMap_T_credential_Credential]
 ==== new_cloud_with_translation
 
 [source,rust]
@@ -176,7 +176,7 @@ Connection::new_cloud_with_translation(
 )
 ----
 
-[#_struct_Connection_new_core__address_impl_AsRef_str_]
+[#_struct_Connection_new_core_address_impl_AsRef_str_]
 ==== new_core
 
 [source,rust]
diff --git a/rust/docs/connection/Credential.adoc b/docs/modules/ROOT/partials/rust/connection/Credential.adoc
similarity index 88%
rename from rust/docs/connection/Credential.adoc
rename to docs/modules/ROOT/partials/rust/connection/Credential.adoc
index ef325d3e3a..68558b6b28 100644
--- a/rust/docs/connection/Credential.adoc
+++ b/docs/modules/ROOT/partials/rust/connection/Credential.adoc
@@ -9,7 +9,7 @@
 User credentials and TLS encryption settings for connecting to TypeDB Cloud.
 
 // tag::methods[]
-[#_struct_Credential_is_tls_enabled__]
+[#_struct_Credential_is_tls_enabled_]
 ==== is_tls_enabled
 
 [source,rust]
@@ -26,7 +26,7 @@ Retrieves whether TLS is enabled for the connection.
 bool
 ----
 
-[#_struct_Credential_password__]
+[#_struct_Credential_password_]
 ==== password
 
 [source,rust]
@@ -43,7 +43,7 @@ Retrieves the password used.
 &str
 ----
 
-[#_struct_Credential_username__]
+[#_struct_Credential_username_]
 ==== username
 
 [source,rust]
@@ -60,7 +60,7 @@ Retrieves the username used.
 &str
 ----
 
-[#_struct_Credential_with_tls__username_str__password_str__tls_root_ca_Option_Path_]
+[#_struct_Credential_with_tls_username_str_password_str_tls_root_ca_Option_Path_]
 ==== with_tls
 
 [source,rust]
@@ -99,7 +99,7 @@ Result
 Credential::with_tls(username, password, Some(&path_to_ca));
 ----
 
-[#_struct_Credential_without_tls__username_str__password_str]
+[#_struct_Credential_without_tls_username_str_password_str]
 ==== without_tls
 
 [source,rust]
diff --git a/rust/docs/connection/Database.adoc b/docs/modules/ROOT/partials/rust/connection/Database.adoc
similarity index 92%
rename from rust/docs/connection/Database.adoc
rename to docs/modules/ROOT/partials/rust/connection/Database.adoc
index 47dd376aac..2c469908fe 100644
--- a/rust/docs/connection/Database.adoc
+++ b/docs/modules/ROOT/partials/rust/connection/Database.adoc
@@ -8,7 +8,7 @@
 A TypeDB database
 
 // tag::methods[]
-[#_struct_Database_delete__]
+[#_struct_Database_delete_]
 ==== delete
 
 [tabs]
@@ -68,7 +68,7 @@ database.delete();
 --
 ====
 
-[#_struct_Database_name__]
+[#_struct_Database_name_]
 ==== name
 
 [source,rust]
@@ -85,7 +85,7 @@ Retrieves the database name as a string.
 &str
 ----
 
-[#_struct_Database_preferred_replica_info__]
+[#_struct_Database_preferred_replica_info_]
 ==== preferred_replica_info
 
 [source,rust]
@@ -109,7 +109,7 @@ Option
 database.preferred_replica_info();
 ----
 
-[#_struct_Database_primary_replica_info__]
+[#_struct_Database_primary_replica_info_]
 ==== primary_replica_info
 
 [source,rust]
@@ -133,7 +133,7 @@ Option
 database.primary_replica_info()
 ----
 
-[#_struct_Database_replicas_info__]
+[#_struct_Database_replicas_info_]
 ==== replicas_info
 
 [source,rust]
@@ -157,7 +157,7 @@ Vec
 database.replicas_info()
 ----
 
-[#_struct_Database_rule_schema__]
+[#_struct_Database_rule_schema_]
 ==== rule_schema
 
 [tabs]
@@ -217,7 +217,7 @@ database.rule_schema();
 --
 ====
 
-[#_struct_Database_schema__]
+[#_struct_Database_schema_]
 ==== schema
 
 [tabs]
@@ -277,7 +277,7 @@ database.schema();
 --
 ====
 
-[#_struct_Database_type_schema__]
+[#_struct_Database_type_schema_]
 ==== type_schema
 
 [tabs]
diff --git a/rust/docs/connection/DatabaseManager.adoc b/docs/modules/ROOT/partials/rust/connection/DatabaseManager.adoc
similarity index 93%
rename from rust/docs/connection/DatabaseManager.adoc
rename to docs/modules/ROOT/partials/rust/connection/DatabaseManager.adoc
index aa5f6f5c3c..ec244324ad 100644
--- a/rust/docs/connection/DatabaseManager.adoc
+++ b/docs/modules/ROOT/partials/rust/connection/DatabaseManager.adoc
@@ -9,7 +9,7 @@
 Provides access to all database management methods.
 
 // tag::methods[]
-[#_struct_DatabaseManager_all__]
+[#_struct_DatabaseManager_all_]
 ==== all
 
 [tabs]
@@ -69,7 +69,7 @@ driver.databases().all();
 --
 ====
 
-[#_struct_DatabaseManager_contains__name_impl_Into_String_]
+[#_struct_DatabaseManager_contains_name_impl_Into_String_]
 ==== contains
 
 [tabs]
@@ -138,7 +138,7 @@ driver.databases().contains(name);
 --
 ====
 
-[#_struct_DatabaseManager_create__name_impl_Into_String_]
+[#_struct_DatabaseManager_create_name_impl_Into_String_]
 ==== create
 
 [tabs]
@@ -207,7 +207,7 @@ driver.databases().create(name);
 --
 ====
 
-[#_struct_DatabaseManager_get__name_impl_Into_String_]
+[#_struct_DatabaseManager_get_name_impl_Into_String_]
 ==== get
 
 [tabs]
diff --git a/rust/docs/connection/ReplicaInfo.adoc b/docs/modules/ROOT/partials/rust/connection/ReplicaInfo.adoc
similarity index 100%
rename from rust/docs/connection/ReplicaInfo.adoc
rename to docs/modules/ROOT/partials/rust/connection/ReplicaInfo.adoc
diff --git a/rust/docs/connection/User.adoc b/docs/modules/ROOT/partials/rust/connection/User.adoc
similarity index 91%
rename from rust/docs/connection/User.adoc
rename to docs/modules/ROOT/partials/rust/connection/User.adoc
index 8775400adf..1e9f182a1d 100644
--- a/rust/docs/connection/User.adoc
+++ b/docs/modules/ROOT/partials/rust/connection/User.adoc
@@ -21,7 +21,7 @@ a| `username` a| `String` a| Returns the name of this user.
 // end::properties[]
 
 // tag::methods[]
-[#_struct_User_password_update__connection_Connection__password_old_impl_Into_String___password_new_impl_Into_String_]
+[#_struct_User_password_update_connection_Connection_password_old_impl_Into_String_password_new_impl_Into_String_]
 ==== password_update
 
 [tabs]
diff --git a/rust/docs/connection/UserManager.adoc b/docs/modules/ROOT/partials/rust/connection/UserManager.adoc
similarity index 91%
rename from rust/docs/connection/UserManager.adoc
rename to docs/modules/ROOT/partials/rust/connection/UserManager.adoc
index 463a481c6a..cb55555827 100644
--- a/rust/docs/connection/UserManager.adoc
+++ b/docs/modules/ROOT/partials/rust/connection/UserManager.adoc
@@ -9,7 +9,7 @@
 Provides access to all user management methods.
 
 // tag::methods[]
-[#_struct_UserManager_all__]
+[#_struct_UserManager_all_]
 ==== all
 
 [tabs]
@@ -51,7 +51,7 @@ Result>
 driver.users.all().await;
 ----
 
-[#_struct_UserManager_contains__username_impl_Into_String_]
+[#_struct_UserManager_contains_username_impl_Into_String_]
 ==== contains
 
 [tabs]
@@ -102,7 +102,7 @@ Result
 driver.users.contains(username).await;
 ----
 
-[#_struct_UserManager_create__username_impl_Into_String___password_impl_Into_String_]
+[#_struct_UserManager_create_username_impl_Into_String_password_impl_Into_String_]
 ==== create
 
 [tabs]
@@ -162,7 +162,7 @@ Result
 driver.users.create(username, password).await;
 ----
 
-[#_struct_UserManager_current_user__]
+[#_struct_UserManager_current_user_]
 ==== current_user
 
 [tabs]
@@ -204,7 +204,7 @@ Result>
 driver.users.current_user().await;
 ----
 
-[#_struct_UserManager_delete__username_impl_Into_String_]
+[#_struct_UserManager_delete_username_impl_Into_String_]
 ==== delete
 
 [tabs]
@@ -255,7 +255,7 @@ Result
 driver.users.delete(username).await;
 ----
 
-[#_struct_UserManager_get__username_impl_Into_String_]
+[#_struct_UserManager_get_username_impl_Into_String_]
 ==== get
 
 [tabs]
@@ -306,7 +306,7 @@ Result>
 driver.users.get(username).await;
 ----
 
-[#_struct_UserManager_set_password__username_impl_Into_String___password_impl_Into_String_]
+[#_struct_UserManager_set_password_username_impl_Into_String_password_impl_Into_String_]
 ==== set_password
 
 [tabs]
diff --git a/rust/docs/data/Attribute.adoc b/docs/modules/ROOT/partials/rust/data/Attribute.adoc
similarity index 91%
rename from rust/docs/data/Attribute.adoc
rename to docs/modules/ROOT/partials/rust/data/Attribute.adoc
index 6285b60927..d058a6a2a0 100644
--- a/rust/docs/data/Attribute.adoc
+++ b/docs/modules/ROOT/partials/rust/data/Attribute.adoc
@@ -27,7 +27,7 @@ a| `value` a| `Value` a| The value which this Attribute instance holds.
 // end::properties[]
 
 // tag::methods[]
-[#_struct_Attribute_delete__]
+[#_struct_Attribute_delete_]
 ==== delete
 
 [source,rust]
@@ -47,7 +47,7 @@ fn delete<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_Attribute_get_has__]
+[#_struct_Attribute_get_has_]
 ==== get_has
 
 [source,rust]
@@ -69,7 +69,7 @@ fn get_has<'tx>(
 Result>>
 ----
 
-[#_struct_Attribute_get_owners__]
+[#_struct_Attribute_get_owners_]
 ==== get_owners
 
 [source,rust]
@@ -90,7 +90,7 @@ fn get_owners<'tx>(
 Result>>
 ----
 
-[#_struct_Attribute_get_playing__]
+[#_struct_Attribute_get_playing_]
 ==== get_playing
 
 [source,rust]
@@ -110,7 +110,7 @@ fn get_playing<'tx>(
 Result>>
 ----
 
-[#_struct_Attribute_get_relations__]
+[#_struct_Attribute_get_relations_]
 ==== get_relations
 
 [source,rust]
@@ -131,7 +131,7 @@ fn get_relations<'tx>(
 Result>>
 ----
 
-[#_struct_Attribute_iid__]
+[#_struct_Attribute_iid_]
 ==== iid
 
 [source,rust]
@@ -148,7 +148,7 @@ fn iid(&self) -> &IID
 &IID
 ----
 
-[#_struct_Attribute_is_deleted__]
+[#_struct_Attribute_is_deleted_]
 ==== is_deleted
 
 [source,rust]
@@ -168,7 +168,7 @@ fn is_deleted<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_Attribute_is_inferred__]
+[#_struct_Attribute_is_inferred_]
 ==== is_inferred
 
 [source,rust]
@@ -185,7 +185,7 @@ fn is_inferred(&self) -> bool
 bool
 ----
 
-[#_struct_Attribute_set_has__]
+[#_struct_Attribute_set_has_]
 ==== set_has
 
 [source,rust]
@@ -206,7 +206,7 @@ fn set_has<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_Attribute_unset_has__]
+[#_struct_Attribute_unset_has_]
 ==== unset_has
 
 [source,rust]
diff --git a/rust/docs/data/Entity.adoc b/docs/modules/ROOT/partials/rust/data/Entity.adoc
similarity index 92%
rename from rust/docs/data/Entity.adoc
rename to docs/modules/ROOT/partials/rust/data/Entity.adoc
index 4d4347c23b..663d6dd13b 100644
--- a/rust/docs/data/Entity.adoc
+++ b/docs/modules/ROOT/partials/rust/data/Entity.adoc
@@ -28,7 +28,7 @@ a| `type_` a| `EntityType` a| The type which this Entity belongs to
 // end::properties[]
 
 // tag::methods[]
-[#_struct_Entity_delete__]
+[#_struct_Entity_delete_]
 ==== delete
 
 [source,rust]
@@ -48,7 +48,7 @@ fn delete<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_Entity_get_has__]
+[#_struct_Entity_get_has_]
 ==== get_has
 
 [source,rust]
@@ -70,7 +70,7 @@ fn get_has<'tx>(
 Result>>
 ----
 
-[#_struct_Entity_get_playing__]
+[#_struct_Entity_get_playing_]
 ==== get_playing
 
 [source,rust]
@@ -90,7 +90,7 @@ fn get_playing<'tx>(
 Result>>
 ----
 
-[#_struct_Entity_get_relations__]
+[#_struct_Entity_get_relations_]
 ==== get_relations
 
 [source,rust]
@@ -111,7 +111,7 @@ fn get_relations<'tx>(
 Result>>
 ----
 
-[#_struct_Entity_iid__]
+[#_struct_Entity_iid_]
 ==== iid
 
 [source,rust]
@@ -128,7 +128,7 @@ fn iid(&self) -> &IID
 &IID
 ----
 
-[#_struct_Entity_is_deleted__]
+[#_struct_Entity_is_deleted_]
 ==== is_deleted
 
 [source,rust]
@@ -148,7 +148,7 @@ fn is_deleted<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_Entity_is_inferred__]
+[#_struct_Entity_is_inferred_]
 ==== is_inferred
 
 [source,rust]
@@ -165,7 +165,7 @@ fn is_inferred(&self) -> bool
 bool
 ----
 
-[#_struct_Entity_set_has__]
+[#_struct_Entity_set_has_]
 ==== set_has
 
 [source,rust]
@@ -186,7 +186,7 @@ fn set_has<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_Entity_unset_has__]
+[#_struct_Entity_unset_has_]
 ==== unset_has
 
 [source,rust]
diff --git a/rust/docs/data/Relation.adoc b/docs/modules/ROOT/partials/rust/data/Relation.adoc
similarity index 90%
rename from rust/docs/data/Relation.adoc
rename to docs/modules/ROOT/partials/rust/data/Relation.adoc
index f617776d01..599de43a09 100644
--- a/rust/docs/data/Relation.adoc
+++ b/docs/modules/ROOT/partials/rust/data/Relation.adoc
@@ -28,7 +28,7 @@ a| `type_` a| `RelationType` a| The type which this Relation belongs to
 // end::properties[]
 
 // tag::methods[]
-[#_struct_Relation_add_role_player__]
+[#_struct_Relation_add_role_player_]
 ==== add_role_player
 
 [source,rust]
@@ -50,7 +50,7 @@ fn add_role_player<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_Relation_delete__]
+[#_struct_Relation_delete_]
 ==== delete
 
 [source,rust]
@@ -70,7 +70,7 @@ fn delete<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_Relation_get_has__]
+[#_struct_Relation_get_has_]
 ==== get_has
 
 [source,rust]
@@ -92,7 +92,7 @@ fn get_has<'tx>(
 Result>>
 ----
 
-[#_struct_Relation_get_players_by_role_type__]
+[#_struct_Relation_get_players_by_role_type_]
 ==== get_players_by_role_type
 
 [source,rust]
@@ -113,7 +113,7 @@ fn get_players_by_role_type<'tx>(
 Result>>
 ----
 
-[#_struct_Relation_get_playing__]
+[#_struct_Relation_get_playing_]
 ==== get_playing
 
 [source,rust]
@@ -133,7 +133,7 @@ fn get_playing<'tx>(
 Result>>
 ----
 
-[#_struct_Relation_get_relating__]
+[#_struct_Relation_get_relating_]
 ==== get_relating
 
 [source,rust]
@@ -153,7 +153,7 @@ fn get_relating<'tx>(
 Result>>
 ----
 
-[#_struct_Relation_get_relations__]
+[#_struct_Relation_get_relations_]
 ==== get_relations
 
 [source,rust]
@@ -174,7 +174,7 @@ fn get_relations<'tx>(
 Result>>
 ----
 
-[#_struct_Relation_get_role_players__]
+[#_struct_Relation_get_role_players_]
 ==== get_role_players
 
 [source,rust]
@@ -194,7 +194,7 @@ fn get_role_players<'tx>(
 Result>>
 ----
 
-[#_struct_Relation_iid__]
+[#_struct_Relation_iid_]
 ==== iid
 
 [source,rust]
@@ -211,7 +211,7 @@ fn iid(&self) -> &IID
 &IID
 ----
 
-[#_struct_Relation_is_deleted__]
+[#_struct_Relation_is_deleted_]
 ==== is_deleted
 
 [source,rust]
@@ -231,7 +231,7 @@ fn is_deleted<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_Relation_is_inferred__]
+[#_struct_Relation_is_inferred_]
 ==== is_inferred
 
 [source,rust]
@@ -248,7 +248,7 @@ fn is_inferred(&self) -> bool
 bool
 ----
 
-[#_struct_Relation_remove_role_player__]
+[#_struct_Relation_remove_role_player_]
 ==== remove_role_player
 
 [source,rust]
@@ -270,7 +270,7 @@ fn remove_role_player<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_Relation_set_has__]
+[#_struct_Relation_set_has_]
 ==== set_has
 
 [source,rust]
@@ -291,7 +291,7 @@ fn set_has<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_Relation_unset_has__]
+[#_struct_Relation_unset_has_]
 ==== unset_has
 
 [source,rust]
diff --git a/rust/docs/data/Thing.adoc b/docs/modules/ROOT/partials/rust/data/Thing.adoc
similarity index 100%
rename from rust/docs/data/Thing.adoc
rename to docs/modules/ROOT/partials/rust/data/Thing.adoc
diff --git a/rust/docs/data/Trait_AttributeAPI.adoc b/docs/modules/ROOT/partials/rust/data/Trait_AttributeAPI.adoc
similarity index 91%
rename from rust/docs/data/Trait_AttributeAPI.adoc
rename to docs/modules/ROOT/partials/rust/data/Trait_AttributeAPI.adoc
index 9a7dee5f62..5035356b79 100644
--- a/rust/docs/data/Trait_AttributeAPI.adoc
+++ b/docs/modules/ROOT/partials/rust/data/Trait_AttributeAPI.adoc
@@ -6,7 +6,7 @@
 * `Attribute`
 
 // tag::methods[]
-[#_trait_AttributeAPI_get_owners__transaction_tx_Transaction_____owner_type]
+[#_trait_AttributeAPI_get_owners_transaction_tx_Transaction_owner_type]
 ==== get_owners
 
 [source,rust]
diff --git a/rust/docs/data/Trait_RelationAPI.adoc b/docs/modules/ROOT/partials/rust/data/Trait_RelationAPI.adoc
similarity index 89%
rename from rust/docs/data/Trait_RelationAPI.adoc
rename to docs/modules/ROOT/partials/rust/data/Trait_RelationAPI.adoc
index ed9115aede..ca15f02a2f 100644
--- a/rust/docs/data/Trait_RelationAPI.adoc
+++ b/docs/modules/ROOT/partials/rust/data/Trait_RelationAPI.adoc
@@ -6,7 +6,7 @@
 * `Relation`
 
 // tag::methods[]
-[#_trait_RelationAPI_add_role_player__transaction_tx_Transaction_____role_type_RoleType__player_Thing]
+[#_trait_RelationAPI_add_role_player_transaction_tx_Transaction_role_type_RoleType_player_Thing]
 ==== add_role_player
 
 [source,rust]
@@ -64,7 +64,7 @@ relation.add_role_player(transaction, role_type, player).resolve();
 --
 ====
 
-[#_trait_RelationAPI_get_players_by_role_type__transaction_tx_Transaction_____role_types_Vec_RoleType_]
+[#_trait_RelationAPI_get_players_by_role_type_transaction_tx_Transaction_role_types_Vec_RoleType_]
 ==== get_players_by_role_type
 
 [source,rust]
@@ -102,7 +102,7 @@ Result>>
 relation.get_players_by_role_type(transaction, role_types);
 ----
 
-[#_trait_RelationAPI_get_relating__transaction_tx_Transaction___]
+[#_trait_RelationAPI_get_relating_transaction_tx_Transaction_]
 ==== get_relating
 
 [source,rust]
@@ -138,7 +138,7 @@ Result>>
 relation.get_relating(transaction)
 ----
 
-[#_trait_RelationAPI_get_role_players__transaction_tx_Transaction______-__Result_BoxStream_tx]
+[#_trait_RelationAPI_get_role_players_transaction_tx_Transaction_-_Result_BoxStream_tx]
 ==== get_role_players
 
 [source,rust]
@@ -175,7 +175,7 @@ Result>>
 relation.get_role_players(transaction)
 ----
 
-[#_trait_RelationAPI_remove_role_player__transaction_tx_Transaction_____role_type_RoleType__player_Thing]
+[#_trait_RelationAPI_remove_role_player_transaction_tx_Transaction_role_type_RoleType_player_Thing]
 ==== remove_role_player
 
 [source,rust]
diff --git a/rust/docs/data/Trait_ThingAPI.adoc b/docs/modules/ROOT/partials/rust/data/Trait_ThingAPI.adoc
similarity index 90%
rename from rust/docs/data/Trait_ThingAPI.adoc
rename to docs/modules/ROOT/partials/rust/data/Trait_ThingAPI.adoc
index 5c920a2f7c..b3814c90a8 100644
--- a/rust/docs/data/Trait_ThingAPI.adoc
+++ b/docs/modules/ROOT/partials/rust/data/Trait_ThingAPI.adoc
@@ -8,7 +8,7 @@
 * `Relation`
 
 // tag::methods[]
-[#_trait_ThingAPI_delete__transaction_tx_Transaction___]
+[#_trait_ThingAPI_delete_transaction_tx_Transaction_]
 ==== delete
 
 [source,rust]
@@ -62,7 +62,7 @@ thing.delete(transaction).resolve();
 --
 ====
 
-[#_trait_ThingAPI_get_has__transaction_tx_Transaction_____attribute_type__attribute_types_Vec_AttributeType___annotations_Vec_Annotation_]
+[#_trait_ThingAPI_get_has_transaction_tx_Transaction_attribute_type_attribute_types_Vec_AttributeType_annotations_Vec_Annotation_]
 ==== get_has
 
 [source,rust]
@@ -103,7 +103,7 @@ Result>>
 thing.get_has(transaction, attribute_type, annotations=vec![Annotation::Key]);
 ----
 
-[#_trait_ThingAPI_get_playing__transaction_tx_Transaction___]
+[#_trait_ThingAPI_get_playing_transaction_tx_Transaction_]
 ==== get_playing
 
 [source,rust]
@@ -139,7 +139,7 @@ Result>>
 thing.get_playing(transaction);
 ----
 
-[#_trait_ThingAPI_get_relations__transaction_tx_Transaction_____role_types_Vec_RoleType_]
+[#_trait_ThingAPI_get_relations_transaction_tx_Transaction_role_types_Vec_RoleType_]
 ==== get_relations
 
 [source,rust]
@@ -177,7 +177,7 @@ Result>>
 thing.get_relations(transaction, role_types);
 ----
 
-[#_trait_ThingAPI_iid__]
+[#_trait_ThingAPI_iid_]
 ==== iid
 
 [source,rust]
@@ -201,7 +201,7 @@ Retrieves the unique id of the ``Thing``.
 thing.iid();
 ----
 
-[#_trait_ThingAPI_is_deleted__transaction_tx_Transaction___]
+[#_trait_ThingAPI_is_deleted_transaction_tx_Transaction_]
 ==== is_deleted
 
 [source,rust]
@@ -255,7 +255,7 @@ thing.is_deleted(transaction).resolve();
 --
 ====
 
-[#_trait_ThingAPI_is_inferred__]
+[#_trait_ThingAPI_is_inferred_]
 ==== is_inferred
 
 [source,rust]
@@ -279,7 +279,7 @@ bool
 thing.is_inferred();
 ----
 
-[#_trait_ThingAPI_set_has__transaction_tx_Transaction_____attribute_Attribute]
+[#_trait_ThingAPI_set_has_transaction_tx_Transaction_attribute_Attribute]
 ==== set_has
 
 [source,rust]
@@ -335,7 +335,7 @@ thing.set_has(transaction, attribute).resolve();
 --
 ====
 
-[#_trait_ThingAPI_unset_has__transaction_tx_Transaction_____attribute_Attribute]
+[#_trait_ThingAPI_unset_has_transaction_tx_Transaction_attribute_Attribute]
 ==== unset_has
 
 [source,rust]
diff --git a/rust/docs/data/Value.adoc b/docs/modules/ROOT/partials/rust/data/Value.adoc
similarity index 95%
rename from rust/docs/data/Value.adoc
rename to docs/modules/ROOT/partials/rust/data/Value.adoc
index 5951e7e969..eac590f9a4 100644
--- a/rust/docs/data/Value.adoc
+++ b/docs/modules/ROOT/partials/rust/data/Value.adoc
@@ -17,7 +17,7 @@ a| `String(String)`
 // end::enum_constants[]
 
 // tag::methods[]
-[#_enum_Value_get_type__]
+[#_enum_Value_get_type_]
 ==== get_type
 
 [source,rust]
diff --git a/rust/docs/errors/ConnectionError.adoc b/docs/modules/ROOT/partials/rust/errors/ConnectionError.adoc
similarity index 100%
rename from rust/docs/errors/ConnectionError.adoc
rename to docs/modules/ROOT/partials/rust/errors/ConnectionError.adoc
diff --git a/rust/docs/errors/Error.adoc b/docs/modules/ROOT/partials/rust/errors/Error.adoc
similarity index 100%
rename from rust/docs/errors/Error.adoc
rename to docs/modules/ROOT/partials/rust/errors/Error.adoc
diff --git a/rust/docs/errors/InternalError.adoc b/docs/modules/ROOT/partials/rust/errors/InternalError.adoc
similarity index 100%
rename from rust/docs/errors/InternalError.adoc
rename to docs/modules/ROOT/partials/rust/errors/InternalError.adoc
diff --git a/rust/docs/errors/SchemaException.adoc b/docs/modules/ROOT/partials/rust/errors/SchemaException.adoc
similarity index 100%
rename from rust/docs/errors/SchemaException.adoc
rename to docs/modules/ROOT/partials/rust/errors/SchemaException.adoc
diff --git a/rust/docs/logic/LogicManager.adoc b/docs/modules/ROOT/partials/rust/logic/LogicManager.adoc
similarity index 92%
rename from rust/docs/logic/LogicManager.adoc
rename to docs/modules/ROOT/partials/rust/logic/LogicManager.adoc
index 5143c8bc00..2d5462608f 100644
--- a/rust/docs/logic/LogicManager.adoc
+++ b/docs/modules/ROOT/partials/rust/logic/LogicManager.adoc
@@ -9,7 +9,7 @@
 Provides methods for manipulating rules in the database.
 
 // tag::methods[]
-[#_struct_LogicManager_get_rule__label_String]
+[#_struct_LogicManager_get_rule_label_String]
 ==== get_rule
 
 [source,rust]
@@ -60,7 +60,7 @@ transaction.logic().get_rule(label).resolve()
 --
 ====
 
-[#_struct_LogicManager_get_rules__]
+[#_struct_LogicManager_get_rules_]
 ==== get_rules
 
 [source,rust]
@@ -84,7 +84,7 @@ Result> + 'tx>
 transaction.logic.get_rules()
 ----
 
-[#_struct_LogicManager_put_rule__label_String__when_Conjunction__then_Statement]
+[#_struct_LogicManager_put_rule_label_String_when_Conjunction_then_Statement]
 ==== put_rule
 
 [source,rust]
diff --git a/rust/docs/logic/Rule.adoc b/docs/modules/ROOT/partials/rust/logic/Rule.adoc
similarity index 94%
rename from rust/docs/logic/Rule.adoc
rename to docs/modules/ROOT/partials/rust/logic/Rule.adoc
index 93a346a6d2..3fb8cea814 100644
--- a/rust/docs/logic/Rule.adoc
+++ b/docs/modules/ROOT/partials/rust/logic/Rule.adoc
@@ -25,7 +25,7 @@ a| `when` a| `Conjunction` a| The statements that constitute the ‘when’ of t
 // end::properties[]
 
 // tag::methods[]
-[#_struct_Rule_delete__]
+[#_struct_Rule_delete_]
 ==== delete
 
 [source,rust]
@@ -45,7 +45,7 @@ fn delete<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_Rule_is_deleted__]
+[#_struct_Rule_is_deleted_]
 ==== is_deleted
 
 [source,rust]
@@ -65,7 +65,7 @@ fn is_deleted<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_Rule_label__]
+[#_struct_Rule_label_]
 ==== label
 
 [source,rust]
@@ -82,7 +82,7 @@ fn label(&self) -> &String
 &String
 ----
 
-[#_struct_Rule_set_label__]
+[#_struct_Rule_set_label_]
 ==== set_label
 
 [source,rust]
diff --git a/rust/docs/logic/Trait_RuleAPI.adoc b/docs/modules/ROOT/partials/rust/logic/Trait_RuleAPI.adoc
similarity index 91%
rename from rust/docs/logic/Trait_RuleAPI.adoc
rename to docs/modules/ROOT/partials/rust/logic/Trait_RuleAPI.adoc
index 7f1d2bc165..e8b458a197 100644
--- a/rust/docs/logic/Trait_RuleAPI.adoc
+++ b/docs/modules/ROOT/partials/rust/logic/Trait_RuleAPI.adoc
@@ -6,7 +6,7 @@
 * `Rule`
 
 // tag::methods[]
-[#_trait_RuleAPI_delete__transaction_tx_Transaction_tx_]
+[#_trait_RuleAPI_delete_transaction_tx_Transaction_tx_]
 ==== delete
 
 [source,rust]
@@ -60,7 +60,7 @@ rule.delete(transaction).resolve()
 --
 ====
 
-[#_trait_RuleAPI_is_deleted__transaction_tx_Transaction_tx_]
+[#_trait_RuleAPI_is_deleted_transaction_tx_Transaction_tx_]
 ==== is_deleted
 
 [source,rust]
@@ -114,7 +114,7 @@ rule.is_deleted(transaction).resolve()
 --
 ====
 
-[#_trait_RuleAPI_label__]
+[#_trait_RuleAPI_label_]
 ==== label
 
 [source,rust]
@@ -131,7 +131,7 @@ Retrieves the unique label of the rule.
 &String
 ----
 
-[#_trait_RuleAPI_set_label__transaction_tx_Transaction_tx___new_label_String]
+[#_trait_RuleAPI_set_label_transaction_tx_Transaction_tx_new_label_String]
 ==== set_label
 
 [source,rust]
diff --git a/rust/docs/schema/Annotation.adoc b/docs/modules/ROOT/partials/rust/schema/Annotation.adoc
similarity index 100%
rename from rust/docs/schema/Annotation.adoc
rename to docs/modules/ROOT/partials/rust/schema/Annotation.adoc
diff --git a/rust/docs/schema/AttributeType.adoc b/docs/modules/ROOT/partials/rust/schema/AttributeType.adoc
similarity index 89%
rename from rust/docs/schema/AttributeType.adoc
rename to docs/modules/ROOT/partials/rust/schema/AttributeType.adoc
index 9eb1794cdc..deb5bc1c97 100644
--- a/rust/docs/schema/AttributeType.adoc
+++ b/docs/modules/ROOT/partials/rust/schema/AttributeType.adoc
@@ -33,7 +33,7 @@ a| `value_type` a| `ValueType` a|
 // end::properties[]
 
 // tag::methods[]
-[#_struct_AttributeType_delete__]
+[#_struct_AttributeType_delete_]
 ==== delete
 
 [source,rust]
@@ -53,7 +53,7 @@ fn delete<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_AttributeType_get__]
+[#_struct_AttributeType_get_]
 ==== get
 
 [source,rust]
@@ -74,7 +74,7 @@ fn get<'tx>(
 BoxPromise<'tx, Result>>
 ----
 
-[#_struct_AttributeType_get_instances__]
+[#_struct_AttributeType_get_instances_]
 ==== get_instances
 
 [source,rust]
@@ -95,7 +95,7 @@ fn get_instances<'tx>(
 Result>>
 ----
 
-[#_struct_AttributeType_get_owners__]
+[#_struct_AttributeType_get_owners_]
 ==== get_owners
 
 [source,rust]
@@ -117,7 +117,7 @@ fn get_owners<'tx>(
 Result>>
 ----
 
-[#_struct_AttributeType_get_owns__]
+[#_struct_AttributeType_get_owns_]
 ==== get_owns
 
 [source,rust]
@@ -140,7 +140,7 @@ fn get_owns<'tx>(
 Result>>
 ----
 
-[#_struct_AttributeType_get_owns_overridden__]
+[#_struct_AttributeType_get_owns_overridden_]
 ==== get_owns_overridden
 
 [source,rust]
@@ -161,7 +161,7 @@ fn get_owns_overridden<'tx>(
 BoxPromise<'tx, Result>>
 ----
 
-[#_struct_AttributeType_get_plays__]
+[#_struct_AttributeType_get_plays_]
 ==== get_plays
 
 [source,rust]
@@ -182,7 +182,7 @@ fn get_plays<'tx>(
 Result>>
 ----
 
-[#_struct_AttributeType_get_plays_overridden__]
+[#_struct_AttributeType_get_plays_overridden_]
 ==== get_plays_overridden
 
 [source,rust]
@@ -203,7 +203,7 @@ fn get_plays_overridden<'tx>(
 BoxPromise<'tx, Result>>
 ----
 
-[#_struct_AttributeType_get_regex__]
+[#_struct_AttributeType_get_regex_]
 ==== get_regex
 
 [source,rust]
@@ -223,7 +223,7 @@ fn get_regex<'tx>(
 BoxPromise<'tx, Result>>
 ----
 
-[#_struct_AttributeType_get_subtypes__]
+[#_struct_AttributeType_get_subtypes_]
 ==== get_subtypes
 
 [source,rust]
@@ -244,7 +244,7 @@ fn get_subtypes<'tx>(
 Result>>
 ----
 
-[#_struct_AttributeType_get_subtypes_with_value_type__]
+[#_struct_AttributeType_get_subtypes_with_value_type_]
 ==== get_subtypes_with_value_type
 
 [source,rust]
@@ -266,7 +266,7 @@ fn get_subtypes_with_value_type<'tx>(
 Result>>
 ----
 
-[#_struct_AttributeType_get_supertype__]
+[#_struct_AttributeType_get_supertype_]
 ==== get_supertype
 
 [source,rust]
@@ -286,7 +286,7 @@ fn get_supertype<'tx>(
 BoxPromise<'tx, Result>>
 ----
 
-[#_struct_AttributeType_get_supertypes__]
+[#_struct_AttributeType_get_supertypes_]
 ==== get_supertypes
 
 [source,rust]
@@ -306,7 +306,7 @@ fn get_supertypes<'tx>(
 Result>>
 ----
 
-[#_struct_AttributeType_get_syntax__]
+[#_struct_AttributeType_get_syntax_]
 ==== get_syntax
 
 [source,rust]
@@ -326,7 +326,7 @@ fn get_syntax<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_AttributeType_is_abstract__]
+[#_struct_AttributeType_is_abstract_]
 ==== is_abstract
 
 [source,rust]
@@ -343,7 +343,7 @@ fn is_abstract(&self) -> bool
 bool
 ----
 
-[#_struct_AttributeType_is_deleted__]
+[#_struct_AttributeType_is_deleted_]
 ==== is_deleted
 
 [source,rust]
@@ -363,7 +363,7 @@ fn is_deleted<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_AttributeType_is_root__]
+[#_struct_AttributeType_is_root_]
 ==== is_root
 
 [source,rust]
@@ -380,7 +380,7 @@ fn is_root(&self) -> bool
 bool
 ----
 
-[#_struct_AttributeType_label__]
+[#_struct_AttributeType_label_]
 ==== label
 
 [source,rust]
@@ -397,7 +397,7 @@ fn label(&self) -> &str
 &str
 ----
 
-[#_struct_AttributeType_put__]
+[#_struct_AttributeType_put_]
 ==== put
 
 [source,rust]
@@ -418,7 +418,7 @@ fn put<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_AttributeType_root__]
+[#_struct_AttributeType_root_]
 ==== root
 
 [source,rust]
@@ -435,7 +435,7 @@ Returns the root ``AttributeType``
 Self
 ----
 
-[#_struct_AttributeType_set_abstract__]
+[#_struct_AttributeType_set_abstract_]
 ==== set_abstract
 
 [source,rust]
@@ -455,7 +455,7 @@ fn set_abstract<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_AttributeType_set_label__]
+[#_struct_AttributeType_set_label_]
 ==== set_label
 
 [source,rust]
@@ -476,7 +476,7 @@ fn set_label<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_AttributeType_set_owns__]
+[#_struct_AttributeType_set_owns_]
 ==== set_owns
 
 [source,rust]
@@ -499,7 +499,7 @@ fn set_owns<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_AttributeType_set_plays__]
+[#_struct_AttributeType_set_plays_]
 ==== set_plays
 
 [source,rust]
@@ -521,7 +521,7 @@ fn set_plays<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_AttributeType_set_regex__]
+[#_struct_AttributeType_set_regex_]
 ==== set_regex
 
 [source,rust]
@@ -542,7 +542,7 @@ fn set_regex<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_AttributeType_set_supertype__]
+[#_struct_AttributeType_set_supertype_]
 ==== set_supertype
 
 [source,rust]
@@ -563,7 +563,7 @@ fn set_supertype<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_AttributeType_unset_abstract__]
+[#_struct_AttributeType_unset_abstract_]
 ==== unset_abstract
 
 [source,rust]
@@ -583,7 +583,7 @@ fn unset_abstract<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_AttributeType_unset_owns__]
+[#_struct_AttributeType_unset_owns_]
 ==== unset_owns
 
 [source,rust]
@@ -604,7 +604,7 @@ fn unset_owns<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_AttributeType_unset_plays__]
+[#_struct_AttributeType_unset_plays_]
 ==== unset_plays
 
 [source,rust]
@@ -625,7 +625,7 @@ fn unset_plays<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_AttributeType_unset_regex__]
+[#_struct_AttributeType_unset_regex_]
 ==== unset_regex
 
 [source,rust]
@@ -645,7 +645,7 @@ fn unset_regex<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_AttributeType_value_type__]
+[#_struct_AttributeType_value_type_]
 ==== value_type
 
 [source,rust]
diff --git a/rust/docs/schema/EntityType.adoc b/docs/modules/ROOT/partials/rust/schema/EntityType.adoc
similarity index 89%
rename from rust/docs/schema/EntityType.adoc
rename to docs/modules/ROOT/partials/rust/schema/EntityType.adoc
index b05cf79360..649864cc18 100644
--- a/rust/docs/schema/EntityType.adoc
+++ b/docs/modules/ROOT/partials/rust/schema/EntityType.adoc
@@ -28,7 +28,7 @@ a| `label` a| `String` a|
 // end::properties[]
 
 // tag::methods[]
-[#_struct_EntityType_create__]
+[#_struct_EntityType_create_]
 ==== create
 
 [source,rust]
@@ -48,7 +48,7 @@ fn create<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_EntityType_delete__]
+[#_struct_EntityType_delete_]
 ==== delete
 
 [source,rust]
@@ -68,7 +68,7 @@ fn delete<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_EntityType_get_instances__]
+[#_struct_EntityType_get_instances_]
 ==== get_instances
 
 [source,rust]
@@ -89,7 +89,7 @@ fn get_instances<'tx>(
 Result>>
 ----
 
-[#_struct_EntityType_get_owns__]
+[#_struct_EntityType_get_owns_]
 ==== get_owns
 
 [source,rust]
@@ -112,7 +112,7 @@ fn get_owns<'tx>(
 Result>>
 ----
 
-[#_struct_EntityType_get_owns_overridden__]
+[#_struct_EntityType_get_owns_overridden_]
 ==== get_owns_overridden
 
 [source,rust]
@@ -133,7 +133,7 @@ fn get_owns_overridden<'tx>(
 BoxPromise<'tx, Result>>
 ----
 
-[#_struct_EntityType_get_plays__]
+[#_struct_EntityType_get_plays_]
 ==== get_plays
 
 [source,rust]
@@ -154,7 +154,7 @@ fn get_plays<'tx>(
 Result>>
 ----
 
-[#_struct_EntityType_get_plays_overridden__]
+[#_struct_EntityType_get_plays_overridden_]
 ==== get_plays_overridden
 
 [source,rust]
@@ -175,7 +175,7 @@ fn get_plays_overridden<'tx>(
 BoxPromise<'tx, Result>>
 ----
 
-[#_struct_EntityType_get_subtypes__]
+[#_struct_EntityType_get_subtypes_]
 ==== get_subtypes
 
 [source,rust]
@@ -196,7 +196,7 @@ fn get_subtypes<'tx>(
 Result>>
 ----
 
-[#_struct_EntityType_get_supertype__]
+[#_struct_EntityType_get_supertype_]
 ==== get_supertype
 
 [source,rust]
@@ -216,7 +216,7 @@ fn get_supertype<'tx>(
 BoxPromise<'tx, Result>>
 ----
 
-[#_struct_EntityType_get_supertypes__]
+[#_struct_EntityType_get_supertypes_]
 ==== get_supertypes
 
 [source,rust]
@@ -236,7 +236,7 @@ fn get_supertypes<'tx>(
 Result>>
 ----
 
-[#_struct_EntityType_get_syntax__]
+[#_struct_EntityType_get_syntax_]
 ==== get_syntax
 
 [source,rust]
@@ -256,7 +256,7 @@ fn get_syntax<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_EntityType_is_abstract__]
+[#_struct_EntityType_is_abstract_]
 ==== is_abstract
 
 [source,rust]
@@ -273,7 +273,7 @@ fn is_abstract(&self) -> bool
 bool
 ----
 
-[#_struct_EntityType_is_deleted__]
+[#_struct_EntityType_is_deleted_]
 ==== is_deleted
 
 [source,rust]
@@ -293,7 +293,7 @@ fn is_deleted<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_EntityType_is_root__]
+[#_struct_EntityType_is_root_]
 ==== is_root
 
 [source,rust]
@@ -310,7 +310,7 @@ fn is_root(&self) -> bool
 bool
 ----
 
-[#_struct_EntityType_label__]
+[#_struct_EntityType_label_]
 ==== label
 
 [source,rust]
@@ -327,7 +327,7 @@ fn label(&self) -> &str
 &str
 ----
 
-[#_struct_EntityType_root__]
+[#_struct_EntityType_root_]
 ==== root
 
 [source,rust]
@@ -344,7 +344,7 @@ Returns the root ``EntityType``
 Self
 ----
 
-[#_struct_EntityType_set_abstract__]
+[#_struct_EntityType_set_abstract_]
 ==== set_abstract
 
 [source,rust]
@@ -364,7 +364,7 @@ fn set_abstract<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_EntityType_set_label__]
+[#_struct_EntityType_set_label_]
 ==== set_label
 
 [source,rust]
@@ -385,7 +385,7 @@ fn set_label<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_EntityType_set_owns__]
+[#_struct_EntityType_set_owns_]
 ==== set_owns
 
 [source,rust]
@@ -408,7 +408,7 @@ fn set_owns<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_EntityType_set_plays__]
+[#_struct_EntityType_set_plays_]
 ==== set_plays
 
 [source,rust]
@@ -430,7 +430,7 @@ fn set_plays<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_EntityType_set_supertype__]
+[#_struct_EntityType_set_supertype_]
 ==== set_supertype
 
 [source,rust]
@@ -451,7 +451,7 @@ fn set_supertype<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_EntityType_unset_abstract__]
+[#_struct_EntityType_unset_abstract_]
 ==== unset_abstract
 
 [source,rust]
@@ -471,7 +471,7 @@ fn unset_abstract<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_EntityType_unset_owns__]
+[#_struct_EntityType_unset_owns_]
 ==== unset_owns
 
 [source,rust]
@@ -492,7 +492,7 @@ fn unset_owns<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_EntityType_unset_plays__]
+[#_struct_EntityType_unset_plays_]
 ==== unset_plays
 
 [source,rust]
diff --git a/rust/docs/schema/RelationType.adoc b/docs/modules/ROOT/partials/rust/schema/RelationType.adoc
similarity index 89%
rename from rust/docs/schema/RelationType.adoc
rename to docs/modules/ROOT/partials/rust/schema/RelationType.adoc
index 66d19e78b7..dc4c2d1716 100644
--- a/rust/docs/schema/RelationType.adoc
+++ b/docs/modules/ROOT/partials/rust/schema/RelationType.adoc
@@ -32,7 +32,7 @@ a| `label` a| `String` a|
 // end::properties[]
 
 // tag::methods[]
-[#_struct_RelationType_create__]
+[#_struct_RelationType_create_]
 ==== create
 
 [source,rust]
@@ -52,7 +52,7 @@ fn create<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_RelationType_delete__]
+[#_struct_RelationType_delete_]
 ==== delete
 
 [source,rust]
@@ -72,7 +72,7 @@ fn delete<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_RelationType_get_instances__]
+[#_struct_RelationType_get_instances_]
 ==== get_instances
 
 [source,rust]
@@ -93,7 +93,7 @@ fn get_instances<'tx>(
 Result>>
 ----
 
-[#_struct_RelationType_get_owns__]
+[#_struct_RelationType_get_owns_]
 ==== get_owns
 
 [source,rust]
@@ -116,7 +116,7 @@ fn get_owns<'tx>(
 Result>>
 ----
 
-[#_struct_RelationType_get_owns_overridden__]
+[#_struct_RelationType_get_owns_overridden_]
 ==== get_owns_overridden
 
 [source,rust]
@@ -137,7 +137,7 @@ fn get_owns_overridden<'tx>(
 BoxPromise<'tx, Result>>
 ----
 
-[#_struct_RelationType_get_plays__]
+[#_struct_RelationType_get_plays_]
 ==== get_plays
 
 [source,rust]
@@ -158,7 +158,7 @@ fn get_plays<'tx>(
 Result>>
 ----
 
-[#_struct_RelationType_get_plays_overridden__]
+[#_struct_RelationType_get_plays_overridden_]
 ==== get_plays_overridden
 
 [source,rust]
@@ -179,7 +179,7 @@ fn get_plays_overridden<'tx>(
 BoxPromise<'tx, Result>>
 ----
 
-[#_struct_RelationType_get_relates__]
+[#_struct_RelationType_get_relates_]
 ==== get_relates
 
 [source,rust]
@@ -200,7 +200,7 @@ fn get_relates<'tx>(
 Result>>
 ----
 
-[#_struct_RelationType_get_relates_for_role_label__]
+[#_struct_RelationType_get_relates_for_role_label_]
 ==== get_relates_for_role_label
 
 [source,rust]
@@ -221,7 +221,7 @@ fn get_relates_for_role_label<'tx>(
 BoxPromise<'tx, Result>>
 ----
 
-[#_struct_RelationType_get_relates_overridden__]
+[#_struct_RelationType_get_relates_overridden_]
 ==== get_relates_overridden
 
 [source,rust]
@@ -242,7 +242,7 @@ fn get_relates_overridden<'tx>(
 BoxPromise<'tx, Result>>
 ----
 
-[#_struct_RelationType_get_subtypes__]
+[#_struct_RelationType_get_subtypes_]
 ==== get_subtypes
 
 [source,rust]
@@ -263,7 +263,7 @@ fn get_subtypes<'tx>(
 Result>>
 ----
 
-[#_struct_RelationType_get_supertype__]
+[#_struct_RelationType_get_supertype_]
 ==== get_supertype
 
 [source,rust]
@@ -283,7 +283,7 @@ fn get_supertype<'tx>(
 BoxPromise<'tx, Result>>
 ----
 
-[#_struct_RelationType_get_supertypes__]
+[#_struct_RelationType_get_supertypes_]
 ==== get_supertypes
 
 [source,rust]
@@ -303,7 +303,7 @@ fn get_supertypes<'tx>(
 Result>>
 ----
 
-[#_struct_RelationType_get_syntax__]
+[#_struct_RelationType_get_syntax_]
 ==== get_syntax
 
 [source,rust]
@@ -323,7 +323,7 @@ fn get_syntax<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_RelationType_is_abstract__]
+[#_struct_RelationType_is_abstract_]
 ==== is_abstract
 
 [source,rust]
@@ -340,7 +340,7 @@ fn is_abstract(&self) -> bool
 bool
 ----
 
-[#_struct_RelationType_is_deleted__]
+[#_struct_RelationType_is_deleted_]
 ==== is_deleted
 
 [source,rust]
@@ -360,7 +360,7 @@ fn is_deleted<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_RelationType_is_root__]
+[#_struct_RelationType_is_root_]
 ==== is_root
 
 [source,rust]
@@ -377,7 +377,7 @@ fn is_root(&self) -> bool
 bool
 ----
 
-[#_struct_RelationType_label__]
+[#_struct_RelationType_label_]
 ==== label
 
 [source,rust]
@@ -394,7 +394,7 @@ fn label(&self) -> &str
 &str
 ----
 
-[#_struct_RelationType_root__]
+[#_struct_RelationType_root_]
 ==== root
 
 [source,rust]
@@ -411,7 +411,7 @@ Returns the root ``RelationType``
 Self
 ----
 
-[#_struct_RelationType_set_abstract__]
+[#_struct_RelationType_set_abstract_]
 ==== set_abstract
 
 [source,rust]
@@ -431,7 +431,7 @@ fn set_abstract<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_RelationType_set_label__]
+[#_struct_RelationType_set_label_]
 ==== set_label
 
 [source,rust]
@@ -452,7 +452,7 @@ fn set_label<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_RelationType_set_owns__]
+[#_struct_RelationType_set_owns_]
 ==== set_owns
 
 [source,rust]
@@ -475,7 +475,7 @@ fn set_owns<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_RelationType_set_plays__]
+[#_struct_RelationType_set_plays_]
 ==== set_plays
 
 [source,rust]
@@ -497,7 +497,7 @@ fn set_plays<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_RelationType_set_relates__]
+[#_struct_RelationType_set_relates_]
 ==== set_relates
 
 [source,rust]
@@ -519,7 +519,7 @@ fn set_relates<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_RelationType_set_supertype__]
+[#_struct_RelationType_set_supertype_]
 ==== set_supertype
 
 [source,rust]
@@ -540,7 +540,7 @@ fn set_supertype<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_RelationType_unset_abstract__]
+[#_struct_RelationType_unset_abstract_]
 ==== unset_abstract
 
 [source,rust]
@@ -560,7 +560,7 @@ fn unset_abstract<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_RelationType_unset_owns__]
+[#_struct_RelationType_unset_owns_]
 ==== unset_owns
 
 [source,rust]
@@ -581,7 +581,7 @@ fn unset_owns<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_RelationType_unset_plays__]
+[#_struct_RelationType_unset_plays_]
 ==== unset_plays
 
 [source,rust]
@@ -602,7 +602,7 @@ fn unset_plays<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_RelationType_unset_relates__]
+[#_struct_RelationType_unset_relates_]
 ==== unset_relates
 
 [source,rust]
diff --git a/rust/docs/schema/RoleType.adoc b/docs/modules/ROOT/partials/rust/schema/RoleType.adoc
similarity index 90%
rename from rust/docs/schema/RoleType.adoc
rename to docs/modules/ROOT/partials/rust/schema/RoleType.adoc
index fe40e5c250..8ef673ca43 100644
--- a/rust/docs/schema/RoleType.adoc
+++ b/docs/modules/ROOT/partials/rust/schema/RoleType.adoc
@@ -29,7 +29,7 @@ a| `label` a| `ScopedLabel` a|
 // end::properties[]
 
 // tag::methods[]
-[#_struct_RoleType_delete__]
+[#_struct_RoleType_delete_]
 ==== delete
 
 [source,rust]
@@ -49,7 +49,7 @@ fn delete<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_RoleType_get_player_instances__]
+[#_struct_RoleType_get_player_instances_]
 ==== get_player_instances
 
 [source,rust]
@@ -70,7 +70,7 @@ fn get_player_instances<'tx>(
 Result>>
 ----
 
-[#_struct_RoleType_get_player_types__]
+[#_struct_RoleType_get_player_types_]
 ==== get_player_types
 
 [source,rust]
@@ -91,7 +91,7 @@ fn get_player_types<'tx>(
 Result>>
 ----
 
-[#_struct_RoleType_get_relation_instances__]
+[#_struct_RoleType_get_relation_instances_]
 ==== get_relation_instances
 
 [source,rust]
@@ -112,7 +112,7 @@ fn get_relation_instances<'tx>(
 Result>>
 ----
 
-[#_struct_RoleType_get_relation_type__]
+[#_struct_RoleType_get_relation_type_]
 ==== get_relation_type
 
 [source,rust]
@@ -132,7 +132,7 @@ fn get_relation_type<'tx>(
 BoxPromise<'tx, Result>>
 ----
 
-[#_struct_RoleType_get_relation_types__]
+[#_struct_RoleType_get_relation_types_]
 ==== get_relation_types
 
 [source,rust]
@@ -152,7 +152,7 @@ fn get_relation_types<'tx>(
 Result>>
 ----
 
-[#_struct_RoleType_get_subtypes__]
+[#_struct_RoleType_get_subtypes_]
 ==== get_subtypes
 
 [source,rust]
@@ -173,7 +173,7 @@ fn get_subtypes<'tx>(
 Result>>
 ----
 
-[#_struct_RoleType_get_supertype__]
+[#_struct_RoleType_get_supertype_]
 ==== get_supertype
 
 [source,rust]
@@ -193,7 +193,7 @@ fn get_supertype<'tx>(
 BoxPromise<'tx, Result>>
 ----
 
-[#_struct_RoleType_get_supertypes__]
+[#_struct_RoleType_get_supertypes_]
 ==== get_supertypes
 
 [source,rust]
@@ -213,7 +213,7 @@ fn get_supertypes<'tx>(
 Result>>
 ----
 
-[#_struct_RoleType_is_abstract__]
+[#_struct_RoleType_is_abstract_]
 ==== is_abstract
 
 [source,rust]
@@ -230,7 +230,7 @@ fn is_abstract(&self) -> bool
 bool
 ----
 
-[#_struct_RoleType_is_deleted__]
+[#_struct_RoleType_is_deleted_]
 ==== is_deleted
 
 [source,rust]
@@ -250,7 +250,7 @@ fn is_deleted<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_RoleType_set_label__]
+[#_struct_RoleType_set_label_]
 ==== set_label
 
 [source,rust]
diff --git a/rust/docs/schema/RootThingType.adoc b/docs/modules/ROOT/partials/rust/schema/RootThingType.adoc
similarity index 88%
rename from rust/docs/schema/RootThingType.adoc
rename to docs/modules/ROOT/partials/rust/schema/RootThingType.adoc
index 5282555eb8..6a36f53a4c 100644
--- a/rust/docs/schema/RootThingType.adoc
+++ b/docs/modules/ROOT/partials/rust/schema/RootThingType.adoc
@@ -12,7 +12,7 @@
 * `ThingTypeAPI`
 
 // tag::methods[]
-[#_struct_RootThingType_delete__]
+[#_struct_RootThingType_delete_]
 ==== delete
 
 [source,rust]
@@ -32,7 +32,7 @@ fn delete<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_RootThingType_get_owns__]
+[#_struct_RootThingType_get_owns_]
 ==== get_owns
 
 [source,rust]
@@ -55,7 +55,7 @@ fn get_owns<'tx>(
 Result>>
 ----
 
-[#_struct_RootThingType_get_owns_overridden__]
+[#_struct_RootThingType_get_owns_overridden_]
 ==== get_owns_overridden
 
 [source,rust]
@@ -76,7 +76,7 @@ fn get_owns_overridden<'tx>(
 BoxPromise<'tx, Result>>
 ----
 
-[#_struct_RootThingType_get_plays__]
+[#_struct_RootThingType_get_plays_]
 ==== get_plays
 
 [source,rust]
@@ -97,7 +97,7 @@ fn get_plays<'tx>(
 Result>>
 ----
 
-[#_struct_RootThingType_get_plays_overridden__]
+[#_struct_RootThingType_get_plays_overridden_]
 ==== get_plays_overridden
 
 [source,rust]
@@ -118,7 +118,7 @@ fn get_plays_overridden<'tx>(
 BoxPromise<'tx, Result>>
 ----
 
-[#_struct_RootThingType_get_syntax__]
+[#_struct_RootThingType_get_syntax_]
 ==== get_syntax
 
 [source,rust]
@@ -138,7 +138,7 @@ fn get_syntax<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_RootThingType_is_abstract__]
+[#_struct_RootThingType_is_abstract_]
 ==== is_abstract
 
 [source,rust]
@@ -155,7 +155,7 @@ fn is_abstract(&self) -> bool
 bool
 ----
 
-[#_struct_RootThingType_is_deleted__]
+[#_struct_RootThingType_is_deleted_]
 ==== is_deleted
 
 [source,rust]
@@ -175,7 +175,7 @@ fn is_deleted<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_RootThingType_is_root__]
+[#_struct_RootThingType_is_root_]
 ==== is_root
 
 [source,rust]
@@ -192,7 +192,7 @@ fn is_root(&self) -> bool
 bool
 ----
 
-[#_struct_RootThingType_label__]
+[#_struct_RootThingType_label_]
 ==== label
 
 [source,rust]
@@ -209,7 +209,7 @@ fn label(&self) -> &str
 &str
 ----
 
-[#_struct_RootThingType_set_abstract__]
+[#_struct_RootThingType_set_abstract_]
 ==== set_abstract
 
 [source,rust]
@@ -229,7 +229,7 @@ fn set_abstract<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_RootThingType_set_label__]
+[#_struct_RootThingType_set_label_]
 ==== set_label
 
 [source,rust]
@@ -250,7 +250,7 @@ fn set_label<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_RootThingType_set_owns__]
+[#_struct_RootThingType_set_owns_]
 ==== set_owns
 
 [source,rust]
@@ -273,7 +273,7 @@ fn set_owns<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_RootThingType_set_plays__]
+[#_struct_RootThingType_set_plays_]
 ==== set_plays
 
 [source,rust]
@@ -295,7 +295,7 @@ fn set_plays<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_RootThingType_unset_abstract__]
+[#_struct_RootThingType_unset_abstract_]
 ==== unset_abstract
 
 [source,rust]
@@ -315,7 +315,7 @@ fn unset_abstract<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_RootThingType_unset_owns__]
+[#_struct_RootThingType_unset_owns_]
 ==== unset_owns
 
 [source,rust]
@@ -336,7 +336,7 @@ fn unset_owns<'tx>(
 BoxPromise<'tx, Result>
 ----
 
-[#_struct_RootThingType_unset_plays__]
+[#_struct_RootThingType_unset_plays_]
 ==== unset_plays
 
 [source,rust]
diff --git a/rust/docs/schema/ScopedLabel.adoc b/docs/modules/ROOT/partials/rust/schema/ScopedLabel.adoc
similarity index 100%
rename from rust/docs/schema/ScopedLabel.adoc
rename to docs/modules/ROOT/partials/rust/schema/ScopedLabel.adoc
diff --git a/rust/docs/schema/ThingType.adoc b/docs/modules/ROOT/partials/rust/schema/ThingType.adoc
similarity index 95%
rename from rust/docs/schema/ThingType.adoc
rename to docs/modules/ROOT/partials/rust/schema/ThingType.adoc
index 42e18f9c1d..843ed18b64 100644
--- a/rust/docs/schema/ThingType.adoc
+++ b/docs/modules/ROOT/partials/rust/schema/ThingType.adoc
@@ -16,7 +16,7 @@ a| `RootThingType(RootThingType)`
 // end::enum_constants[]
 
 // tag::methods[]
-[#_enum_ThingType_label__]
+[#_enum_ThingType_label_]
 ==== label
 
 [source,rust]
diff --git a/rust/docs/schema/Trait_AttributeTypeAPI.adoc b/docs/modules/ROOT/partials/rust/schema/Trait_AttributeTypeAPI.adoc
similarity index 90%
rename from rust/docs/schema/Trait_AttributeTypeAPI.adoc
rename to docs/modules/ROOT/partials/rust/schema/Trait_AttributeTypeAPI.adoc
index cbfd2c6a6b..259513d6ba 100644
--- a/rust/docs/schema/Trait_AttributeTypeAPI.adoc
+++ b/docs/modules/ROOT/partials/rust/schema/Trait_AttributeTypeAPI.adoc
@@ -6,7 +6,7 @@
 * `AttributeType`
 
 // tag::methods[]
-[#_trait_AttributeTypeAPI_get__transaction_tx_Transaction_____value_Value]
+[#_trait_AttributeTypeAPI_get_transaction_tx_Transaction_value_Value]
 ==== get
 
 [source,rust]
@@ -62,7 +62,7 @@ attribute = attribute_type.get(transaction, value).resolve();
 --
 ====
 
-[#_trait_AttributeTypeAPI_get_instances__transaction_tx_Transaction_____transitivity_Transitivity]
+[#_trait_AttributeTypeAPI_get_instances_transaction_tx_Transaction_transitivity_Transitivity]
 ==== get_instances
 
 [source,rust]
@@ -100,7 +100,7 @@ Result>>
 attribute_type.get_instances(transaction, transitivity)
 ----
 
-[#_trait_AttributeTypeAPI_get_owners__transaction_tx_Transaction_____transitivity_Transitivity__annotations_Vec_Annotation_]
+[#_trait_AttributeTypeAPI_get_owners_transaction_tx_Transaction_transitivity_Transitivity_annotations_Vec_Annotation_]
 ==== get_owners
 
 [source,rust]
@@ -140,7 +140,7 @@ Result>>
 attribute_type.get_owners(transaction, transitivity, annotations)
 ----
 
-[#_trait_AttributeTypeAPI_get_regex__transaction_tx_Transaction___]
+[#_trait_AttributeTypeAPI_get_regex_transaction_tx_Transaction_]
 ==== get_regex
 
 [source,rust]
@@ -194,7 +194,7 @@ attribute_type.get_regex(transaction).resolve();
 --
 ====
 
-[#_trait_AttributeTypeAPI_get_subtypes__transaction_tx_Transaction_____transitivity_Transitivity]
+[#_trait_AttributeTypeAPI_get_subtypes_transaction_tx_Transaction_transitivity_Transitivity]
 ==== get_subtypes
 
 [source,rust]
@@ -232,7 +232,7 @@ Result>>
 attribute_type.get_subtypes(transaction, transitivity)
 ----
 
-[#_trait_AttributeTypeAPI_get_subtypes_with_value_type__transaction_tx_Transaction_____value_type_ValueType__transitivity_Transitivity]
+[#_trait_AttributeTypeAPI_get_subtypes_with_value_type_transaction_tx_Transaction_value_type_ValueType_transitivity_Transitivity]
 ==== get_subtypes_with_value_type
 
 [source,rust]
@@ -272,7 +272,7 @@ Result>>
 attribute_type.get_subtypes_with_value_type(transaction, value_type, transitivity)
 ----
 
-[#_trait_AttributeTypeAPI_get_supertype__transaction_tx_Transaction___]
+[#_trait_AttributeTypeAPI_get_supertype_transaction_tx_Transaction_]
 ==== get_supertype
 
 [source,rust]
@@ -326,7 +326,7 @@ attribute_type.get_supertype(transaction).resolve();
 --
 ====
 
-[#_trait_AttributeTypeAPI_get_supertypes__transaction_tx_Transaction___]
+[#_trait_AttributeTypeAPI_get_supertypes_transaction_tx_Transaction_]
 ==== get_supertypes
 
 [source,rust]
@@ -362,7 +362,7 @@ Result>>
 attribute_type.get_supertypes(transaction)
 ----
 
-[#_trait_AttributeTypeAPI_put__transaction_tx_Transaction_____value_Value]
+[#_trait_AttributeTypeAPI_put_transaction_tx_Transaction_value_Value]
 ==== put
 
 [source,rust]
@@ -418,7 +418,7 @@ attribute = attribute_type.put(transaction, value).resolve();
 --
 ====
 
-[#_trait_AttributeTypeAPI_set_regex__transaction_tx_Transaction_____regex_String]
+[#_trait_AttributeTypeAPI_set_regex_transaction_tx_Transaction_regex_String]
 ==== set_regex
 
 [source,rust]
@@ -476,7 +476,7 @@ attribute_type.set_regex(transaction, regex).resolve();
 --
 ====
 
-[#_trait_AttributeTypeAPI_set_supertype__transaction_tx_Transaction_____supertype_AttributeType]
+[#_trait_AttributeTypeAPI_set_supertype_transaction_tx_Transaction_supertype_AttributeType]
 ==== set_supertype
 
 [source,rust]
@@ -532,7 +532,7 @@ attribute_type.set_supertype(transaction, supertype).resolve();
 --
 ====
 
-[#_trait_AttributeTypeAPI_unset_regex__transaction_tx_Transaction___]
+[#_trait_AttributeTypeAPI_unset_regex_transaction_tx_Transaction_]
 ==== unset_regex
 
 [source,rust]
@@ -586,7 +586,7 @@ attribute_type.unset_regex(transaction).resolve();
 --
 ====
 
-[#_trait_AttributeTypeAPI_value_type__]
+[#_trait_AttributeTypeAPI_value_type_]
 ==== value_type
 
 [source,rust]
diff --git a/rust/docs/schema/Trait_EntityTypeAPI.adoc b/docs/modules/ROOT/partials/rust/schema/Trait_EntityTypeAPI.adoc
similarity index 90%
rename from rust/docs/schema/Trait_EntityTypeAPI.adoc
rename to docs/modules/ROOT/partials/rust/schema/Trait_EntityTypeAPI.adoc
index 44d2e100e6..e5a1d5b6b8 100644
--- a/rust/docs/schema/Trait_EntityTypeAPI.adoc
+++ b/docs/modules/ROOT/partials/rust/schema/Trait_EntityTypeAPI.adoc
@@ -6,7 +6,7 @@
 * `EntityType`
 
 // tag::methods[]
-[#_trait_EntityTypeAPI_create__transaction_tx_Transaction___]
+[#_trait_EntityTypeAPI_create_transaction_tx_Transaction_]
 ==== create
 
 [source,rust]
@@ -60,7 +60,7 @@ entity_type.create(transaction).resolve();
 --
 ====
 
-[#_trait_EntityTypeAPI_get_instances__transaction_tx_Transaction_____transitivity_Transitivity]
+[#_trait_EntityTypeAPI_get_instances_transaction_tx_Transaction_transitivity_Transitivity]
 ==== get_instances
 
 [source,rust]
@@ -98,7 +98,7 @@ Result>>
 entity_type.get_instances(transaction, Transitivity::Explicit);
 ----
 
-[#_trait_EntityTypeAPI_get_subtypes__transaction_tx_Transaction_____transitivity_Transitivity]
+[#_trait_EntityTypeAPI_get_subtypes_transaction_tx_Transaction_transitivity_Transitivity]
 ==== get_subtypes
 
 [source,rust]
@@ -136,7 +136,7 @@ Result>>
 entity_type.get_subtypes(transaction, Transitivity::Transitive);
 ----
 
-[#_trait_EntityTypeAPI_get_supertype__transaction_tx_Transaction___]
+[#_trait_EntityTypeAPI_get_supertype_transaction_tx_Transaction_]
 ==== get_supertype
 
 [source,rust]
@@ -190,7 +190,7 @@ entity_type.get_supertype(transaction).resolve();
 --
 ====
 
-[#_trait_EntityTypeAPI_get_supertypes__transaction_tx_Transaction___]
+[#_trait_EntityTypeAPI_get_supertypes_transaction_tx_Transaction_]
 ==== get_supertypes
 
 [source,rust]
@@ -226,7 +226,7 @@ Result>>
 entity_type.get_supertypes(transaction);
 ----
 
-[#_trait_EntityTypeAPI_set_supertype__transaction_tx_Transaction_____supertype_EntityType]
+[#_trait_EntityTypeAPI_set_supertype_transaction_tx_Transaction_supertype_EntityType]
 ==== set_supertype
 
 [source,rust]
diff --git a/rust/docs/schema/Trait_RelationTypeAPI.adoc b/docs/modules/ROOT/partials/rust/schema/Trait_RelationTypeAPI.adoc
similarity index 89%
rename from rust/docs/schema/Trait_RelationTypeAPI.adoc
rename to docs/modules/ROOT/partials/rust/schema/Trait_RelationTypeAPI.adoc
index f0a979d2da..fb3dea50e9 100644
--- a/rust/docs/schema/Trait_RelationTypeAPI.adoc
+++ b/docs/modules/ROOT/partials/rust/schema/Trait_RelationTypeAPI.adoc
@@ -6,7 +6,7 @@
 * `RelationType`
 
 // tag::methods[]
-[#_trait_RelationTypeAPI_create__transaction_tx_Transaction___]
+[#_trait_RelationTypeAPI_create_transaction_tx_Transaction_]
 ==== create
 
 [source,rust]
@@ -60,7 +60,7 @@ relation_type.create(transaction).resolve();
 --
 ====
 
-[#_trait_RelationTypeAPI_get_instances__transaction_tx_Transaction_____transitivity_Transitivity]
+[#_trait_RelationTypeAPI_get_instances_transaction_tx_Transaction_transitivity_Transitivity]
 ==== get_instances
 
 [source,rust]
@@ -98,7 +98,7 @@ Result>>
 relation_type.get_instances(transaction, Transitivity::Explicit);
 ----
 
-[#_trait_RelationTypeAPI_get_relates__transaction_tx_Transaction_____transitivity_Transitivity]
+[#_trait_RelationTypeAPI_get_relates_transaction_tx_Transaction_transitivity_Transitivity]
 ==== get_relates
 
 [source,rust]
@@ -136,7 +136,7 @@ Result>>
 relation_type.get_relates(transaction, Transitivity::Transitive);
 ----
 
-[#_trait_RelationTypeAPI_get_relates_for_role_label__transaction_tx_Transaction_____role_label_String]
+[#_trait_RelationTypeAPI_get_relates_for_role_label_transaction_tx_Transaction_role_label_String]
 ==== get_relates_for_role_label
 
 [source,rust]
@@ -192,7 +192,7 @@ relation_type.get_relates_for_role_label(transaction, role_label).resolve();
 --
 ====
 
-[#_trait_RelationTypeAPI_get_relates_overridden__transaction_tx_Transaction_____overridden_role_label_String]
+[#_trait_RelationTypeAPI_get_relates_overridden_transaction_tx_Transaction_overridden_role_label_String]
 ==== get_relates_overridden
 
 [source,rust]
@@ -248,7 +248,7 @@ relation_type.get_relates_overridden(transaction, overridden_role_label).resolve
 --
 ====
 
-[#_trait_RelationTypeAPI_get_subtypes__transaction_tx_Transaction_____transitivity_Transitivity]
+[#_trait_RelationTypeAPI_get_subtypes_transaction_tx_Transaction_transitivity_Transitivity]
 ==== get_subtypes
 
 [source,rust]
@@ -286,7 +286,7 @@ Result>>
 relation_type.get_subtypes(transaction, Transitivity::Transitive);
 ----
 
-[#_trait_RelationTypeAPI_get_supertype__transaction_tx_Transaction___]
+[#_trait_RelationTypeAPI_get_supertype_transaction_tx_Transaction_]
 ==== get_supertype
 
 [source,rust]
@@ -340,7 +340,7 @@ relation_type.get_supertype(transaction).resolve();
 --
 ====
 
-[#_trait_RelationTypeAPI_get_supertypes__transaction_tx_Transaction___]
+[#_trait_RelationTypeAPI_get_supertypes_transaction_tx_Transaction_]
 ==== get_supertypes
 
 [source,rust]
@@ -376,7 +376,7 @@ Result>>
 relation_type.get_supertypes(transaction);
 ----
 
-[#_trait_RelationTypeAPI_set_relates__transaction_tx_Transaction_____role_label_String__overridden_role_label_Option_String_]
+[#_trait_RelationTypeAPI_set_relates_transaction_tx_Transaction_role_label_String_overridden_role_label_Option_String_]
 ==== set_relates
 
 [source,rust]
@@ -434,7 +434,7 @@ relation_type.set_relates(transaction, role_label, None).resolve();
 --
 ====
 
-[#_trait_RelationTypeAPI_set_supertype__transaction_tx_Transaction_____supertype_RelationType]
+[#_trait_RelationTypeAPI_set_supertype_transaction_tx_Transaction_supertype_RelationType]
 ==== set_supertype
 
 [source,rust]
@@ -490,7 +490,7 @@ relation_type.set_supertype(transaction, super_relation_type).resolve();
 --
 ====
 
-[#_trait_RelationTypeAPI_unset_relates__transaction_tx_Transaction_____role_label_String]
+[#_trait_RelationTypeAPI_unset_relates_transaction_tx_Transaction_role_label_String]
 ==== unset_relates
 
 [source,rust]
diff --git a/rust/docs/schema/Trait_RoleTypeAPI.adoc b/docs/modules/ROOT/partials/rust/schema/Trait_RoleTypeAPI.adoc
similarity index 89%
rename from rust/docs/schema/Trait_RoleTypeAPI.adoc
rename to docs/modules/ROOT/partials/rust/schema/Trait_RoleTypeAPI.adoc
index 39225bc6ee..863cf3f06b 100644
--- a/rust/docs/schema/Trait_RoleTypeAPI.adoc
+++ b/docs/modules/ROOT/partials/rust/schema/Trait_RoleTypeAPI.adoc
@@ -6,7 +6,7 @@
 * `RoleType`
 
 // tag::methods[]
-[#_trait_RoleTypeAPI_delete__transaction_tx_Transaction___]
+[#_trait_RoleTypeAPI_delete_transaction_tx_Transaction_]
 ==== delete
 
 [source,rust]
@@ -60,7 +60,7 @@ role_type.delete(transaction).resolve();
 --
 ====
 
-[#_trait_RoleTypeAPI_get_player_instances__transaction_tx_Transaction_____transitivity_Transitivity]
+[#_trait_RoleTypeAPI_get_player_instances_transaction_tx_Transaction_transitivity_Transitivity]
 ==== get_player_instances
 
 [source,rust]
@@ -98,7 +98,7 @@ Result>>
 role_type.get_player_instances(transaction, transitivity)
 ----
 
-[#_trait_RoleTypeAPI_get_player_types__transaction_tx_Transaction_____transitivity_Transitivity]
+[#_trait_RoleTypeAPI_get_player_types_transaction_tx_Transaction_transitivity_Transitivity]
 ==== get_player_types
 
 [source,rust]
@@ -136,7 +136,7 @@ Result>>
 role_type.get_player_types(transaction, transitivity)
 ----
 
-[#_trait_RoleTypeAPI_get_relation_instances__transaction_tx_Transaction_____transitivity_Transitivity]
+[#_trait_RoleTypeAPI_get_relation_instances_transaction_tx_Transaction_transitivity_Transitivity]
 ==== get_relation_instances
 
 [source,rust]
@@ -174,7 +174,7 @@ Result>>
 role_type.get_relation_instances(transaction, transitivity)
 ----
 
-[#_trait_RoleTypeAPI_get_relation_type__transaction_tx_Transaction___]
+[#_trait_RoleTypeAPI_get_relation_type_transaction_tx_Transaction_]
 ==== get_relation_type
 
 [source,rust]
@@ -228,7 +228,7 @@ role_type.get_relation_type(transaction).resolve();
 --
 ====
 
-[#_trait_RoleTypeAPI_get_relation_types__transaction_tx_Transaction___]
+[#_trait_RoleTypeAPI_get_relation_types_transaction_tx_Transaction_]
 ==== get_relation_types
 
 [source,rust]
@@ -264,7 +264,7 @@ Result>>
 role_type.get_relation_types(transaction)
 ----
 
-[#_trait_RoleTypeAPI_get_subtypes__transaction_tx_Transaction_____transitivity_Transitivity]
+[#_trait_RoleTypeAPI_get_subtypes_transaction_tx_Transaction_transitivity_Transitivity]
 ==== get_subtypes
 
 [source,rust]
@@ -302,7 +302,7 @@ Result>>
 role_type.get_subtypes(transaction, transitivity)
 ----
 
-[#_trait_RoleTypeAPI_get_supertype__transaction_tx_Transaction___]
+[#_trait_RoleTypeAPI_get_supertype_transaction_tx_Transaction_]
 ==== get_supertype
 
 [source,rust]
@@ -356,7 +356,7 @@ role_type.get_supertype(transaction).resolve();
 --
 ====
 
-[#_trait_RoleTypeAPI_get_supertypes__transaction_tx_Transaction___]
+[#_trait_RoleTypeAPI_get_supertypes_transaction_tx_Transaction_]
 ==== get_supertypes
 
 [source,rust]
@@ -392,7 +392,7 @@ Result>>
 role_type.get_supertypes(transaction)
 ----
 
-[#_trait_RoleTypeAPI_is_abstract__]
+[#_trait_RoleTypeAPI_is_abstract_]
 ==== is_abstract
 
 [source,rust]
@@ -416,7 +416,7 @@ bool
 role_type.is_abstract()
 ----
 
-[#_trait_RoleTypeAPI_is_deleted__transaction_tx_Transaction___]
+[#_trait_RoleTypeAPI_is_deleted_transaction_tx_Transaction_]
 ==== is_deleted
 
 [source,rust]
@@ -470,7 +470,7 @@ role_type.is_deleted(transaction).resolve();
 --
 ====
 
-[#_trait_RoleTypeAPI_set_label__transaction_tx_Transaction_____new_label_String]
+[#_trait_RoleTypeAPI_set_label_transaction_tx_Transaction_new_label_String]
 ==== set_label
 
 [source,rust]
diff --git a/rust/docs/schema/Trait_ThingTypeAPI.adoc b/docs/modules/ROOT/partials/rust/schema/Trait_ThingTypeAPI.adoc
similarity index 90%
rename from rust/docs/schema/Trait_ThingTypeAPI.adoc
rename to docs/modules/ROOT/partials/rust/schema/Trait_ThingTypeAPI.adoc
index 5b046e7b78..c94e72e344 100644
--- a/rust/docs/schema/Trait_ThingTypeAPI.adoc
+++ b/docs/modules/ROOT/partials/rust/schema/Trait_ThingTypeAPI.adoc
@@ -9,7 +9,7 @@
 * `RootThingType`
 
 // tag::methods[]
-[#_trait_ThingTypeAPI_delete__transaction_tx_Transaction___]
+[#_trait_ThingTypeAPI_delete_transaction_tx_Transaction_]
 ==== delete
 
 [source,rust]
@@ -63,7 +63,7 @@ thing_type.delete(transaction).resolve();
 --
 ====
 
-[#_trait_ThingTypeAPI_get_owns__transaction_tx_Transaction_____value_type_Option_ValueType___transitivity_Transitivity__annotations_Vec_Annotation_]
+[#_trait_ThingTypeAPI_get_owns_transaction_tx_Transaction_value_type_Option_ValueType_transitivity_Transitivity_annotations_Vec_Annotation_]
 ==== get_owns
 
 [source,rust]
@@ -123,7 +123,7 @@ thing_type.get_owns(transaction, Some(value_type), Transitivity::Explicit, vec![
 --
 ====
 
-[#_trait_ThingTypeAPI_get_owns_overridden__transaction_tx_Transaction_____overridden_attribute_type_AttributeType]
+[#_trait_ThingTypeAPI_get_owns_overridden_transaction_tx_Transaction_overridden_attribute_type_AttributeType]
 ==== get_owns_overridden
 
 [source,rust]
@@ -179,7 +179,7 @@ thing_type.get_owns_overridden(transaction, attribute_type).resolve();
 --
 ====
 
-[#_trait_ThingTypeAPI_get_plays__transaction_tx_Transaction_____transitivity_Transitivity]
+[#_trait_ThingTypeAPI_get_plays_transaction_tx_Transaction_transitivity_Transitivity]
 ==== get_plays
 
 [source,rust]
@@ -235,7 +235,7 @@ thing_type.get_plays(transaction, Transitivity::Explicit).resolve();
 --
 ====
 
-[#_trait_ThingTypeAPI_get_plays_overridden__transaction_tx_Transaction_____overridden_role_type_RoleType]
+[#_trait_ThingTypeAPI_get_plays_overridden_transaction_tx_Transaction_overridden_role_type_RoleType]
 ==== get_plays_overridden
 
 [source,rust]
@@ -291,7 +291,7 @@ thing_type.get_plays_overridden(transaction, role_type).resolve();
 --
 ====
 
-[#_trait_ThingTypeAPI_get_syntax__transaction_tx_Transaction___]
+[#_trait_ThingTypeAPI_get_syntax_transaction_tx_Transaction_]
 ==== get_syntax
 
 [source,rust]
@@ -345,7 +345,7 @@ thing_type.get_syntax(transaction).resolve();
 --
 ====
 
-[#_trait_ThingTypeAPI_is_abstract__]
+[#_trait_ThingTypeAPI_is_abstract_]
 ==== is_abstract
 
 [source,rust]
@@ -369,7 +369,7 @@ bool
 thing_type.is_abstract();
 ----
 
-[#_trait_ThingTypeAPI_is_deleted__transaction_tx_Transaction___]
+[#_trait_ThingTypeAPI_is_deleted_transaction_tx_Transaction_]
 ==== is_deleted
 
 [source,rust]
@@ -423,7 +423,7 @@ thing_type.is_deleted(transaction).resolve();
 --
 ====
 
-[#_trait_ThingTypeAPI_is_root__]
+[#_trait_ThingTypeAPI_is_root_]
 ==== is_root
 
 [source,rust]
@@ -447,7 +447,7 @@ bool
 thing_type.is_root();
 ----
 
-[#_trait_ThingTypeAPI_label__]
+[#_trait_ThingTypeAPI_label_]
 ==== label
 
 [source,rust]
@@ -471,7 +471,7 @@ Retrieves the unique label of the type.
 thing_type.label();
 ----
 
-[#_trait_ThingTypeAPI_set_abstract__transaction_tx_Transaction___]
+[#_trait_ThingTypeAPI_set_abstract_transaction_tx_Transaction_]
 ==== set_abstract
 
 [source,rust]
@@ -525,7 +525,7 @@ thing_type.set_abstract(transaction).resolve();
 --
 ====
 
-[#_trait_ThingTypeAPI_set_label__transaction_tx_Transaction_____new_label_String]
+[#_trait_ThingTypeAPI_set_label_transaction_tx_Transaction_new_label_String]
 ==== set_label
 
 [source,rust]
@@ -581,7 +581,7 @@ thing_type.set_label(transaction, new_label).resolve();
 --
 ====
 
-[#_trait_ThingTypeAPI_set_owns__transaction_tx_Transaction_____attribute_type_AttributeType__overridden_attribute_type_Option_AttributeType___annotations_Vec_Annotation_]
+[#_trait_ThingTypeAPI_set_owns_transaction_tx_Transaction_attribute_type_AttributeType_overridden_attribute_type_Option_AttributeType_annotations_Vec_Annotation_]
 ==== set_owns
 
 [source,rust]
@@ -641,7 +641,7 @@ thing_type.set_owns(transaction, attribute_type, Some(overridden_type), vec![Ann
 --
 ====
 
-[#_trait_ThingTypeAPI_set_plays__transaction_tx_Transaction_____role_type_RoleType__overridden_role_type_Option_RoleType_]
+[#_trait_ThingTypeAPI_set_plays_transaction_tx_Transaction_role_type_RoleType_overridden_role_type_Option_RoleType_]
 ==== set_plays
 
 [source,rust]
@@ -699,7 +699,7 @@ thing_type.set_plays(transaction, role_type, None).resolve();
 --
 ====
 
-[#_trait_ThingTypeAPI_unset_abstract__transaction_tx_Transaction___]
+[#_trait_ThingTypeAPI_unset_abstract_transaction_tx_Transaction_]
 ==== unset_abstract
 
 [source,rust]
@@ -753,7 +753,7 @@ thing_type.unset_abstract(transaction).resolve();
 --
 ====
 
-[#_trait_ThingTypeAPI_unset_owns__transaction_tx_Transaction_____attribute_type_AttributeType]
+[#_trait_ThingTypeAPI_unset_owns_transaction_tx_Transaction_attribute_type_AttributeType]
 ==== unset_owns
 
 [source,rust]
@@ -809,7 +809,7 @@ thing_type.unset_owns(transaction, attribute_type).resolve();
 --
 ====
 
-[#_trait_ThingTypeAPI_unset_plays__transaction_tx_Transaction_____role_type_RoleType]
+[#_trait_ThingTypeAPI_unset_plays_transaction_tx_Transaction_role_type_RoleType]
 ==== unset_plays
 
 [source,rust]
diff --git a/rust/docs/schema/Transitivity.adoc b/docs/modules/ROOT/partials/rust/schema/Transitivity.adoc
similarity index 100%
rename from rust/docs/schema/Transitivity.adoc
rename to docs/modules/ROOT/partials/rust/schema/Transitivity.adoc
diff --git a/rust/docs/schema/ValueType.adoc b/docs/modules/ROOT/partials/rust/schema/ValueType.adoc
similarity index 100%
rename from rust/docs/schema/ValueType.adoc
rename to docs/modules/ROOT/partials/rust/schema/ValueType.adoc
diff --git a/rust/docs/session/Options.adoc b/docs/modules/ROOT/partials/rust/session/Options.adoc
similarity index 92%
rename from rust/docs/session/Options.adoc
rename to docs/modules/ROOT/partials/rust/session/Options.adoc
index 55ffd9066a..a87331138e 100644
--- a/rust/docs/session/Options.adoc
+++ b/docs/modules/ROOT/partials/rust/session/Options.adoc
@@ -31,7 +31,7 @@ a| `transaction_timeout` a| `Option` a| If set, specifies a timeout fo
 // end::properties[]
 
 // tag::methods[]
-[#_struct_Options_explain__]
+[#_struct_Options_explain_]
 ==== explain
 
 [source,rust]
@@ -48,7 +48,7 @@ If set to ``True``, enables explanations for queries. Only affects read transact
 Self
 ----
 
-[#_struct_Options_infer__]
+[#_struct_Options_infer_]
 ==== infer
 
 [source,rust]
@@ -65,7 +65,7 @@ If set to ``True``, enables inference for queries. Only settable at transaction
 Self
 ----
 
-[#_struct_Options_parallel__]
+[#_struct_Options_parallel_]
 ==== parallel
 
 [source,rust]
@@ -82,7 +82,7 @@ If set to ``True``, the server uses parallel instead of single-threaded executio
 Self
 ----
 
-[#_struct_Options_prefetch__]
+[#_struct_Options_prefetch_]
 ==== prefetch
 
 [source,rust]
@@ -99,7 +99,7 @@ If set to ``True``, the first batch of answers is streamed to the driver even wi
 Self
 ----
 
-[#_struct_Options_prefetch_size__]
+[#_struct_Options_prefetch_size_]
 ==== prefetch_size
 
 [source,rust]
@@ -116,7 +116,7 @@ If set, specifies a guideline number of answers that the server should send befo
 Self
 ----
 
-[#_struct_Options_read_any_replica__]
+[#_struct_Options_read_any_replica_]
 ==== read_any_replica
 
 [source,rust]
@@ -133,7 +133,7 @@ If set to ``True``, enables reading data from any replica, potentially boosting
 Self
 ----
 
-[#_struct_Options_schema_lock_acquire_timeout__]
+[#_struct_Options_schema_lock_acquire_timeout_]
 ==== schema_lock_acquire_timeout
 
 [source,rust]
@@ -150,7 +150,7 @@ If set, specifies how long the driver should wait if opening a session or transa
 Self
 ----
 
-[#_struct_Options_session_idle_timeout__]
+[#_struct_Options_session_idle_timeout_]
 ==== session_idle_timeout
 
 [source,rust]
@@ -167,7 +167,7 @@ If set, specifies a timeout that allows the server to close sessions if the driv
 Self
 ----
 
-[#_struct_Options_trace_inference__]
+[#_struct_Options_trace_inference_]
 ==== trace_inference
 
 [source,rust]
@@ -184,7 +184,7 @@ If set to ``True``, reasoning tracing graphs are output in the logging directory
 Self
 ----
 
-[#_struct_Options_transaction_timeout__]
+[#_struct_Options_transaction_timeout_]
 ==== transaction_timeout
 
 [source,rust]
diff --git a/rust/docs/session/Session.adoc b/docs/modules/ROOT/partials/rust/session/Session.adoc
similarity index 92%
rename from rust/docs/session/Session.adoc
rename to docs/modules/ROOT/partials/rust/session/Session.adoc
index e0c1ab5f0a..0a6092e6a3 100644
--- a/rust/docs/session/Session.adoc
+++ b/docs/modules/ROOT/partials/rust/session/Session.adoc
@@ -9,7 +9,7 @@
 A session with a TypeDB database.
 
 // tag::methods[]
-[#_struct_Session_database_name__]
+[#_struct_Session_database_name_]
 ==== database_name
 
 [source,rust]
@@ -33,7 +33,7 @@ Returns the name of the database of the session.
 session.database_name();
 ----
 
-[#_struct_Session_force_close__]
+[#_struct_Session_force_close_]
 ==== force_close
 
 [source,rust]
@@ -57,7 +57,7 @@ Result
 session.force_close();
 ----
 
-[#_struct_Session_is_open__]
+[#_struct_Session_is_open_]
 ==== is_open
 
 [source,rust]
@@ -81,7 +81,7 @@ bool
 session.is_open();
 ----
 
-[#_struct_Session_new__]
+[#_struct_Session_new_]
 ==== new
 
 [tabs]
@@ -116,7 +116,7 @@ Opens a communication tunnel (session) to the given database with default option
 Result
 ----
 
-[#_struct_Session_new_with_options__database_Database__session_type_SessionType__options_Options]
+[#_struct_Session_new_with_options_database_Database_session_type_SessionType_options_Options]
 ==== new_with_options
 
 [tabs]
@@ -195,7 +195,7 @@ Session::new_with_options(database, session_type, options);
 --
 ====
 
-[#_struct_Session_on_close__function]
+[#_struct_Session_on_close_function]
 ==== on_close
 
 [source,rust]
@@ -228,7 +228,7 @@ null
 session.on_close(function);
 ----
 
-[#_struct_Session_on_reopen__function]
+[#_struct_Session_on_reopen_function]
 ==== on_reopen
 
 [source,rust]
@@ -261,7 +261,7 @@ null
 session.on_reopen(function);
 ----
 
-[#_struct_Session_transaction__]
+[#_struct_Session_transaction_]
 ==== transaction
 
 [tabs]
@@ -302,7 +302,7 @@ Opens a transaction to perform read or write queries on the database connected t
 Result>
 ----
 
-[#_struct_Session_transaction_with_options__transaction_type_TransactionType__options_Options]
+[#_struct_Session_transaction_with_options_transaction_type_TransactionType_options_Options]
 ==== transaction_with_options
 
 [tabs]
@@ -380,7 +380,7 @@ session.transaction_with_options(transaction_type, options);
 --
 ====
 
-[#_struct_Session_type___]
+[#_struct_Session_type_]
 ==== type_
 
 [source,rust]
diff --git a/rust/docs/session/SessionType.adoc b/docs/modules/ROOT/partials/rust/session/SessionType.adoc
similarity index 100%
rename from rust/docs/session/SessionType.adoc
rename to docs/modules/ROOT/partials/rust/session/SessionType.adoc
diff --git a/rust/docs/transaction/QueryManager.adoc b/docs/modules/ROOT/partials/rust/transaction/QueryManager.adoc
similarity index 90%
rename from rust/docs/transaction/QueryManager.adoc
rename to docs/modules/ROOT/partials/rust/transaction/QueryManager.adoc
index 6b69f821c4..9993a7585a 100644
--- a/rust/docs/transaction/QueryManager.adoc
+++ b/docs/modules/ROOT/partials/rust/transaction/QueryManager.adoc
@@ -8,7 +8,7 @@
 Provides methods for executing TypeQL queries in the transaction.
 
 // tag::methods[]
-[#_struct_QueryManager_define__]
+[#_struct_QueryManager_define_]
 ==== define
 
 [source,rust]
@@ -25,7 +25,7 @@ Performs a TypeQL Define query with default options. See <<#_struct_QueryManager
 impl Promise<'tx, Result>
 ----
 
-[#_struct_QueryManager_define_with_options__query_str__options_Options]
+[#_struct_QueryManager_define_with_options_query_str_options_Options]
 ==== define_with_options
 
 [source,rust]
@@ -81,7 +81,7 @@ transaction.query().define_with_options(query, options).resolve()
 --
 ====
 
-[#_struct_QueryManager_delete__]
+[#_struct_QueryManager_delete_]
 ==== delete
 
 [source,rust]
@@ -98,7 +98,7 @@ Performs a TypeQL Delete query with default options. See <<#_struct_QueryManager
 impl Promise<'tx, Result>
 ----
 
-[#_struct_QueryManager_delete_with_options__query_str__options_Options]
+[#_struct_QueryManager_delete_with_options_query_str_options_Options]
 ==== delete_with_options
 
 [source,rust]
@@ -154,7 +154,7 @@ transaction.query().delete_with_options(query, options).resolve()
 --
 ====
 
-[#_struct_QueryManager_explain__]
+[#_struct_QueryManager_explain_]
 ==== explain
 
 [source,rust]
@@ -174,7 +174,7 @@ Performs a TypeQL Explain query in the transaction. See ``QueryManager::explain_
 Result> + 'tx>
 ----
 
-[#_struct_QueryManager_explain_with_options__explainable_Explainable__options_Options]
+[#_struct_QueryManager_explain_with_options_explainable_Explainable_options_Options]
 ==== explain_with_options
 
 [source,rust]
@@ -212,7 +212,7 @@ Result> + 'tx>
 transaction.query().explain_with_options(explainable, options)
 ----
 
-[#_struct_QueryManager_fetch__]
+[#_struct_QueryManager_fetch_]
 ==== fetch
 
 [source,rust]
@@ -232,7 +232,7 @@ Performs a TypeQL Fetch query with default options. See <<#_struct_QueryManager_
 Result> + 'tx>
 ----
 
-[#_struct_QueryManager_fetch_with_options__query_str__options_Options]
+[#_struct_QueryManager_fetch_with_options_query_str_options_Options]
 ==== fetch_with_options
 
 [source,rust]
@@ -270,7 +270,7 @@ Result> + 'tx>
 transaction.query().fetch_with_options(query, options)
 ----
 
-[#_struct_QueryManager_get__]
+[#_struct_QueryManager_get_]
 ==== get
 
 [source,rust]
@@ -290,7 +290,7 @@ Performs a TypeQL Match (Get) query with default options. See <<#_struct_QueryMa
 Result> + 'tx>
 ----
 
-[#_struct_QueryManager_get_aggregate__]
+[#_struct_QueryManager_get_aggregate_]
 ==== get_aggregate
 
 [source,rust]
@@ -310,7 +310,7 @@ Performs a TypeQL Match Aggregate query with default options. See <<#_struct_Que
 impl Promise<'tx, Result>>
 ----
 
-[#_struct_QueryManager_get_aggregate_with_options__query_str__options_Options]
+[#_struct_QueryManager_get_aggregate_with_options_query_str_options_Options]
 ==== get_aggregate_with_options
 
 [source,rust]
@@ -366,7 +366,7 @@ transaction.query().get_aggregate_with_options(query, options).resolve()
 --
 ====
 
-[#_struct_QueryManager_get_group__]
+[#_struct_QueryManager_get_group_]
 ==== get_group
 
 [source,rust]
@@ -386,7 +386,7 @@ Performs a TypeQL Match Group query with default options. See <<#_struct_QueryMa
 Result> + 'tx>
 ----
 
-[#_struct_QueryManager_get_group_aggregate__]
+[#_struct_QueryManager_get_group_aggregate_]
 ==== get_group_aggregate
 
 [source,rust]
@@ -406,7 +406,7 @@ Performs a TypeQL Match Group Aggregate query with default options. See <<#_stru
 Result> + 'tx>
 ----
 
-[#_struct_QueryManager_get_group_aggregate_with_options__query_str__options_Options]
+[#_struct_QueryManager_get_group_aggregate_with_options_query_str_options_Options]
 ==== get_group_aggregate_with_options
 
 [source,rust]
@@ -444,7 +444,7 @@ Result> + 'tx>
 transaction.query().get_group_aggregate_with_options(query, options)
 ----
 
-[#_struct_QueryManager_get_group_with_options__query_str__options_Options]
+[#_struct_QueryManager_get_group_with_options_query_str_options_Options]
 ==== get_group_with_options
 
 [source,rust]
@@ -482,7 +482,7 @@ Result> + 'tx>
 transaction.query().get_group_with_options(query, options)
 ----
 
-[#_struct_QueryManager_get_with_options__query_str__options_Options]
+[#_struct_QueryManager_get_with_options_query_str_options_Options]
 ==== get_with_options
 
 [source,rust]
@@ -520,7 +520,7 @@ Result> + 'tx>
 transaction.query().get_with_options(query, options)
 ----
 
-[#_struct_QueryManager_insert__]
+[#_struct_QueryManager_insert_]
 ==== insert
 
 [source,rust]
@@ -540,7 +540,7 @@ Performs a TypeQL Insert query with default options. See <<#_struct_QueryManager
 Result> + 'tx>
 ----
 
-[#_struct_QueryManager_insert_with_options__query_str__options_Options]
+[#_struct_QueryManager_insert_with_options_query_str_options_Options]
 ==== insert_with_options
 
 [source,rust]
@@ -578,7 +578,7 @@ Result> + 'tx>
 transaction.query().insert_with_options(query, options)
 ----
 
-[#_struct_QueryManager_undefine__]
+[#_struct_QueryManager_undefine_]
 ==== undefine
 
 [source,rust]
@@ -595,7 +595,7 @@ Performs a TypeQL Undefine query with default options See <<#_struct_QueryManage
 impl Promise<'tx, Result>
 ----
 
-[#_struct_QueryManager_undefine_with_options__query_str__options_Options]
+[#_struct_QueryManager_undefine_with_options_query_str_options_Options]
 ==== undefine_with_options
 
 [source,rust]
@@ -651,7 +651,7 @@ transaction.query().undefine_with_options(query, options).resolve()
 --
 ====
 
-[#_struct_QueryManager_update__]
+[#_struct_QueryManager_update_]
 ==== update
 
 [source,rust]
@@ -671,7 +671,7 @@ Performs a TypeQL Update query with default options. See <<#_struct_QueryManager
 Result> + 'tx>
 ----
 
-[#_struct_QueryManager_update_with_options__query_str__options_Options]
+[#_struct_QueryManager_update_with_options_query_str_options_Options]
 ==== update_with_options
 
 [source,rust]
diff --git a/rust/docs/transaction/Transaction.adoc b/docs/modules/ROOT/partials/rust/transaction/Transaction.adoc
similarity index 90%
rename from rust/docs/transaction/Transaction.adoc
rename to docs/modules/ROOT/partials/rust/transaction/Transaction.adoc
index 3ff9d6e9b8..c77360f55e 100644
--- a/rust/docs/transaction/Transaction.adoc
+++ b/docs/modules/ROOT/partials/rust/transaction/Transaction.adoc
@@ -8,7 +8,7 @@
 A transaction with a TypeDB database.
 
 // tag::methods[]
-[#_struct_Transaction_commit__]
+[#_struct_Transaction_commit_]
 ==== commit
 
 [source,rust]
@@ -50,7 +50,7 @@ transaction.commit()
 --
 ====
 
-[#_struct_Transaction_concept__]
+[#_struct_Transaction_concept_]
 ==== concept
 
 [source,rust]
@@ -67,7 +67,7 @@ The ``ConceptManager`` for this transaction, providing access to all Concept API
 ConceptManager<'_>
 ----
 
-[#_struct_Transaction_force_close__]
+[#_struct_Transaction_force_close_]
 ==== force_close
 
 [source,rust]
@@ -91,7 +91,7 @@ null
 transaction.force_close()
 ----
 
-[#_struct_Transaction_is_open__]
+[#_struct_Transaction_is_open_]
 ==== is_open
 
 [source,rust]
@@ -115,7 +115,7 @@ bool
 transaction.close()
 ----
 
-[#_struct_Transaction_logic__]
+[#_struct_Transaction_logic_]
 ==== logic
 
 [source,rust]
@@ -132,7 +132,7 @@ Retrieves the ``LogicManager`` for this Transaction, providing access to all Con
 LogicManager<'_>
 ----
 
-[#_struct_Transaction_on_close__function]
+[#_struct_Transaction_on_close_function]
 ==== on_close
 
 [source,rust]
@@ -168,7 +168,7 @@ null
 transaction.on_close(function)
 ----
 
-[#_struct_Transaction_query__]
+[#_struct_Transaction_query_]
 ==== query
 
 [source,rust]
@@ -185,7 +185,7 @@ Retrieves the``QueryManager`` for this Transaction, from which any TypeQL query
 QueryManager<'_>
 ----
 
-[#_struct_Transaction_rollback__]
+[#_struct_Transaction_rollback_]
 ==== rollback
 
 [source,rust]
@@ -227,7 +227,7 @@ transaction.rollback()
 --
 ====
 
-[#_struct_Transaction_type___]
+[#_struct_Transaction_type_]
 ==== type_
 
 [source,rust]
diff --git a/rust/docs/transaction/TransactionType.adoc b/docs/modules/ROOT/partials/rust/transaction/TransactionType.adoc
similarity index 100%
rename from rust/docs/transaction/TransactionType.adoc
rename to docs/modules/ROOT/partials/rust/transaction/TransactionType.adoc
diff --git a/rust/tests/behaviour/query/reasoner/steps.rs b/rust/tests/behaviour/query/reasoner/steps.rs
index a76de2d552..2938dd6e28 100644
--- a/rust/tests/behaviour/query/reasoner/steps.rs
+++ b/rust/tests/behaviour/query/reasoner/steps.rs
@@ -101,6 +101,6 @@ generic_step_impl! {
 
     #[step(expr = "verify answers are consistent across {int} executions")]
     async fn verify_answers_are_consistent_across_executions(_context: &mut Context, _executions: usize) {
-        //     We can't execute previous query again because don't remember the query // TODO: start saving the query and implement
+        //     We can't execute previous query again because don't remember the query // TODO #612: start saving the query and implement
     }
 }
diff --git a/tool/docs/c/DoxygenParserC.kt b/tool/docs/c/DoxygenParserC.kt
index be1b1926e4..b30c556921 100644
--- a/tool/docs/c/DoxygenParserC.kt
+++ b/tool/docs/c/DoxygenParserC.kt
@@ -64,13 +64,13 @@ class DoxygenParserC : Callable {
     private lateinit var unnormalisedFilenameOverrides: MutableMap
 
     private var recreatedFiles: MutableSet = mutableSetOf()
+    private var filenameOverrides: MutableMap = HashMap()
 
     @Override
     override fun call() {
         val inputDirectoryName = inputDirectoryNames[0]
         val dirs: MutableMap = HashMap()
         unnormalisedDirs.entries.forEach { entry -> dirs[normaliseKey(entry.key)] = entry.value }
-        val filenameOverrides: MutableMap = HashMap()
         unnormalisedFilenameOverrides.entries.forEach { entry ->
             filenameOverrides[normaliseKey(entry.key)] = normaliseKey(entry.value)
         }
@@ -98,11 +98,10 @@ class DoxygenParserC : Callable {
 
             // Enums
             val enums = parsed.select("td.memname").filter { element -> element.text().startsWith("enum") }
-                .map { element -> element.parents().select(".memitem").first() }.map {
-                    parseEnum(it!!)
-                }.filter {
-                    it.name.isNotEmpty()
-                }.toList()
+                .map { element -> element.parents().select(".memitem").first() }
+                .filter { element -> !element!!.previousElementSibling()!!.text().contains("()") }
+                .map { parseEnum(it!!) }
+                .filter { it.name.isNotEmpty() }.toList()
             val functions = parsed.select("h2").filter { element -> element.text().endsWith("()") }
                 .map { element -> element.nextElementSibling()!! }
                 .filter { element -> element.className().equals("memitem") }
@@ -125,13 +124,11 @@ class DoxygenParserC : Callable {
 
             // Write to files
             fileContents.entries.filter { it.value.isNotEmpty() }.forEach { entry ->
-                val resolvedKey = resolveKey(entry.key)
-                val filename = filenameOverrides.getOrDefault(resolvedKey, resolvedKey)
+                val filename = entry.key
                 val outputFile = createFile(docsDir.resolve(dirs[filename]!!), "$filename.adoc")
-                val fileContent = entry.value
-                outputFile.appendText("[#_methods__${dirs[filename]}__$filename]\n")
+                outputFile.appendText("[#_methods_${dirs[filename]}_$filename]\n")
                 outputFile.appendText("=== $filename\n\n")
-                fileContent.forEach { outputFile.appendText(it) }
+                entry.value.forEach { outputFile.appendText(it) }
             }
         }
     }
@@ -157,7 +154,8 @@ class DoxygenParserC : Callable {
 
     private fun resolveKey(key: String): String {
         val key_root = key.substringAfter("Struct ").substringAfter("Enum ")
-        return sortedDirsLongest.first { normaliseKey(key_root).startsWith(it.first) }.first
+        val resolvedKey = sortedDirsLongest.first { normaliseKey(key_root).startsWith(it.first) }.first
+        return filenameOverrides.getOrDefault(resolvedKey, resolvedKey)
     }
 
     private fun parseTypeDef(element: Element): Class {
diff --git a/tool/docs/cpp/DoxygenParserCpp.kt b/tool/docs/cpp/DoxygenParserCpp.kt
index 3c3597762d..02b076112a 100644
--- a/tool/docs/cpp/DoxygenParserCpp.kt
+++ b/tool/docs/cpp/DoxygenParserCpp.kt
@@ -73,6 +73,8 @@ class DoxygenParserCpp : Callable {
             // Typedefs
             val typeDefFile = getFile(docsDir, "typedefs.adoc")
             typeDefFile.writeText("")
+            typeDefFile.appendText("[#_aliases]\n")
+            typeDefFile.appendText("=== Aliases\n\n")
             val typeDefTBody =
                 parsed.select("tr.heading").first { element -> element.text().equals("Typedefs") }.parent()!!
             typeDefTBody.select("tr").filter { tr ->
@@ -80,7 +82,7 @@ class DoxygenParserCpp : Callable {
             }.map {
                 parseTypeDef(it!!)
             }.forEach {
-                if (it.isNotEmpty()) typeDefFile.appendText(it.toAsciiDoc("cpp"))
+                if (it.isNotEmpty()) typeDefFile.appendText(this.doxygenSpecificReplacement(it.toAsciiDoc("cpp", headerLevel = 4)))
             }
 
             // Enums
@@ -104,7 +106,7 @@ class DoxygenParserCpp : Callable {
         }
 
         classes.forEach { parsedClass ->
-            val parsedClassAsciiDoc = parsedClass.toAsciiDoc("cpp")
+            val parsedClassAsciiDoc = doxygenSpecificReplacement(parsedClass.toAsciiDoc("cpp"))
             val outputFile = getFile(docsDir, "${generateFilename(parsedClass.name)}.adoc")
             outputFile.writeText(parsedClassAsciiDoc)
         }
@@ -156,6 +158,7 @@ class DoxygenParserCpp : Callable {
         if (memItemLeft != null) {
             if (memItemLeft.text().startsWith("typedef")) {
                 val actual = element.selectFirst("td.memItemLeft")!!.text().substringAfter("typedef ")
+                    .replace("< ", "<").replace(" >", ">") // Consistency with linux
                 val alias = element.selectFirst("td.memItemRight")!!.text()
                 return Class(
                     name = alias,
@@ -165,11 +168,12 @@ class DoxygenParserCpp : Callable {
             } else if (memItemLeft.text().startsWith("using")) {
                 val usingEquality = element.selectFirst("td.memItemRight")!!
                 val actual = usingEquality.text().substringAfter("=").trim()
+                    .replace("< ", "<").replace(" >", ">") // Consistency with linux
                 val alias = usingEquality.text().substringBefore("=").trim()
                 return Class(
                     name = alias,
                     anchor = replaceSymbolsForAnchor(alias),
-                    description = listOf("Alias for $actual")
+                    description = listOf("Alias for ``$actual``")
                 )
             }
         }
@@ -181,7 +185,7 @@ class DoxygenParserCpp : Callable {
         val fullyQualifiedName = document.selectFirst("div .title")!!.text()
             .replace(Regex("Class(?: Template)? Reference.*"), "").trim()
         val packagePath = fullyQualifiedName.substringBeforeLast("::")
-        val className = fullyQualifiedName.substringAfterLast("::")
+        val className = fullyQualifiedName.substringAfterLast("::").substringBefore("<")
         val classAnchor = replaceSymbolsForAnchor(className)
         val classExamples = document.select("div.textblock > pre").map { replaceSpaces(it.text()) }
         val superClasses = document.select("tr.inherit_header")
@@ -190,7 +194,11 @@ class DoxygenParserCpp : Callable {
 
         val (memberDecls, idToAnchor) = parseMemberDecls(document)
         val classDescr: List = document.selectFirst("div.textblock")
-            ?.let { splitToParagraphs(it.html()) }?.map { reformatTextWithCode(it.substringBefore(" {
         return html.replace("

", "").split("\\s*

\\s*".toRegex()).map { it.trim() } } + private fun doxygenSpecificReplacement(docs: String): String { + return docs.replace("<", "<").replace(">", ">").replace("&", "&") + } private fun replaceLocalLinks(idToAnchor: Map, html: String): String { // The Intellij preview messes up nested templates & The '>>' used for cross links. @@ -340,6 +351,6 @@ class DoxygenParserCpp : Callable { } private fun generateFilename(className: String): String { - return className.replace("[<> ,]".toRegex(), "_") + return className.substringBefore("<").replace(",", "_") } } diff --git a/tool/docs/java/rules.bzl b/tool/docs/java/rules.bzl index ba0a41bc60..ec360050e7 100644 --- a/tool/docs/java/rules.bzl +++ b/tool/docs/java/rules.bzl @@ -21,7 +21,7 @@ load("@io_bazel_rules_kotlin//kotlin:jvm.bzl", "kt_jvm_binary") def javadoc_to_adoc(name, data, docs_dirs): args = ["$(location %s)" % target for target in data] + [ "--output", - "java/docs", + "docs/modules/ROOT/partials/java", ] + ["--dir=%s=%s" % (filename, docs_dirs[filename]) for filename in docs_dirs] kt_jvm_binary( name = name, diff --git a/tool/docs/nodejs/rules.bzl b/tool/docs/nodejs/rules.bzl index 4aa5521c6b..8605a96930 100644 --- a/tool/docs/nodejs/rules.bzl +++ b/tool/docs/nodejs/rules.bzl @@ -21,7 +21,7 @@ load("@io_bazel_rules_kotlin//kotlin:jvm.bzl", "kt_jvm_binary") def typedoc_to_adoc(name, data, docs_dirs): args = ["$(location %s)" % target for target in data] + [ "--output", - "nodejs/docs", + "docs/modules/ROOT/partials/nodejs", ] + ["--dir=%s=%s" % (filename, docs_dirs[filename]) for filename in docs_dirs] kt_jvm_binary( name = name, diff --git a/tool/docs/python/rules.bzl b/tool/docs/python/rules.bzl index 8d118f3363..298f478e24 100644 --- a/tool/docs/python/rules.bzl +++ b/tool/docs/python/rules.bzl @@ -21,7 +21,7 @@ load("@io_bazel_rules_kotlin//kotlin:jvm.bzl", "kt_jvm_binary") def sphinx_to_adoc(name, data, docs_dirs): args = ["$(location %s)" % target for target in data] + [ "--output", - "python/docs", + "docs/modules/ROOT/partials/python", ] + ["--dir=%s=%s" % (filename, docs_dirs[filename]) for filename in docs_dirs] kt_jvm_binary( name = name, diff --git a/tool/docs/rust/rules.bzl b/tool/docs/rust/rules.bzl index 4ad432c880..2570d033bf 100644 --- a/tool/docs/rust/rules.bzl +++ b/tool/docs/rust/rules.bzl @@ -30,7 +30,7 @@ def rust_docs(name, feature): def rustdoc_to_adoc(name, data, docs_dirs, modes = {}): args = ["$(location %s)" % target for target in data] + [ "--output", - "rust/docs", + "docs/modules/ROOT/partials/rust/", ] + [ "--dir=%s=%s" % (filename, docs_dirs[filename]) for filename in docs_dirs ] + [ diff --git a/tool/docs/util/Util.kt b/tool/docs/util/Util.kt index 86324bde0f..8fef025968 100644 --- a/tool/docs/util/Util.kt +++ b/tool/docs/util/Util.kt @@ -46,7 +46,7 @@ fun replaceSymbolsForAnchor(name: String): String { .replace("[\\.,\\(\\)\\s#<>\\[\\]]".toRegex(), "_") .replace("*", "_ptr_") .replace("&", "_amp_") - .removeSuffix("_") + .removeSuffix("_").replace("__+".toRegex(), "_") } fun addZeroWidthWhitespaces(html: String): String {