Test

From Endeavour Knowledge Base
Revision as of 08:53, 28 August 2022 by DavidStables (talk | contribs) (Replaced content with "== General approach == The information model language uses RDF triples as its basic grammar i.e. subject, predicate, and object with graph making up quadruples of an RDF d...")

General approach

The information model language uses RDF triples as its basic grammar i.e. subject, predicate, and object with graph making up quadruples of an RDF data set.

The preferred exchange format is JSON-LD which is json with the @context to handle iri prefixes and @id for indicating RDF IRIs.

The grammar is based on the main stream language RDFS including a profile of SHACL for shape building and ECL in RDF form for Expression constraints.

The information manager supports OWL EL inputs which are out through a reasoner to generate inferred RDFS and removing the OWL. In other words the information model run time is a fully inferred ontology.

The IM also includes a query language DSL for the purposes of logical query definition, which is mapped by the IM to the relevant SPARQL, SQL or OpenSearch syntax for running on live data. The purpose and rationale for the DSL is more full described in the information model query
article and is able to represent all main stream health care queries that generate data sets, but stops short of the data manipulation used by Tableau, Power BI etc.

The use of JSON-LD can be somewhat tedious (as RDF predicates cannot directly map to standard programming language class properties) , so the use of 'local names' for business related APIs (e.g. query) is supported. In tis case the JSON field names can use the local names without the full IRI, as long as the JSON complies with the language grammar described here.

Consequently, in order to make the documentation clearer, local names are used in this documentation also with links to the IM viewer or W3C equivalent.

This documentation is auto generated from the information model folders and shapes themselves, and thus the shapes can also be viewed more fully in the Information Model Directory viewing application

Types and shapes

Types (as represented as the value of the rdf: type predicate, are used to indicate the structure of a data class or language grammar (as long as the language conforms to a JSON or triple structure)..

A special type of 'Shape' (as represented as an entity with rdf:type -> shacl:NodeShape) define the properties of a type. Thus a shape is targeted at a type or class.

Shapes are also classes (i.e. also are rdf:type -> rdf:Class), so that any shape that is a subclass of another shape inherits its properties unless overridden by sub properties, or subclass values of the parent properties.

Shapes are in effect Closed world interpretation of classes.

This documentation is therefore a documentation of shapes.