Skip to main contentCal State San Bernardino
>> [CNS] >> [Comp Sci Dept] >> [R J Botting] >> [MATHS] >> logic_8_Natural_Language
[Contents] [Source Text] || [Notation] || [Copyright] || [Contact] [Search ]
Tue Jul 25 09:03:17 PDT 2006

Contents


    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: [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:
    1. either_or_notation::= See http://www.csci.csusb.edu/dick/maths/notn_16_Classification.html.

      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://www.csci.csusb.edu/dick/samples/ ] before September 2004.

      Sampler of Ontologies

        Ontological Categories

        Chi 92, Michelene T H Chi, Figure on page 41 in "The Science & Learning Math and Science", NSF Mosaic V23n2(Summer 92)p37..43

      1. ALL_ENTITIES::=$
        Net{
        1. material_objects::@,
        2. events::@,
        3. mental_states::@.
        4. |- (ae1): one ( material_objects, events, mental_states).


        5. |- (ae2): if material_objects then either artifacts or natural.
        6. |- (ae3): if events then either intentional or constraint_based.
        7. |- (ae4): if mental_states then either ideas or emotions.

        }=::ALL_ENTITIES.

        Mistakes in learning science:


        1. insects not animals - within a category.
        2. heat is material - across a category.

        .RoadWorksAhead

      2. Let{
        1. ?? tendency to form poetic/humorous statements?
        2. ?? categories ==< Koestler's matrices. ?
        3. ?? During the 21st Century one might extend the above taxonomy to include computational_object.
        4. ?? All_entities(material_ojects)=$ STUFF? As defined below?
          }

        .RoadWorksAhead

      3. Let{
          August 2004. I'm getting doubts about this approach.
          }

        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 Leech, "Semantics", Penguin Books 1974 [Leech 74]

          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-MALE
          Components match the idea of attributes in a MATHS Net.

          The following Nets translate Leech's diagram on page 121 of his book.

        1. STUFF::=
          Net{

          1. |-Either countable or mass.
          2. "butter" is mass, but "dogs" are countable.
          3. If countable then either singular or plural.
          4. |-if singular or plural then countable.


          5. |-Either concrete or abstract.
          6. If concrete then either solid, liquid, or gas.
          7. |-if solid or liquid or gas then concrete.
          8. (above)|-abstract iff not solid and not liquid and not gas.

          9. If solid then either animate or inanimate.
          10. |-if animate or inanimate then solid.

          }=::STUFF.

          The above creates a net with Boolean attributes: countable, mass, concrete, abstract, singular, plural, ... and so on.

        2. CONCRETE::= STUFF and concrete.
        3. SOLID::= CONCRETE and solid.

          Things

        4. THING::=SOLID and inanimate.

          Beings

        5. BEING::=SOLID and animate and following
          Net

          1. |-animate.
          2. |-either masculine or feminine.
          3. |-either adult or child.
          4. |-either plant or creature.
          5. |-either living or dead.
          6. age::years.

          (End of Net BEING.)

        6. CREATURE::=BEING and creature and
          Net{
            kritters and us.
          1. |-either human or animal.
          2. If animal then ANIMAL

          }=::BEING.

          We can now express Leech's example above:

        7. man::=$ CREATURE and human and adult and masculine.
        8. woman::=$ CREATURE and human and adult and feminine.
        9. boy::=$ CREATURE and human and child and masculine.
        10. girl::=$ CREATURE and human and child and feminine.

          Animals

        11. ANIMAL::= CREATURE and animal and following,
        12. Net{

          1. |-animal.
          2. Kinds::={bird, fish, insect, mammal,... }.
          3. kind::Kinds.
          4. |-SPECIES.

          }=::ANIMAL.
        13. SPECIES::=
          Net{
          1. Mammal_Species::={cat, dog, horse, cow, wolf,... }.
          2. If kind=mammal then species::Mammal_Species.
          3. ...
          4. |-BREED.

          }=::SPECIES.
        14. BREED::=
          Net{
          1. Dog_Breed::={mixed, alsation,terrier, spanish,... }.
          2. If species=dog then breed::Dog_Breed.
          3. ...

          }=::BREED.


        15. |-Shadow in $ ANIMAL(dead, female, adult, kind=mammal, species=dog, breed=mixed ).

        . . . . . . . . . ( end of section Stuff) <<Contents | End>>
        }

      Spatial Relations

    2. SPATIAL::=
      Net{
      1. relation:: @($ STUFF and concrete, $ STUFF and concrete).
      2. |-Either normal or converse.
      3. |-Either horizontal or vertical.
      4. If horizontal then either front_to_back or side_to_side.
      5. |-Either close or near or unknown or far.
      6. Directions::={V,F,S}.
      7. direction::Directions=if(vertical, V, if(front_to_back, F, S)).

      8. Distances::={C,N,F,U}.
      9. distance::Distances=if(close,C,if(near,N,if(far,F,U))).

      }=::SPATIAL.

    3. over::= SPATIAL(normal, vertical).
    4. under::= SPATIAL(converse, vertical).
    5. in_front_of::= SPATIAL(normal, front_to_back).
    6. behind::= SPATIAL(converse, front_to_back).
    7. on_the_left::= SPATIAL(normal, side_to_side).
    8. on_the_right::= SPATIAL(converse, side_to_side).

    9. For R,S:$ SPATIAL, R parallel S::@=R (= mod direction)&(= mod distance) S.
    10. |-For R,S:$ SPATIAL, R.normal and S.converse and R parallel S iff R.relation = /(S.relation).


    11. |-For R,S:$ SPATIAL, if R.horizontal and S.vertical then no R.relation & S.relation.


    12. |-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 [ math_93_Graphics.html ]

      Tenses, Time, and Temporal modalities

        TBD

        Also see [ logic_9_Modalities.html ]

      . . . . . . . . . ( end of section Tenses, Time, and Temporal modalities) <<Contents | End>>

      Colors

      Leech pp234-237.
    13. colour::={ white, black, red, green, yellow, blue, brown, purple, pink, orange, grey, ...}.
    14. color::=colour.

      Kinship

    15. male::=$ BEING and masculine.
    16. female::=$ BEING and feminine.

      Anthropology??

    17. KINSHIP::=
      Net{
        Includes animal and plant kinship and so ignores marriage.
      1. parent::@($ BEING, $ BEING),
      2. |- (KIN0): parent ==> (<>). can not be ones own parent.

      3. sibling:: @($ BEING,$ BEING).
      4. |-sibling= (/parent;parent) & (<>).


      5. |- (KIN1): no sibling & parent.
      6. (sibling)|- (KIN2): sibling ==> (<>).
      7. (sibling, STANDARD)|- (KIN3): sibling in Symmetric & Irreflexive & Transitive.

      8. child_of::=/parent.

      9. father::= male;parent.
      10. For all x,y:$ BEING, x father y::=x is the father of y.
      11. mother::=female;parent.
      12. For all x,y:$ BEING, x mother y::=x is the mother of y.


      13. |- (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.

      14. son::= male;child_of.
      15. daughter::=female;child_of.

      16. sister::=female;sibling.
      17. brother::=male;sibling.

      18. grandfather::=father;parent.
      19. grandmother::=mother;parent.
      20. grandparent::=parent;parent.
      21. |- (KIN5): grandparent >== {grandfather, grandmother}.

      22. granddaughter::=daughter;child_of.
      23. grandson::=son;child_of.
      24. grandchild::=child_of;child_of.
      25. (above)|- (KIN6): grandchild>=={grandson, granddaughter}.


      26. (above)|- (KIN7): grandparent = /grandchild

      27. uncle::=brother;parent.
      28. aunt::=sister;parent.
      29. nephew::=son;sibling.
      30. niece::=daughter;sibling.

      31. first_cousin::=/parent;sibling;parent.
      32. second_cousin::=/parent;/parent;sibling;parent;parent.
      33. cousin::=first_cousin | /parent;cousin;parent.

      34. first_cousin_once_removed::=/parent;first_cousin | first_cousin;parent.

      35. 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).

      36. ...

      }=::KINSHIP.

      Structure of Objects

      [ PART_WHOLE in math_21_Order ]

      Ownership

    18. OWNERSHIP::=
      Net{
        This following is somewhat human-chauvinist.
      1. owner::$ CREATURE(human).
      2. owned:: $ STUFF,
      3. 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 ).
      1. Slavery::@=some( $ CREATURE(human) & ownership./owned).

      (Close Let )

      Suggested Upper Merged Ontology

    19. SUMO::= See http://icosym-nt.cvut.cz/kifb/en/.
    20. 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.

    21. top_of_SUMO_in_MATHS::=
      Net{
        encoding of a tiny part of the top of the Suggested Upper Merged Ontology...
      1. Entity::Sets.
      2. |- (E1): Some Entity.
      3. |- (E2): Entity ==< {Abstract, Physical}.
      4. instance::@( Entity, Set_or_class).
      5. subclass::@( Set_or_class, Set_or_class).
      6. ... about 20 other relations.
      7. |-For all c, if c instance Class then c subclass Entity.

      8. Physical::@Entity.
      9. Object::@Physical.
      10. Process::@Physical.
      11. |-Physical==< {Object, Process}. |- For all p:Entity, p in Physical iff for some t:Entity, l::Entity( p located l and p during t).
      12. (above)|-Physical = |[t:Entity, l:Entity](t./during & l./located).
      13. ...and 9 more...
      14. Abstract::@ Entity.
      15. |-For all a:Entity, a in Abstract iff not for some p:Entity( a located p or a during p).
      16. ... and more...
      17. Set_or_class::@Abstract.
      18. Class::@Set_or_class.

      }=::top_of_SUMO_in_MATHS.

    . . . . . . . . . ( end of section Sampler of Ontologies) <<Contents | End>>

    Systems English -- a subset of Basic English

    1. SYSTEMS::=
      Net{
        Describing Systems.

        P3Basic English - a subset of Basic English that uses the present tense(P) and third person only(3).

      1. Systems_English::semantics=system.
      2. system::Sets.

      3. Systems_English::syntax=
        Net{
          Use MATHS_Lexemes. [ notn_10_Lexicon.html ]

        1. description::=L(facts, punctuation) period.

        2. fact::=subject verb (object|) #(direction) (target|),

        3. verb::="does"|"makes"|"puts"|"gets"|"takes"|"gives"|"is"|"has"|"leaves"|"keeps"|"sends",

        4. direction::="in"|"on"|"to"|"from"|"off"|"thru"|"by"|"of"|"after"|"before"| "at"|"with"|"over"|"under"|"up"|"down"|"among"|"about"|"between"|"across"|"out",

        5. subject::=name,

        6. object::=compound|"input"|"output"|"a process"|"an object"|"data"|"a store"|"an entity".

        7. target::=thing,

        8. compound::=thing #("and" thing),

        9. thing::=("a"|"the") type | name | other_language_string.


        }=::Systems_English.

      4. Data_Base::= @Systems_English.syntax.facts.
      5. parse::Systems_English.syntax.description->@Systems_English.syntax.facts.
      6. parse("")={},
      7. for f:Systems_English.syntax.facts, parse(f)={f},
      8. for f:Systems_English.syntax.facts, p:punctuation, s:Systems_English.syntax.description, parse(f!p!s)={f} | parse(s).

        Example of a Simple Assembler System

      9. Simple_assembler:: Systems_English.syntax.description= "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." .

      10. Simple_assembler::Data_Base=parse following
        • "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

      11. P'!"is a"!T'!"in SASS" in Simple_Assembler; User:!P,T.
      12. "SASS sends"!#char!"to" X' in Simple_Assembler; User!X.

        A semantic approach is to use natural predicates.

      13. FACTS::=
        Net{
        1. Things::$ THING,
        2. things::Expression(Things).
        3. For x, y:things, (x is a y) ::@.
        4. For x, y, z:things, (x is a y of z) ::@.
        5. For x, y, z, (x gets y from z) ::@.
        6. For x, y, z, (x sends y to z) ::@.
        7. For x, y, (x is output from z) ::@.
        8. For x, y, z, (x gives y to z) ::@.

        }=::FACTS.

        Or infix operators with structures

      14. isa::@($ THING, $ THING),
      15. isa::@($ THING, $ Net{type:THING, in:$ THING }),
      16. gets::@($ THING, $ Net{it, from:$ THING }),
      17. sends::@($ THING, $ Net{ it, to:$ THING }),
      18. is_output_from::@($ THING, $ THING),
      19. gives::@($ THING, $ Net{ it, to:$ THING }).

      }=::SYSTEMS.

    . . . . . . . . . ( 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, and give them a name. 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.

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

  • STANDARD::= See http://www.csci.csusb.edu/dick/maths/math_11_STANDARD.html

    End