To say that X is a Y, is that it is an instance of, or a subclass of, a class Y.
To say that X has a property Y means that statements of the form "X Y z" are valid.
But using the rdfs:domain notation runs into problems: as I undertand it, if there is more than one statement using rdfs:domain for a predicate, any objects for which that predicate is valid must belong to all the domain classes.
Quoting from the spec at http://www.w3.org/TR/rdf-schema/#ch_domain :
So, if we say
person has_a weight
non-person has_a weight
we end up with the problem that any x with a weight muse be both a person and a non-person.
Perhaps we can get round this with a formulation like:
person has_a person-weight non-person has_a non-person-weight
person-weight = weight non-person-weight = weight
Hmm. I think I'll be sitting down with the OWL definitions for a bit longer.
Another way around this is:
person is_a PHYSOB non-person is_a PHYSOB PHYSOB has_a weight
and use inheritance...
But then we have to get all hierarchies right from the beginning...
may be what is needed here.
How about loosely coupling with RDF? The more I hear the more I see we could get sucked into a quagmire with RDF.
Perhaps we should concentrate on getting the system to work with itself. We could end up building something that is far more useable than RDF - perhaps. Then just have a concept of translating to and from RDF.
OK, let's have
and sort out the detailed semantics later. To do this, we may need to have some way of (perhaps) generating an intermediate property tag, as per discussion above: this has to be done in a consistent way across different data-stores, though.
See? Now this wiki is behaving like a forum. See my earlier [rant].