

working paper
Context in Knowledge Representation and Natural Language
AAAI 1997 Fall Symposium, MIT, November 8-10


What is Context?
================
Richard H. McCullough
organization = "Richard H. McCullough, Knowledge Engineer"
hometown = USA/California/Pioneer/95666-9586
email = rhm@cdepot.net
homepage = "http://www2.cdepot.net/~rhm"
phone = 209-295-1365


Outline
=======
Who am I?
What is context?
Principles of Knowledge
Tabula Rasa

KR Design Philosophy
KR vs. English grammar
KR vs. Formal Concept Analysis

Examples
  I is man1
  Amati & Pirri Italy

What is Knowledge Explorer?
Where can you get more information?

References

Who am I?
=========
I am Richard H. McCullough.
I am an engineer/philosopher.
I studied theory of knowledge.
I designed Knowledge Representation language.
I implemented Knowledge Explorer tool.

What is context?
================
Context is all knowledge currently available.

v := man do identify existent
at space=s,time=t,view=v statement

context of statement is
  s  where action occurs
  t  when  action occurs
  v  knowledge unit of man
	that makes statement


Principles of Knowledge
=======================

What is knowledge?

How do I organize it?

How do I describe it?



What is Knowledge?
==================

Knowledge is personal
	primarily a tool of thought
	secondarily a tool of communication

Knowledge consists of true concepts
                  and true propositions
	NOTES:
	A concept, like a proposition, is true if it
	has referents in reality; otherwise it is false.
	Truth is a combination of experience and logic
	with no contradictions.
	(Logic is the art of non-contradictory identification.)
	Possible worlds which contradict this world
	are not possible unless they involve men
	making choices.
	See Leonard Peikoff "The Analytic-Synthetic Dichotomy"

Words and sentences are the concrete symbols
   which denote concepts and propositions


How do I organize it?
=====================

How do I minimize the size?	(Rand)

	unit economy (regard)	=> unit-hierarchy

What's important to me?		(McCullough)

	purpose (view)		=> concept-hierarchy


How do I describe it?
=====================

Rand
====
	entity
	characteristic
		attribute
		part
		action
		event
		phenomenon
		relationship

	unit-hierarchy
	A concept is a mental integration of two or more units
	possessing the same distinguishing characteristic(s),
	with their particular measurements omitted.

	definition
		genus-differentia
		ostensive

	context is all knowledge currently available

McCullough
==========
	entity has attribute=value
	entity haspart part=count
	entity do action=event
	event changes eobject
		from attribute=intial to attribute=final
	event1 causes event2
	relationship has \
		r_format = "class:1; class:2; ...; class:n",
		r_meaning = " translation into primitive statements "

	concept isa genus; concept ise unit

	concept is alias
	concept is genus with differentia
	concept ise unit1, unit2, ...
	# NOTE: this is a disjunction of units, not a set of units
	# A concept is a percept or an integration of
	# two or more concepts.

	v := I do identify existent
	at space=s, time=t, view=v


axiomatic concepts
==================
at view = tabula_rasa

existent
	entity
		animal
			man is person
				I
		plant
		object
	characteristic
		attribute
		part
		action
			identify
		event
		phenomenon
		relationship
			"tabula_rasa := I do identify existent"
			"concept isa genus; concept ise unit"
			"concept is alias"
			"concept is genus with differentia"
			"entity has attribute=value"
			"entity haspart part=count" 
			"entity do action=event object"
			"event changes object \
				from attribute=initial \
				to attribute=final"
			"event1 causes event2"
			"class:1; class:2; ...; class:n"


#============================================#
# Knowledge Representation Design Philosophy #
#============================================#


consistent theory of knowledge
==============================
    axiomatic concepts
    personal concept-hierarchy
    dynamic concept-formation
    genus-differentia definitions
    logic
    permit lattice for error checking

English-like with very simple grammar
=====================================
    statements, commands, questions
    no ambiguity
    no inflections
    no word order inversion for questions
    user-friendly
    allow lists everywhere it makes sense

Knowledge Explorer interaction
==============================
    extensive error checks
    powerful search capability (questions)
    flexible input/output
    external relations
    user-adjustable parameters
    self knowledge


#========================#
# KR vs. English grammar #
#========================#

concept names
=============
	always use singular form
	action - use infinitive form
	event - use gerund form

Basic KR statements
===================
(concept-formation operators not listed here)
	at space=s,time=t,view=v

	entity has attribute=value
	entity haspart part=count
	entity do action=event
	event changes eobject \
		from attribute=intial \
		to attribute=final
	event1 causes event2

	concept is genus with differentia
	alias is concept
	concept isa genus
	concept ise unit

	if sentence1 then sentence2 else sentence3 fi

	product := entity do method object

mapping: English grammar -> KR
==============================
	declarative sentence -> statement
	interrogative sentence -> question
	imperative sentence -> command
	exclamatory sentence -> explicit only with action (e.g. I do feel)

	noun -> concept
	pronoun -> alias
	verb -> has
	     -> do action
	modifier/adjective -> attribute
	modifier/adverb -> attribute
	preposition -> at, from, to, with
	conjunction -> if-then-else-fi, and-or-not, causes
	complement/adjective -> attribute
	complement/object -> eobject

	verbal/gerund -> event
	verbal/participle -> attribute
	verbal/infinitive -> action

	inflection -> NONE (by design)
	subject person -> explicit only with alias (e.g. I,you,she)
	subject number -> quantifier, size
	verb voice (active/passive) -> operator/inverse  (e.g. ise/isa)
	verb tense -> at time=t
	verb mood -> explicit only with action (e.g. I do wish)


#================================#
# KR vs. Formal Concept Analysis #
#================================#

1. isomorphic context
=====================
For the simplest case, the contexts are isomorphic.
FCA
  A context, x, is a triple (object,attribute,relation)
  where
  object is a set {g, ...}
  attribute is a set {m, ...}
  relation is a map {g has m, ...}
KR
  # context x is a concept-hierarchy
  at view=x
  existent ise object,attribute,relation  #concept
  object ise g, ...                       #concept
  attribute ise m, ...                    #concept
  relation ise "g has m", ...             #concept

2. new concepts
===============
FCA
  Match attributes
  to determine lattice of all possible concepts.
KR
  Match attributes (integrate/differentiate)
  to determine new hierarchy.
  This new hierarchy is a new context.

3. algebraic variables
======================
FCA
  ?
KR
  Concepts may be viewed as simple algebraic variables
  in the usual sense.  For example, given
    Dutchess, Reno isa dog
    Dutchess has color=black; Dutchess do bark
    Reno has color=white; Reno do bark
  then the statements
    dog has color
    dog do bark
  are both meaningful.  The meaning is obtained
  by substituting
    dog -> Dutchess
  or
    dog -> Reno

Example: "I is man1"
====================

at space=here, time=now, view=context_I
existent
    entity
        animal
            man is person
                man1
        plant
        object
    characteristic
        attribute
            space
            time
            view
        action
            identify
        relationship
            context_I := man1 do identify existent

Integrating "I is man1" gives the updated knowledge unit.

existent
    entity
        animal
            man is person
                I is man1
        plant
        object
    characteristic
        attribute
            space
            time
            view
        action
            identify
        relationship
            context_I := man1 do identify existent
            "I is man1"
# 5:00 pm 10/31/97

# Gianni Amati and Fiora Pirri example
# AAAI 1997 context symposium
# interaction with Knowledge Explorer 1.5

# Italians go to church on Sunday,
#	love soccer and
#	eat pasta for dinner.
# Neapolitans eat pizza for dinner.
# No one eats pasta and pizza for dinner.
# Neapolitans are Italians.

# NOTES:
# 1. The statements listed above are contradictory,
#    and therefore are NOT knowledge.
# 2. The contexts listed below are very primitive.
#    Full integration of knowledge requires
#    many more concepts and definitions.

# general context
#================
at view = tabula_rasa
existent ise* ?
# see the file KEHOME/context/tabrasa.txt

hfocus = "newstatement, newword, person, event"
at view = v_general from view = tabula_rasa
person has livingplace
person do go,love,eat
Italy,Italy/Naples,church isa space
Sunday,dinner isa time
soccer isa event
pasta,pizza isa object

# Italy context
#==============
at view = v_Italy from view = v_general
Italian is person with livingplace=Italy
at time=Sunday Italian do go to space=church
Italian do love soccer
at time=dinner Italian do eat pasta

# Naples context
#===============
at view = v_Naples from view = v_Italy 
Neapolitan is Italian with livingplace=Italy/Naples
at time=dinner Neapolitan do eat pizza

# false context
#==============
at view = v_nonexistent from view = v_general
at time=dinner no person do eat pasta,pizza
#at time=dinner person do not eat pasta,pizza

What is Knowledge Explorer?
===========================

Knowledge Explorer is an interactive tool for organizing knowledge.
It helps the user to record, change and search knowledge,
and provides extensive error checking to ensure
the internal consistency of the knowledge.
Interaction with Knowledge Explorer uses simple
English-like statements, commands and questions.


Knowledge is an identification of a fact of reality,
using words and sentences.
The internal knowledge structure consists of concept-hierarchies
and space-time-dependent events.
The principal external knowledge structures are relational databases
and transliterated English.

Where can you get more information?
===================================
Knowledge Explorer Home Page
http://www2.cdepot.net/~rhm

simple examples
my published papers (text format)
references to important books (epistemology & Icon)
links to web pages (Objectivism & Icon & concept search)
Knowledge Explorer User Manual (rich text format or Windows help file)
download of Knowledge Explorer 1.5 (Windows or UNIX)


References
==========
1. David Kelley, "The Art of Reasoning", Second Expanded
Edition, W. W. Norton & Company, 1993.

2. David Kelley, "The Evidence of the Senses:
A Realist Theory of Perception", Lousiana State Press,
1988.

3. Ayn Rand, "Introduction to Objectivist Epistemology",
Expanded Second Edition, Meridian, 1990.

4. Leonard Peikoff, "Objectivism: The Philosophy of Ayn
Rand", Dutton, 1991.

5. Harry Binswanger, "The Ayn Rand Lexicon", Meridian,
1986.

6. Ralph E. Griswold and Madge T. Griswold, "The Icon
Programming Language", Third Edition, Peer-to-Peer
Communications, Inc., 1996.

7. Ralph E. Griswold, Clinton L. Jeffery, and Gregg M. Townsend,
"Graphics Programming in Icon", Peer-to-Peer Communications, Inc.,
to be published 1997.

8. Richard H. McCullough, "Knowledge Explorer",
The Icon Newsletter, No. 52, April 1, 1997.

9. Richard H. McCullough, "Knowledge Explorer User Manual",
Internet, http://www2.cdepot.net/~rhm/ke.rtf, October 1997.
Internet, http://www2.cdepot.net/~rhm/ke.hlp, October 1997.

10. Richard H. McCullough, "Knowledge Explorer Home Page",
Internet, http://www2.cdepot.net/~rhm, November 1997.
