View Full Version : What is a "data object?"
John Hewitt
6th March 2007, 10:54 AM
I don't know a lot about modern computing. At one time I vaguely knew how to use fortran, focal, basic (I don't mean the visual variety) and pascal (not delphi). Also, I know what could be called "school level" IT.
Actually, I know more science than IT but, at various times, depending on whose computer I could get time on, I used those languages to do big sums, so to speak.
Today I am interested in evolutionary theory and I argue, that evolution itself should be seen as a data process. On that basis, I would quite like also to argue that the objects we see evolving, such as organisms are actually data objects. So, that brings me to my question. I do know that such things as data objects exist but I don't know exactly how the concept of a data oject is defined in IT theory.
So, I thought I would ask. Can any of you programmer or IT types tell me what a data object is, how it is defined and how much of that concept and its properties might be portable into a generalised description of evolution as a process?
cyborg
6th March 2007, 11:02 AM
Um, well generally the concept of a 'data object' in OO is essentially an anti-pattern where the usual OO concept of 'data + behavior = object' is reduced to 'data = object'.
Jekyll
6th March 2007, 11:16 AM
What cyborg said.
I'll add that these data objects are normally called structures, and probably not what you're looking for.
To me, the idea of evolution as a data process plays upon the idea of code as data and data as code. The information of one generation is used in the generation of the next.
Have you tried having a look at the work of Chatlin http://www.cs.auckland.ac.nz/CDMTCS/chaitin/ ? He might be able to offer something of interest.
Ohh, look what I just found http://www.cs.auckland.ac.nz/CDMTCS/chaitin/mex.html .
Wowbagger
6th March 2007, 11:32 AM
As a software developer, I've seen the words "Data Object" used in at least three contexts:
1. A class of objects in an API specifically written to access a database, i.e. ADO (ActiveX Data Objects).
2. A class of objects that represent a unit of data, within business logic code. This could be implemented as either a struct or a class, depending on what is needed. (They might not necessarily access an actual database system.)
3. An element of a database system, such as a table or row or field, etc. These are usually called "Database Objects", but some people habitually drop the "base" part.
I don't think any of these are exactly what you are looking for, although #2 probably comes close. But, if you want to define your own working definition of "Data Object", for the purposes of your own paper, you might as well go ahead, as long as you make your definition clear.
my_wan
6th March 2007, 12:31 PM
I don't know a lot about modern computing. At one time I vaguely knew how to use fortran, focal, basic (I don't mean the visual variety) and pascal (not delphi). Also, I know what could be called "school level" IT.
Actually, I know more science than IT but, at various times, depending on whose computer I could get time on, I used those languages to do big sums, so to speak.
Today I am interested in evolutionary theory and I argue, that evolution itself should be seen as a data process. On that basis, I would quite like also to argue that the objects we see evolving, such as organisms are actually data objects. So, that brings me to my question. I do know that such things as data objects exist but I don't know exactly how the concept of a data oject is defined in IT theory.
So, I thought I would ask. Can any of you programmer or IT types tell me what a data object is, how it is defined and how much of that concept and its properties might be portable into a generalised description of evolution as a process?
Cyborg got it correct. Your generalization of evolution as as a "data process" or information system is spot on by its very definition. Many programmers are designing evolution into actual programs such as;
http://discovermagazine.com/2005/feb/cover
Highly suggest reading the whole story, especially if you are an intelligent design proponent. You can even download it and try it here;
http://dllab.caltech.edu/avida/
Genetic algorithms are even becomeing a major player in engineering. They can essentially design anything an engineer can and are not limited to the engineers preconceptions of what works. Do we allow what a compputer program invents to be patented?
Soapy Sam
6th March 2007, 03:01 PM
Today I am interested in evolutionary theory and I argue, that evolution itself should be seen as a data process. On that basis, I would quite like also to argue that the objects we see evolving, such as organisms are actually data objects. So, that brings me to my question. I do know that such things as data objects exist but I don't know exactly how the concept of a data oject is defined in IT theory.
So, I thought I would ask. Can any of you programmer or IT types tell me what a data object is, how it is defined and how much of that concept and its properties might be portable into a generalised description of evolution as a process?
John, Note the two highlighted sections.
It seems odd to say you want to argue that an organism is a data object, when you then state you do not know what the term means.
Also, while I agree digital information is transmitted via the germ line, is it not the case that this is but a single aspect of the biological process?
The information required to create Craig Venter exists in digital form, but that information cannot be used to create Craig Venter.
He has already been created, for one thing and the same information ,stored on a USB stick and plugged into a vagina will not initiate the process due to a format mismatch.
(For which Allah be praised).
John Hewitt
6th March 2007, 03:13 PM
What cyborg said.
I'll add that these data objects are normally called structures, and probably not what you're looking for.
To me, the idea of evolution as a data process plays upon the idea of code as data and data as code. The information of one generation is used in the generation of the next.
Have you tried having a look at the work of Chatlin http://www.cs.auckland.ac.nz/CDMTCS/chaitin/ ? He might be able to offer something of interest.
Ohh, look what I just found http://www.cs.auckland.ac.nz/CDMTCS/chaitin/mex.html .
The links from yourself and from my_wan are terrific and very useful. I had, vaguely, heard of Chaitin before but I hadn't realised the significance of his work. He does say they haven't got a general description of these things so I don't feel quite so bad about not understanding it myself.
It seems I may well have to follow Wowbagger's suggestion and produce a working definition for myself.
Obviously one can define an object, such as a molecule, in physical terms and even describe the molecule in terms of data but that data is static and a molecule does not normally allow any data process. The big step is how to go beyond that conventional meaning and construct a more general definition of object in such a way that it can not only contain data but also processes that can operate on that data. That's seem more difficult to do.
John Hewitt
6th March 2007, 03:20 PM
John, Note the two highlighted sections.
It seems odd to say you want to argue that an organism is a data object, when you then state you do not know what the term means.
It doesn't seem odd to me, I am just investigating what seems a reasonable possibility - organisms do contain and transmit data and they are identifiable as objects.
Also, while I agree digital information is transmitted via the germ line, is it not the case that this is but a single aspect of the biological process?
I don't expect to solve all the remaining problems of biology, I am just thinking about that one.
cyborg
6th March 2007, 03:24 PM
The big step is how to go beyond that conventional meaning and construct a more general definition of object in such a way that it can not only contain data but also processes that can operate on that data. That's seem more difficult to do.
John, welcome to yesterday:
http://en.wikipedia.org/wiki/Object-oriented_programming
EHLO
6th March 2007, 04:42 PM
In regard to the OP, and what it seems you are trying to do John I wouldn't get too hung up on Object Oriented Programming as you could just as easily simulate a biological process using structured or procedural techniques in the languages you mentioned. One of the very first programming assignments I remember was a simple "Game of Life" written in Pascal.
The problem is not how you implement the simulation, it's working out how to represent the biological information and what operations to perform on this information and when. And then setting up the system to free-run in a recursive manner to see what happens...
Jekyll
7th March 2007, 05:04 AM
What would be beneficial however, is a choice of language with a runtime 'evaluate this arbitrary expression command', otherwise you'll spend most of your coding time mimicking this functionality.
Python, perl, c# and lisp all have this functionality, as should any interpreted language, but the c# method didn't look that easy to use last time I looked at it.
I personally think lisp would probably best, as the uniform syntax is going to be a gift, when you're trying to keep your randomly changing code working. In addition to this, allowing transcribing errors, duplication, mutation and deletion, of arbitrary S-expressions will give you the ability to mimic the genetic mutations that allow additional pairs of legs to appear and disappear in the selective breeding of fruit flies and what not.
What exactly are you thinking about doing?
John Hewitt
7th March 2007, 05:52 AM
What would be beneficial however, is a choice of language with a runtime 'evaluate this arbitrary expression command', otherwise you'll spend most of your coding time mimicking this functionality.
Python, perl, c# and lisp all have this functionality, as should any interpreted language, but the c# method didn't look that easy to use last time I looked at it.
I personally think lisp would probably best, as the uniform syntax is going to be a gift, when you're trying to keep your randomly changing code working. In addition to this, allowing transcribing errors, duplication, mutation and deletion, of arbitrary S-expressions will give you the ability to mimic the genetic mutations that allow additional pairs of legs to appear and disappear in the selective breeding of fruit flies and what not.
What exactly are you thinking about doing?
I am not thinking about writing a simulation - I don't think I could competently do that. What I want to do is come at things more from the scientific end. To a large extent, we think about the world in terms of objects, physical objects that is. So, for example, atoms or molecules are object but I do think that evolution is, at bottom, an IT process, a data based process. So, I want to discuss real physical objects in terms of their data content and data processing ability.
I would also like to extend the concept of an object, so that the extension still has meaning in terms of physics and chemistry, and consider how that extension can change the data processing abilities that the object might have. (There I am really thinking about chemical equilibria.)
The ultimate aim is to match the minimum data processing capability required of an evolving system with the maximium data processing capability that might exist within such a generalised physico-chemical object.
I did know that programmed objects had attributes, inheritance and relatedness but I have never been able to find a clear general meaning of the word "object" as used in IT. What I hoped for with this line of thought and this thread was some ideas about how to construct such, more generalised objects. Nonetheless, I don't see me learning new programming languages, I just want to try to get the underlying concepts.
cyborg
7th March 2007, 06:00 AM
I have never been able to find a clear general meaning of the word "object" as used in IT.
Clear or general.
Pick one.
You are going to have to be substantially more precise in what it is you actually mean. I fail to see why you are looking for analogies in computer science.
Wudang
7th March 2007, 07:13 AM
I fail to see why you are looking for analogies in computer science.
Argument by analogy?
Perhaps thinking of the plot in "Darwin's radio" by Greg Bear?
John Hewitt
7th March 2007, 09:51 AM
Clear or general.
Pick one.
You are going to have to be substantially more precise in what it is you actually mean. I fail to see why you are looking for analogies in computer science.
Both.
Clear as in precise, meaningful etc.
General, as in algebra is more general than arithmetic.
cyborg
7th March 2007, 10:12 AM
Clear as in precise, meaningful etc.
General, as in algebra is more general than arithmetic.
*Sigh* John, I have no idea what it is you think you will find in IT that will magically be applicable to your ideas.
*YOU* have to provide the precise and meaningful definition here. It really is quite irrelevant how the term 'object' is used in computer science. It's just a label. It's used in lots of different ways. If you want a consistent definition I can give you six but that's not going to get any closer to what you *WANT*.
Algebra is more general than arithmetic? That is a just meaningless statement. Arithmetic describes rules for calculation, algebra describes symbolic relations.
Nevertheless 'clear and general' is a contradiction in terms. Things become more clear the less general they are - a good computer scientist is always looking for a good abstraction and abstractions by their very nature remove generality.
You are simply going to have to be far more precise about what it is you want.
Jekyll
7th March 2007, 10:36 AM
- a good computer scientist is always looking for a good abstraction and abstractions by their very nature remove generality.
Quick diversion from the topic:
Isn't this backwards?
If I abstract away the container class in a sorting algorithm it works on more cases. Shouldn't this be considered more general?
cyborg
7th March 2007, 11:31 AM
Isn't this backwards?
No - not with how the word is being used here.
If I abstract away the container class in a sorting algorithm it works on more cases. Shouldn't this be considered more general?
Yes - but you have not changed the abstraction - the abstraction in this case being 'storage'.
You should consider the case where you have two competing abstractions. Say for example a graph represented by an array and a graph represented by pointers. This are fundamentally incompatible abstractions. Any attempt to be more general in about graphs is going to be messy.
The fundamental point about an abstraction is that you are purposely ignoring some aspects of something in order to clarify other aspects. It is only by doing this that being general is possible. To be totally general is not a desirable goal at all.
Jekyll
7th March 2007, 12:30 PM
No - not with how the word is being used here.
Yes - but you have not changed the abstraction - the abstraction in this case being 'storage'.
You should consider the case where you have two competing abstractions. Say for example a graph represented by an array and a graph represented by pointers. This are fundamentally incompatible abstractions. Any attempt to be more general in about graphs is going to be messy.
The fundamental point about an abstraction is that you are purposely ignoring some aspects of something in order to clarify other aspects. It is only by doing this that being general is possible. To be totally general is not a desirable goal at all.
But they're still compatible, I come along with my general graph cutting algorithm and providing these two methods share an interface, I can treat them in the general case, and use my algorithm on both types of graph.
I'm actually dealing with this exact problem and using hash tables and arrays for my types of graph depending upon size vs. time constraints.
cyborg
7th March 2007, 01:53 PM
It is a poor example.
John Hewitt
7th March 2007, 02:41 PM
*Sigh* John, I have no idea what it is you think you will find in IT that will magically be applicable to your ideas.
<snip>
You are simply going to have to be far more precise about what it is you want.
No, that is just your fantasy world, I am just following a train of thought.
You are not about to give me what I want, that's fine; I have no problems with that.
cyborg
7th March 2007, 04:34 PM
No, that is just your fantasy world, I am just following a train of thought.
Eh? What is just my fantasy world?
You are not about to give me what I want, that's fine; I have no problems with that.
I do not have a clue what it is you *DO* want. You are being so vague about it.
You say:
"evolution itself should be seen as a data process."
There's a whole bunch of stuff that processes data in lots of various ways.
"I do know that such things as data objects exist but I don't know exactly how the concept of a data oject is defined in IT theory."
You've been given one definition of 'data object'. All you're saying is 'organisms have data' - which really doesn't help fix anything down at all. Data is represented in all kinds of ways.
As such no, I am not going to give you what you want because you cannot say what that is.
Sorry John, I am not a psychic.
EHLO
7th March 2007, 04:41 PM
Perhaps you're just after something like UML (Unified Modeling Language)? - I can't post links yet so just do a search.
© 2001-2009, James Randi Educational Foundation. All Rights Reserved.
vBulletin® v3.7.7, Copyright ©2000-2012, Jelsoft Enterprises Ltd.