Declare and define

I agree with Peter that "declare" is too imprecise where it is used in 
the SHACL spec. Define, IMO, is clear.

I looked at the XML schema spec to see how they dealt with these terms, 
since there is similar functionality in play. That spec does use 
"define", but it also uses "express" when making general statements, as in:

"In general, a valid document is a document whose contents obey the 
constraints expressed in a particular schema." and "Any application that 
consumes well-formed XML can use the formalism defined here to express 
syntactic, structural and value constraints applicable to its document 

I also think that the use of "obey" here may be a solution for the 
problem of "match" that has also come up.

Note: the SKOS spec talks about "statements" (not definitions) and says 
things like:
"The graph below states that <MyConcept> is a SKOS concept (i.e., an 
instance of skos:Concept)." It uses this terminology consistently 
throughout. I'm not saying that "statement" is necessarily useful in 
SHACL, but the consistency in SKOS is what makes it useful there.

The XML schema does define normal English terms like "validation":
"Validation is the process of determining whether an XML document, an 
element information item, or an attribute information item obeys the 
constraints expressed in a schema; in the context of XSD, this amounts 
to calculating the value of the appropriate item's [validity] property."

We might be able to borrow definintions from that spec. It uses a 
convention for definitions that we could also borrow:

"During ·validation·, [Definition:]  *declaration* components are 
associated by (qualified) name to information items being ·validated·."

In terms of "failure", XML schema uses "error" for this, and defines it as:
A failure of a schema or schema document to conform to the rules of this 

I must admit that looking at the XML spec, which has a function that 
we've said is analogous to SHACL, it is indeed more precise; it is also 
much longer by far. Even though the SKOS spec is shorter, more of it 
consists of examples and tables, and is quite formal. The SKOS spec also 
is written in terms of RDF, since it is an RDF implementation. These are 
aspects that are missing from SHACL. I don't know to what extent W3C 
expects a style conformance, but SHACL is quite different from other W3C 
specifications that I have viewed. It also lacks the formalisms that 
would define, for example, what "match" or "conforms" means. It was 
requested that we add those to the abstract syntax, but I would imagine 
that there is the expectation that the specification itself should have 
that level of precision.

Karen Coyle
m: 1-510-435-8234
skype: kcoylenet/+1-510-984-3600

Received on Saturday, 1 October 2016 16:28:34 UTC