% Pednault's Briefcase example
% from
% Edwin Pednault. Synthesizing plans that contain actions with
% context-dependent effects. Computational Intelligence, 4(4):356-372, 1988.

include "../library-ontology"
include "../library"

sorts
  Item;

inclusions
  Item << Thing;

module BRIEFCASE;

  objects
    Paycheck, Dictionary : Item;
    Briefcase : Carrier;
    Home, Office : Place;

  actions
    PutIn(Item);
    TakeOut(Item);
    MoveB(Place);

  variables
    i : Item;
    p : Place;

  % The action PutIn is synonymous with library action Load applied 
  % to the Briefcase 
  % The action TakeOut is synonymous with library action Unload
  % The action MoveB is synonymous with library action Move applied 
  % to the Briefcase
  import CARRIER;
    Load(i,Briefcase) is PutIn(i);
    Unload(i) is TakeOut(i);
    Move(Briefcase,p) is MoveB(p);

  import NOCONCURRENCY;
