<?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>Conceptual modeling</title><link>http://www.ormfoundation.org/forums/84.aspx</link><description>This forum is for discussing issue at the "conceptual" level of modeling.</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>I have an ApprovalInfo table with approval criteria in other tables.</title><link>http://www.ormfoundation.org/forums/thread/3304.aspx</link><pubDate>Fri, 10 May 2013 18:02:18 GMT</pubDate><guid isPermaLink="false">9d039735-a311-4a8d-9c49-a0bb2572af9e:3304</guid><dc:creator>mnnoon</dc:creator><slash:comments>0</slash:comments><comments>http://www.ormfoundation.org/forums/thread/3304.aspx</comments><wfw:commentRss>http://www.ormfoundation.org/forums/commentrss.aspx?SectionID=84&amp;PostID=3304</wfw:commentRss><description>&lt;p&gt;I&amp;#39;m looking for best practice in orm&amp;nbsp;by asking Is there a good way in orm to check that all the required fields for the approval process&amp;nbsp;(final stage for approval) is completed and ready to go? I have credit card account authorization tables and one of the last tables that gets populated is an approval table which has the date the account was approved and who approved it.&amp;nbsp;&amp;nbsp; So when I hit approved, it now checks that all the tables and required fields for the approval process are correctly filled with appropriate data.&amp;nbsp; I&amp;#39;m thinking that maybe a trigger on the approval should be checked which then creates a transaction to see if all mandatory fields have been completed.&amp;nbsp; This includes on sub tables such to check for required fields.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Note: I have a similar dilimea for changing an approved account.&amp;nbsp; Closing an approved account and changing an approved account to a declined state or to some other state.&amp;nbsp; I&amp;#39;m using a status field to track these mode changes.&lt;/p&gt;&lt;p&gt;Also I noticed someone was interested in a &lt;a title="draft mode" href="http://www.ormfoundation.org/forums/t/1009.aspx"&gt;draft mode&lt;/a&gt; which makes sense because its not mandatory in the initial stage of the account creation b/c operators will constantly make changes or retrieve new information until its ready for final approval.&lt;/p&gt;&lt;p&gt;Thank you,&lt;/p&gt;&lt;p&gt;Marc Noon&lt;/p&gt;</description></item><item><title>Conditional mandatory constraints</title><link>http://www.ormfoundation.org/forums/thread/3168.aspx</link><pubDate>Sat, 19 Jan 2013 01:54:40 GMT</pubDate><guid isPermaLink="false">9d039735-a311-4a8d-9c49-a0bb2572af9e:3168</guid><dc:creator>Clifford Heath</dc:creator><slash:comments>5</slash:comments><comments>http://www.ormfoundation.org/forums/thread/3168.aspx</comments><wfw:commentRss>http://www.ormfoundation.org/forums/commentrss.aspx?SectionID=84&amp;PostID=3168</wfw:commentRss><description>&lt;p&gt;When modeling, I often find one or more objects which map to records having a significant number of mandatory fields. In constructing a user interface for a user to populate one of these records, there&amp;#39;s a need to be able to save the record in a kind of &amp;quot;draft&amp;quot; mode, without all its mandatory fields being yet populated.
A similar situation arises with many kinds of state transition, not just from draft to complete, and these can sometimes be handled as subtype transitions. Simply place the conditionally-mandatory roles on a subtype, so that the supertype instance acquires a subtype instance dynamically after those roles are filled. However, this subtype approach relies on natural domain terminology to name the supertype, and doesn&amp;#39;t work where some but not all mandatories are provided in one go.
&lt;/p&gt;

&lt;p&gt;But back to the draft situation, it&amp;#39;s possible to add a unary &amp;quot;is draft&amp;quot;, and then to define join mandatory constraints (using NORMA Pro, or using CQL) saying that the role is mandatory only if the object is not a draft. These constraints should get mapped as CHECK constraints (CHECK(field is not null or is_draft = true). However it&amp;#39;s enough of a nuisance and is common enough to want to streamline it a bit in the modeling languages.&lt;p&gt;

&lt;p&gt;When developing applications using Ruby on Rails, it&amp;#39;s common practise to simply omit the mandatory constraints, and to handle these validations in the Rails &amp;quot;model&amp;quot; (application code for the record type), but I prefer to enforce constraints in the DBMS where possible&lt;/p&gt;

&lt;p&gt;How do other people handle this type of constraint?&lt;p&gt;</description></item><item><title>Do joins make the most sense when determining states.</title><link>http://www.ormfoundation.org/forums/thread/2728.aspx</link><pubDate>Wed, 06 Jul 2011 19:38:34 GMT</pubDate><guid isPermaLink="false">9d039735-a311-4a8d-9c49-a0bb2572af9e:2728</guid><dc:creator>mnnoon</dc:creator><slash:comments>8</slash:comments><comments>http://www.ormfoundation.org/forums/thread/2728.aspx</comments><wfw:commentRss>http://www.ormfoundation.org/forums/commentrss.aspx?SectionID=84&amp;PostID=2728</wfw:commentRss><description>&lt;p&gt;Hi,&amp;nbsp; I&amp;#39;ve been trying to put joins into a case statement in SQL.&amp;nbsp; The current version of SQL code has&amp;nbsp;joins between a state rates table and several other tables that have states in them.&amp;nbsp; But since there is an agreed upon order to how these rates are applied applied depending on which state a table is from, I have been having trouble moving this to a case statement.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;My questions are there situation that are more suited for joins than to case statements in SQL Server?&amp;nbsp; And which one is more efficient? (Details below)&lt;/p&gt;
&lt;p&gt;Here is a banking example on which fee should be applied:&lt;/p&gt;
&lt;p&gt;State of Residence, Banking State, Insurance State, License State, Highschool state&lt;/p&gt;
&lt;p&gt;each of these states are in a separate table, and there is a fee table that has each state listed with its associated fee.&lt;/p&gt;
&lt;p&gt;So I have matrix:&lt;/p&gt;
&lt;table style="WIDTH:766.65pt;BORDER-COLLAPSE:collapse;MARGIN-LEFT:-0.75pt;" class="MsoNormalTable" cellspacing="0" cellpadding="0"&gt;

&lt;tr style="HEIGHT:57pt;"&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:57pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;Case #&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:77pt;PADDING-RIGHT:5.4pt;HEIGHT:57pt;PADDING-TOP:0in;"&gt;
&lt;p style="TEXT-ALIGN:center;" class="MsoNormal" align="center"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;Residense State&amp;nbsp;&amp;nbsp;Length=2&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:59.55pt;PADDING-RIGHT:5.4pt;HEIGHT:57pt;PADDING-TOP:0in;"&gt;
&lt;p style="TEXT-ALIGN:center;" class="MsoNormal" align="center"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;Banking State Length=2&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:49pt;PADDING-RIGHT:5.4pt;HEIGHT:57pt;PADDING-TOP:0in;"&gt;
&lt;p style="TEXT-ALIGN:center;" class="MsoNormal" align="center"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;Insurance State Length=2&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:52.05pt;PADDING-RIGHT:5.4pt;HEIGHT:57pt;PADDING-TOP:0in;"&gt;
&lt;p style="TEXT-ALIGN:center;" class="MsoNormal" align="center"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;Drivers License State Length=2&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:49.05pt;PADDING-RIGHT:5.4pt;HEIGHT:57pt;PADDING-TOP:0in;"&gt;
&lt;p style="TEXT-ALIGN:center;" class="MsoNormal" align="center"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;Highschool State Length=2&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:57pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:57pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:57pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:57pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:57pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:57pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:57pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:57pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:57pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="HEIGHT:12.75pt;"&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;BACKGROUND:#d9d9d9;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p style="TEXT-ALIGN:right;" class="MsoNormal" align="right"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;1&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:77pt;PADDING-RIGHT:5.4pt;BACKGROUND:#d9d9d9;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p style="TEXT-ALIGN:center;" class="MsoNormal" align="center"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;TRUE&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:59.55pt;PADDING-RIGHT:5.4pt;BACKGROUND:#d9d9d9;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p style="TEXT-ALIGN:center;" class="MsoNormal" align="center"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;n/a&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:49pt;PADDING-RIGHT:5.4pt;BACKGROUND:#d9d9d9;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p style="TEXT-ALIGN:center;" class="MsoNormal" align="center"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;n/a&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:52.05pt;PADDING-RIGHT:5.4pt;BACKGROUND:#d9d9d9;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p style="TEXT-ALIGN:center;" class="MsoNormal" align="center"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;n/a&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:49.05pt;PADDING-RIGHT:5.4pt;BACKGROUND:#d9d9d9;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p style="TEXT-ALIGN:center;" class="MsoNormal" align="center"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;n/a&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&amp;nbsp;or&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="HEIGHT:12.75pt;"&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p style="TEXT-ALIGN:right;" class="MsoNormal" align="right"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;2&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:77pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p style="TEXT-ALIGN:center;" class="MsoNormal" align="center"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;FALSE&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:59.55pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p style="TEXT-ALIGN:center;" class="MsoNormal" align="center"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;TRUE&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:49pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p style="TEXT-ALIGN:center;" class="MsoNormal" align="center"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;n/a&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:52.05pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p style="TEXT-ALIGN:center;" class="MsoNormal" align="center"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;n/a&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:49.05pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p style="TEXT-ALIGN:center;" class="MsoNormal" align="center"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;n/a&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&amp;nbsp;or&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="HEIGHT:12.75pt;"&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;BACKGROUND:#d9d9d9;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p style="TEXT-ALIGN:right;" class="MsoNormal" align="right"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;3&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:77pt;PADDING-RIGHT:5.4pt;BACKGROUND:#d9d9d9;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p style="TEXT-ALIGN:center;" class="MsoNormal" align="center"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;FALSE&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:59.55pt;PADDING-RIGHT:5.4pt;BACKGROUND:#d9d9d9;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p style="TEXT-ALIGN:center;" class="MsoNormal" align="center"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;FALSE&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:49pt;PADDING-RIGHT:5.4pt;BACKGROUND:#d9d9d9;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p style="TEXT-ALIGN:center;" class="MsoNormal" align="center"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;TRUE&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:52.05pt;PADDING-RIGHT:5.4pt;BACKGROUND:#d9d9d9;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p style="TEXT-ALIGN:center;" class="MsoNormal" align="center"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;n/a&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:49.05pt;PADDING-RIGHT:5.4pt;BACKGROUND:#d9d9d9;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p style="TEXT-ALIGN:center;" class="MsoNormal" align="center"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;n/a&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&amp;nbsp;or&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="HEIGHT:12.75pt;"&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p style="TEXT-ALIGN:right;" class="MsoNormal" align="right"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;4&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:77pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p style="TEXT-ALIGN:center;" class="MsoNormal" align="center"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;FALSE &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:59.55pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p style="TEXT-ALIGN:center;" class="MsoNormal" align="center"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;FALSE&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:49pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p style="TEXT-ALIGN:center;" class="MsoNormal" align="center"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;FALSE&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:52.05pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p style="TEXT-ALIGN:center;" class="MsoNormal" align="center"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;TRUE&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:49.05pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p style="TEXT-ALIGN:center;" class="MsoNormal" align="center"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;n/a&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&amp;nbsp;or&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="HEIGHT:12.75pt;"&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:48pt;PADDING-RIGHT:5.4pt;BACKGROUND:#d9d9d9;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p style="TEXT-ALIGN:right;" class="MsoNormal" align="right"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;5&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:77pt;PADDING-RIGHT:5.4pt;BACKGROUND:#d9d9d9;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p style="TEXT-ALIGN:center;" class="MsoNormal" align="center"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;FALSE &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:59.55pt;PADDING-RIGHT:5.4pt;BACKGROUND:#d9d9d9;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p style="TEXT-ALIGN:center;" class="MsoNormal" align="center"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;FALSE&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:49pt;PADDING-RIGHT:5.4pt;BACKGROUND:#d9d9d9;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p style="TEXT-ALIGN:center;" class="MsoNormal" align="center"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;FALSE&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:52.05pt;PADDING-RIGHT:5.4pt;BACKGROUND:#d9d9d9;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p style="TEXT-ALIGN:center;" class="MsoNormal" align="center"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;FALSE&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:49.05pt;PADDING-RIGHT:5.4pt;BACKGROUND:#d9d9d9;HEIGHT:12.75pt;PADDING-TOP:0in;"&gt;
&lt;p style="TEXT-ALIGN:center;" class="MsoNormal" align="center"&gt;&lt;font size="2" face="Arial"&gt;&lt;span style="FONT-FAMILY:Arial;FONT-SIZE:10pt;"&gt;TRUE&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;So my join would look have to match each case.&amp;nbsp; I&amp;#39;m using empty string &amp;#39;&amp;#39; for situation where that information was not provided and NULL are never allowed in this model.&amp;nbsp;&amp;nbsp;The constraint is that there can only be either two characters A-Z and must be&amp;nbsp;listed in StateList table, or an empty string.&amp;nbsp; Since each of the states above are in a separate table, I need to choose the rate from the above matrix.&amp;nbsp; Where each item is not n/a it must be a binary AND with each state. &lt;/p&gt;
&lt;p&gt;STATE PENALTY TABLE&amp;nbsp;&amp;nbsp;looks like this:&lt;/p&gt;
&lt;p&gt;STATE&amp;nbsp;&amp;nbsp;&amp;nbsp; PENALTY ASSESSED&lt;/p&gt;
&lt;p&gt;AK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $12.95&lt;/p&gt;
&lt;p&gt;AL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$13.95&lt;/p&gt;
&lt;p&gt;...&lt;/p&gt;
&lt;p&gt;There is also a state called NA which stands for Not Applicable with a penalty of $1.00.&lt;/p&gt;
&lt;p&gt;In the above case if all states are empty string, then a penalty of $1.00 is assessed.&lt;/p&gt;
&lt;p&gt;select sp.State, sp.Penalty Assessed&amp;nbsp; from Residence as r&amp;nbsp;inner join Banking as b&amp;nbsp;inner join Insurance as i&amp;nbsp;inner join DriversLicense as d&amp;nbsp;inner join HighSchool as h inner join StatePenalty as sp&lt;/p&gt;
&lt;p&gt;on&amp;nbsp;&amp;nbsp;r.State = sp.State&amp;nbsp;&amp;nbsp;&amp;nbsp; -- Case 1&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;or&amp;nbsp; r.State = &amp;#39;&amp;#39; and b.State = sp.State -- Case 2&lt;/p&gt;
&lt;p&gt;or r.State = &amp;#39;&amp;#39; and b.State = &amp;#39;&amp;#39; and I.State = sp.State -- Case 3&lt;/p&gt;
&lt;p&gt;or r.State = &amp;#39;&amp;#39; and b.State = &amp;#39;&amp;#39; and I.State = &amp;#39;&amp;#39; and d.Sate = sp.State&amp;nbsp; -- case 4&lt;/p&gt;
&lt;p&gt;or r.State = &amp;#39;&amp;#39; and b.State = &amp;#39;&amp;#39; and I.State = &amp;#39;&amp;#39; and d.State = &amp;#39;&amp;#39; and h.State = sp.State - case 5&lt;/p&gt;
&lt;p&gt;or r.State = &amp;#39;&amp;#39; and b.State = &amp;#39;&amp;#39; and I.State = &amp;#39;&amp;#39; and d.State = &amp;#39;&amp;#39; and h.State =&amp;nbsp;&amp;#39;&amp;#39; and sp.State = NA&amp;nbsp;- case 5&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Marc&lt;/p&gt;</description></item><item><title>Informal references to entity types</title><link>http://www.ormfoundation.org/forums/thread/3109.aspx</link><pubDate>Wed, 10 Oct 2012 06:15:03 GMT</pubDate><guid isPermaLink="false">9d039735-a311-4a8d-9c49-a0bb2572af9e:3109</guid><dc:creator>Clifford Heath</dc:creator><slash:comments>7</slash:comments><comments>http://www.ormfoundation.org/forums/thread/3109.aspx</comments><wfw:commentRss>http://www.ormfoundation.org/forums/commentrss.aspx?SectionID=84&amp;PostID=3109</wfw:commentRss><description>&lt;p&gt;I often encounter the situation where I have an Entity Type, say Person or Staff Member, which has a lot of associated details of which many are mandatory, but I also need to record references to individuals that are more informal, such as using their nickname. The Payroll department might need all the info, but if all I want to do is to make a record of who made a certain phone call (to jog the memory for another employee) etc, I often don&amp;#39;t want a formal reference. Or in another example, an insurance company requires many facts about a person who is applying for insurance, but has many fewer facts about a witness to an accident, or the name of a third-party - even though a Person is the common supertype here.&lt;/p&gt;

&lt;p&gt;In these informal situations, I don&amp;#39;t want to record the ID of a person in my Party table (because that implies a lot of knowledge about them), I just want to record their name with no enforcement. The name however is a value type, so fact type readings which use just the name are awkward (&amp;quot;Reference Check Phone Call was made by employee called Name&amp;quot;). If I do it using a supertype of the full Person ET which allows the limited and/or informal identification, the identification pattern must also apply in the case of the subtype.&lt;/p&gt;

&lt;p&gt;Basically I feel that all the correct models are a bit awkward. How do you model this kind of situation?&lt;/p&gt;</description></item><item><title>Cardinality constraints</title><link>http://www.ormfoundation.org/forums/thread/3030.aspx</link><pubDate>Tue, 05 Jun 2012 20:58:18 GMT</pubDate><guid isPermaLink="false">9d039735-a311-4a8d-9c49-a0bb2572af9e:3030</guid><dc:creator>JB4times4</dc:creator><slash:comments>1</slash:comments><comments>http://www.ormfoundation.org/forums/thread/3030.aspx</comments><wfw:commentRss>http://www.ormfoundation.org/forums/commentrss.aspx?SectionID=84&amp;PostID=3030</wfw:commentRss><description>&lt;p&gt;I&amp;#39;ve got a question about cardinality:&lt;/p&gt;&lt;p&gt;Is there a way to say # in {0,10} for example, a jury has either 12 members or 0 members.&lt;/p&gt;&lt;p&gt;In the book, Information Modeling and Relational Databases it says you can use # = 12, but this doesn&amp;#39;t account for the empty set when a table is created, but doesn&amp;#39;t show an example of how to account for the empty set, only to use a &amp;lt;=.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Thanks in advance. &lt;br /&gt;&lt;/p&gt;</description></item><item><title>it is possible to link more than one object type to a label type</title><link>http://www.ormfoundation.org/forums/thread/3026.aspx</link><pubDate>Sun, 27 May 2012 10:26:15 GMT</pubDate><guid isPermaLink="false">9d039735-a311-4a8d-9c49-a0bb2572af9e:3026</guid><dc:creator>mushtaha</dc:creator><slash:comments>3</slash:comments><comments>http://www.ormfoundation.org/forums/thread/3026.aspx</comments><wfw:commentRss>http://www.ormfoundation.org/forums/commentrss.aspx?SectionID=84&amp;PostID=3026</wfw:commentRss><description>I would like to ask whether it is possible to  ink more than one object type to a label type as it appears in the attached picture?
many thanks...</description></item><item><title>Is it possible to make ORM value types redundant?</title><link>http://www.ormfoundation.org/forums/thread/2077.aspx</link><pubDate>Mon, 29 Mar 2010 11:49:49 GMT</pubDate><guid isPermaLink="false">9d039735-a311-4a8d-9c49-a0bb2572af9e:2077</guid><dc:creator>michel</dc:creator><slash:comments>33</slash:comments><comments>http://www.ormfoundation.org/forums/thread/2077.aspx</comments><wfw:commentRss>http://www.ormfoundation.org/forums/commentrss.aspx?SectionID=84&amp;PostID=2077</wfw:commentRss><description>&lt;p&gt;Being new to ORM I am wondering if it is possbile to make ORM value types redundant? Having read &lt;a href="http://www.proace.com/2010/02/17/orm-basics-entities-values-roles-and-facts/"&gt;http://www.proace.com/2010/02/17/orm-basics-entities-values-roles-and-facts/&lt;/a&gt;, I do understand there is a difference between value and entity types in the UoD, but is it really needed?&lt;/p&gt;
&lt;p&gt;Why not have one object type, draw values&amp;nbsp;and entities the same and let users interpret which object type (value/entity) it is.&lt;/p&gt;</description></item><item><title>Binary fact type with spanning uniqueness constraint in co-referenced form. Independent?</title><link>http://www.ormfoundation.org/forums/thread/2755.aspx</link><pubDate>Wed, 24 Aug 2011 08:08:47 GMT</pubDate><guid isPermaLink="false">9d039735-a311-4a8d-9c49-a0bb2572af9e:2755</guid><dc:creator>JackStoneS</dc:creator><slash:comments>2</slash:comments><comments>http://www.ormfoundation.org/forums/thread/2755.aspx</comments><wfw:commentRss>http://www.ormfoundation.org/forums/commentrss.aspx?SectionID=84&amp;PostID=2755</wfw:commentRss><description>I have a question regarding schema equivalence. &lt;br /&gt;
&lt;br /&gt;
In the attached image, I have put two versions of a simple schema. &lt;br /&gt;
An actor (with an id and name) can play in more than one play. &lt;br /&gt;
A play (with a code and title) can involve multiple actors. &lt;br /&gt;
&lt;br /&gt;
When I write the fact type with a spanning uniqueness constraint in co-referenced form, I get something like the second schema. &lt;br /&gt;
Is it necessary to mark the entity type ActorPlaysInPlay is independent? It plays no roles except for those that identify it, but we need to populate this in the database.</description></item><item><title>Nulls and Foreign key relationships</title><link>http://www.ormfoundation.org/forums/thread/2716.aspx</link><pubDate>Fri, 24 Jun 2011 19:42:24 GMT</pubDate><guid isPermaLink="false">9d039735-a311-4a8d-9c49-a0bb2572af9e:2716</guid><dc:creator>mnnoon</dc:creator><slash:comments>3</slash:comments><comments>http://www.ormfoundation.org/forums/thread/2716.aspx</comments><wfw:commentRss>http://www.ormfoundation.org/forums/commentrss.aspx?SectionID=84&amp;PostID=2716</wfw:commentRss><description>&lt;p&gt;Quick questions on Nulls and foreign key relationship.&amp;nbsp; I&amp;#39;ve currently been asked to default all fields and even foreign key relationships to some default value.&amp;nbsp; Even on left outer joins between rows that may not exist yet we have to set default values types&amp;nbsp;using the isnull feature.&amp;nbsp;&amp;nbsp; My question is this, if a table requires referential integrity, is it ok to set foreign key fields to a 0?&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Also, since I&amp;#39;m fairly new at not using Nulls&amp;nbsp;with&amp;nbsp;Microsoft Sql&amp;nbsp;Server, is this a fairly common practice?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Thanks,&lt;br /&gt;Marc Noon&lt;/p&gt;</description></item><item><title>Semantics of subtyping value types</title><link>http://www.ormfoundation.org/forums/thread/2685.aspx</link><pubDate>Wed, 01 Jun 2011 10:05:31 GMT</pubDate><guid isPermaLink="false">9d039735-a311-4a8d-9c49-a0bb2572af9e:2685</guid><dc:creator>Robert Schmaal</dc:creator><slash:comments>7</slash:comments><comments>http://www.ormfoundation.org/forums/thread/2685.aspx</comments><wfw:commentRss>http://www.ormfoundation.org/forums/commentrss.aspx?SectionID=84&amp;PostID=2685</wfw:commentRss><description>&lt;p&gt;ORM2 allows subtyping of value types but what are the semantics of this, is it&amp;nbsp;subset semantics or coercion semantics? Hence, if&amp;nbsp;I specify that a value type A is a subtype of value type B, does this constitutes that values of A&amp;nbsp;are a &amp;quot;subset&amp;quot; of values of&amp;nbsp;B, or that there exists a unique function to convert values of A into values of B?&lt;/p&gt;</description></item><item><title>Modeling based an existence chain</title><link>http://www.ormfoundation.org/forums/thread/2602.aspx</link><pubDate>Thu, 12 May 2011 00:19:49 GMT</pubDate><guid isPermaLink="false">9d039735-a311-4a8d-9c49-a0bb2572af9e:2602</guid><dc:creator>mnnoon</dc:creator><slash:comments>44</slash:comments><comments>http://www.ormfoundation.org/forums/thread/2602.aspx</comments><wfw:commentRss>http://www.ormfoundation.org/forums/commentrss.aspx?SectionID=84&amp;PostID=2602</wfw:commentRss><description>&lt;p&gt;Hi, I am running into a problem modeling a table that covers where a county code exists or not in 5 different situations where a penalty is applied based on what the first in the chain country is not null and is mapped correctly.&amp;nbsp; I want to remodel the database but keep the business logic clearly defined in one or more tables and am looking for the best in practice method.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;I want to follow a chain of whether the field is null or not null for 5 different cases, and remodel the database.&amp;nbsp; Here is an example.&lt;/p&gt;
&lt;p&gt;Highest priority: Federal&amp;nbsp;Agency&amp;#39;s Country code&lt;/p&gt;
&lt;p&gt;Next Highest: State Agency&amp;#39;s Country code&lt;/p&gt;
&lt;p&gt;next :&amp;nbsp;County organization&amp;#39;s Country code&lt;/p&gt;
&lt;p&gt;next: City&amp;#39;s Country code&lt;/p&gt;
&lt;p&gt;next: Claimants Country code&lt;/p&gt;
&lt;p&gt;based on which one is found first in the chain a penalty is assigned and a maintenance fee&amp;nbsp;is also attributed for each country&amp;nbsp;where by a mapping of every country and every penalty and maintenance fee&amp;nbsp;is already predetermined and agreed upon by all parties using the system.&amp;nbsp;&amp;nbsp;At any point in the chain if a null is found it drops to the next lower priority in the chain.&amp;nbsp; Is there a good way to keep this type of chain logic clearly defined when redesigning a database and how would I go about doing that in orm?&amp;nbsp; thx&lt;/p&gt;</description></item><item><title>To Null or not to Null. That is the question!</title><link>http://www.ormfoundation.org/forums/thread/2625.aspx</link><pubDate>Sat, 21 May 2011 05:44:41 GMT</pubDate><guid isPermaLink="false">9d039735-a311-4a8d-9c49-a0bb2572af9e:2625</guid><dc:creator>Andy Carver</dc:creator><slash:comments>20</slash:comments><comments>http://www.ormfoundation.org/forums/thread/2625.aspx</comments><wfw:commentRss>http://www.ormfoundation.org/forums/commentrss.aspx?SectionID=84&amp;PostID=2625</wfw:commentRss><description>&lt;p&gt;Dear Ken,&lt;/p&gt;
&lt;p&gt;You have my deepest apologies for using language that&amp;nbsp;might be construed, if mistakenly, as a put-down of Chris Date. I myself am a big fan of Mr. Date, whom I regard in&amp;nbsp;precisely the same way&amp;nbsp;as your Amazon reviewer does, and I meant no disrespect in calling him a &amp;quot;religious zealot&amp;quot; -- which, for me, is a term lacking&amp;nbsp;any negative connotation. (I will, myself, admit quite readily&amp;nbsp;to being a religious zealot, who if anything, could probably use a bit more zeal.)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; My terminology was not about Mr. Date so much, as about this &amp;quot;nulls&amp;quot;&amp;nbsp;issue -- and all I meant by it was, that people seem to come at it with some deeply-held presuppositions -- or perhaps a mere blind spot(s) --&amp;nbsp;that seem to determine or colour their thinking on the issue. For example,&amp;nbsp;I hope you&amp;#39;ll&amp;nbsp;allow me to critique Hugh Darwen&amp;#39;s argument, the one&amp;nbsp;that you quoted.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Why does Mr. Darwen think that if you allow a NULL column in a database, you&amp;#39;re ipso facto allowing propositions to be recorded that have an indeterminate truth value? A very little bit of analysis will allow us to see that this is far from being true.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; As Clifford has just implied, the necessity of&amp;nbsp;&amp;quot;missing values&amp;quot; in a relational database comes from, and only from, the mapping of more thant one fact type to the same table, at least one of which is non-mandatory for that type of object about which the table records facts. (Which is something that ORM&amp;#39;s&amp;nbsp;Rmap procedure prescribes.) That means that&amp;nbsp;the NULL &amp;quot;value&amp;quot; is not representing a proposition, or part of one,&amp;nbsp;at all, but rather, precisely the LACK of any proposition, of that type, about the object being discussed! This is in fact&amp;nbsp;THE BASIC ISSUE, which Mr. Darwen overlooks: what do you do&amp;nbsp;about that missing proposition?? (Put a NULL there? Put a Default Value there?) So, as much as I may respect Hugh Darwen, his argument is based on complete&amp;nbsp;lack of comprehension&amp;nbsp;of why you&amp;#39;d have the NULL there in the first instance.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; Hope this helps. Now, I&amp;#39;m enjoying this discussion (I must admit), but I&amp;#39;m just wondering whether, if Ken feels it should be continued, it might not deserve its own thread. Just a thought,&lt;/p&gt;
&lt;p&gt;Cheers,&lt;/p&gt;
&lt;p&gt;Andy&lt;/p&gt;</description></item><item><title>Modeling intransitivity</title><link>http://www.ormfoundation.org/forums/thread/2546.aspx</link><pubDate>Wed, 06 Apr 2011 07:42:03 GMT</pubDate><guid isPermaLink="false">9d039735-a311-4a8d-9c49-a0bb2572af9e:2546</guid><dc:creator>JackStoneS</dc:creator><slash:comments>2</slash:comments><comments>http://www.ormfoundation.org/forums/thread/2546.aspx</comments><wfw:commentRss>http://www.ormfoundation.org/forums/commentrss.aspx?SectionID=84&amp;PostID=2546</wfw:commentRss><description>In the BBB, the definition of intransitivity is the following: (see p284)&lt;br /&gt;
R is intransitive, iff for all x,y,z  xRy &amp;amp; yRz -&amp;gt; ~xRz. &lt;br /&gt;
&lt;br /&gt;
An example of an intransitive relation is &amp;#39;is a parent of&amp;#39;.&lt;br /&gt;
&lt;br /&gt;
Now, given the following model:&lt;br /&gt;
&lt;br /&gt;
Person(.firstname) is a parent of Person&lt;br /&gt;
With a spanning uniqueness constraint on the fact type&lt;br /&gt;
And an intransitive constraint on the middle of the fact type&lt;br /&gt;
&lt;br /&gt;
I would say that the following population is allowed in the model:&lt;br /&gt;
Ann&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Bill&lt;br /&gt;
Bill&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Colin&lt;br /&gt;
Colin&amp;nbsp;&amp;nbsp;Dirk&lt;br /&gt;
Ann&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Dirk&lt;br /&gt;

Is there a way to specify the model so that the last entry is disallowed?</description></item><item><title>Value Type or Fact Type for population-wide aggregates</title><link>http://www.ormfoundation.org/forums/thread/2485.aspx</link><pubDate>Wed, 19 Jan 2011 05:46:26 GMT</pubDate><guid isPermaLink="false">9d039735-a311-4a8d-9c49-a0bb2572af9e:2485</guid><dc:creator>Clifford Heath</dc:creator><slash:comments>4</slash:comments><comments>http://www.ormfoundation.org/forums/thread/2485.aspx</comments><wfw:commentRss>http://www.ormfoundation.org/forums/commentrss.aspx?SectionID=84&amp;PostID=2485</wfw:commentRss><description>&lt;p&gt;Supposing I have a Blog model where Author writes Post, and Author commented on Post. Now I want to calculate the average number of Comments per Post. That sounds to me very like I need a derived value of some (new?) value type, which seems unnatural in ORM. I can model it as a unary fact type on a value type; perhaps a VT having a cardinality constraint of one. The use of a fact type means I can add a derivation for this fact type (and it also makes sense in a relational mapping)... but it seems wrong when it&amp;#39;s the value instance itself that&amp;#39;s derived, not a fact relating to a value type.&lt;/p&gt;

&lt;p&gt;SBVR provides for such calculated values&lt;/p&gt;

&lt;p&gt;What&amp;#39;s the ORM way to define them?&lt;/p&gt;</description></item><item><title>Don't understand restriction on objectified binaries</title><link>http://www.ormfoundation.org/forums/thread/2458.aspx</link><pubDate>Wed, 05 Jan 2011 23:21:24 GMT</pubDate><guid isPermaLink="false">9d039735-a311-4a8d-9c49-a0bb2572af9e:2458</guid><dc:creator>jmagaram</dc:creator><slash:comments>3</slash:comments><comments>http://www.ormfoundation.org/forums/thread/2458.aspx</comments><wfw:commentRss>http://www.ormfoundation.org/forums/commentrss.aspx?SectionID=84&amp;PostID=2458</wfw:commentRss><description>        &lt;p&gt;It is my understanding that a binary can only be objectified if it has a uniqueness constraint that spans both roles or if each role has a uniqueness constraint. I don&amp;#39;t understand this limitation. Suppose I am modeling the process of assigning work to someone else. Here are the relevant facts:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;TaskRequest(id) is sent by [1] Person&lt;/li&gt;&lt;li&gt;TaskRequest(id) is request to [1] Person&lt;/li&gt;&lt;li&gt;TaskRequest(id) includes [1] WorkDescription&lt;/li&gt;&lt;li&gt;TaskRequest(id) received response on [0 or 1] DateTime&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Now with regard to 
    last predicate, suppose a TaskRequest can only receive a single response. So there is a unique constraint on the TaskRequest role but NO unique constraint on the DateTime role. It seems natural to objectify that predicate as a &amp;quot;Response&amp;quot;. And then I&amp;#39;ll have some other predicates like:&lt;/p&gt;
    &lt;ul&gt;
        &lt;li&gt;Response included [1] Note&lt;/li&gt;
        &lt;li&gt;Response was of [1] ResponseType(code) &amp;#39;yes&amp;#39; or &amp;#39;no&amp;#39;.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;p&gt;
        Why isn&amp;#39;t it legal to objectify the binary this way?&lt;/p&gt;

&lt;p&gt;There are other ways to model this that seems less natural and more cumbersome. For example, I can create a subtype of TaskRequest called TaskRequestWithResponse, where TaskRequestWithResponse is a TaskRequest that received response on some DateTime. And then I can attach the response roles to that sub-type. Another alternative is to attach the response predicates to the TaskRequest directly, like TaskRequest received response of ResponseType, but then I need to add a lot of complex subset constraints to indicate that all the response facts only apply if the TaskRequest received response on some DateTime.&lt;/p&gt;

&lt;p&gt;I&amp;#39;d also be happy to add a new fact TaskRequest(id) received [0 or 1] Response, in which each role has a uniqueness constraint. And then I can attach the response roles to the Response object. But I&amp;#39;m not sure how to specify the reference mode of the Response. If anything, the reference mode on the Response should be the same as the reference mode on the Request. In other words, a TaskRequest with identity 3 would only have a Response with identity 3; the Response would not have an identity outside of the TaskRequest it is associated with. Is this approach legal ORM?&lt;/p&gt;
</description></item><item><title>Help with boolean logic and constraints</title><link>http://www.ormfoundation.org/forums/thread/2328.aspx</link><pubDate>Mon, 25 Oct 2010 15:01:45 GMT</pubDate><guid isPermaLink="false">9d039735-a311-4a8d-9c49-a0bb2572af9e:2328</guid><dc:creator>subkamran</dc:creator><slash:comments>5</slash:comments><comments>http://www.ormfoundation.org/forums/thread/2328.aspx</comments><wfw:commentRss>http://www.ormfoundation.org/forums/commentrss.aspx?SectionID=84&amp;PostID=2328</wfw:commentRss><description>&lt;p&gt;Given these business rules, I am having a hard time conceptualizing how to model this in NORMA:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;A Class can be active [or inactive]&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;A Class can be primary [or &amp;quot;normal&amp;quot;]&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;A primary class can &lt;strong&gt;only&lt;/strong&gt; be active&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;There can&amp;#39;t be more than one primary class&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;The end result of some time thinking about this produce an entity of Class (with some other facts), a subtype entity of &amp;quot;Active Class&amp;quot; with a single binary fact&amp;nbsp;&amp;quot;Is Primary&amp;quot; value type (Logical: True&amp;nbsp;or False)&amp;nbsp;hanging off the subtype with a 1:1 role mapping.&lt;/p&gt;
&lt;p&gt;I don&amp;#39;t know if that is a good way to do it; I used non-absorbed mapping so we have a separate table for active classes. I had some pushback from team members asking why we needed whole other table and I tried to explain that it enforces the 3rd business rule, but a check constraint on one table with two boolean columns was the argument against that.&lt;/p&gt;
&lt;p&gt;Does anyone have any feelings about either approach?&lt;/p&gt;</description></item><item><title>In which step should artificial identities (IDs) be introduced if not mentioned by domain experts?</title><link>http://www.ormfoundation.org/forums/thread/2269.aspx</link><pubDate>Thu, 16 Sep 2010 06:41:41 GMT</pubDate><guid isPermaLink="false">9d039735-a311-4a8d-9c49-a0bb2572af9e:2269</guid><dc:creator>icmd.org</dc:creator><slash:comments>11</slash:comments><comments>http://www.ormfoundation.org/forums/thread/2269.aspx</comments><wfw:commentRss>http://www.ormfoundation.org/forums/commentrss.aspx?SectionID=84&amp;PostID=2269</wfw:commentRss><description>I wonder in which step should artificial identities (IDs) be introduced if not mentioned by domain experts?
Although I haven&amp;#39;t finished reading, but the question arises. I hope I can get a certain answer before I read on.
Or, introducing artificial identities should be strictly avoided in conceptual modeling process, because they&amp;#39;re logical, or even physical?
Thanks, everybody!</description></item><item><title>Are subset and equality constraints dispensable?</title><link>http://www.ormfoundation.org/forums/thread/2239.aspx</link><pubDate>Fri, 27 Aug 2010 12:12:44 GMT</pubDate><guid isPermaLink="false">9d039735-a311-4a8d-9c49-a0bb2572af9e:2239</guid><dc:creator>jakob.voss</dc:creator><slash:comments>4</slash:comments><comments>http://www.ormfoundation.org/forums/thread/2239.aspx</comments><wfw:commentRss>http://www.ormfoundation.org/forums/commentrss.aspx?SectionID=84&amp;PostID=2239</wfw:commentRss><description>&lt;p&gt;Models get hard to read if you use subset constraints and equality constraints between roles. Sure there are good reasons to use them, but I found that you do not need special symbols and line styles to depict them. Suptyping and subset constraints are the same concept - one for object types, the other for (combinations of) roles. So why not just mark the subset and equality symbols as deprecated and use &lt;em&gt;one&lt;/em&gt; visual method instead of using two distinct diagram notations for nearly the same?&lt;/p&gt;

&lt;img src="http://github.com/nichtich/tkz-orm/raw/gh-pages/examples/subsetequality.png" alt="" /&gt;

&lt;p&gt;In addition we get another way to depict duplicated object types in a model (the both-sided arrow is implied if you use the same name for two object types).&lt;/p&gt;

&lt;p&gt;&lt;b&gt;P.S:&lt;/b&gt; I added the third row with splitted arrows later.&lt;/p&gt;</description></item><item><title>Reference Modes explained</title><link>http://www.ormfoundation.org/forums/thread/2207.aspx</link><pubDate>Mon, 09 Aug 2010 10:09:01 GMT</pubDate><guid isPermaLink="false">9d039735-a311-4a8d-9c49-a0bb2572af9e:2207</guid><dc:creator>jakob.voss</dc:creator><slash:comments>3</slash:comments><comments>http://www.ormfoundation.org/forums/thread/2207.aspx</comments><wfw:commentRss>http://www.ormfoundation.org/forums/commentrss.aspx?SectionID=84&amp;PostID=2207</wfw:commentRss><description>&lt;p&gt;Reference modes are not described very deeply in Haplin and Morgan (2008) - there is an introduction to the different reference mode kinds (popular, general, and unit based) at page 85 and page 98, but the ORM syntax cheatsheet does not distinguish. I tried to unwrap the semantics of reference modes in a picture (&lt;a href="http://nichtich.github.com/tkz-orm/"&gt;source&lt;/a&gt;):&lt;/p&gt;

&lt;p&gt;&lt;img src="http://github.com/nichtich/tkz-orm/raw/957fd5c603243cb3d96992a6c4df1bad041b3950/examples/refmodes.png" alt="" /&gt;&lt;/p&gt;

&lt;p&gt;I also added a non-standard extension to implicitely specify a supertype similar to the syntax that implicitly defines a dimension supertype (unit-based reference modes).  Please correct me if I am wrong or if the picture contains errors. As I understand reference modes, they just abbreviate binary 1-to-1 relationships that are used to uniquely identify an entity by a value.&lt;/p&gt;</description></item><item><title>Concept Maps </title><link>http://www.ormfoundation.org/forums/thread/2121.aspx</link><pubDate>Sun, 25 Apr 2010 13:35:01 GMT</pubDate><guid isPermaLink="false">9d039735-a311-4a8d-9c49-a0bb2572af9e:2121</guid><dc:creator>JohnBorowiec</dc:creator><slash:comments>11</slash:comments><comments>http://www.ormfoundation.org/forums/thread/2121.aspx</comments><wfw:commentRss>http://www.ormfoundation.org/forums/commentrss.aspx?SectionID=84&amp;PostID=2121</wfw:commentRss><description>&lt;p&gt;Hey&lt;/p&gt;
&lt;p&gt;Well it seems that ORM is quite similar to&amp;nbsp;&lt;font style="BACKGROUND-COLOR:#e6ecf9;" size="2"&gt;Concept Map. In ORM you only have to add constraints.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font style="BACKGROUND-COLOR:#e6ecf9;" size="2"&gt;JB&lt;/font&gt;&lt;/p&gt;</description></item><item><title>Why should people use / teach ORM (instead)?</title><link>http://www.ormfoundation.org/forums/thread/1581.aspx</link><pubDate>Mon, 16 Feb 2009 21:22:36 GMT</pubDate><guid isPermaLink="false">9d039735-a311-4a8d-9c49-a0bb2572af9e:1581</guid><dc:creator>Andy Carver</dc:creator><slash:comments>3</slash:comments><comments>http://www.ormfoundation.org/forums/thread/1581.aspx</comments><wfw:commentRss>http://www.ormfoundation.org/forums/commentrss.aspx?SectionID=84&amp;PostID=1581</wfw:commentRss><description>&lt;p&gt;Today in the NORMA forum, Ken Evans responded to Andy Reiser regarding&amp;nbsp;(among other things) a wish which&amp;nbsp;he had&amp;nbsp;expressed, that NORMA would get &amp;quot;picked up by universities&amp;quot;. Ken answered with the below three questions about how we could argue for ORM being taught at universities:&lt;/p&gt;&amp;quot;&amp;nbsp;It would help us to help you if you could post your answers to the following questions:&lt;font color="#0000ff"&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt; 
&lt;p&gt;&lt;strong&gt;...&amp;lt;snip&amp;gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Getting &amp;quot;picked up&amp;quot; at Universities: &lt;/strong&gt;&lt;/font&gt;My recent experience shows that this is easier said than done. &lt;br /&gt;On 5 January this year, I&amp;nbsp;joined&amp;nbsp;the&amp;nbsp;University of Lincoln &lt;a href="http://www.lincoln.ac.uk/home"&gt;&lt;font color="#000000"&gt;http://www.lincoln.ac.uk/home&lt;/font&gt;&lt;/a&gt;&amp;nbsp;as a Senior Fellow.&lt;br /&gt;For the&amp;nbsp;last few weeks I have been discussing ORM with people in the University who I think &amp;quot;should&amp;quot; be interested.&lt;br /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;font color="#000000"&gt;&lt;font color="#0000ff"&gt;&lt;strong&gt;Teaching ORM:&lt;/strong&gt;&amp;nbsp;&lt;/font&gt;I explained ORM to&amp;nbsp;the instructor who&amp;nbsp;teaches database management. But he seems to be&amp;nbsp;wedded to teaching ER modeling and manual normalization. &lt;strong&gt;&lt;em&gt;What would you say to him to change his mind?&lt;/em&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000000"&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;Using ORM:&lt;/font&gt; &lt;/strong&gt;The IT Director is also wedded to ER modeling and does not think that ORM has a role to play.&lt;br /&gt;&lt;strong&gt;What would you say to him to change his mind?&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000000"&gt;&lt;font color="#0000ff"&gt;&lt;strong&gt;Promoting ORM:&lt;/strong&gt;&lt;/font&gt; On 3 March I will be giving a presentation about ORM to the whole of the 3rd year (all disciplines).&lt;br /&gt;If you were giving this presentation,&amp;nbsp;&lt;strong&gt;what are the key points that you would make to the students?&lt;/strong&gt;&amp;nbsp;&amp;quot;&lt;br /&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;I thought maybe this forum might be a&amp;nbsp;good place to pursue these three questions. I also wanted to respond a bit to the first one: &lt;/p&gt;
&lt;p&gt;To a teacher wedded to teaching ER and manual normalization. I&amp;#39;d&amp;nbsp;say that manual normalization simply &lt;em&gt;doesn&amp;#39;t work:&lt;/em&gt; Not only does it make it &amp;quot;too hard&amp;quot; to carry normalization through to 5NF&amp;nbsp;(5th Normal Form); the theory of 4NF and 5NF are actually wrong (see Terry Halpin&amp;#39;s and my EMMSAD &amp;#39;08 paper on &amp;quot;Atomicity and Normalization&amp;quot;, &lt;a href="http://sunsite.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-337/paper4.pdf" target="_blank" rel="nofollow"&gt;&lt;font color="#003399"&gt;http://sunsite.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-337/paper4.pdf&lt;/font&gt;&lt;/a&gt;). &lt;/p&gt;
&lt;p&gt;So Normalization Theory &lt;em&gt;cannot&lt;/em&gt; actually take you beyond BCNF (Boyce-Codd Normal Form); only ORM will get you there, unless the schema you&amp;#39;re working on happens to be &lt;em&gt;already&lt;/em&gt; in some higher Normal Form. The normalization theory he&amp;#39;s teaching is simply false, as well as&amp;nbsp;ineffective.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Using data-type for rule modeling</title><link>http://www.ormfoundation.org/forums/thread/1233.aspx</link><pubDate>Mon, 25 Aug 2008 15:02:46 GMT</pubDate><guid isPermaLink="false">9d039735-a311-4a8d-9c49-a0bb2572af9e:1233</guid><dc:creator>Brian Nalewajek</dc:creator><slash:comments>21</slash:comments><comments>http://www.ormfoundation.org/forums/thread/1233.aspx</comments><wfw:commentRss>http://www.ormfoundation.org/forums/commentrss.aspx?SectionID=84&amp;PostID=1233</wfw:commentRss><description>&lt;p&gt;&amp;nbsp;Hi,&lt;/p&gt;&lt;p&gt;First, I&amp;#39;m putting this in the nORMa forums, as we do not yet have a forum for general ORM questions or comments (and nORMa was used to create the examples).&lt;/p&gt;&lt;p&gt;The question: Is it legitimate to use an assignment of a data-type to implement a rule, while modeling an application domain in Object Role Modeling? &lt;/p&gt;&lt;p&gt;This issue came out of contemplating a mention of &amp;quot;current&amp;quot; limitations of ORM rule modeling in a paper or article by Dr. Halpin.&amp;nbsp; I&amp;#39;ve lost track of the source, but his comment used the example rule: An Employee&amp;#39;s Salary can never be less than their starting Salary - or words to that effect.&amp;nbsp; As I can&amp;#39;t recall the source, I don&amp;#39;t know when it was written, and don&amp;#39;t know to what extent his comment is in line with current ORM capabilities.&amp;nbsp; I believe the topic comes under Dynamic Constraints, and State Transition.&lt;/p&gt;&lt;p&gt;The first figure below shows a typical way to model starting salary and salary adjustments.&amp;nbsp; You should find it matches the terms and general semantic implication of a typical (if incomplete) business UofD.&lt;/p&gt;&lt;p&gt;To model the no salary decrease rule, an alternative conception of the actual workings in the application domain is applied.&amp;nbsp; The term &amp;quot;Starting Salary&amp;quot; is commonly used and commonly understood; so a Starting Salary of $50,000 seems an appropriate value (if it matches the pay level of the job in that market).&amp;nbsp; However, an alternative view would have a starting salary of zero, that has an initial increase of $50,000 on hiring.&amp;nbsp; At least in some ways, the later is a more accurate assessment of what actually happens.&amp;nbsp; Be that as it may, the second form allows the modeling of the salary can not decrease rule - as is shown in the second figure below.&lt;/p&gt;&lt;p&gt;The key feature of the second model fragment is that the Value Object Type &amp;quot;Amount&amp;quot; is given an unsigned integer data-type assignment. Therefore, all salary adjustments are non-negative; and so salary can never decrease. &lt;/p&gt;&lt;p&gt;There are other aspects of a comparison of the two model fragments that are worth considering; but for now, the main question: Is the use of data-type assignment a legitimate method to use in modeling application domain rules in ORM?&lt;/p&gt;&lt;p&gt;Thanks,&lt;/p&gt;&lt;p&gt;BRN..&amp;nbsp; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Verbalisations for unary facts (CWA, OWA and OWN)</title><link>http://www.ormfoundation.org/forums/thread/1848.aspx</link><pubDate>Mon, 07 Sep 2009 19:53:14 GMT</pubDate><guid isPermaLink="false">9d039735-a311-4a8d-9c49-a0bb2572af9e:1848</guid><dc:creator>mishad</dc:creator><slash:comments>4</slash:comments><comments>http://www.ormfoundation.org/forums/thread/1848.aspx</comments><wfw:commentRss>http://www.ormfoundation.org/forums/commentrss.aspx?SectionID=84&amp;PostID=1848</wfw:commentRss><description>&lt;p&gt;What are the best verbalisations for unary facts (in NORMA or CQL or any other tool) in &amp;quot;schema&amp;quot; form -- i.e. verbalising the fact type, rather than verbalising specific fact instances?&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Binary fact verbalisation extends nicely from fact instance verbalisation:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; Person &amp;#39;Marie&amp;#39; was born in Country &amp;#39;FR&amp;#39;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; Person &amp;#39;Mike&amp;#39; lives in Country &amp;#39;UK&amp;#39; ; Person &amp;#39;Mike&amp;#39; lives in Country &amp;#39;US&amp;#39;&lt;br /&gt;
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; Person &amp;#39;Jeff&amp;#39; is domiciled for tax purposes in Country &amp;#39;CH&amp;#39; &lt;/p&gt;to fact type verbalisation including constraints:&lt;br /&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; Each Person was born in exactly one Country &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; Each Person lives in at least one Country&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; Each Person is domiciled for tax purposes in at most one Country &lt;/p&gt;&lt;p&gt;But for unary facts there are no constraints to qualify fact type verbalisation; this leaves the fact type verbalisations &amp;quot;plain&amp;quot;:&lt;/p&gt;&lt;p&gt;fact instance: Person &amp;#39;Jeff&amp;#39; is a smoker&lt;/p&gt;&lt;p&gt;fact type: Person is a smoker&lt;/p&gt;&lt;p&gt;This tends to confuse business people when validating the model -- they think it means &amp;quot;Each (every) Person is a smoker&amp;quot; rather than &amp;quot;facts of the form &amp;#39;Person &amp;lt;X&amp;gt; is a smoker&amp;#39; may be asserted.&lt;/p&gt;&lt;p&gt;I was thinking of verbalisations such as &amp;quot;Person is (or is not) a smoker&amp;quot; but there are couple of problems with that:&lt;/p&gt;&lt;p&gt;i) there are practical difficulties caused by having to identify and correctly negate the verb to form the negative verbalisation -- this could be worked around with a little clumsiness (e.g. &amp;quot;Person is a smoker (or not)&amp;quot;) and/or by having the modeler provide alternate readings (as we do for reverse readings on binaries)&lt;/p&gt;&lt;p&gt;ii) this leads directly into the issue of CWA vs OWA vs OWN and how to verbalise them.The &amp;quot;(or not)&amp;quot; verbalisation could represent CWA, for example&lt;br /&gt;&lt;/p&gt;&lt;p&gt;I&amp;#39;ve read IM&amp;amp;RDB 2ed [Halpin2008] and can&amp;#39;t recall (or find in the index) any discussion of issues with unary verbalisation, or of how to verbalise OWA/OWN facts. Can anyone point me in the right direction?&lt;/p&gt;&lt;p&gt;Misha&lt;/p&gt;</description></item><item><title>ORM models and OO</title><link>http://www.ormfoundation.org/forums/thread/1690.aspx</link><pubDate>Mon, 06 Apr 2009 05:33:08 GMT</pubDate><guid isPermaLink="false">9d039735-a311-4a8d-9c49-a0bb2572af9e:1690</guid><dc:creator>PeterC</dc:creator><slash:comments>4</slash:comments><comments>http://www.ormfoundation.org/forums/thread/1690.aspx</comments><wfw:commentRss>http://www.ormfoundation.org/forums/commentrss.aspx?SectionID=84&amp;PostID=1690</wfw:commentRss><description>&lt;span style="FONT-SIZE:10pt;COLOR:black;FONT-FAMILY:Arial;"&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:black;FONT-FAMILY:Arial;"&gt;
&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;In my mind, the conceptual model in ORM is modelling the &amp;quot;problem space&amp;quot;, not the &amp;quot;solution space&amp;quot;.&amp;nbsp; Because ORM is aimed at being able to generate a (pure, i.e. 5NF?) relational database solution, this means that there are certain OO constructs, such as mutually exclusive supertypes, that are not supported.&lt;/p&gt;
&lt;p&gt;Statement: When I want to conceptually model my &amp;quot;problem space&amp;quot;, I may be limited in what I can model because there may be constructs (if that is the correct term) that I need that are not available.&lt;/p&gt;
&lt;p&gt;Q1.&amp;nbsp; Is the above Statement true or am I only limited on the form my model can take, not what I can model?&lt;/p&gt;
&lt;p&gt;Q2.&amp;nbsp; Has an analysis been done on the gap between &amp;lt;what ORM would be like if it supported OO&amp;gt; and &amp;lt;what it needs to support the relational paradigm&amp;gt;?&lt;/p&gt;
&lt;p&gt;Q3.&amp;nbsp; Just as there are constructs in ORM (such as some types of constraints) that do not automatically translate to DDL statements but must be manually written as procedures or code, is it reasonable to have ORM constructs that support OO - knowing that the constructs must be implemented either in code or perhaps in less than 3NF?&lt;/p&gt;
&lt;p&gt;The reason I raise these questions is that given a &amp;quot;problem&amp;quot;, I want to be able to model it free of the solution; and the constructs used in the model may (or may not) indicate whether an OO and/or relational solution is feasible or preferable.&lt;/p&gt;
&lt;p&gt;Thanks, Peter&lt;/p&gt;&lt;/span&gt;</description></item></channel></rss>