Template talk:Concept scheme relation/doc
As to domain: it is a very dangerous notion, particularly when mapped to rdfs:domain, where it has often unexpected logical consequences. That's because rdfs:domain has formal semantics in rdfs that is quite different from its use in ordinary mathematics. In rdfs, if a property p has domain D, s and o are objects and something asserts
s p o
then this implies s is in D. That is, if you use a p with anything, it automatically turns that thing into a D whether intended or not. This is often undesired, and at the very least makes it difficult to extend the scheme in which it is asserted. By contrast, in ordinary mathematics, the domain of a function is the set on which that function is defined.
Worst of all, for the definition at hand, if the domain of a predicate is different in two schemes, using both of those schemes, or comparing semantics between them, will have profound implications about the relationships deducible between the two domains.
People often put domains on predicates thinking they are offering advice, when in fact they are setting down a logical implication, not a desired use. It represents prematurely "closing the world."
--BobMorris 15:01, 23 October 2012 (CEST)
As to range, within a single scheme it is less troublesome than domain but may still make use of multiple schemes tricky. I am not sure exactly what the risks are here. --BobMorris 15:49, 23 October 2012 (CEST). A frequent problem with range is that it is often used ambiguously as to whether the values are literals or something requiring a URI, i.e. "objects." This becomes a problem with implementations, such as OWL, that permit no intersection between those two conceptual divisions. The most commonly seen instance in the TDWG orbit (and much more widely) is such things as the confusion between dcterms:creator and dc:creator, e.g. the assignment of literals to dcterms:creator).--BobMorris 18:49, 23 October 2012 (CEST) (Originally from an email)
As to cardinality, I am skeptical. As you will note, the usage in AC/RDF follows that of owl:CardinalityRestriction, where it is a restriction on classes not properties. I don't know the history of this, but it has been thus since at least 2004 and I doubt the reasons are arbitrary. If this definition is going to do something novel, I would like to see arguments at least on the web, but preferably published, why others do the same thing in a similar context, and especially why it is harmless for OWL ontologies (e.g., how it would be mapped to owl:CardinalityRestriction ). In a brief search for use of cardinality in SKOS, the only example I found was in the SKOS Extension for Labels where imposing that there be at most one label is also modeled with a class restriction, not expressed on a property (" skosxl:Label is a sub-class of a restriction on skosxl:literalForm cardinality exactly 1"). --BobMorris 15:50, 23 October 2012 (CEST)