Recordtypes in Memorix using SHACL
Memorix uses recordtypes to describe the structure and relationships of metadata aggregates. Recordtypes generate input forms, documentation, and validate graphs. SHACL allows validating graph-based data against conditions and shapes, incorporating data that may not be structurally valid with OWL. Memorix leverages SHACL features like cardinality constraints, class-specific constraints, value range constraints, and SPARQL-based constraints to validate relationships between records.
2. Memorix is a product by
About Memorix and LoD
• Memorix is software to manage large amounts of
metadata and digital objects in an open and
standardized way enabling the sharing, enriching
and publishing of data for a large community
of CH afficionados and a broad public.
• Linked Open Data by design challenges:
• There is no such programming
pattern/practice/design as LoD
• LoD is rather data organisation & publication practice,
how to transform this into an application?
3. Memorix is a product by
About Recordtypes
• Recordtypes are the core
building blocks of Memorix Collection
Management
• They describe the content, scope
and structure of a Memorix aggregate
• The describe the relations an aggregate can have with:
• Vocabulary terms (SKOS Concepts)
• Other aggregates
• External Things (e.g. external links to skos:Concept using NDE Termennetwerk or
Geonames item)
• Contains validation rules
4. Memorix is a product by
Roles of the Recordtype in Memorix
• The Memorix Recordtype is the source for:
• Generating HTML input forms
• Generating useful documentation for API’s
• Validation of Graphs
• Internal link generator (links to and from
other aggregates in Memorix)
• Read model generator
• since we use CQRS we depend on separation between
commands that change data and read models to provide
fast access to data using Elastic. There also read models
for storing Graphs in a Jena TDB2 store using Fuseki as SPARQL service.
5. Memorix is a product by
About SHACL
• Wikipedia: Shapes Constraint Language (SHACL) is a
W3C specification for validating graph-based data
against a set of conditions.
• Shapes are used to identify metadata about a
particular type of resource, and as such it is a
modeling tool
• Compared to OWL, SHACL uses SPARQL to validate
content, allowing us to store data that is not necessarily
structurally valid with OWL
• Allows to incorporate data even if it doesn’t conform,
while still maintaining a model of how data can conform
6. Memorix is a product by
Source: TopQuadrant
https://www.topquadrant.com/shacl-features-and-specifications/
7. Memorix is a product by
Some highlights from SHACL
• Simple cardinality constraints
• Constraints for specific classes
• in Memorix we use this for example to constrain
linking creators of an Image record to Persons
or Organisations not to other Recordtypes
• Value range and/or string constraints, including regular expression support
• Enumeration constraints
• SPARQL based constraints
• In Memorix we use this to constraints linking to external source to specific targets