<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.ormfoundation.org/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>ActiveFacts</title><link>http://www.ormfoundation.org/forums/82.aspx</link><description>This forum is for discussing the ActiveFacts tool and the CQL language being developed by Clifford Heath.</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>Diagram metamodel added to ActiveFacts metamodel</title><link>http://www.ormfoundation.org/forums/thread/2146.aspx</link><pubDate>Thu, 20 May 2010 05:03:46 GMT</pubDate><guid isPermaLink="false">9d039735-a311-4a8d-9c49-a0bb2572af9e:2146</guid><dc:creator>Clifford Heath</dc:creator><slash:comments>0</slash:comments><comments>http://www.ormfoundation.org/forums/thread/2146.aspx</comments><wfw:commentRss>http://www.ormfoundation.org/forums/commentrss.aspx?SectionID=82&amp;PostID=2146</wfw:commentRss><description>&lt;p&gt;Folk,&lt;/p&gt;&lt;p&gt;Thanks to NORMA, I present a metamodel for ORM2 diagrams as an extension of the ActiveFacts metamodel. This diagram is also available in the Files section under &amp;quot;Open Source Models&amp;quot;.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Note some items relevant to this model being used with AdtiveFacts, rather than ORM2 in general:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Where NORMA uses the word &amp;quot;model&amp;quot; or &amp;quot;schema&amp;quot;, ActiveFacts uses &amp;quot;Vocabulary&amp;quot;.&lt;/li&gt;&lt;li&gt;This metamodel has been added to the &amp;quot;next&amp;quot; or upcomingversion of the metamodel, where object type is called ObjectType, not the current version, where they&amp;#39;re called &amp;quot;Concept&amp;quot;.&lt;/li&gt;&lt;li&gt;The constraint shape subtypes that are shown are shown because their position is relative to something they&amp;#39;re attached to, not to the diagram origin.&lt;/li&gt;&lt;li&gt;The closest thing that ActiveFacts has to a Model Note is its Context Notes, hence the naming mismatch.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;The CQL text for this model fragment follows: &lt;br /&gt;&lt;/p&gt;&lt;p&gt;DisplayRoleNamesSetting is written as String restricted to {&amp;#39;false&amp;#39;, &amp;#39;true&amp;#39;};&lt;br /&gt;RotationSetting is written as String restricted to {&amp;#39;left&amp;#39;, &amp;#39;right&amp;#39;};&lt;br /&gt;X is written as Integer(32);&lt;br /&gt;Y is written as Integer(32);&lt;br /&gt;Position is identified by X and Y where&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Position is at one X,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Position is at one Y;&lt;br /&gt;&lt;br /&gt;Diagram is identified by Vocabulary and Name where&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Diagram is for one Vocabulary,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Vocabulary contains Diagram,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Diagram is called one Name,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Name is of Diagram;&lt;br /&gt;&lt;br /&gt;Shape is identified by Diagram and Position where&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Shape is in one Diagram,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Diagram includes Shape,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Shape is at at most one Position;&lt;br /&gt;Shape is expanded;&lt;br /&gt;&lt;br /&gt;ConstraintShape is a kind of Shape;&lt;br /&gt;ConstraintShape is for one Constraint;&lt;br /&gt;&lt;br /&gt;FactTypeShape is a kind of Shape;&lt;br /&gt;FactTypeShape has at most one DisplayRoleNamesSetting;&lt;br /&gt;FactTypeShape is for one FactType,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FactType has FactTypeShape;&lt;br /&gt;FactTypeShape has at most one RotationSetting;&lt;br /&gt;&lt;br /&gt;FrequencyConstraintShape is a kind of ConstraintShape;&lt;br /&gt;&lt;br /&gt;ModelNoteShape is a kind of Shape;&lt;br /&gt;ModelNoteShape is for one ContextNote;&lt;br /&gt;&lt;br /&gt;ObjectTypeShape is a kind of Shape;&lt;br /&gt;ObjectTypeShape is for one ObjectType,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ObjectType has ObjectTypeShape;&lt;br /&gt;ObjectTypeShape has expanded reference mode;&lt;br /&gt;&lt;br /&gt;ObjectifiedFactTypeNameShape is a kind of Shape identified by FactTypeShape where&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ObjectifiedFactTypeNameShape is for one FactTypeShape,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FactTypeShape has at most one ObjectifiedFactTypeNameShape;&lt;br /&gt;&lt;br /&gt;ReadingShape is a kind of Shape identified by FactTypeShape where&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FactTypeShape has at most one ReadingShape,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ReadingShape is for one FactTypeShape;&lt;br /&gt;ReadingShape is for one Reading,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Reading has ReadingShape;&lt;br /&gt;&lt;br /&gt;RingConstraintShape is a kind of ConstraintShape;&lt;br /&gt;RingConstraintShape is attached to one FactType;&lt;br /&gt;&lt;br /&gt;RoleDisplay is where&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FactTypeShape displays Role in Ordinal position;&lt;br /&gt;RoleDisplay has FrequencyConstraintShape,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FrequencyConstraintShape is for one RoleDisplay;&lt;br /&gt;&lt;br /&gt;RoleNameShape is a kind of Shape;&lt;br /&gt;RoleNameShape is for one Role;&lt;br /&gt;&lt;br /&gt;ValueConstraintShape is a kind of ConstraintShape;&lt;br /&gt;RoleDisplay has at most one ValueConstraintShape,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueConstraintShape is for at most one RoleDisplay;&lt;br /&gt;ValueConstraintShape is for at most one ObjectTypeShape,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ObjectTypeShape has ValueConstraintShape;&lt;br /&gt;&lt;br /&gt;ValueType has at most one ValueConstraint,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValueConstraint constrains ValueType;&lt;br /&gt;either ValueConstraintShape is for ObjectTypeShape or ValueConstraintShape is for RoleDisplay but not both;&lt;br /&gt;each combination FactTypeShape, Ordinal occurs at most one time in&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FactTypeShape displays Role in Ordinal position;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;</description></item></channel></rss>