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.

  • 1
    $\begingroup$ Look at: en.wikipedia.org/wiki/Entity%E2%80%93relationship_model $\endgroup$
    – HEKTO
    Sep 10, 2016 at 16:00
  • $\begingroup$ Your characterization is too vague to be addressed. If you work on it long enough, you will see that every data/object/thing/whatever model is a compromise, and there is no magic bullet. $\endgroup$ Sep 10, 2016 at 16:59
  • $\begingroup$ @HEKTO Yes, I am aware of entity-relationship models, and I agree relations have some similarities to my "network" view. But ER models still conform to the object oriented paradigm I think: entities have an internal structure consisting of attributes, similar to members of objects, and in extended ER there is even inheritance. I'm thinking more of a model where there is no distinction between entities and attributes, and entities have no internal structure. $\endgroup$
    – Roland
    Sep 10, 2016 at 19:03
  • $\begingroup$ Then, maybe, Semantic Network? $\endgroup$
    – HEKTO
    Sep 10, 2016 at 20:15
  • $\begingroup$ @HEKTO Hm, yes semantic networks looks relevant, will check it out. Thanks! $\endgroup$
    – Roland
    Sep 10, 2016 at 21:22


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Browse other questions tagged or ask your own question.