Hi Ivan,
Thanks for your comments here. This is the first time the @role == rdf:type issue has been discussed at the level of RDF, and I've felt very uneasy that it hasn't been gone through in detail before being dismissed. On 05/07/07, Ivan Herman <[EMAIL PROTECTED]> wrote:
Well... if you two guys still disagree after all these years, that may be one more argument _against_ using @role (not necessarily _for_ @class, another attribute might also do...):-)
:)
> In RDF, if you say something is of type 'x' then all sorts of other > statements become legitimate. So if I firstly say that 'a toolbar' has > a property of 'collection of buttons', and then I subsequently say > that 'the second <div> in my document is a toolbar', then it is > legitimate to act as if the second <div> in my document has a property > of 'collection of buttons'. > Mark, for the records, I am not sure this is true. To formalize it in RDF what you seem to say is that if: [[[ toolbar a rdfs:Class. collectionOfButtons a rdfs:Property; rdfs:domain toolbar. 2ndDiv a toolbar. ]]] then we can deduce that... what? Only that 2ndDiv collectionOfButtons "something". is consistent with these, but we _cannot_ deduce that such a triple exists somewhere.
Right. But I'm not saying such a triple exists, only that it would be legitimate to create such a triple--i.e., to use inference.
You can do what you describe with OWL cardinality constraints describing things on collectionOfButtons... Actually, we can do something different with those. If the facts are that [[[ toolbar a rdfs:Class. collectionOfButtons a rdfs:Property; rdfs:domain toolbar. 2ndDiv collectionOfButtons "something". ]]] then even in RDFS we can deduce that [[[ 2ndDiv a toolbar. ]]] which is somewhat different from what you said.
That's also true, but where did you get the collectionOfButtons property from for 2ndDiv? It's not in the original mark-up, and it could only get created (in the sense of being infered) if we were to say that @role == rdf:type. So we wouldn't be _deducing_: 2ndDiv a toolbar . since we already know said it was, because of @role. (Hypothetically.)
The second example shows that, indeed, rdf typing may have consequences (for example if OWL is used), ie, your core argument holds, just the example does not:-)
:) I think my example is ok, but I don't really mind. As you say, from many directions we can see that setting @role to mean rdf:type could cause problems. My secondary argument is that doing this doesn't actually gain us anything, and some system is still free to infer from this: 2ndDiv role toolbar. the rdf:type equivalent if it wants to: 2ndDiv a toolbar. Regards, Mark -- Mark Birbeck, formsPlayer [EMAIL PROTECTED] | +44 (0) 20 7689 9232 http://www.formsPlayer.com | http://internet-apps.blogspot.com standards. innovation.