Re: Modeling question...

From: David BL <davidbl_at_iinet.net.au>
Date: Wed, 29 Oct 2008 18:51:45 -0700 (PDT)
Message-ID: <e6579583-e316-4919-a356-2ad55e51f257_at_j22g2000hsf.googlegroups.com>


On Oct 29, 8:39 pm, JOG <j..._at_cs.nott.ac.uk> wrote:
> On Oct 29, 2:37 am, David BL <davi..._at_iinet.net.au> wrote:
> > On Oct 29, 9:13 am, JOG <j..._at_cs.nott.ac.uk> wrote:
>
> > > The RM handles facts as naturally as stating them in predicate logic.
> > > And why would one ever model things other than facts in predicate
> > > logic?
>
> > Exactly!
>
> Then may I suggest that your argument is not with the RM, but with the
> use of predicate logic to model equations, engines, etc. And yet this
> to me seems trivially true - if I was modelling a human in an art
> class I'd use clay, not predicate logic.

I don't think it's quite so trivial. For example, consider trisurface  as a value-type. A simple type decomposition as a set of triangles where each triangle is independently defined by 3 vertices doesn't express the constraint that the triangles tend to meet each other. It seems appropriate to introduce abstract identifiers for the vertices in order that they may be shared. This is evidently a relational solution. However unlike typical uses of the RM there doesn't appear to be some external UoD to which the tuples, interpreted as propositions can be related. Rather it seems that a particular tri-surface /value/ has introduced a local and private namespace in order to privately apply the RM. Note as well that this is not like an RVA (where we think of only a single relation as a value) because a tri-surface value is associated with /two/ relations - one for the vertices and another for the triangles.

I have wondered whether abstract identifiers are needed precisely when it is useful to express the concept of "common sub-expressions" within nested value-types. Note that scene graphs are typically thought of as DAGs not trees for precisely this reason.

I think there is an interesting interplay between 1) degrees of freedom (or entropy or storage space if you like) in the encoding of a value, 2) abstract identifiers, 2) integrity constraints and 4) update anomalies. The existing normalisation theory in the literature seems relevant but doesn't seem to me to account for recursive type definitions and abstract identifiers. Given this interplay it would be useful to better understand why one encoding would be more desirable than another. In fact I wonder whether there are some objective criteria. Evidently it is not to always avoid abstract identifiers (as if they are implicitly evil). I would guess that as far as the complexity of the integrity constraints there is some sweet spot in the use of abstract identifiers.

> Of course the resulting piece of clay would be an "encoded value" and
> thus, by your definition, data.
> And then a bag of such pieces of clay.. its a database!
> And my mantelpiece at home, which I display them on....its a data
> warehouse!
> And of course, when I spring-clean I am become a DBMS!
Received on Thu Oct 30 2008 - 02:51:45 CET

Original text of this message