Worksheet #8, 2nd Quarter
Linneus, Per 5
                                             Name ______________

1. Linneus (pronounced "lynn a us") is on /home/atlas1/ai/linneus.lsp
   The newer version is on /home/atlas1/ai/linneus2000.lsp

   NOTE: The newer version also needs match2000.lsp to be loaded.

   SEE A SAMPLE LINNEUS DIALOG HERE.

2. Extend the LINNEUS program to handle has links.  
  "Has" is used to mean has as parts.

   Allowable inputs should include expressions such as:

        (DOG HAS SNOUT)  or  (A DOG HAS A SNOUT)

   which expresses the fact that a dog has a snout, and

        (DOG HAS LEG)  or    (A DOG HAS A LEG)

   which says a dog has (at least one) leg. Questions can be asked as: 

        (HAS DOG PAW)  or    (HAS A DOG A PAW)

   which asks "Does a dog have a paw?" or the equivalent.


3. Expressing inheritance and transitivity with ISA and HAS.  
   Using the rules:
   RULE I: If x is a member of y, and z has an x, then z has a y.

     (X isa Y) and (Z has X) implies (Z has Y) --> (HAS Z Y) is True

   RULE II: If x is a member of y, and y has a z, then x has a z.

     (X isa Y) and (Y has z) implies (X has Z) --> (HAS X Z) is True

   Examples:  For Rule I, if your data base contains:

        a house has a door     (HOUSE HAS DOOR) or (A HOUSE HAS A DOOR)
   and  a door is a portal     (A DOOR IS A PORTAL)
   then a house has a portal   (HAS A HOUSE A PORTAL) --> True
   is a true statement
   
   For Rule II, if your data base contains:
                          a dog is an animal     
                          an animal has a heart

   then the question -->  has a dog a heart
   is true.