Reification

tags
Computer Science

In the CS context, to “reify” something is to give a name and explicit model to something that was previously implicit in a program. Often a difficult problem when coming up with data schemas. How do you decide what's an entity in a data model and what's an attribute? What's a “thing” and what's a “relationship” between things?

For example, if you have alice = { spouse: barbara } and barbara = { spouse: alice }, you could reify the concept of marriage and create marriage = { spouses: [alice, barbara] }. Now you have an authoritative place to put, for example, the date Alice and Barbara were married.