- From: Graham Klyne <Graham.Klyne@MIMEsweeper.com>
- Date: Tue, 19 Feb 2002 17:47:33 +0000
- To: RDF core WG <w3c-rdfcore-wg@w3.org>
With reference to: http://www.coginst.uwf.edu/users/phayes/DatatypeSummary3.html I have a concern with the use of subproperty declarations to "switch idioms"; e.g. rdf:type rdfs:subPropertyOf rdfs:dtype . (section 5, 10) rdfs:range rdfs:subPropertyOf rdfs:drange . (section 7, 10) rdf:dtype rdfs:range rdfs:Datatype . (section 10) rdf:drange rdfs:range rdfs:Datatype . (section 10) The problem I foresee is when one wishes to combine information from different sources. Suppose some graph A contains the statements: exa:decimalInteger rdf:type rdfs:Datatype . exa:octalInteger rdf:type rdfs:Datatype . exa:octalInteger rdfs:subClassOf exa:decimalInteger . _:a1 rdf:value "10" . _:a1 rdf:dtype exa:octalInteger . _:a2 rdf:value "10" . _:a2 rdf:dtype exa:decimalInteger . where the intent is to define a new datatype class with the same value space as an existing class, but with a different lexical space and lexical-to-value mapping. Also, consider graph B, constructed so that datatypes on the same value space do not have overlapping lexical mappings: rdf:type rdfs:subPropertyOf rdfs:dtype . exb:integer rdf:type rdfs:Class . exb:decimalInteger rdf:type rdfs:Datatype . exb:octalInteger rdf:type rdfs:Datatype . exb:octalInteger rdf:type rdfs:Datatype . exb:octalInteger rdfs:subClassOf exb:integer . exb:decimalInteger rdfs:subClassOf exb:integer . _:b1 rdf:value "10" . _:b1 rdf:type exb:octalInteger . _:b2 rdf:value "10" . _:b2 rdf:type exb:decimalInteger . So far, so good. But consider what happens if these two graphs are combined (merged): We end up with a graph that entails the following: [From B:] rdf:type rdfs:subPropertyOf rdfs:dtype . [From A:] exa:decimalInteger rdf:type rdfs:Datatype . exa:octalInteger rdf:type rdfs:Datatype . exa:octalInteger rdfs:subClassOf exa:decimalInteger . _:a1 rdf:value "10" . _:a1 rdf:dtype exa:octalInteger . _:a2 rdf:value "10" . _:a2 rdf:dtype exa:decimalInteger . Then, from the subclass relationship, we have: _:a2 rdf:type exa:octalInteger . And from the subproperty assertion: _:a2 rdf:dtype exa:octalInteger . which has introduced a datatyping conflict. ... My position here is that it should NEVER be possible to merge two valid RDF graphs and end up with an error or inconsistency of this kind. To my mind, the ability to freely merge RDF information from various sources is a key to the potential of RDF -- to combine information from different RDF applications thereby obtaining a new knowledge base that is potentially more than the sum of its parts. I think that information will demonstrate a variation of Metcalfe's law: that the value of information will be roughly in exponential proportional to the number of applications that can create and share it. RDF is a key to that sharing, IFF information can be freely combined. This last bit is just an opinion, but I'm guessing that most people will agree that it's important to be able to merge RDF information from diverse sources. ... I think this may be a particular case of a wider danger: if people try to make additional assertions about the RDF core vocabulary, beyond those specified by RDFcore, the result may be that valid information is lost when graphs are combined -- interpretations that should be models are no longer models. This leads me to think that any attempt to make additional assertions about core RDF vocabulary terms should be regarded as an error, or at least carry a serious health warning. #g ------------------------------------------------------------ Graham Klyne MIMEsweeper Group Strategic Research <http://www.mimesweeper.com> <Graham.Klyne@MIMEsweeper.com>
Received on Tuesday, 19 February 2002 12:50:06 UTC