I've been playing around with an alternative to the standard object-oriented paradigm for modeling data, and I would like to know if there is any research or already existing systems along the same lines. Let me briefly explain my ideas.
What I call the object-oriented paradigm goes something like this. Objects are representations of physical entities or concepts. An object can consist of components (other objects), and have various attributes and methods (member functions). For example, a car can be represented by an object having four wheels, a gas pedal, a steering wheel, and various methods for driving around. Moreover, each object is part of a type (or class), defined as a set of objects having the same kinds of attributes and methods (like the class of all cars). Importantly, these attributes and methods are in some sense an integral part of the object; the object is composed of its parts. So the car objects represents the whole physical thing, including all its parts and its behavior. (I'm sure this stuff is very familiar to you.)
Now, for various reasons I'm considering a fundamentally different view, which we might call the network-oriented paradigm. In this view, objects do not exist. Instead, each physical entity or concept is represented by one indivisible atom, which by itself carries no information. Instead, all the information about the entity --- its attributes and methods --- are encoded as links to other atoms. For example, a car atom would have links to four wheel-atoms, one gas pedal atom, one steering wheel atom, and to various methods for driving cars around. The key difference is that, in this network view, these atoms that are connected to the car atom are not part of the car. There is no sharp "boundary" defining what is "part of" or "inside" an entity, only links connecting atoms to provide them with attributes and behavior. Moreover, atoms are not typed, at least not in the usual object-as-instance-of-class sense. Any atom can connect to many other atoms, resulting in a kind of network (hence the name). I think this view is more flexible in various ways; for example, one can easily create a version of a car with three wheels by simply removing one of the links, without having to redesign an entire class hierarchy. And I also like it better for philosophical reasons :)
Question: does anyone know of an existing system or language, or theoretical papers where something like this has been explored?
I haven't found anything similar in the literature when googling, but I'm not a theoretical computer scientist (I work in computational biology) so I just might not know where to look. I'm experimenting with a network-oriented system like this on my spare time, mostly for fun, but I also think data modeling along these lines would be more useful in my field than the object-oriented tools we have now.