ORM Techniqueshttp://www.ormfoundation.org/forums/84.aspxThis forum is for discussing how to use ORM to model various scenarios.enCommunityServer 2007.1 (Build: 20917.1142)Re: Subset constraint terminologyhttp://www.ormfoundation.org/forums/thread/3719.aspxWed, 27 Aug 2014 09:48:35 GMT9d039735-a311-4a8d-9c49-a0bb2572af9e:3719Matt Nizol0http://www.ormfoundation.org/forums/thread/3719.aspxhttp://www.ormfoundation.org/forums/commentrss.aspx?SectionID=84&PostID=3719<p> Thank you! That's a very helpful way of thinking about the "simple" qualifier. "Simple subset constraint" it is.</p><p> Matt </p>Re: Subset constraint terminologyhttp://www.ormfoundation.org/forums/thread/3718.aspxWed, 27 Aug 2014 09:22:53 GMT9d039735-a311-4a8d-9c49-a0bb2572af9e:3718Matthew Curland0http://www.ormfoundation.org/forums/thread/3718.aspxhttp://www.ormfoundation.org/forums/commentrss.aspx?SectionID=84&PostID=3718<p>Hi Matt,</p><p>I think the adjective 'simple' always needs to be taken in the context of the thing it is describing. In math terms, a 'simple multiplication problem' and a 'simple multi-variable definite integration problem' set significantly different bars for the meaning of simple. I think you can take Terry's use of <i>simple X</i> to mean <i>the simpl<b>est</b> valid structure of type X</i>, which will correspond to all instances with the smallest valid population. So, a simple mandatory constraint restricts one role, a simple uniqueness restricts one role, and a simple subset constraint restricts two single-role tuples (the simplest possible valid form of a subset constraint).</p><p>I wouldn't use role-subset as all (subset) constraints constrain roles, and a simple subset actually constrains two (at least relative to each other, the superset role is not actually constrained). Frankly, <i>tuple-subset</i> has the same problem (a tuple with arity one is still a tuple). I think <i>simple subset constraint</i> is entirely consistent with the BBB use of the term even though it is never directly applied. Of course, depending on your style guids, you can put a glossary in the paper as well and/or parenthetically and/or appositively define any term you like the first time you use it in the paper.</p><p>-Matt </p>Re: Subset constraint terminologyhttp://www.ormfoundation.org/forums/thread/3717.aspxWed, 27 Aug 2014 07:41:22 GMT9d039735-a311-4a8d-9c49-a0bb2572af9e:3717Matt Nizol0http://www.ormfoundation.org/forums/thread/3717.aspxhttp://www.ormfoundation.org/forums/commentrss.aspx?SectionID=84&PostID=3717<p>Thanks, Matt. Given the standard use of "simple" to qualify internal uniqueness constraints that cover one role and non-disjunctive mandatory constraints, I also had thought that "simple" would be a reasonable qualifier for the type of subset constraint in question. However, I don't see "simple subset constraint" used in the BBB, thus prompting this question. Moreover, it's not clear to me if "simple" is intended to describe a constraint that covers exactly one role (in the case of a simple uniqueness constraint) or more generally to describe a constraint that covers one or more role sequences, each of which consists of exactly one role (as in the case of a "simple" subset constraint). Is there a standard consensus on the semantics of "simple" in ORM?</p><p>In a draft of a paper I'm working on, I've used the term "role-subset" to distinguish this case from "pair-subset", "tuple-subset," "join-subset", etc., but I don't want to simply invent terminology. </p>Re: Subset constraint terminologyhttp://www.ormfoundation.org/forums/thread/3716.aspxWed, 27 Aug 2014 07:22:33 GMT9d039735-a311-4a8d-9c49-a0bb2572af9e:3716Matthew Curland0http://www.ormfoundation.org/forums/thread/3716.aspxhttp://www.ormfoundation.org/forums/commentrss.aspx?SectionID=84&PostID=3716<p>Hi Matt,</p><p>I don't think it is understood that an unprefixed 'subset constraint' means one role per tuple. I've used the terms 'single-column', 'basic', 'simple', etc. Although the NORMA UI presents rows and columns, technically each row (tuple) is an argument to the comparison operation, the argument length (column count) is an arity, and the number of arguments is the number of rows (always two for a subset). Columns are basically a UI notion. Given that the arity of each argument must be consistent for all arguments, you could also say that the set comparison constraint has a single arity, so 'subset constraint with arity 1' would be a reasonable formal description.</p><p>Of course, just to make things fun (and play devil's advocate with myself), the term <i>arity</i> is correctly used both for the number of values in a tuple and the number of arguments in a function or operation, so arity is also reasonably applied to the number of arguments. So, <i>subset is a binary comparison operation</i> is a reasonable statement using an arity (<i>binary</i> = arity of 2). Given that this is always true, using <i>subset constraint with arity 1</i> aka <i>unary subset constraint</i> is contradictory and sounds wrong. However, <i>unary tuple subset constraint</i> is unambiguous as it ties the arity with the tuple (row in NORMA) instead of argument count (column in NORMA).</p><p>Technically join paths also apply to the tuples, not the entire constraint. A subset constraint can have zero, one, or two tuples with join paths. </p><p>-Matt</p>Subset constraint terminologyhttp://www.ormfoundation.org/forums/thread/3715.aspxWed, 27 Aug 2014 01:51:45 GMT9d039735-a311-4a8d-9c49-a0bb2572af9e:3715Matt Nizol0http://www.ormfoundation.org/forums/thread/3715.aspxhttp://www.ormfoundation.org/forums/commentrss.aspx?SectionID=84&PostID=3715<p>Is there a standard qualifier to distinguish a subset constraint that covers exactly one subset role and one superset role from other forms of the constraint? In the BBB, I see the terms "pair-subset", "tuple-subset", and "join-subset" used to distinguish more complex forms of the constraint. Is it understood that "subset constraint" used without qualification is the one-role form of the constraint?</p>