Re: "globally closed" schema?

> On 18 Jan 2024, at 4:29 pm, Vladimir Alexiev <vladimir.alexiev@ontotext.com> wrote:
> 
> sh:closed is local, i.e. per shape. It checks that a targeted node doesn't include unsanctioned props.
> I'm looking for ways to declare a globally closed schema, i.e. to catch untargeted nodes, i.e. that the KG doesn't include unsanctioned nodes. 
> 
> 1. I guess one can do it with SPARQL (SHACL advanced) by triggering off some fixed node.
>   Here's a very expensive way to catch all nodes: select distinct ?s {?s ?p ?o}
> 2. It would be useful to "mark" all nodes visited during SHACL validation.
> - SHEX has a way to report positive results: https://shexspec.github.io/primer/ShExJ#validation 
> - SHACL doesn't have a standard way to report positive results: https://www.w3.org/TR/shacl/#results-validation-result .
>   But there is a note "SHACL implementations may use other SHACL subclasses of sh:AbstractResult, for example, to report successfully completed constraint checks or accumulated results."
>   Say we "standardize" a new class eg dash:PositiveValidation

Already exist:
dash:SuccessResult
  a rdfs:Class ;
  rdfs:comment "A result representing a successfully validated constraint." ;
  rdfs:label "Success result" ;
  rdfs:subClassOf sh:AbstractResult ;
.

> Then one could look for nodes that don't appear in sh:ValidationResult.focusNode nor dash:PositiveValidation.focusNode

Yes.

There may also be different algorithms such as enumerating the allowed rdf:types which could be represented with a targeted constraint on rdf:type and a sh:in. This depends on what someone considers unsanctioned nodes.

Holger


> 
> All feedback is welcome!

Received on Thursday, 18 January 2024 17:44:32 UTC