Re: Multi Valued Interface Models?

From: dawn <dawnwolthuis_at_gmail.com>
Date: 13 Feb 2006 17:53:14 -0800
Message-ID: <1139881994.518885.274830_at_z14g2000cwz.googlegroups.com>


x wrote:
> "dawn" <dawnwolthuis_at_gmail.com> wrote in message
> news:1139598896.676278.14030_at_g44g2000cwa.googlegroups.com...
>
> > x wrote:
>
> > > You have not shown a complete model of the interface.
>
> > A complete model? Maybe we need to look at what a model is. A model
> > is a metaphor or a, well, model of the real thing. It is not the real
> > thing. A model car doesn't usually have a working engine. It might
> > not have working brakes or even any brakes.
>
> You have not given the specifications for the interface in a way that not
> assume a particular solution.

This was not a model of the database or any other intermediate software components between the UI and the DB. It is strictly a class diagram for the UI (an interface) itself. From a screen prototype (web page prototype), you can draft a UML class diagram such as this. It is NOT a class diagram for persisting anything, but for the interface with the user.

> > > HTML and XML are not UML.
> > > I don't think UML is generally acceptable.
> >
> > Nothing is completely acceptable everywhere. Prototypes might come as
> > close as possible to be generally acceptable, but you always get
> > comments about how it is not a "complete prototype" which I gather
> > would be, well, the final product. What diagramming specification is
> > more commonly accepted than UML? That is not a rhetorical question.
> > I'd be happy to use something else for showing a diagram of a logical
> > model of data.
>
> I don't know UML but I was exposed to some OMT after I've learned about
> formal languages, automata theory and RM. For this reason it was easy to
> grasp.

Good. I kept it as generic as I could.

> http://microgold.com/Stage/UML_FAQ.html say it is an object oriented
> modeling method.
> And you have not given :
> -Use-case diagrams
> - Class diagrams
> - State-machine diagrams
> - Message-trace diagrams
> - Object-message diagrams
> - Process diagrams
> - Module diagrams
> -Platform diagrams
> so I don't know if you have given an UML model after all.

I definitely did not model an entire system, if that is what you mean. I prepared exactly one component of an application model -- a class diagram for the user interface (not for the persistence of data collected or presented via that interface, for example).

> > > > > Why not using a real example of an application interface ?
> > >
> > > > I'm looking at the model of data for a user interface and then said
> > > > that same model could be implemented in xml, for example, for data
> > > > exchange.
> > >
> > > You are not looking at a relational model of data.
>
> > I am looking at what data models could be used for modeling the data.
> > In the case of a UI, you cannot model the exact data in the interface
> > using the RM.
>
> Why ?

I'll likely have to work on this point in a variety of ways. I'll try an alternative approach to last week's blog in the one this week.

> > > You talk about data copying.
>
> > ?
> You said "same model could be implemented in xml, for example, for data
> exchange".
> How is xml better at data exchange rather than at data copying (data
> transfer) ?

It matters not. I used XML as one example of how one might do data exchange. My point was that you don't have to change the model for the data, even if the format. The same UML works for the xml as well as the web page.

> > >
> > > > > HTML/XML/HTTP is a poor low level complex way to describe an
> interface.
> > >
> > > > I thought of it as a high level way. I wasn't intending to bring HTTP
> > > > into the picture, only to take an example of an arbitrary UI. Without
> > > > loss of generalization...
>
> > > If they were high level tools you would have found them easy to use.
>
> > So Dreamweaver and GoLive are high level tools and HTML is a low level
> > tool? OK. I use GoLive and only bring up the source code panel and
> > code raw xhtml. So, perhaps mid-level for the html and xml.
>
> Then GoLive is not good enough if you have to go to raw xhtml.

It does a few things for me so that it is worth using, but perhaps I'm just old fashioned and prefer to code myself rather than have generated code in this case.

> I would not call xhtml source code because it is not the source but the
> target.

And the source looks like...?

>
> > > > > Are
> > > > > you trying to use a high level tool to model a low level one ? (like
> > > > > implementing assembler in Pascal or Prolog )
> > >
> > > > No.
> > >
> > > Then you have done that by mistake.
> >
> > Sorry, x, I'm just not tracking with you.
>
> You will.

Glad you have confidence.

>
> > > > > One does not need to model all interfaces with RM.
> > >
> > > > OK, now we are getting somewhere. In fact one cannot model all
> > > > interfaces using the RM, right?
> > >
> > > > > Just the ones at the highest level.
> > >
> > > > I'm not tracking on this.
> > >
> > > If you need to integrate N high level software components it would be
> better
> > > if all of them would have the same interface (a relational one :-).
>
> > I agree on the first part. I don't see how that would be possible
> > using the RM, however. How could you specify an arbitrary UI, such as
> > the example I gave, using the RM?
>
> You have not given the specification for the UI.

Only a class diagram of the precise interface (user interface).

> Have you heard of Model-View-Controller UI paradigm ?

Oh, you betcha.

> RM could be used for the "Model" part for example.

Yes! Yes! Yes! The RM could be used as the data model for the Model and could not be used as the data model for the View. That is my point.

> I think the screen layout can also be described by RM.

I don't. There might be extensions to SQL that ignore the RM that would permit this, but if you use a SQL-92 standard, for example, you can see that there is no way to specify this precise UI with that language. You need to be able to specify a view that is not in 1NF, for example.

> What is left ? The painting of the screen, capturing user actions (which are
> the I/O part) and responding to user events.
> Which of the above would you want RM to handle ?
>
> Have you heard about DOM http://www.w3.org/DOM/ ?

Yes, definitely.

> > > > > If you want to use the same model for
> > > > > all interfaces you can always use assembler programming for that.
> > >
> > > > Yes, given a programming language as the implementation of a data
> > > > model, I would agree with that. What are other options for that data
> > > > model (and implementations thereof)? One model we cannot use is the
> > > > RM. Languages that implement the RM cannot be used as the exclusive
> > > > language for the user interface. Any disagreement with me on this one
> > > > likely stems from some difference in understanding of <em>data
> > > > model</em> or a common understanding of a data model for an interface.
> > >
> > > > SQL is the language used to interface with an RDBMS and the model is
> > > > attempts to employ is the RM. What models can be employed with the
> > > > interface to the user (replace the dbms with a user and model the
> > > > data).
> > >
> > > Something based on logic like RM because peoples use proposition when
> they
> > > affirm or deny something in writing.
>
> > Yes and I think that is good. I want to model a proposition of
>
> > I would like a pizza with pepperoni and sausage on it
> > like this
>
> > I would like a pizza (foodItem) with pepperoni and sausage
> > (toppingList) on it.
>
> > with a predicate
>
> > I would like a <foodItem> with <toppingList> on it.
>
> How would this exclude the RM ?

that little ordered list guy at the end -- toppingList -- would not be how you would model this with the RM. You would have multiple predicates (relations), adding in an ordering attribute and a new table for the toppingList. So you would not model the proposition above with a single predicate like this using the RM.

> Order(client,foodItem, toppingList)
>
> > > > > Have you noticed how hard is to write all the HTML&Co code by hand ?
>
> > > > Very painful, yes. And then I had problems with putting xml in html
> > > > across browser platforms and ended up replacing < with &lt; Ugh!
> > >
> > > How is this for a high level language ?
> > >
> > > > > Have
> > > > > you noticed how hard is to maintain this code when you have to use
> > > reverse
> > > > > engineering for it ?
> > >
> > > > I'm not sure I understand what you mean with that.
> > >
> > > This is the same as translating some code to assembler/object code and
> > > losing the source.
>
> > OK. Yes, no fun.
>
> Have you had a similar experience with applications implemented with Pick
> systems ?

No, but I have not been a Pick programmer per se.

> Have you had a similar experience with applications implemented with an SQL
> DBMS ?
> For which one is harder to recover the data encoded in the database ?

They each have pros and cons.

> For which one is harder to understand how the data is manipulated ?

They each have pros and cons.

>
> > > I mean do. :-) But I don't see yet how this means to completely
> replace/hide
> > > the RM instead of extending it.
>
> > I don't care how you get there, but the RM as implemented and used
> > today is what I think needs to be different. It seems to me that as
> > soon as you remove 1NF as originally defined, you have something other
> > than the RM.
>
> You would have to ask Codd how 1NF was originally defined.

I covered that in my "Is Codd Dead" blog entry.

> What is atomic data by your definition ?

I don't need it for my purposes. There is no data value that could not have functions defined on it that would extract a portion of it other than a bit. But you could define it in terms of the functions that are currently defined on a type. A scalar or atomic value could then be an element of the type/domain set where no existing operations/functions on that domain partition the value of the element into multiple disjoint values (or something like that -- I'm making it up on the fly when I'm sure there are better definitions existing).

>
> The fact that RM is badly understood and implemented is recognized by many.
> Codd said this many times.

That is why I tried to dig in and actually define it, starting where Codd started.

> > But if we add in relation-valued attributes, then one
> > thing we are missing is ordered lists.
>
> Why ?

This seems to be a tautology to me, so I'm not sure how to answer this.  An RVA is unordered by definition, right?

>
> > > It seems you are failing to take advantage of the assumptions made by
> the RM
> > > to show its weak points.
>
> > > If the RM can capture the data to be retained for a long time I don't
> > > understand why it cannot capture the data from an user interface.
>
> > The question is not whether it can capture the data, but whether it can
> > be the model behind the interface, which would mean that an
> > implementation of that model could be used to code the interface.
>
> Would you want RM to handle screen painting and mouse input ?

No. But I'm saying that it is a limited data model. It can be used to model the interface between a client and a database service, but not an arbitrary interface between a person and software.

> Would you want RM to handle event handling ? :-)

Nope.

> > > There is data in a user interface that cannot be stored in an SQL
> database ?
>
> > Suspend all thoughts of storage from your mind in this discussion.
>
> I was not thinking about storage.
>
> > This not about persisting data using a data model, but providing a UI
> > with a data model. It is the interface that uses a language whose
> > abstraction is a data model. So I'm talking about the data model OF
> > the UI.
>
> I was asking if there is data that can be represented by the data model of
> the UI that cannot be represented by the data model of an SQL database.

Change the word "by" to "as" and then yes.

>
> > > Even so, what deny us to extend RM to handle that instead of completely
> > > hidding or replacing it ?
>
> > I am not opposed to set-based processing, so if you want to call it
> > changes to the RM that's fine with me.
>
> Ok.
>
> > Once you hide it, however, you
> > are no longer using it as the model for the interface.
>
> Who said anything about hidding it ? Not me.
>
>
> > > > Data models back interfaces, such as the data model used to interface
> > > > between one piece of software or a human being and a SQL-DBMS. Look
> at
> > > > the data model behind an arbitrary user interface.
> > >
> > > I've looked and I've seen RM ;-)
>
> > Can you sketch an RM-based language (that is, an implementation of the
> > RM) where using only this language, you could output a web page from
> > the UML class shown?
>
> SQL + several base tables and constraints + some code in a general purpose
> language to handle the conversion to HTML because browsers don't have an SQL
> interface.
>
> No one claimed one should use only SQL.

Agreed.

> But if I would be willing to try
> hard enough, maybe I could come up with a language based on the RM for
> writing code also not just for describing data. Then the applications would
> become easier to maintain :-)

I think this is something like what mountain man is suggesting by using stored procedures. You still cannot model the UI with the RM, however. <snip>
Cheers! --dawn Received on Tue Feb 14 2006 - 02:53:14 CET

Original text of this message