In software development, there is an activity called domain modeling, by which the developer creates a representation of the problem domain using some language (ultimately a programming language). When modeling a particular domain, developers have to make some "metaphysical decisions", so to speak*. In particular, one has to decide:

  1. Whether a certain "being" in the domain should be represented as an entity or as a value. Roughly speaking, an entity is an object that exists by itself, has an identity and a thread of continuity over time. A value contains attributes but has no conceptual identity. This distinction mirrors that between essence and accident, respectively, in Aristotelian jargon.

  2. How to represent the passage of time for an entity (see item 1): either as a series of changes of state through which an ephemeral entity undergoes; or as a series of immutable states arranged in a sequence. In the latter case, each of these states keeps existing forever, associated with a point in time in the life of that entity.

I don't know of any philosophical work dealing specifically with the application of metaphysical ideas to software domain modeling. At best, to my knowledge, item 1 has been treated by Eric Evans, but with only a slight reference to Metaphysics; and item 2 has been briefly mentioned by Rich Hickey in reference to Whitehead's "Process and Reality".

So, I'm looking for other works, that make the connection between these two areas of knowledge and, more importantly, works in pure Metaphysics that would help me get a more insightful perspective on domain modeling.

* Of course, there are other concerns related to domain modeling – more technical in nature – that don't concern us here.


I see two major areas where domain modelling can benefit from metaphysics.

One is the work being done in foundational ontologies by authors such as Guizzardi and Wagner. [I know the word ontology here has a different meaning as in philosophy; that is unfortunate]. Their work on UFO, for example, stresses that constructs such as sortals, rigid vs. non-rigid types, moment vs. substance individuals, etc. need to be part of the foundations of conceptual modelling. Mainstream modelling languages such as UML use the class construct as a central building block, and almost everything that you put in your model is a class because it must be a class. Phases, roles and other non-base types are consequently modelled (often poorly) as classes. A modelling language based on UFO's hierarchy of foundational types would arguably offer a richer palette from where to choose so that models would be more precise. Other works such as those of Partridge also stress that ontological choices such as perdurantism vs. endurantism are relevant to conceptual modelling.

A second area of utility is that of enhancing the way modelling is done, by raising the modellers' awareness about metaphysical issues. My colleagues and I have taken this as a base and incorporated this into various lines of work. For example, my colleagues and I have just had a paper accepted at the ER 2013 conference titled "Are Conceptual Models Concept Models?", in which we discuss whether the "concepts" in conceptual models are actually mind-dependent representations, abilities (see Dummet), or mind-independent Fregean senses. Depending on what concepts in models are, or what we want them to be, tasks such as checking the validity of a model would probably need to be re-considered.

I can give you another example of how metaphysics (helped here by epistemology) has helped to improve domain modelling by raising the awareness of modellers about these issues. In the ConML modelling language (which we have co-created), there is a special null/unknown semantics that goes beyond the usual null semantics found in most modelling languages such as UML: the null ConML keyword denotes absence of information, whereas the unknown keyword denotes presence of information but absence of knowledge about it. Thus, p.Age where p is of type Person could never be null, since it is a fact (well, I don't expect anyone to dispute it) that every person has an age, regardless of whether or not we know it. But p.Spouse may be null, since many people have no spouse. Modellers using UML, for example, tend to use null to mean either absence of information or absence of knowledge about it; by introducing this ontological vs. epistemic difference in ConML through two separate keywords, models are more expressive.

  • Great! This was exactly the kind of answer what I was looking for. I'll take some time to look at the references you cited. Thank you very much. Jul 12 '13 at 14:23
  • You're welcome. Let me know if you need additional details or sources. I'll be happy to discuss.
    – CesarGon
    Jul 12 '13 at 15:25

I think the adoption of metaphysical terminology by the domain modelling community is unfortunate, and leads to confusion-- the most notable example being the abuse of the term "ontology."

This overliteralization is not limited to the abuse of metaphysics, of course-- the more general problem is one of taking metaphors too seriously. For example, there is also a well-know confusion within the object-oriented development community between "objects" and physical objects. An "object" in a software system is a container for a bit of system state (known as "properties") coupled with a set of pre-defined actions that can alter that state (known as "methods".) Unfortunately, many beginning modelers begin by creating an object model based on physical objects, which is rarely optimal.

The decisions a software developer has to make have absolutely no metaphysical import, and there is nothing useful that Aristotle or Whitehead can bring to the table. Whether something is better modeled as an Entity or a Value is a pragmatic decision based on how one wishes to track its behavior over time, and has nothing to do with Aristotelian categories or modalities.

In short, these are not philosophical matters at all-- they are purely in the domain of the practical. Use whichever model will produce the cleaner code, and remember that the metaphors are only that: don't mistake the map for the territory.

  • 1
    Great answer and +1. I might soften the line you're taking here about the potential metaphysical implications of software; in particular, I would wonder on the one hand whether code could be (or could become) literature, whether it could ever potentially "comprehend" writing, perhaps in the way Derrida suggests writing at a certain point came to comprehend language; and on the other hand, I would have concerns about the integration of privately-owned and deployed software into our daily lives, the way in which critical parts of social reproduction and communication have become privatized
    – Joseph Weissman
    May 29 '12 at 0:42
  • One link that might be possible is between Platonic ideals and the concept of classes and objects. Objects are one distinct version of a class, with an identity.
    – Chris S
    May 29 '12 at 20:10
  • -1 Although I fully agree with you about the unfortunate use of metaphysical terminology by the domain modelling community, I disagree about the rest of your answer. :-) You may have a point if we take the most pragmatic and theory-averse practitioners in the software world, but domain modelling is much bigger than that. After having worked in the software industry and academia for over 20 years, I find a statemenet such as "the decisions a software developer has to make have absolutely no metaphysical import" strongly incorrect.
    – CesarGon
    Jul 12 '13 at 12:33
  • @CesarGon: Please explain-- I've also worked in the software industry and academia for over 20 years, and I'm curious to hear how our experiences have been so different. What metaphysical import has stemmed by decisions made by one of your software developers? Jul 14 '13 at 13:12
  • I've tried to outline some issues in my answer to the OP here. A good example is that of null vs. unknown semantics. Also, in a couple of months you'll be able to get a copy of our ER paper that goes much deeper into this. Or email me and I'll send you a preprint if you're interested.
    – CesarGon
    Jul 14 '13 at 13:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.