Re: Objects and Relations

From: Bob Badour <bbadour_at_pei.sympatico.ca>
Date: Sun, 11 Feb 2007 15:09:57 GMT
Message-ID: <9lGzh.5172$R71.77188_at_ursa-nb00s0.nbnet.nb.ca>


pamoori_at_gmail.com wrote:

> The discussion is interesting. If we view that computers are only to
> process information, then we need to understand what is it?

The above might suggest confusion regarding some of the most fundamental terms of our industry. If one refers to the ISO/IEC standard vocabularies, one sees that 'information' is (currently) a proper superset of what computers process. 'Data' is the proper subset of information represented suitably for machine processing and computers generally process some subset of 'data'.

I note as time progresses 'data' encompasses more and more. One might argue we will have strong AI at precisely the moment 'data' encompasses all of 'information'. Or at least, one might argue we will not have strong AI before 'data' is a superset of 'information'.

This distinction is important for data management because it is exactly the distinction separating the conceptual from the logical. In fact, I find it important for any formalism. Goedel proved that no matter how encompassing we make a formalism it will always require additional external information.

If you were just being sloppy above or building up to a more cogent point later on, I apologize. I want to make sure we are on the same page before proceeding.

  Most of
> the times, we get carried away by ways of structuring and processing
> data. That is where OO or RM business comes in. RM is focusing on the
> data, and OO on the process.

I cannot make sense of the above. The relational model is a formalism for directly applying set algebra and/or predicate calculus (in fact the entire mathematical subject of relations) to the task of managing data. Object orientation is not a single formalism but a nebulous term encompassing a variety of formalisms. Those formalisms are generally computational models with the common trait of basing the computational model around interacting state machines.

> By OO view of objects, we wanted to bring in devices to our idea of
> computation.

One must ask you to define 'objects' at this point. Do you mean object classes? Instances of object classes? Extensions of object classes?

  And these devices correspond to the real world. A big
> hoax, as pointed above in some example.

Devices? Do you refer to the state machines themselves? Or to something else like a notational device?

> Fundamentally, when we have an idea of information, then the question
> of manipulating it with the required structures comes into the place.

Required structures? While I agree that one must base any formalism around some set of structures, I fail to see how any particular structure is required. One formalism will use one set of structures and another formalism will use a different set of structures. The information remains independent of the structure.

Or were you merely pointing out that every formalism requires some set of structural elements for describing the formalism?

> That can also help us organize our analysis and design methods.

Perhaps if you were clearer in what you are trying to say, I might parse something meaningful from the above. As it is, I am unclear what the antecedent for 'that' is.

  I
> think, this aspect is missing in both the camps and also by and large
> in our education.

'Camps' ? I suppose I place myself in the camp battling ignorance and the typical OO proponent in the opposing camp. So, I guess the term is fair enough.

What I find missing in the education of the typical OO proponent are things as fundamental as a basic understanding of the common terms. For example, if you meant to discuss formalisms and computational models above, why the hell wouldn't you use 'formalism' and 'computational model' even once?

> Much before you read futher this mail, answer yourself, what is
> information to you? Mind, I am not asking "what is the information?"

One can find the answer to that question in ISO/IEC 2382-01. It happens to be the first definition therein, which is appropriate since it is the most fundamental definition of our field.

> Information is to do with our meaningful thoughts. Secondly, we shall
> be able to express them in natural language. A picture is a convenient
> way of communicating information. But that also means, you have
> identified the objects, and related them. You can also, you have
> different ideas through which you are seeing them. When these ideas
> are related, then you have your meaningful thoughts.
>
> Meaningful thoughts or their syntactic representation, such as
> sentences are our information. Often these sentences are also called
> propositions. But true propositions are what is interesting to us. In
> other words, facts are interesting to us.
> So we are interested in how facts change in the world? How facts are
> created in the world. That is all about the manipulation of
> information?
>
> Fundamentally I am raising the issue of the relations between natural
> language, thoughts and reality. We have to clealy understand that
> natural anguage expresses thoughts about reality. And then respect
> that relationship.

I agree to all of the above; although, I think you could get to the point more quickly.

> Because we do not respect that relationship, we notice Object
> Constraint language (OCL), pushing first order logic into OO thinking.
> This is purely a confusion or a lack of clarity about what we are
> trying to do. Logic is an aspect of natural language. Logic is all
> about connecting meaningful thoughtts / propositions.

I tend to disagree. Logic comprises formalisms for analysis and manipulation of natural language. Plenty of 'information' expressed in natural language is simply nonsense.

> I think, OOs problem is in inventing those devices, and extending them
> to fit into the big picture of information processing, and its
> fundamentals.

One of the problems when it comes to discussing OO is the fundamental lack of clarity in OO. Thus, I am left wondering: "What devices?" Assuming OO describes computational models based on dynamic systems of interacting finite state machines, do you mean those state machines? Or do you mean notational devices like class hierarchies? Or something else?

> Certainly there is a big goof there. An object is a perceptive
> convenience to identify some facts.

Are you suggesting objects aid perception or that it is perceptive to find objects convenient? I tend to disagree in both cases.

  But you cant ignore the role facts
> play while bothering with too much emphasis on the objects. I have not
> seen OO guys respecting the existence of facts. In other words,
> existence of relations between facts. Well, not at the level of
> pointers. But respecting relations as first class entitites
> themselves.

I find the typical OO proponent simply ignorant of what a relation is. And that observation indicates a fundamental failure of education. Received on Sun Feb 11 2007 - 16:09:57 CET

Original text of this message