-
Notifications
You must be signed in to change notification settings - Fork 38
Open
Description
unless we define some sort of validation API similar to the SPARQL protocol.
The spec already
- describes the validation process in prose
- alludes what is passed to a SHACL processor, eg Data Graph
A data graph is one of the inputs to the SHACL processor for validation. SHACL processors treat it as a general RDF graph and makes no assumption about its nature.
I think it's worth specifying a Validation API more formally. It should cater to the following questions:
- Where is the data Need support for RDF datasets (i.e., graphs, quads) #183
- Where are the shapes Need support for RDF datasets (i.e., graphs, quads) #183
- Where is the ontology Where should my ontology go? Data graph versus shapes graph #185
- How many results to generate ability to limit the number of sh:ValidationResults #161
- Nature of results to retain Add severity levels that are not violations #192
- Disposition of results, i.e. where to write them (in memory? new graph; overwrite it? different repo?)
- The test suite currently uses Test Manifest to describe what data to use, what shapes to validate, and what results are expected. (Update the Test Suite #190 asks for additions)
- As part of some work on electrical CIM/CGMES, I'll be describing more complex scenarios (somewhere around https://github.com/Sveino/Inst4CIM-KG/tree/develop/shacl-improved#in-memory-vs-on-disk-databases-and-incremental-validation), eg:
- A huge electrical Base model (say 100M triples) is validated and stored ("model" is a named graph plus important metadata)
- A DifferenceModel is being ingested. It refers to the Base model, deletes 100 triples (
reverseDifferenceSet
) and inserts 200 triples (forwardDifferenceSet
) - The difference model should be validated during ingestion. This cannot be done standalone, it should:
- copy the Base to a new graph (no need to validate)
- apply the differences in a transaction (and validate)
I think that before a Protocol, we should describe an API.
I think web specs use IDL, eg see https://www.w3.org/TR/json-ld11-api/#idl-index .
Assigning to Nick because this task maybe goes beyond the scope of the charter
Metadata
Metadata
Assignees
Labels
No labels