<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -24,19 +24,25 @@
     &lt;/ul&gt;
   &lt;/div&gt;
 
+  &lt;p&gt;This page introduces my example models in both ORM2 and CQL. The CQL
+  files are exactly as generated from the ORM2 versions, but you could have
+  written them by hand. Either type of file can be converted to SQL or Ruby,
+  using the relational and object-oriented mapping algorithms implemented
+  in the ActiveFacts generator &lt;em&gt;afgen&lt;/em&gt;. The output files from these
+  conversions are available here, as are the PNG images of the ORM2 versions.
+  &lt;/p&gt;
+
   &lt;p&gt;The example models presented here were created as Object Role Models
-  using &lt;a href=&quot;http://www.ormfoundation.org/files/&quot;&gt;NORMA&lt;/a&gt;. The
-  ActiveFacts generator &lt;em&gt;afgen&lt;/em&gt; was used to convert them from ORM2
-  to CQL, SQL and Ruby code using ActiveFacts.  They're all available here
-  as PNG images and in the other formats.
+  using &lt;a href=&quot;http://www.ormfoundation.org/files/&quot;&gt;NORMA&lt;/a&gt;. A selection
+  of the basic models is discussed below, and a full table below that.  &lt;/p&gt;
 
-  &lt;/p&gt;&lt;p&gt;
+  &lt;p&gt;
   To make a start learning Object Role Modeling, read the
   &lt;a href=&quot;intro.html&quot;&gt;Introduction to ORM2&lt;/a&gt; or check the Resources page
   for other sites.
 
   &lt;/p&gt;&lt;p&gt;
-  The CQL code here formatted and laid out is &lt;em&gt;exactly&lt;/em&gt; as it was generated.
+  The CQL code here is formatted and laid out is &lt;em&gt;exactly&lt;/em&gt; as it was generated.
   It's interesting how cleverly the semantic clustering algorithm works!
 
   &lt;/p&gt;&lt;p class=&quot;offline&quot;&gt;
@@ -105,11 +111,11 @@
   &lt;td&gt;&lt;/td&gt;
   &lt;td&gt;&lt;/td&gt;
   &lt;td&gt;&lt;/td&gt;
-  &lt;th&gt;Diagrams&lt;/th&gt;
+  &lt;th&gt;ORM2 Diagrams&lt;/th&gt;
   &lt;/tr&gt;
 
   &lt;tr&gt;
-  &lt;td&gt;Address&lt;/td&gt;
+  &lt;td&gt;Address &lt;a href=&quot;ORM/Address.orm&quot;&gt;(orm)&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;CQL/Address.cql&quot;&gt;CQL&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;ruby/Address.rb&quot;&gt;Ruby&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;SQL/Address.sql&quot;&gt;SQL&lt;/a&gt;&lt;/td&gt;
@@ -118,7 +124,7 @@
   &lt;/tr&gt;
 
   &lt;tr&gt;
-  &lt;td&gt;Blog&lt;/td&gt;
+  &lt;td&gt;Blog &lt;a href=&quot;ORM/Blog.orm&quot;&gt;(orm)&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;CQL/Blog.cql&quot;&gt;CQL&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;ruby/Blog.rb&quot;&gt;Ruby&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;SQL/Blog.sql&quot;&gt;SQL&lt;/a&gt;&lt;/td&gt;
@@ -127,7 +133,7 @@
   &lt;/tr&gt;
 
   &lt;tr&gt;
-  &lt;td&gt;CompanyDirectorEmployee&lt;/td&gt;
+  &lt;td&gt;CompanyDirectorEmployee &lt;a href=&quot;ORM/CompanyDirectorEmployee.orm&quot;&gt;(orm)&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;CQL/CompanyDirectorEmployee.cql&quot;&gt;CQL&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;ruby/CompanyDirectorEmployee.rb&quot;&gt;Ruby&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;SQL/CompanyDirectorEmployee.sql&quot;&gt;SQL&lt;/a&gt;&lt;/td&gt;
@@ -136,7 +142,7 @@
   &lt;/tr&gt;
 
   &lt;tr&gt;
-  &lt;td&gt;Death&lt;/td&gt;
+  &lt;td&gt;Death &lt;a href=&quot;ORM/Death.orm&quot;&gt;(orm)&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;CQL/Death.cql&quot;&gt;CQL&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;ruby/Death.rb&quot;&gt;Ruby&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;SQL/Death.sql&quot;&gt;SQL&lt;/a&gt;&lt;/td&gt;
@@ -145,7 +151,7 @@
   &lt;/tr&gt;
 
   &lt;tr&gt;
-  &lt;td&gt;Genealogy&lt;/td&gt;
+  &lt;td&gt;Genealogy &lt;a href=&quot;ORM/Genealogy.orm&quot;&gt;(orm)&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;CQL/Genealogy.cql&quot;&gt;CQL&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;ruby/Genealogy.rb&quot;&gt;Ruby&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;SQL/Genealogy.sql&quot;&gt;SQL&lt;/a&gt;&lt;/td&gt;
@@ -159,14 +165,25 @@
   &lt;td&gt;&lt;a href=&quot;ruby/Insurance.rb&quot;&gt;Ruby&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;SQL/Insurance.sql&quot;&gt;SQL&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;
-  &lt;a href=&quot;images/Insurance/Claim.png&quot;&gt;Claim&lt;/a&gt;&lt;br&gt;
   &lt;a href=&quot;images/Insurance/Insurance.png&quot;&gt;Insurance&lt;/a&gt;&lt;br&gt;
   &lt;a href=&quot;images/Insurance/Person.png&quot;&gt;Person&lt;/a&gt;&lt;br&gt;
   &lt;a href=&quot;images/Insurance/Policy.png&quot;&gt;Policy&lt;/a&gt;&lt;br&gt;
+  &lt;a href=&quot;images/Insurance/Claim.png&quot;&gt;Claim&lt;/a&gt;&lt;br&gt;
+  &lt;a href=&quot;images/Insurance/VehicleIncident.png&quot;&gt;VehicleIncident&lt;/a&gt;&lt;br&gt;
+  &lt;a href=&quot;images/Insurance/Related.png&quot;&gt;Related&lt;/a&gt;&lt;br&gt;
+  &lt;/tr&gt;
+
+  &lt;tr&gt;
+  &lt;td&gt;JoinEquality &lt;a href=&quot;ORM/JoinEquality.orm&quot;&gt;(orm)&lt;/a&gt;&lt;/td&gt;
+  &lt;td&gt;&lt;a href=&quot;CQL/JoinEquality.cql&quot;&gt;CQL&lt;/a&gt;&lt;/td&gt;
+  &lt;td&gt;&lt;a href=&quot;ruby/JoinEquality.rb&quot;&gt;Ruby&lt;/a&gt;&lt;/td&gt;
+  &lt;td&gt;&lt;a href=&quot;SQL/JoinEquality.sql&quot;&gt;SQL&lt;/a&gt;&lt;/td&gt;
+  &lt;td&gt;
+  &lt;a href=&quot;images/JoinEquality.png&quot;&gt;JoinEquality&lt;/a&gt;&lt;br&gt;
   &lt;/tr&gt;
 
   &lt;tr&gt;
-  &lt;td&gt;Marriage&lt;/td&gt;
+  &lt;td&gt;Marriage &lt;a href=&quot;ORM/Marriage.orm&quot;&gt;(orm)&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;CQL/Marriage.cql&quot;&gt;CQL&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;ruby/Marriage.rb&quot;&gt;Ruby&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;SQL/Marriage.sql&quot;&gt;SQL&lt;/a&gt;&lt;/td&gt;
@@ -174,21 +191,26 @@
   &lt;a href=&quot;images/Marriage.png&quot;&gt;Marriage&lt;/a&gt;&lt;br&gt;
   &lt;/tr&gt;
 
+  &lt;a name=&quot;Metamodel&quot;&gt;&lt;/a&gt;
   &lt;tr&gt;
   &lt;td&gt;Metamodel&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;CQL/Metamodel.cql&quot;&gt;CQL&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;ruby/Metamodel.rb&quot;&gt;Ruby&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;SQL/Metamodel.sql&quot;&gt;SQL&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;
-  &lt;a href=&quot;images/Metamodel/Constraints.png&quot;&gt;Constraints&lt;/a&gt;&lt;br&gt;
-  &lt;a href=&quot;images/Metamodel/Import.png&quot;&gt;Import&lt;/a&gt;&lt;br&gt;
   &lt;a href=&quot;images/Metamodel/Objects.png&quot;&gt;Objects&lt;/a&gt;&lt;br&gt;
-  &lt;a href=&quot;images/Metamodel/Populations.png&quot;&gt;Populations&lt;/a&gt;&lt;br&gt;
+  &lt;a href=&quot;images/Metamodel/Terms.png&quot;&gt;Terms&lt;/a&gt;&lt;br&gt;
+  &lt;a href=&quot;images/Metamodel/ValueTypes.png&quot;&gt;ValueTypes&lt;/a&gt;&lt;br&gt;
+  &lt;a href=&quot;images/Metamodel/Constraints.png&quot;&gt;Constraints&lt;/a&gt;&lt;br&gt;
+  &lt;a href=&quot;images/Metamodel/Units.png&quot;&gt;Units&lt;/a&gt;&lt;br&gt;
+  &lt;a href=&quot;images/Metamodel/Joins.png&quot;&gt;Joins&lt;/a&gt;&lt;br&gt;
   &lt;a href=&quot;images/Metamodel/Values.png&quot;&gt;Values&lt;/a&gt;&lt;br&gt;
+  &lt;a href=&quot;images/Metamodel/Populations.png&quot;&gt;Populations&lt;/a&gt;&lt;br&gt;
+  &lt;a href=&quot;images/Metamodel/Context.png&quot;&gt;Context&lt;/a&gt;&lt;br&gt;
   &lt;/tr&gt;
 
   &lt;tr&gt;
-  &lt;td&gt;MultiInheritance&lt;/td&gt;
+  &lt;td&gt;MultiInheritance &lt;a href=&quot;ORM/MultiInheritance.orm&quot;&gt;(orm)&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;CQL/MultiInheritance.cql&quot;&gt;CQL&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;ruby/MultiInheritance.rb&quot;&gt;Ruby&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;SQL/MultiInheritance.sql&quot;&gt;SQL&lt;/a&gt;&lt;/td&gt;
@@ -197,7 +219,7 @@
   &lt;/tr&gt;
 
   &lt;tr&gt;
-  &lt;td&gt;OilSupply&lt;/td&gt;
+  &lt;td&gt;OilSupply &lt;a href=&quot;ORM/OilSupply.orm&quot;&gt;(orm)&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;CQL/OilSupply.cql&quot;&gt;CQL&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;ruby/OilSupply.rb&quot;&gt;Ruby&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;SQL/OilSupply.sql&quot;&gt;SQL&lt;/a&gt;&lt;/td&gt;
@@ -206,7 +228,7 @@
   &lt;/tr&gt;
 
   &lt;tr&gt;
-  &lt;td&gt;Orienteering&lt;/td&gt;
+  &lt;td&gt;Orienteering &lt;a href=&quot;ORM/Orienteering.orm&quot;&gt;(orm)&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;CQL/Orienteering.cql&quot;&gt;CQL&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;ruby/Orienteering.rb&quot;&gt;Ruby&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;SQL/Orienteering.sql&quot;&gt;SQL&lt;/a&gt;&lt;/td&gt;
@@ -217,7 +239,7 @@
   &lt;/tr&gt;
 
   &lt;tr&gt;
-  &lt;td&gt;OrienteeringER&lt;/td&gt;
+  &lt;td&gt;OrienteeringER &lt;a href=&quot;ORM/OrienteeringER.orm&quot;&gt;(orm)&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;CQL/OrienteeringER.cql&quot;&gt;CQL&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;ruby/OrienteeringER.rb&quot;&gt;Ruby&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;SQL/OrienteeringER.sql&quot;&gt;SQL&lt;/a&gt;&lt;/td&gt;
@@ -226,7 +248,7 @@
   &lt;/tr&gt;
 
   &lt;tr&gt;
-  &lt;td&gt;PersonPlaysGame&lt;/td&gt;
+  &lt;td&gt;PersonPlaysGame &lt;a href=&quot;ORM/PersonPlaysGame.orm&quot;&gt;(orm)&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;CQL/PersonPlaysGame.cql&quot;&gt;CQL&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;ruby/PersonPlaysGame.rb&quot;&gt;Ruby&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;SQL/PersonPlaysGame.sql&quot;&gt;SQL&lt;/a&gt;&lt;/td&gt;
@@ -235,7 +257,16 @@
   &lt;/tr&gt;
 
   &lt;tr&gt;
-  &lt;td&gt;SchoolActivities&lt;/td&gt;
+  &lt;td&gt;RedundantDependency &lt;a href=&quot;ORM/RedundantDependency.orm&quot;&gt;(orm)&lt;/a&gt;&lt;/td&gt;
+  &lt;td&gt;&lt;a href=&quot;CQL/RedundantDependency.cql&quot;&gt;CQL&lt;/a&gt;&lt;/td&gt;
+  &lt;td&gt;&lt;a href=&quot;ruby/RedundantDependency.rb&quot;&gt;Ruby&lt;/a&gt;&lt;/td&gt;
+  &lt;td&gt;&lt;a href=&quot;SQL/RedundantDependency.sql&quot;&gt;SQL&lt;/a&gt;&lt;/td&gt;
+  &lt;td&gt;
+  &lt;a href=&quot;images/RedundantDependency.png&quot;&gt;RedundantDependency&lt;/a&gt;&lt;br&gt;
+  &lt;/tr&gt;
+
+  &lt;tr&gt;
+  &lt;td&gt;SchoolActivities &lt;a href=&quot;ORM/SchoolActivities.orm&quot;&gt;(orm)&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;CQL/SchoolActivities.cql&quot;&gt;CQL&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;ruby/SchoolActivities.rb&quot;&gt;Ruby&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;SQL/SchoolActivities.sql&quot;&gt;SQL&lt;/a&gt;&lt;/td&gt;
@@ -244,7 +275,7 @@
   &lt;/tr&gt;
 
   &lt;tr&gt;
-  &lt;td&gt;SimplestUnary&lt;/td&gt;
+  &lt;td&gt;SimplestUnary &lt;a href=&quot;ORM/SimplestUnary.orm&quot;&gt;(orm)&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;CQL/SimplestUnary.cql&quot;&gt;CQL&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;ruby/SimplestUnary.rb&quot;&gt;Ruby&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;SQL/SimplestUnary.sql&quot;&gt;SQL&lt;/a&gt;&lt;/td&gt;
@@ -253,7 +284,7 @@
   &lt;/tr&gt;
 
   &lt;tr&gt;
-  &lt;td&gt;Warehousing&lt;/td&gt;
+  &lt;td&gt;Warehousing &lt;a href=&quot;ORM/Warehousing.orm&quot;&gt;(orm)&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;CQL/Warehousing.cql&quot;&gt;CQL&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;ruby/Warehousing.rb&quot;&gt;Ruby&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;SQL/Warehousing.sql&quot;&gt;SQL&lt;/a&gt;&lt;/td&gt;
@@ -262,7 +293,7 @@
   &lt;/tr&gt;
 
   &lt;tr&gt;
-  &lt;td&gt;WindowInRoomInBldg&lt;/td&gt;
+  &lt;td&gt;WindowInRoomInBldg &lt;a href=&quot;ORM/WindowInRoomInBldg.orm&quot;&gt;(orm)&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;CQL/WindowInRoomInBldg.cql&quot;&gt;CQL&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;ruby/WindowInRoomInBldg.rb&quot;&gt;Ruby&lt;/a&gt;&lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;SQL/WindowInRoomInBldg.sql&quot;&gt;SQL&lt;/a&gt;&lt;/td&gt;</diff>
      <filename>examples/index.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!--#include virtual=&quot;/header.html&quot; --&gt;
 &lt;!--#include virtual=&quot;navbar.html&quot; --&gt;
 
-&lt;link rel=&quot;stylesheet&quot; href=&quot;css/offline.css&quot; media=&quot;screen&quot; type=&quot;text/css&quot; /&gt;
+&lt;link rel=&quot;stylesheet&quot; href=&quot;../css/offline.css&quot; media=&quot;screen&quot; type=&quot;text/css&quot; /&gt;
 &lt;div id=&quot;sidebar&quot;&gt;&lt;/div&gt;
 
 &lt;div id=&quot;top&quot; class=&quot;content&quot;&gt;
@@ -11,52 +11,121 @@
     ActiveFacts Project Status
   &lt;/h2&gt;
 
+  &lt;h4&gt;Constellation Query Language&lt;/h4&gt;
+
   &lt;p&gt;
-  The Constellation Query Language has DDL support sufficient to allow
-  conversion of any ORM2 model. The Ruby generator is complete. The SQL
-  generator is complete, but with a couple of known defects in corner cases.
-  The generated Ruby code has only a partial implementation of the mapping
-  data needed to convert to and from SQL tables, and even that has to be
-  enabled using an option.
+  The Constellation Query Language implementation available in
+  version 0.8.5 compiles all features of ORM2 implemented by NORMA
+  with only minuscule differences. Entity Types, Value Types, Fact
+  Types (including objectified), Reference Modes, and all types of
+  constraints - Value and Role Value Restriction, Presence
+  Constraints (which covers Mandatory, Uniqueness, and Frequency
+  constraints), Subset, Equality, Exclusion, Mandatory Exclusion,
+  and Ring constraints.
   &lt;/p&gt;
+  
+  &lt;p&gt; At this version Terms (object type names) may not contain
+  spaces.  Terms may not appear in readings (unless in lower-case)
+  and readings may only contain single adjectives (hyphen-binding).
+  Deontic constraints are recognised using the annotation (otherwise
+  &lt;b&gt;action&lt;/b&gt;). Join Constraints may also be defined beyond those
+  available in NORMA.  Example data may be declared.  &lt;/p&gt;
 
   &lt;p&gt;
-  CQL is not yet handling imported vocabularies, example fact populations or
-  value type units yet. It has limited model validation facilities, and it's
-  not yet possible to add a new reading to an existing fact type.  It's also
-  only parsing query syntax, with no semantic analysis or SQL generation.
+  This version provides functionality not available in NORMA. Additions
+  include:
   &lt;/p&gt;
+  &lt;ul&gt;
+  &lt;li&gt; Business Context Notes, which are annotations indicating why a
+      particular modeling construct was used, and who approved that.
+  &lt;/li&gt;
+  &lt;li&gt; Definition of Units using conversion formulae.  A library of
+      500 standard unit conversions is provided.  &lt;/li&gt;
+  &lt;li&gt; Value Types may be defined to utilise those units. &lt;/li&gt;
+  &lt;/ul&gt;
 
   &lt;p&gt;
-  The Constellation API (in Ruby) supports the generated Ruby code, allowing
-  any fact population to be constructed for a given vocabulary.  There is
-  not yet any support within the API for database persistence, but that's
-  coming up for implementation soon.
+  New features are being developed for an upcoming 0.9.0 release:
   &lt;/p&gt;
+  &lt;ul&gt;
+  &lt;li&gt; Multi-word terms, and multiple adjectives.
+  &lt;li&gt; Improvements on the use of the hyphen to allow hyphenated words in readings.
+  &lt;li&gt; Term Synonyms
+  &lt;li&gt; Imported vocabularies (including multi-lingual versioning)
+  &lt;li&gt; Improved model validation
+  &lt;/ul&gt;
 
   &lt;p&gt;
-  The Metamodel is generated to Ruby from CQL or ORM2 to support the
-  creation and manipulation of any semantic model. Some changes are upcoming
-  to support a vocabulary that provides a translation of an existing
-  vocabulary, such as a Dutch or Japanese version of an English language
-  model.
+  Beyond that, the query syntax will be completed and queries will be generated
+  to SQL.
   &lt;/p&gt;
 
+  &lt;h4&gt;Constellation Query Language generators&lt;/h4&gt;
+
+  &lt;p&gt;
+  The CQL generator allows conversion of NORMA files. At the present release,
+  deontic constraints and example fact populations are not emitted.
+  &lt;/p&gt;
+
+  &lt;p&gt;
+  The Ruby generator is functional. Not all constraints are emitted to Ruby yet,
+  but any combination of facts allowed by the vocabulary may be represented.
+  &lt;/p&gt;
+  
   &lt;p&gt;
+  The SQL generators are generating correct and useful SQL, using a relational
+  mapping algorithm that produces similar results to NORMA. This algorithm will
+  be extended to emit more constraints, and to provide more control over
+  the generation of object names, and to directly support Ruby on Rails.
+  Deontic constraints are still handled as Alethic.
+  &lt;/p&gt;
+
+  &lt;h4&gt;The Constellation API&lt;/h4&gt;
+
+  &lt;p&gt;
+  The Constellation API (in Ruby) supports the generated Ruby code, by
+  allowing any fact population to be asserted into a constellation for
+  a given vocabulary. The generated Ruby module for a vocabulary can be
+  told which object types are tables in the SQL, and can infer all the
+  column names and object mappings from that.
+  &lt;/p&gt;
+  
+  &lt;p&gt; Processing of the deny operation (which removes facts from a
+  constellation) does not yet propagate denial through mandatory roles.
+  There is not yet a validate operation to verify that all verifible
+  constraints are met.  Where a constellation is known to be
+  incomplete, that's not yet able to be recorded (this will be used
+  in determining which constraints can be checked)
+  There is not yet any support within the API for database persistence
+  (creating a constellation from query results, and creating, deleting or
+  updating database rows by saving a constellation).
+  &lt;/p&gt;
+
+  &lt;h4&gt;The ORM2 Metamodel&lt;/h4&gt;
+
+  &lt;p&gt;
+  The ORM2 Metamodel is generated to Ruby from CQL or ORM2 to support
+  the creation and manipulation of any semantic model. Some changes are
+  upcoming to support synonyms, including allowing a vocabulary to
+  provide a translation of an existing vocabulary, such as a Dutch or
+  Japanese version of an English language model.
+  &lt;/p&gt;
+
+  &lt;!--p&gt;
   ActiveFacts can currently read models from NORMA, which are in elementary
   form, and it can reverse engineer the schemas of existing databases in SQL
   Server, DB2, Oracle, and open-source databases not yet tested including
   MySQL, PostgreSQL, etc.  Reverse-engineered models are still in composite
   form - the mapping to elementary form is incomplete.  Reverse engineering
   does not yet analyse actual data.
-  &lt;/p&gt;
+  &lt;/p--&gt;
 
-  &lt;p&gt;
+  &lt;!--p&gt;
   ActiveFacts has no database adapter infrastructure yet. The
   previously-available reverse engineering tools used used the
   infrastructure of ActiveRecord with DRYSql and Composite Primary Keys, but
   future versions will probably just use the ActiveRecord adapters directly.
-  &lt;/p&gt;
+  &lt;/p--&gt;
 
   &lt;!--p&gt;
   APRIMO allows the definition of vocabulary aspects as well as the addition</diff>
      <filename>status.html</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>dc09dcb1ec21060076b5eb908f49ad84dd9945a4</id>
    </parent>
  </parents>
  <author>
    <name>Clifford Heath</name>
    <email>clifford.heath@gmail.com</email>
  </author>
  <url>http://github.com/cjheath/activefacts/commit/8c3a376351d978b3a50d5b5e77cc01872acf4d3b</url>
  <id>8c3a376351d978b3a50d5b5e77cc01872acf4d3b</id>
  <committed-date>2009-10-30T05:47:24-07:00</committed-date>
  <authored-date>2009-10-30T05:47:24-07:00</authored-date>
  <message>Updated examples and status to 0.8.5 level</message>
  <tree>808e9b0c46b0efd34bf78d9f716b1e7aa9f48964</tree>
  <committer>
    <name>Clifford Heath</name>
    <email>clifford.heath@gmail.com</email>
  </committer>
</commit>
