mash-core

Intro

The goal of mash is to make RDF easy and practical, allowing us to utilize the environment filled with standardized information models around RDF - which would otherwise require specialist competence to use at all.

On top of this a data storage and data description framework is provided that allows you to search, describe, automate and utilize your data in a powerful fashion. All built on web standards and community information models.

These two aspects are achieved through four layers that build on top of each other as illustrated below.

Illustration of the four layers: ORM, Metadata model, Storage repos and Common interface

A short description of each layer

ORM - Object Relational Mapper

Is a fairly simple and pragmatic toolset that allows you to read RDF and write RDF utilizing normal Python classes with only some small annotations. This is necessary because the existing technologies that allow you to put RDF data in your Python code are pretty painful to use.

Metadata models

Are a set of classes or models built using the ORM for the purpose of expressing metadata. These are pulled from the semantic technology space and include models from widely used ontologies like DCAT, PROV-O, PROF and more. What mash brings to the table is a seamless link between these models - where you don’t have to think about RDF, information modelling or to have ever heard the word “ontology” to utilize the expressivity and interoperability they provide.

Storage repositories

Allows you to utilize central models like Dataset and Distribution to store data both locally and remotely, while staying aware of where the same data is stored and allowing you to easily move it around.

Common interface

The common interface wraps the other concepts to make everything easier to use. It ties together storage and metadata, adds a layer of querying to search your data, and provides catalog capabilities to browse it.

Recommended next reads: