An information system should represent the truth. So, as a designer you must know a thing or two about truth.
Let us introduce some language to talk about truth. Consider a fact "Joe Smith lives in New York." from an Ampersand perspective. In Ampersand, we can analyse this as follows:
Let Person
and City
be concepts****
Let "Joe Smith"
be an atom of the concept Person
and "New York"
an atom of the concept City
.
Let us use the relation livesIn[Person*City]
to contain our fact.
livesIn
is the relation name and [Person*City]
is the signature of this relation.
Person
is the source of this relation and City
is the target.
If the pair ("Joe Smith","New York")
is an element of this relation, Ampersand considers the statement "Joe Smith" livesIn "New York"
to be true. So all pairs in a relation represent facts, i.e. true statements.
Ampersand takes a pragmatic stance on truth: You model only things that make sense to the business. This video clip illustrates the distinction between sensible and senseless statements. A sensible statement (we say: "It makes sense.") is a statement that can be true or false. Sentences that are not sensible (we can say: it is non-sense) are to be avoided. The Ampersand type system helps you to make sensible statements only.
Truth always has context. If we say "Jack was married to Jackie", this statement is true in a context where "Jack" refers to the 35th president of the United States, John F. Kennedy. However, this statement is not true in a context where there is no Jack. And in a context where marriage doesn't exist, this statement makes no sense.