MarkLogic is a database designed from the ground up to make massive quantities of heterogeneous data easily accessible through search. MarkLogic is a leading 'multi-model' database, supporting traditional relational tables, XML and JSON documents, and RDF triples, all with ACID transactions capabilities. While Hackolade does not yet support the XML part, all other models are part of the solution.
To perform data modeling for MarkLogic with Hackolade, you must first download the MarkLogic plugin.
Hackolade was specially adapted to support the data modeling of MarkLogic, including the JSON definition of model descriptors, geospatial structures, triples and quads, and sub-collections. The application closely follows the terminology of the database.
The data model in the picture below results from the reverse-engineering of a sample ordering application imported in MarkLogic.
The design of MarkLogic allows a database to hold millions of collections without difficulty.
Collections / Directories
Collections are groups of documents that enable queries to efficiently target subsets of content within a MarkLogic database. Directories can also be used to organize documents. Collections do not require members to conform to any URI patterns. They are not hierarchical whereas directories are. Also, any document can belong to any collection, and any document can also belong to multiple collections. Properties can only be set for a directory, but not for collections.
Collections are named using URIs. The URI needs to be unique within the set of collections. Collections can be protected or unprotected.
Attributes data types
MarkLogic, when storing JSON documents, supports standard JSON data types, including arrays and objects. The Hackolade menu items, contextual menus, toolbar icon tooltips, and documentation are adapted to MarkLogic terminology and feature set.
GeoSpatial structure templates:
Given the complex geospatial searches capability of MarkLogic, Hackolade facilitates the creation of geoJSON types (point, box, circle, polygon, linestring) with pre-defined templates:
Triple structure template:
Semantics enables the discovery of facts and relationships in data, and provides context for these facts. MarkLogic allows the natively store, search, and manage RDF triples, queried with SPARQL. Hackolade facilitates the creatio of triple structures with a predefined template:
Quad structure template:
A quad is a representation of subject, predicate, and object, plus an additional resource for the context of the triple.
A JSON document is uniquely identified within a database with a Uniform Resource Identifier (URI). The URI for a document is analogous to the primary key in a relational table and may consist of a human-readable title or just a unique value.
Forward-engineering of JSON Schema is available for use by https://docs.marklogic.com/xdmp.jsonValidate.
For more information on MarkLogic in general, please consult the MarkLogic website.