A concern with the Datatyping proposal

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