buda-base / editor-templates

SHACL templates for the BUDA editor
MIT License
1 stars 0 forks source link

SHACL Shapes Templates for the BUDA editor

The shacl shapes express validation and UI information for the various Entities that are the focus of the BUDA platform:

These are the resources that are subjects of editing. The shapes information for these Entities are organized into shapes graphs for each class of Entity, and for each class there are three graphs:

The naming convention for the two sorts of shape graphs is classnameShapes, and classnameUIShapes. Top is not used in the naming and is understood in the classnameShapes form, that contains the full set of constraints for validating instances of classname.

There are a variety of supporting resources that may be associated with all, many, or some Entity classes:

The shapes associated with these are organized as above and imported as needed by the three types of shapes graphs for each Entity. The shapes for resources common to most or all Entities are contained in RootShapes, and RootUIShapes.

There is a BaseShapes graph that contains definitions of shapes and ancillary properties and classes that support the definitions used in shapes for Entites and other resources. Among the properties defined in BaseShapes are bds:topShapeGraph, and bds:uiShapeGraph. These connect an Entity class to the corresponding shapes graphs for the class:

bdo:Person 
    bds:topShapeGraph   bdg:PersonShapes ;
    bds:uiShapeGraph    bdg:PersonUIShapes .

The various shapes modules (shacl ontologies) are indicated in the ont-policy.rdf and the pattern of importing is illustrated below for the bdo:Person Entity:

PersonUIShapes
    PersonShapes
    EventUIShapes

PersonShapes    
    EventShapes

EventUIShapes
    EventShapes
    RootUIShapes

EventShapes
    RootShapes

RootUIShapes
    RootShapes

RootShapes
    BaseShapes

BaseShapes

LDSPDI cache

These shapes are served by LDSPDI, to renew the cache:

curl -XPOST 'http://ldspdi.bdrc.io/callbacks/github/shapes' -H 'Content-Type: application/json' -d '{}'

Prior work