Also beware the temptation to design a grand hierarchy of all meanings. There have been many attempts in the last 300 years: [Eco95] often as part of the design of a universal or perfect language. None of them have stuck. On the other hand you can use these attempts as a source of ideas to model specific application domains and user concepts. There is a well tested classification system for English called Roget's Thesaurus.
Each application domain has its own languages and these need to be understood when developing software. There is some evidence that constructing a clear and precise model of such a domain is a step in the direction of better software. Mathematics and logic can be very helpful with eliminating the "goo and dribble" and boiling things down[Asimov].
What follows here are some examples drawn from the twentieth century. By the end of the twentieth century and start of the twenty-first century there were several logical models of natural language placed on the web in the form of ontologies. Below are some examples of one way the MATHS notation could be used to express these hierarchies but they are not intended to be a complete and finished description. Professionals have been working on these, see [ Ontologies in index ] [ lookup.php?search=ontolog ] for more.
This page gives examples of how to use the logical fragment of MATHS to construct models of natural world phenomena like dogs, cats, rocks, and parents(STUFF). This is the best approach when we want to express properties of the objects or entities in a domain.
An alternative would be to use Sets
and Relations instead of Nets of variables and axioms. This is
close to the way that abstract algebras like groups are modeled
in MATHS
[ notn_6_Algebra.html ]
[ math_43_Algebras.html ]
[ notn_7_OO_vs_Algebra.html ]
for example. The SUMO ontology is also best modeled
this way. See
[ Suggested Upper Merged Ontology ]
at the end of this page.
Abbreviation.
Natural languages have large numbers of terms indicating objects of
different sets and types. This are typically organized in a hierarchy. It
is useful to have a simple way of expressing such a hierarchy:
A statement like
either A or B.asserts the existence of two Boolean variables A and B and the property that precisely one of them is true. The above is short hand for:
A::@,
B::@,
|- A or B.
|- not(A and B).Similarly,
either A, B, or C.asserts the three conditions, but only one is true at a time. If A is true then B and C are false.
.RoadWorksAhead
I may be moving the following sample into my directory of samples:
[ http://cse.csusb.edu/dick/samples/ ]
before September 2004.
Sampler of Ontologies
Source: Chi 92, Michelene T H Chi, Figure on page 41 in "The Science & Learning Math and Science", NSF Mosaic V23n2(Summer 92)p37..43
Mistakes in learning science:
.RoadWorksAhead
.RoadWorksAhead
Source: Leech, "Semantics", Penguin Books 1974 [Leech 74] however this kind of hierarchy goes back a long way to the Tree of Porphyry [ Tree_of_Porphyry ] (Wikipedia) and [ PorphyryTree.html ] at the University of Washington.
Leech preents the idea (from anthropology) that terms in natural language can be given meaning in terms of components:
man +HUMAN+ADULT+MALE
woman +HUMAN+ADULT-MALE
boy +HUMAN-ADULT+MALE
girl +HUMAN-ADULT-MALEComponents match the idea of attributes in a MATHS Net.
The following Nets translate Leech's diagram on page 121 of his book.
The above creates a net with Boolean attributes: countable, mass, concrete, abstract, singular, plural, ... and so on.
We can now express Leech's example above:
. . . . . . . . . ( end of section Stuff) <<Contents | End>>
}
For more on natural spatial relations see [ math_93_Graphics.html ]
Tenses, Time, and Temporal modalities
This turns out to be interesting and contraversial... well beyong the elementary logic I was planning for these pages.
First here [ ../samples/tenses.html ] is a list of English tenses with examples of the syntax and Reichenbach's semantics.
A fluent is a predicate that changes value with time. It is quite feasible to express this in first-order logic by adding an extra argument. Thus the proposition "It is raining" might be rendered as
Thus
Properties of objects -- for example the cat is on the mat -- might be expressed as a predicate with three arguments
Thus
In MATHS we can do something like this
So that
Some developments from this and some classic temporal logics can be found in [ logic_9_Modalities.html ] (Modal logic).
Another direction in MATHS is to use Dynamic Predicates that directly express changes as relations between a past and a future state by putting a prime(') on future variables. Fore more on this see [ intro_dynamics.html ] and [ math_14_Dynamics.html ] in this set of pages.
. . . . . . . . . ( end of section Tenses, Time, and Temporal modalities) <<Contents | End>>
Source: Leech pp234-237.
Source: Anthropology??
For R: {father, mother, son,daughter, child_of, sister, brother, ....}, x R y::=x is a R of y.
ownership:@OWNERSHIP. for x,y:$ STUFF, x owns y ::= x /owner;ownership;owned y.
Let
Here is my second draft at transmogrifying the top of SUMO into MATHS. Because it is expressed in terms of sets of objects and the properties of the sets (not the properties of the objects in the sets) it best to express it as a net of set definitions and axioms about these sets.
. . . . . . . . . ( end of section Sampler of Ontologies) <<Contents | End>>
The first atteempt below creates a new syntax for facts about systems but leaves the semantics undefined. The second attempt defines a set of natural predicates with MATHS that cover the commonest statements made about systems.
P3Basic English -- a subset of Basic English that uses the present tense(P) and third person only(3).
SASS is a `Simple ASsembler System`
Pass1 is a process in SASS
Pass2 is a process in SASS
Symbols is a store in SASS
SASS gets input from source_code
SASS sends output to object_code
object_code is output from SASS
Pass1 gets lines from source_code
Pass1 sends labels and addresses to Symbols
Pass2 gets instructions from source_code
Pass2 gets addresses from symbols
Pass2 gives object_code to output
Example Queries
A semantic approach is to use natural predicates.
Or infix operators with structures
. . . . . . . . . ( end of section Systems English -- a subset of Basic English) <<Contents | End>>
. . . . . . . . . ( end of section Semantics of English) <<Contents | End>>
Notes on MATHS Notation
Special characters are defined in
[ intro_characters.html ]
that also outlines the syntax of expressions and a document.
Proofs follow a natural deduction style that start with assumptions ("Let") and continue to a consequence ("Close Let") and then discard the assumptions and deduce a conclusion. Look here [ Block Structure in logic_25_Proofs ] for more on the structure and rules.
The notation also allows you to create a new network of variables and constraints. A "Net" has a number of variables (including none) and a number of properties (including none) that connect variables. You can give them a name and then reuse them. The schema, formal system, or an elementary piece of documentation starts with "Net" and finishes "End of Net". For more, see [ notn_13_Docn_Syntax.html ] for these ways of defining and reusing pieces of logic and algebra in your documents. A quick example: a circle might be described by Net{radius:Positive Real, center:Point, area:=π*radius^2, ...}.
For a complete listing of pages in this part of my site by topic see [ home.html ]
Notes on the Underlying Logic of MATHS
The notation used here is a formal language with syntax
and a semantics described using traditional formal logic
[ logic_0_Intro.html ]
plus sets, functions, relations, and other mathematical extensions.
For a more rigorous description of the standard notations see