Re: UFDTF Metamodeling Document

From: "Conrad Bock" <conrad.bock@nist.gov>
Subject: RE: UFDTF Metamodeling Document
Date: Fri, 30 Nov 2007 11:59:46 -0500

> Peter, 

[...]

>  >  I also think that using the OMG metamodel for RDF would be
>  >  detrimental to the use of RDF.
> 
> Again, you'd need to justify that with comments on the metamodels.
> 
> Conrad

OK, how about the following divergences between the metamodel (which I
take to be the diagrams) and the RDF recomendation:


1/ The metamodel on page 35 allows triples (RDFStatment) in RDF graphs
   (RDFGraph) that are missing subject, predicate, and or object,
   contrary to the RDF recommendation.

Controlling text at http://www.w3.org/TR/rdf-concepts/#section-data-model

Each triple represents a statement of a relationship between the things
denoted by the nodes that it links. Each triple has three parts:

   1. a subject,
   2. an object, and
   3. a predicate (also called a property) that denotes a relationship.


2/ The metamodel on page 35 make an RDF graph (RDFGraph) be a ordered
   collection of triples (RDFStatment), contrary to the RDF
   recommendation.  (Yes the text says that an RDF graph is a set, but
   this contradicts the metamodel.)

Controlling text at http://www.w3.org/TR/rdf-mt/#graphdefs

An RDF graph, or simply a graph, is a set of RDF triples.


3/ The metamodel on page 35 has names for graphs, which is not supported
   in the RDF recommendation.


4/ The metamodel on page 35 has reification status as a part of a triple
   (RDFStatement), which is not supported in the RDF recommendation.


5/ The metamodel on page 35 allows subjects to be literals, and
   predicates to be literals or blank nodes.  (Yes this is later removed
   in the text, the metamodel allows this.)

Controlling text is http://www.w3.org/TR/rdf-concepts/#section-triples

6.1 RDF Triples

An RDF triple contains three components:

    * the subject, which is an RDF URI reference or a blank node
    * the predicate, which is an RDF URI reference
    * the object, which is an RDF URI reference, a literal or a blank
    * node

An RDF triple is conventionally written in the order subject, predicate,
object.

The predicate is also known as the property of the triple.


6/ The metamodel on page 35 does not have URI references
   (URIReferenceNode), blank nodes (BlankNode), and literals
   (RDFSLiteral) pairwise disjoint.  (Yes, the disjointness is clearly
   stated in the text, but not in the metamodel.)

Controlling text is http://www.w3.org/TR/rdf-concepts/#section-blank-nodes

6.6 Blank Nodes

The blank nodes in an RDF graph are drawn from an infinite set. This set
of blank nodes, the set of all RDF URI references and the set of all
literals are pairwise disjoint. 


7/ The metamodel on page 43 has the comment (rdfs:comment) and label
   (rdfs:label) relationships 0/1 to many.  The RDF recommendation does
   not restrict these properties and thus allows them to be many to
   many.


8/ The metamodel on page 43 has the "range" of comments and labels be
   plain literals (PlainLiteral).  However the RDF recommendation has
   the range of these two relationships be rdfs: 

Controlling text is in http://www.w3.org/TR/rdf-mt/#RDFSINTERP

rdfs:label rdfs:range rdfs:Literal .
rdfs:label rdfs:range rdfs:Literal .


9/ The metamodel on page 50 has the both relationship between rdf lists
   (RDFList) and their first elements and the relationship between rdf
   lists (RDFList) and their tailss be 0/1 to many.  However, the RDF
   recommendation does not so limit lists.  A list can have multiple
   first elements as well as multiple tails.

The explanatory text for this is in http://www.w3.org/TR/rdf-mt/#collections

Also, RDF imposes no 'well-formedness' conditions on the use of this
vocabulary, so that it is possible to write RDF graphs which assert the
existence of highly peculiar objects such as lists with forked or
non-list tails, or multiple heads:

_:666 rdf:first <ex:aaa> .
_:666 rdf:first <ex:bbb> .
_:666 rdf:rest <ex:ccc> .
_:666 rdf:rest rdf:nil .

It is also possible to write a set of triples which underspecify a
collection by failing to specify its rdf:rest property value.


I don't think that this is an exhaustive list.  I just put it together
in about 30 minutes.  I have also not included anything to do with the
mixture of RDF syntax and semantics that occurs throughout the
metamodel.


In sum, the OMG metamodel for RDF has significant and pervasive
differences from the W3C RDF recommendation.  An application written to
use the OMG metamodel is likely to not conform to the W3C
recommendation.  Therefore, the OMG metamodel for RDF is unsuitable for
use.


Peter F. Patel-Schneider
Bell Labs Research

Received on Friday, 30 November 2007 17:49:45 UTC