Representing the Differences Between two Models

Here is a proposal [1] for representing the difference between two RDF
models as an RDF model.   In the electric power industry have a use case for
this in exchanging power system models between utilities [2].  I would
imagine there are others who have giant models like us and sometimes  need
to handle only the differences.

Something like this requires quoting of RDF statements.  I know this is
supposed to be covered by rdf:bagID, but I couldn't see how to use that in
this case without creating a self-contradictory model.  Therefore I am
floating an (application-specific?) extension to the syntax,
parseType="Statements".  This is supposed to be similar to the braces in N3
[3].

Here is an illustration of a difference model using this extension:

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:cim="http://iec.ch/TC57/2000/CIM-schema-cimu09a#"
     xmlns:dm=http://iec.ch/TC57/2001/Differences>
 <rdf:Description about="">
  <!-- Content: (literal-property|resource-property)* -->
  <dm:preconditions parseType="Statements">
   <!-- Content: (definition|description)* -->
  </dm:preconditions>
  <dm:forwardDifferences parseType="Statements">
   <!-- Content: (definition|description)* -->
  </dm:forwardDifferences>
  <dm:reverseDifferences parseType="Statements">
   <!-- Content: (definition|description)* -->
  </dm:reverseDifferences>
 </rdf:Description>
</rdf:RDF>

Here is a short definition of the parseType used above:

* The content model of a property element with rdf:parseType="Statements" is
the same as the content model of the rdf:RDF element.

* The content generates the same RDF statements as if it appeared in an
rdf:RDF element.  Note: these statements may duplicate or contradict others
outside the enclosing element.  RDF processors are not entitled to eliminate
such duplicates. The statements are in a separate "context".

* The value of a property element with rdf:parseType="Statements" is a
collection of resources of type rdf:Statement, representing the generated
statements.

- Arnold

[1] http://www.langdale.com.au/CIMXML/DifferenceModelsR03.pdf (Sorry only in
PDF for the moment.)

[2] http://www.langdale.com.au/CIMXML

[3] http://www.w3.org/DesignIssues/Notation3.html

Received on Wednesday, 28 March 2001 04:20:25 UTC