.Open Semantics of English
Be very careful of assuming that the way your language divides
up the world is the same as any other language's way of
slicing the semantic cake. Terminology varies between countries,
regions, companies, and even between parts of a company.
Also beware the temptation to design a grand hierarchy of all
meanings. There have been many attempts in the last 300 years:
.See [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
.See http://www.csci.csusb.edu/dick/samples/index.html#Ontologies
.See http://www.csci.csusb.edu/dick/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
.See http://www/dick/maths/notn_6_Algebra.html
.See http://www/dick/maths/math_43_Algebras.html
.See http://www/dick/maths/notn_7_OO_vs_Algebra.html
for example. The $SUMO ontology is also best modeled
this way. See
.See Suggested Upper Merged Ontology
at the end of this page.
. Abbreviation to express subsets
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:
either_or_notation::=http://www/dick/maths/notn_16_Classification.html.
A statement like
.As_is 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:
.As_is A::@,
.As_is B::@,
.As_is |- A or B.
.As_is |- not(A and B).
Similarly,
.As_is 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:
.See http://www/dick/samples/
before September 2004.
.Open Sampler of Ontologies
. Ontological Categories
.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
ALL_ENTITIES::=$ Net{
material_objects::@,
events::@,
mental_states::@.
|- (ae1): one ( material_objects, events, mental_states).
|- (ae2): if material_objects then either artifacts or natural.
|- (ae3): if events then either intentional or constraint_based.
|- (ae4): if mental_states then either ideas or emotions.
}=::ALL_ENTITIES.
Mistakes in learning science:
.Box
insects not animals
- within a category.
heat is material
- across a category.
.Close.Box
.RoadWorksAhead
Let{ August 2004. I'm getting doubts about this approach.
}
.Open Stuff
This section just lays out a logical framework for talking about
various meaningful domains. The idea is that the defined terms
like $STUFF, $BEING, etc should be reused in other nets. They
are taken from
.Source Leech, "Semantics", Penguin Books 1974
.See [Leech 74]
however this kind of hierarchy goes back a long way to the
.Key Tree of Porphyry
.See http://en.wikipedia.org/wiki/Tree_of_Porphyry
(Wikipedia) and
.See http://faculty.washington.edu/smcohen/433/PorphyryTree.html
at the University of Washington.
Leech
.See [Leech74]
preents the idea (from anthropology) that terms in natural language
can be given meaning in terms of components:
.As_is man +HUMAN+ADULT+MALE
.As_is woman +HUMAN+ADULT-MALE
.As_is boy +HUMAN-ADULT+MALE
.As_is girl +HUMAN-ADULT-MALE
Components match the idea of attributes in a
MATHS Net.
The following Nets translate Leech's diagram on page 121 of his book.
STUFF::=Net{
|- Either countable or mass.
So, for instance, "butter" is mass, but "dogs" are countable.
If countable then either singular or plural.
|- if singular or plural then countable.
|- Either concrete or abstract.
If concrete then either solid, liquid, or gas.
|- if solid or liquid or gas then concrete.
()|- abstract iff not solid and not liquid and not gas.
If solid then either animate or inanimate.
|- if animate or inanimate then solid.
}=::STUFF.
The above creates a net with Boolean attributes: countable, mass,
concrete, abstract, singular, plural, ... and so on.
CONCRETE::= $STUFF and concrete.
SOLID::= $CONCRETE and solid.
. Things
THING::=$SOLID and inanimate.
. Beings
BEING::=$SOLID and animate and following
.Net
|- either masculine or feminine.
|- either adult or child.
|- either plant or creature.
|- either living or dead.
age::years.
.Close.Net BEING.
CREATURE::=$BEING and creature and
Net{ `kritters` and `us`.
|- either human or animal.
If animal then $ANIMAL
}=::BEING.
We can now express Leech's example above:
man::=$ $CREATURE and human and adult and masculine.
woman::=$ $CREATURE and human and adult and feminine.
boy::=$ $CREATURE and human and child and masculine.
girl::=$ $CREATURE and human and child and feminine.
. Animals
ANIMAL::= $CREATURE and animal and following,
Net{
|- animal.
Kinds::={bird, fish, insect, mammal,... }.
kind::$Kinds.
|- $SPECIES.
}=::ANIMAL.
SPECIES::= Net{
Mammal_Species::={cat, dog, horse, cow, wolf,... }.
If kind=mammal then species::$Mammal_Species.
...
|- $BREED.
}=::SPECIES.
BREED::=Net{
Dog_Breed::={mixed, alsation,terrier, spanish,... }.
If species=dog then breed::$Dog_Breed.
...
}=::BREED.
|-Shadow in $ $ANIMAL(dead, female, adult, kind=mammal, species=dog, breed=mixed ).
.Close Stuff
}
. Spatial Relations
SPATIAL::=Net{
relation:: @($ $STUFF and concrete, $ $STUFF and concrete).
|- Either normal or converse.
|- Either horizontal or vertical.
If horizontal then either front_to_back or side_to_side.
|- Either close or near or unknown or far.
Directions::={V,F,S}.
direction::$Directions=if(vertical, V, if(front_to_back, F, S)).
Distances::={C,N,F,U}.
distance::$Distances=if(close,C,if(near,N,if(far,F,U))).
}=::SPATIAL.
over::= SPATIAL(normal, vertical).
under::= SPATIAL(converse, vertical).
in_front_of::= SPATIAL(normal, front_to_back).
behind::= SPATIAL(converse, front_to_back).
on_the_left::= SPATIAL(normal, side_to_side).
on_the_right::= SPATIAL(converse, side_to_side).
For R,S:$ $SPATIAL, R parallel S::@=R (= mod direction)&(= mod distance) S.
|- For R,S:$ $SPATIAL, R.normal and S.converse and R parallel S iff R.relation = /(S.relation).
|- For R,S:$ $SPATIAL, if R.horizontal and S.vertical then no R.relation & S.relation.
|- For R,S:$ $SPATIAL, if R.front_to_back and S.side_to_side then no R.relation & S.relation.
For more on natural spatial relations see
.See http://www/dick/maths/math_93_Graphics.html
. Colors
.Source Leech pp234-237.
colour::British={ white, black, red, green, yellow, blue, brown, purple, pink, orange, grey, ...}.
color::USA=colour.British.
. Kinship
male::=$ $BEING and masculine.
female::=$ $BEING and feminine.
.Source Anthropology??
KINSHIP::=Net{
Includes animal and plant kinship and so ignores marriage.
parent::@($ $BEING, $ $BEING),
|- (KIN0): parent ==> (<>). can not be ones own parent.
sibling:: @($ $BEING,$ $BEING).
|- sibling= (/parent;parent) & (<>).
|- (KIN1): no sibling & parent.
(sibling)|-(KIN2):sibling ==> (<>).
(sibling, STANDARD)|-(KIN3): sibling in Symmetric & Irreflexive & Transitive.
child_of::=/parent.
father::= male;parent.
For all x,y:$ $BEING, x father y::=`x is the father of y`.
mother::=female;parent.
For all x,y:$ $BEING, x mother y::=`x is the mother of y`.
|-(KIN4):father and mother \in $ $BEING(1)-(any)$ $BEING.
For R: {father, mother, son,daughter, child_of, sister, brother, ....}, x R y::=`x is a R of y`.
son::= male;child_of.
daughter::=female;child_of.
sister::=female;sibling.
brother::=male;sibling.
grandfather::=father;parent.
grandmother::=mother;parent.
grandparent::=parent;parent.
|-(KIN5):grandparent >== {grandfather, grandmother}.
granddaughter::=daughter;child_of.
grandson::=son;child_of.
grandchild::=child_of;child_of.
(above)|-(KIN6): grandchild>=={grandson, granddaughter}.
(above)|-(KIN7): grandparent = /grandchild
uncle::=brother;parent.
aunt::=sister;parent.
nephew::=son;sibling.
niece::=daughter;sibling.
first_cousin::=/parent;sibling;parent.
second_cousin::=/parent;/parent;sibling;parent;parent.
cousin::=first_cousin | /parent;cousin;parent.
first_cousin_once_removed::=/parent;first_cousin | first_cousin;parent.
For x,y:$ $BEING, n,m:Positive, (x is the n th_cousin m th_remove of y) ::=child_of^(n+m);sibling;parent^n | child_of^n;sibling;parent^(n+m).
...
}=::KINSHIP.
. Structure of Objects
.See http://www/dick/maths/math_21_Order.html#PART_WHOLE
. Ownership
OWNERSHIP::=Net{ This following is somewhat human-chauvinist.
owner::$ $CREATURE(human).
owned:: $ $STUFF,
slave::@= owned in $ $CREATURE(human).
}=::OWNERSHIP.
ownership:@OWNERSHIP.
for x,y:$ $STUFF, x owns y ::= x /owner;ownership;owned y.
.Let
The following definition is past tense:
shadow = the ($ $ANIMAL(female, adult, kind=mammal, species=dog. breed=mixed) & Tricia./owns ).
Slavery::@=some( $ $CREATURE(human) & ownership./owned).
.Close.Let
. Suggested Upper Merged Ontology
SUMO::=http://icosym-nt.cvut.cz/kifb/en/.
SUMO::acronym="Suggested Upper Merged Ontology".
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.
top_of_SUMO_in_MATHS::=Net{ `encoding of a tiny part of the top of the Suggested Upper Merged Ontology...`
Entity::Sets.
|- (E1): Some $Entity.
|- (E2): $Entity >== {$Abstract, $Physical}.
instance::@( $Entity, $Set_or_class).
subclass::@( $Set_or_class, $Set_or_class).
... about 20 other relations.
|- For all c, if c $instance $Class then c $subclass $Entity.
Physical::@$Entity.
Object::@$Physical.
Process::@$Physical.
|- Physical>== {$Object, $Process}.
|- For all p:$Entity, p in $Physical iff for some t:$Entity, l::$Entity( p located l and p during t).
()|- Physical = |[t:$Entity, l:$Entity](t./during & l./located).
...and 9 more...
Abstract::@ $Entity.
|- For all a:$Entity, a in $Abstract iff not for some p:$Entity( a located p or a during p).
... and more...
Set_or_class::@$Abstract.
Class::@$Set_or_class.
}=::top_of_SUMO_in_MATHS.
.Close Sampler of Ontologies
.Open Tenses, Time, and Temporal modalities
Natural languages always have ways of talking about events in the past, now, and in the future.
It is likely that time is important in many computer systems. And so I decided to
document ways to expresses tenses and time in logic.
This turns out to be interesting and controversial... well beyond the elementary logic I was
planning for these pages.
First here
.See ../samples/tenses.html
is a list of English tenses with examples of the syntax and Reichenbach's semantics.
Some developments from this and
The classical (2000 year old) approach has beeen reborn in software engineering research.
This is the study of temporal logics and can be found in
.See ./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. For more on this see
.See ./intro_dynamics.html
and
.See ./math_14_Dynamics.html
in this set of pages.
This is further based on the theory and notation of relationships
.See ./logic_41_HomogenRelations.html#Paths and Trajectories
and general systems
.See ./maths/math_71_Auto...Systems.html#Discrete_Dynamic_System
and automata theory.
. Fluents are predicates involving time
The term `fluent` was introduced to describe predicates that change.
This is a terminolgy from Artificial Intelligence and philosphy.
A
.Key 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
rain(t).
Thus
rain : Time -> @.
Properties of objects -- for example `the cat is on the mat` -- might be expressed as
a predicate with three arguments
on(theCat, theMat, time)
Thus
on : @(Object, Object, Time)
In MATHS we can write something like this
on[t](theCat, theMat)
So that
on : Time -> @(Object, Object)
The following "box" is a direct quote from
.See http://plato.stanford.edu/entries/logic-temporal/#2
(Stanford Encyclopedi of Philosophy).
.Box
Donald Davidson (1967). The problem is to give a formal account of the validity of such inferences as
John saw Mary in London on Tuesday.
Therefore, John saw Mary on Tuesday.
The inference above is cast in logical form as
for some e(See(John,Mary,e) & Place(e,London) & Time(e,Tuesday)),
Therefore, for some e(See(John,Mary,e) & Time(e,Tuesday)).
Also see the Event Calculus of Kowalski and Sergot (1986).
.Close.Box
Partly Baked Ideas
.Net
May be basis of Jackson's model of time as a series of
alternating events and intervals with no events?
Very flexible -- allows the same logic to handle many different temporal epistimologies by adjusting Time and Place.
Also... event tokens could act as objects:
Jim saw John seeing Mary in London on Tuesday.
for some e1,e2 (See(Jim, e1, e2) & See(John,Mary,e1) & Place(e1,London) & Time(e1,Tuesday)).
Perhaps an axiom
for all e1,e2, p, t, See(Jim, e1, e2), See(John,Mary,e1) & Place(e1,p) & Time(e1,t)(Place(e2,p) & Time(e2,t)).
Also compare "Babel 17"[Delaney] where events are given a verbal tag for future reference.
The next level of generality is to reify the verbs:
for some e(Event(e, see, John, Mary) & Place(e, London) & Time(e, Tuesday)).
This then permits statements at the meta level:
for all x, Event(x, isa, see, verb).
Perhaps we need to define
EVENT::=Net{identifier, subject, objects, places, times}.
. Even more unbaked ideas on time and events
.Net
We can't assume that time is linear. You find diffferent, parallel,
partially synchronized times on computers, in the real world, in data
bases, time in a piece of fiction, times of events in history, etc. So
merely postulate a partial ordering of times:
TimeBase:: $POSET.
The precise time of an event is never known, but is often known to lie in a
range. For example, `the 12th of January 1945` is a range of 24 hours. So
define,
Time ::={ a..b: @TimeBase. for some a,b : TimeBase(a<=b)}.
..., days, weeks, months, years, centuries, millenia, ... : @Time.
ExactTime ::={ a..b: @TimeBase. for some a,b : TimeBase(a=b)}.
Modelling places we need to notice that (1) they are regions (not points) in
a space, and (2) they change in time. For example the place `Rome` has changed its
boundaries many time in the last 3 thousand years. So, I start by postulating a Space
inwhich we can specify places...
Space::Sets.
Probably this will have some kind of topology -- which makes the study of events dependent on
some deep and abstract mathematics (see $Topology below if you want details).
Place::Time->@Space.
The Events being discussed could be real events or events in a piece of fiction or even `might have beens`.
These are distinguished by the different Spaces -- we can have rain occuring in a real place, like
Manchester, England, and in a fictional place like Bree in the Middle Earth.
Situation ::= Place>