- From: Simon Spero <sesuncedu@gmail.com>
- Date: Fri, 25 Jul 2014 16:43:20 -0400
- To: Kendall Clark <kendall@clarkparsia.com>
- Cc: "public-rdf-shapes@w3.org" <public-rdf-shapes@w3.org>
- Message-ID: <CADE8KM6r=jrzSvGn4iU83U05a8fVS8pceO4bSkmQ=EUTp5iJ0g@mail.gmail.com>
On Fri, Jul 25, 2014 at 1:46 PM, Kendall Clark <kendall@clarkparsia.com> wrote: > >> foaf:Person class, >> foaf:name 1 1, >> foo:email 1 1, >> foo:phone 0 * . > > > >> Some Manchester syntax (again corrections welcome) > > > >> Class: foaf:[P]erson >> foaf:name exactly 1 >> foo:email exactly 1 >> foo:phone min 0 > > I'm not sure exactly what constraint is being specified on on foo:phone in the original example. The informal description is about a web service which requires that "all resources submitted to it must be of type foaf:Person, must have a foaf:name and a foo:email, and possibly one or more foo:phone". a) If the intended meaning of the final clause is that the cardinality of foo:phone is between 0 and infinity, then it is trivial. b) If the intended meaning of the final clause is to serve purely as documentation then it is not really a constraint. c) If the intended meaning of the entire phrase is that it is to be construed using *expressio unius <http://en.wikipedia.org/wiki/Statutory_interpretation#Textual>*, then the final clause *is* necessary, because any predicates not explicitly mentioned are forbidden. Under this interpretation, Example 1 is valid: 1) [ a foaf:Person ; foaf:name "John F. Manning" ; foo:email "jmanning@law.university-in-cambridge-that-has-a-yahd.edu"; ]. But: *2) [ a foaf:Person,foaf:Agent ; foaf:name "John F. Manning" ; foo:email "mailto:jmanning@law.university-in-cambridge-that-has-a-yahd.edu "; ]. ... is invalid, because it includes a value for rdf:type even though that value is entailed by the foaf Ontology. A similar problem could occur if there were sub or super-properties of foo:email - e.g. if there were sub properties for officialEmail and personalEmail, or if there were a super property contactURL. Also: *3) [ a foaf:Person ; foaf:name "John F. Manning" ; foo:email "jmanning@law.university-in-cambridge-that-has-a-yahd.edu"; foaf:gender "male"; ]. ... is invalid, because foaf:gender is not explicitly mentioned. Any specification that implements this approach must specify expected behavior under all possible entailment regimes. I am not sure if it is possible to specify in OWL the constraint that the maximum cardinality for all properties apart from a specifically mentioned set is 0 (it is probably doable in SPARQL as long as entailment regimes are handled carefully). It would not be too hard to define OWL constructs that could serve this purpose if the CWA is in effect- e.g. pseudo-properties like 'otherObjectProperties' and 'otherDataProperties', or even 'otherProperties'. This kind of pseudo-property would probably not be suitable for use in inferencing. Simon
Received on Friday, 25 July 2014 20:43:47 UTC