Project Goals
 

1)  To test and do practical Knowledge Engineering about a virtual realm of objects. (Expertly build rooms with objects based on rules.)

     Sometimes its easier to model the world as and how we see it.
 

2)   Perform higher level operations and model how state changes happen with our objects
       hasAttributes Exercise,  Event Exercise


3)  To animate non-player character agents from propositional rules 
   

4)  Provide a interface for humans to involve themselves in the lives of logically created agent creatures.

5)   To represent episodic models of memory for each agent.  (As well as abducing or creating 'Beliefs')

 

 

Room building Exercise to give it a try.

 

Room building

(The comments ';' are only when debug output is turned on)

 

[dmiles@Area1002 mud]$ assert (isa DouglasMilesOffice RoomInAConstruction)
T

[dmiles@Area1002 mud]$ teleport DouglasMilesOffice
you are now in DouglasMilesOffice

[dmiles@DouglasMilesOffice mud]$ look
Nothing apparent about douglas miles office '#$DouglasMilesOffice'
(!)

[dmiles@DouglasMilesOffice mud]$  new Thing as Tool Hammer.

; Asserted

; (thereExists (?X)
;      (and 

;         (isa ?X Hammer)

;         (isa ?X Tool)

;         (located ?X TwistyPassage45SKFn)))

; Warning

; (genls Hammer Tool) is previously entailed

;  Your new default object is 'ToolHammer53455345SKFn'

 

> set ColorProperty  Blue

; Asserted 

; (hasAttribute ToolHammer53455345SKFn ColorProperty)

; (attribute ToolHammer53455345SKFn Blue)

 

> look

You are in a maze of Twisty passages with exits leading in all directions.
Someone or something has discarded a Blue Hammer here.

 

> take hammer

; Retracted

;  (located  ToolHammer53455345SKFn TwistyPassage45SKFn)

; Asserted
;  (located  ToolHammer53455345SKFn Player8)


Persisted Data Model

At any time we can serialize the  'MOOState' context (Microtheory).

This is meant to be a solid context comprising of instances and sets.  The other ontologies about understanding and using these can stored as well as hypothetical rooms and objects.  They in could be called 'Exemplars' for example the Unicorn Pegasus is a mythological creature and could live cut off in in the 'Giant Room Of Mythological Creatures' and looks and save like an instance of Unicorn.  But Pegasus' room may not be part of the relevant KB and therefore not effecting to the rest of the system.  But how would we persist information that does not fit into a 4D space?    For example these two rules: 

 

(implies 

    (and 

        (isa ?PERSON Human) 

        (acquaintedWith ?OTHER ?PERSON))

    (acquaintances ?PERSON ?OTHER SimpleContactAcquaintance)) 

 

(implies

    (spouse ?X ?Y) 

    (friends ?X ?Y))

 

Each rule is kept in an instance of an Assertion.  Physical Regions of the MOO may be effected by any 'Set' of instances from the Assertion Class.  Assertions can be divided into Microtheories that can be believed by agents (or Mobs).  The MOO reserves no special entity for enforcement of rules unless an agent has been assigned specifically to a room to do so.  Most cases agents in the room are picking from there own private array of Assertions which is separate from  an entity using the room's set.   

 


-----------------------------------------------------------------------------------------------------------------------------------------------------
[the, shopper, drank, the, pepsi]
(thereExists ?shopper4675 
  (and (isa ?shopper4675 (FrequentPerformerFn Shopping ) ) 
   (thereExists ?pepsi6 
     (and (isa ?pepsi6 PepsiCola ) 
     (and (occursDuring ?drank7550 Past ) 
     (and (isa ?drank7550 DrinkingEvent ) 
     (performedBy ?drank7550 ?shopper4675 ) 
     (consumedObject ?drank7550 ?pepsi6 ) ) ) ) ) ) )       
                                                  
[the, shopper, drinks, the, pepsi]
(thereExists ?shopper4675 
  (and (isa ?shopper4675 (FrequentPerformerFn Shopping ) ) 
   (thereExists ?pepsi6 
     (and (isa ?pepsi6 PepsiCola ) 
     (and (occursDuring ?drank7550 Now ) 
     (and (isa ?drank7550 DrinkingEvent ) 
     (performedBy ?drank7550 ?shopper4675 ) 
     (consumedObject ?drank7550 ?pepsi6 ) ) ) ) ) ) )                           

[the, shopper, bought, fries]
(thereExists ?shopper4794 
   (and (isa ?shopper4794 (FrequentPerformerFn Shopping ) ) 
   (and (and (isa ?fries20 Frying ) 
   (objectOfStateChange ?fries20 ?POSSESSOR13610 ) ) 
   (and (occursDuring ?bought3 Past ) 
   (and (isa ?bought3 Buying ) 
   (buyer ?bought3 ?shopper4794 ) 
   (objectPaidFor ?bought3 ?fries20 ) ) ) ) ) )

[the, shopper, bought, fries, with, his, pepsi]
(thereExists ?shopper4863 
    (and (isa ?shopper4863 (FrequentPerformerFn Shopping ) ) 
    (and (isa ?pepsi42 PepsiCola ) 
    (and (and (and (isa ?fries103 Frying ) 
       (objectOfStateChange ?fries103 ?POSSESSOR13613 ) ) 
    (and (isa ?bought4 Buying ) (seller ?bought4 ?shopper4863 ) 
    (objectPaidFor ?bought4 ?fries103 ) 
    (buyingPerformer ?bought4 ?pepsi42 ) ) ) 
    (equals ?POSSESSOR13613 
            (OneOfFn (PronounFn ThirdPerson-NLAttr Singular-NLAttr Masculine-NLAttr PossessivePronoun-Post ) 
             (PronounFn ThirdPerson-NLAttr Singular-NLAttr Masculine-NLAttr PossessivePronoun-Pre ) ) ) 
    (controls (OneOfFn (PronounFn ThirdPerson-NLAttr Singular-NLAttr Masculine-NLAttr PossessivePronoun-Post ) 
                           (PronounFn ThirdPerson-NLAttr Singular-NLAttr Masculine-NLAttr PossessivePronoun-Pre ) )
                   ?pepsi42 ) ) ) ) )



|    english2Kif("I see you").
assert(known_phrase(verbSemTrans(#$and(#$isa(?ACTION1, #$VisualPerception), #$pe
rformedBy(?ACTION1, ?Speaker), #$perceivedThings(?ACTION1, ?TargetAgent)), true)
))


e2c("George fell last year").

[[txt, 'George'], [tag, staart, nnp, np]]
[[txt, fell], [tag, z, vbd]]
[[txt, last], [tag, z, jj, ap, 'Adjective', 'Adverb', 'CountNoun', 'WHAdverb']]
[[txt, year], [tag, laast, nn, 'CountNoun']]

seg([p('VP_non_cyclic', 1, 1), p('VP_non_cyclic', 2, 2), p('PP_non_cyclic', 3, 3), p('VP_non_cyclic', 4, 4)])

(implies 
  (equals ?GEORGE2 
    (OneOfFn EddieGeorge-FootballPlayer-American 
      (CityNamedFn "George" RepublicOfSouthAfrica ) ) ) 
  (and 
    (isa ?FELL1 Event ) 
    (implies 
      (and 
        (isa ?YEAR5 CalendarYear ) 
        (isa ?YEAR5 ContemporaryArtifact ) ) 
      (or 
        (and 
          (isa ?FELL1 CuttingDownATree ) 
          (objectOfStateChange ?FELL1 ?YEAR5 ) 
          (doneBy ?FELL1 ?GEORGE2 ) ) 
        (and 
          (organismKilled ?FELL1 ?YEAR5 ) 
          (isa ?FELL1 CuttingDownATree ) 
          (performedBy ?FELL1 ?GEORGE2 ) ) ) ) ) )



e2c("I see you").

[[txt, 'I'], [tag, staart, ppss, prp, 'ExpletivePronoun', 'IndefinitePronoun', 'Number-SP', 'ObjectPronoun', 'PossessivePronoun', 'PossessivePronoun-Post', 'Pronoun', 'Pronoun-SubjectOrObject', 'ReciprocalPronoun', 'ReflexivePronoun', 'SubjectPronoun', 'WHPronoun']]
[[txt, see], [tag, z, vb]]
[[txt, you], [tag, laast, ppss, ppo, prp, 'Determiner', 'Determiner-Central', 'Determiner-ClassA', 'Determiner-ClassB', 'Determiner-ClassC', 'ExpletivePronoun', 'IndefinitePronoun', 'Number-SP', 'ObjectPronoun', 'PossessivePronoun', 'PossessivePronoun-Post', 'Postdeterminer', 'Pronoun', 'Pronoun-SubjectOrObject', 'ReciprocalPronoun', 'ReflexivePronoun', 'SubjectPronoun', 'WHDeterminer', 'WHPronoun']]

seg([p('ADVP_non_cyclic', 1, 1), p('VP_non_cyclic', 2, 2), p('ADVP_non_cyclic', 3, 3)])

(thereExists ?SPEAKER 
  (and 
    (isa ?SPEAKER Person ) 
    (and 
      (isa ?SEE1 Event ) 
      (thereExists ?TARGETAGENT 
        (and 
          (isa ?TARGETAGENT Person ) 
          (or 
            (awareOf ?SPEAKER ?TARGETAGENT ) 
            (and 
              (isa ?SEE1 VisualPerception ) 
              (performedBy ?SEE1 ?SPEAKER ) 
              (perceivedThings ?SEE1 ?TARGETAGENT ) ) ) ) ) ) ) )

e2c("I seen the wood").

[[txt, 'I'], [tag, staart, ppss, prp, 'ExpletivePronoun', 'IndefinitePronoun', 'Number-SP', 'ObjectPronoun', 'PossessivePronoun', 'PossessivePronoun-Post', 'Pronoun', 'Pronoun-SubjectOrObject', 'ReciprocalPronoun', 'ReflexivePronoun', 'SubjectPronoun', 'WHPronoun']]
[[txt, seen], [tag, z, vbn]]
[[txt, a], [tag, z, dt, at, 'Determiner', 'Determiner-Central', 'Determiner-ClassA', 'Determiner-ClassB', 'Determiner-ClassC', 'Determiner-Indefinite', 'Postdeterminer', 'WHDeterminer', 'CountNoun', 'MassNoun', 'MassNoun-Generic']]
[[txt, wood], [tag, laast, nn, 'CountNoun', 'MassNoun', 'MassNoun-Generic']]

seg([p('ADVP_non_cyclic', 1, 1), p('VP_non_cyclic', 2, 2), p('QP', 3, 4)])

(thereExists ?SPEAKER 
  (and 
    (isa ?SPEAKER Person ) 
    (and 
      (isa ?SEEN1 Event ) 
      (thereExists ?WOOD5 
        (and 
          (isa ?WOOD5 
            (OneOfFn Wood Wood-GolfClub WoodedArea ) ) 
          (or 
            (awareOf ?SPEAKER ?WOOD5 ) 
            (and 
              (isa ?SEEN1 VisualPerception ) 
              (performedBy ?SEEN1 ?SPEAKER ) 
              (perceivedThings ?SEEN1 ?WOOD5 ) ) ) ) ) ) ) )

e2c("I sawed the wood").

[[txt, 'I'], [tag, staart, ppss, prp, 'ExpletivePronoun', 'IndefinitePronoun', 'Number-SP', 'ObjectPronoun', 'PossessivePronoun', 'PossessivePronoun-Post', 'Pronoun', 'Pronoun-SubjectOrObject', 'ReciprocalPronoun', 'ReflexivePronoun', 'SubjectPronoun', 'WHPronoun']]
[[txt, sawed], [tag, z, 'NLWordForm', 'Verb', 'Adjective']]
[[txt, a], [tag, z, dt, at, 'Determiner', 'Determiner-Central', 'Determiner-ClassA', 'Determiner-ClassB', 'Determiner-ClassC', 'Determiner-Indefinite', 'Postdeterminer', 'WHDeterminer', 'CountNoun', 'MassNoun', 'MassNoun-Generic']]
[[txt, wood], [tag, laast, nn, 'CountNoun', 'MassNoun', 'MassNoun-Generic']]


(thereExists ?SPEAKER 
  (and 
    (isa ?SPEAKER Person ) 
    (and 
      (isa ?SAWED1 Event ) 
      (thereExists ?WOOD11 
        (and 
          (isa ?WOOD11 
            (OneOfFn Wood Wood-GolfClub WoodedArea ) ) 
          (and 
            (isa ?SAWED1 SawingSomething ) 
            (objectOfStateChange ?SAWED1 ?WOOD11 ) 
            (doneBy ?SAWED1 ?SPEAKER ) ) ) ) ) ) )

e2c("I see two books on a shelf").

[[txt, 'I'], [tag, staart, ppss, prp, 'ExpletivePronoun', 'IndefinitePronoun', 'Number-SP', 'ObjectPronoun', 'PossessivePronoun', 'PossessivePronoun-Post', 'Pronoun', 'Pronoun-SubjectOrObject', 'ReciprocalPronoun', 'ReflexivePronoun', 'SubjectPronoun', 'WHPronoun']]
[[txt, see], [tag, z, vb]]
[[txt, two], [tag, z, cd, 'CountNoun', 'Determiner', 'Determiner-Central', 'Determiner-ClassA', 'Determiner-ClassB', 'Determiner-ClassC', 'ExpletivePronoun', 'IndefinitePronoun', 'Number-SP', 'ObjectPronoun', 'PossessivePronoun', 'PossessivePronoun-Post', 'Postdeterminer', 'Pronoun', 'Pronoun-SubjectOrObject', 'ReciprocalPronoun', 'ReflexivePronoun', 'SubjectPronoun', 'WHDeterminer', 'WHPronoun']]
[[txt, books], [tag, z, nns, 'CountNoun', 'ProperCountNoun', 'ProperNoun']]
[[txt, on], [tag, z, in, 'Adverb', 'Preposition', 'Preposition-Directional-Telic', 'Preposition-Locative', 'VerbParticle', 'WHAdverb']]
[[txt, a], [tag, z, dt, at, 'Determiner', 'Determiner-Central', 'Determiner-ClassA', 'Determiner-ClassB', 'Determiner-ClassC', 'Determiner-Indefinite', 'Postdeterminer', 'WHDeterminer', 'CountNoun', 'MassNoun', 'MassNoun-Generic']]
[[txt, shelf], [tag, laast, nn, 'CountNoun']]

seg([p('ADVP_non_cyclic', 1, 1), p('VP_non_cyclic', 2, 2), p('QP', 3, 4), p('PP_non_cyclic', 5, 5), p('QP', 6, 7)])

(thereExists ?SPEAKER 
  (and 
    (isa ?SPEAKER Person ) 
    (and 
      (isa ?SEE2 Event ) 
      (thereExistExactly 2 ?TWO2 
        (and 
          (and 
            (isa ?TWO2 BookCopy ) 
            (isa ?TWO2 Thing ) ) 
          (and 
            (or 
              (awareOf ?SPEAKER ?TWO2 ) 
              (and 
                (isa ?SEE2 VisualPerception ) 
                (performedBy ?SEE2 ?SPEAKER ) 
                (perceivedThings ?SEE2 ?TWO2 ) ) ) 
            (thereExists ?SHELF5 
              (and 
                (isa ?SHELF5 ShelfInABuilding ) 
                (on-UnderspecifiedSurface ?TWO2 ?SHELF5 ) ) ) ) ) ) ) ) )

e2c("I see two books sitting on a shelf").

[[txt, 'I'], [tag, staart, ppss, prp, 'ExpletivePronoun', 'IndefinitePronoun', 'Number-SP', 'ObjectPronoun', 'PossessivePronoun', 'PossessivePronoun-Post', 'Pronoun', 'Pronoun-SubjectOrObject', 'ReciprocalPronoun', 'ReflexivePronoun', 'SubjectPronoun', 'WHPronoun']]
[[txt, see], [tag, z, vb]]
[[txt, two], [tag, z, cd, 'CountNoun', 'Determiner', 'Determiner-Central', 'Determiner-ClassA', 'Determiner-ClassB', 'Determiner-ClassC', 'ExpletivePronoun', 'IndefinitePronoun', 'Number-SP', 'ObjectPronoun', 'PossessivePronoun', 'PossessivePronoun-Post', 'Postdeterminer', 'Pronoun', 'Pronoun-SubjectOrObject', 'ReciprocalPronoun', 'ReflexivePronoun', 'SubjectPronoun', 'WHDeterminer', 'WHPronoun']]
[[txt, books], [tag, z, nns, 'CountNoun', 'ProperCountNoun', 'ProperNoun']]
[[txt, sitting], [tag, z, vbg, 'GerundiveCountNoun', 'GerundiveNoun', 'MassNoun-Generic', 'Adjective']]
[[txt, on], [tag, z, in, 'Adverb', 'Preposition', 'Preposition-Directional-Telic', 'Preposition-Locative', 'VerbParticle', 'WHAdverb']]
[[txt, a], [tag, z, dt, at, 'Determiner', 'Determiner-Central', 'Determiner-ClassA', 'Determiner-ClassB', 'Determiner-ClassC', 'Determiner-Indefinite', 'Postdeterminer', 'WHDeterminer', 'CountNoun', 'MassNoun', 'MassNoun-Generic']]
[[txt, shelf], [tag, laast, nn, 'CountNoun']]

seg([p('ADVP_non_cyclic', 1, 1), p('VP_non_cyclic', 2, 2), p('QP', 3, 4), p('VP_non_cyclic', 5, 5), p('PP_non_cyclic', 6, 6), p('QP', 7, 8)])

(thereExists ?SPEAKER 
  (and 
    (isa ?SPEAKER Person ) 
    (and 
      (isa ?SEE3 Event ) 
      (thereExistExactly 2 ?TWO4 
        (and 
          (and 
            (isa ?TWO4 BookCopy ) 
            (isa ?TWO4 SittingDown ) ) 
          (and 
            (or 
              (awareOf ?SPEAKER ?TWO4 ) 
              (and 
                (isa ?SEE3 VisualPerception ) 
                (performedBy ?SEE3 ?SPEAKER ) 
                (perceivedThings ?SEE3 ?TWO4 ) ) ) 
            (thereExists ?SHELF11 
              (and 
                (isa ?SHELF11 ShelfInABuilding ) 
                (on-UnderspecifiedSurface ?TWO4 ?SHELF11 ) ) ) ) ) ) ) ) )

e2c("I can see you").

[[txt, 'I'], [tag, staart, ppss, prp, 'ExpletivePronoun', 'IndefinitePronoun', 'Number-SP', 'ObjectPronoun', 'PossessivePronoun', 'PossessivePronoun-Post', 'Pronoun', 'Pronoun-SubjectOrObject', 'ReciprocalPronoun', 'ReflexivePronoun', 'SubjectPronoun', 'WHPronoun']]
[[txt, can], [tag, z, md, 'Modal', 'CountNoun']]
[[txt, see], [tag, z, vb]]
[[txt, you], [tag, laast, ppss, ppo, prp, 'Determiner', 'Determiner-Central', 'Determiner-ClassA', 'Determiner-ClassB', 'Determiner-ClassC', 'ExpletivePronoun', 'IndefinitePronoun', 'Number-SP', 'ObjectPronoun', 'PossessivePronoun', 'PossessivePronoun-Post', 'Postdeterminer', 'Pronoun', 'Pronoun-SubjectOrObject', 'ReciprocalPronoun', 'ReflexivePronoun', 'SubjectPronoun', 'WHDeterminer', 'WHPronoun']]

seg([p('ADVP_non_cyclic', 1, 1), p('VP_non_cyclic', 2, 2), p('VP_non_cyclic', 3, 3), p('ADVP_non_cyclic', 4, 4)])

(thereExists ?SPEAKER 
  (and 
    (isa ?SPEAKER Person ) 
    (and 
      (behavourCapable ?SPEAKER ?SEE4 ) 
      (and 
        (isa ?SEE4 Event ) 
        (thereExists ?TARGETAGENT 
          (and 
            (isa ?TARGETAGENT Person ) 
            (or 
              (awareOf ?SPEAKER ?TARGETAGENT ) 
              (and 
                (isa ?SEE4 VisualPerception ) 
                (performedBy ?SEE4 ?SPEAKER ) 
                (perceivedThings ?SEE4 ?TARGETAGENT ) ) ) ) ) ) ) ) )

e2c("Fido is a dog").

[[txt, 'Fido'], [tag, staart]]
[[txt, is], [tag, z, bez, vbz, 'BeAux']]
[[txt, a], [tag, z, dt, at, 'Determiner', 'Determiner-Central', 'Determiner-ClassA', 'Determiner-ClassB', 'Determiner-ClassC', 'Determiner-Indefinite', 'Postdeterminer', 'WHDeterminer', 'CountNoun', 'MassNoun', 'MassNoun-Generic']]
[[txt, dog], [tag, laast, nn, 'CountNoun']]


(implies 
  (properNameString ?FIDO3 "Fido" ) 
  (thereExists ?DOG8 
    (and 
      (and 
        (isa ?DOG8 InsultingSomeone ) 
        (subjectOfInfo ?DOG8 :POSSESSOR ) ) 
      (and 
        (isa ?IS1 Living ) 
        (occursDuring ?IS1 Now ) 
        (preActors ?IS1 ?FIDO3 ) 
        (actors ?IS1 ?DOG8 ) ) ) ) )

e2c("Who is the president of the United States of America ?").

[[txt, 'Who'], [tag, staart, nnp, prp, wp, 'ExpletivePronoun', 'IndefinitePronoun', 'Number-SP', 'ObjectPronoun', 'PossessivePronoun', 'PossessivePronoun-Post', 'Pronoun', 'Pronoun-SubjectOrObject', 'ReciprocalPronoun', 'ReflexivePronoun', 'SubjectPronoun', 'WHPronoun']]
[[txt, is], [tag, z, bez, vbz, 'BeAux']]
[[txt, a], [tag, z, dt, at, 'Determiner', 'Determiner-Central', 'Determiner-ClassA', 'Determiner-ClassB', 'Determiner-ClassC', 'Determiner-Indefinite', 'Postdeterminer', 'WHDeterminer', 'CountNoun', 'MassNoun', 'MassNoun-Generic']]
[[txt, president], [tag, z, nn, 'CountNoun', 'ProperCountNoun', 'ProperNoun', 'Adjective']]
[[txt, of], [tag, z, in, 'Preposition', 'Preposition-Of']]
[[txt, a], [tag, z, dt, at, 'Determiner', 'Determiner-Central', 'Determiner-ClassA', 'Determiner-ClassB', 'Determiner-ClassC', 'Determiner-Indefinite', 'Postdeterminer', 'WHDeterminer', 'CountNoun', 'MassNoun', 'MassNoun-Generic']]
[[txt, 'United', 'States', of, 'America'], [tag, z]]
[[txt, ?], [tag, laast, ?, 'Punctuation-SP']]


(CYC-QUERY 
  (thereExists ?Who 
    (thereExists ?PRESIDENT46 
      (and 
        (and 
          (and 
            (isa ?PRESIDENT46 Thing ) 
            (isa ?PRESIDENT46 Thing ) ) 
          (isa ?PRESIDENT46 
            (OneOfFn PresidentOfOrganization 
              (SubcollectionOfWithRelationFromTypeFn Person president Organization ) ) ) ) 
        (and 
          (and 
            (isa ?IS10 Living ) 
            (occursDuring ?IS10 Now ) 
            (preActors ?IS10 ?Who ) 
            (actors ?IS10 ?PRESIDENT46 ) ) 
          (thereExists ?G300312 
            (and 
              (eq ?G300312 UnitedStatesOfAmerica ) 
              (possessiveRelation ?G300312 ?PRESIDENT46 ) ) ) ) ) ) ) )

e2c("I saw him").

[[txt, 'I'], [tag, staart, ppss, prp, 'ExpletivePronoun', 'IndefinitePronoun', 'Number-SP', 'ObjectPronoun', 'PossessivePronoun', 'PossessivePronoun-Post', 'Pronoun', 'Pronoun-SubjectOrObject', 'ReciprocalPronoun', 'ReflexivePronoun', 'SubjectPronoun', 'WHPronoun']]
[[txt, saw], [tag, z, vbd, 'CountNoun']]
[[txt, him], [tag, laast, ppo, prp, 'ExpletivePronoun', 'IndefinitePronoun', 'Number-SP', 'ObjectPronoun', 'PossessivePronoun', 'PossessivePronoun-Post', 'Pronoun', 'Pronoun-SubjectOrObject', 'ReciprocalPronoun', 'ReflexivePronoun', 'SubjectPronoun', 'WHPronoun']]

seg([p('ADVP_non_cyclic', 1, 1), p('VP_non_cyclic', 2, 2), p('ADVP_non_cyclic', 3, 3)])

(thereExists ?SPEAKER 
  (and 
    (isa ?SPEAKER Person ) 
    (and 
      (isa ?SAW1 Event ) 
      (thereExists ?HIM 
        (and 
          (equals ?HIM 
            (PronounFn ThirdPerson-NLAttr Singular-NLAttr Masculine-NLAttr ObjectPronoun ) ) 
          (or 
            (awareOf ?SPEAKER ?HIM ) 
            (and 
              (isa ?SAW1 SawingSomething ) 
              (objectOfStateChange ?SAW1 ?HIM ) 
              (doneBy ?SAW1 ?SPEAKER ) ) 
            (and 
              (isa ?SAW1 VisualPerception ) 
              (performedBy ?SAW1 ?SPEAKER ) 
              (perceivedThings ?SAW1 ?HIM ) ) ) ) ) ) ) )

e2c("I saw him Monday").

[[txt, 'I'], [tag, staart, ppss, prp, 'ExpletivePronoun', 'IndefinitePronoun', 'Number-SP', 'ObjectPronoun', 'PossessivePronoun', 'PossessivePronoun-Post', 'Pronoun', 'Pronoun-SubjectOrObject', 'ReciprocalPronoun', 'ReflexivePronoun', 'SubjectPronoun', 'WHPronoun']]
[[txt, saw], [tag, z, vbd, 'CountNoun']]
[[txt, him], [tag, z, ppo, prp, 'ExpletivePronoun', 'IndefinitePronoun', 'Number-SP', 'ObjectPronoun', 'PossessivePronoun', 'PossessivePronoun-Post', 'Pronoun', 'Pronoun-SubjectOrObject', 'ReciprocalPronoun', 'ReflexivePronoun', 'SubjectPronoun', 'WHPronoun']]
[[txt, 'Monday'], [tag, laast, nnp, nr, 'CountNoun', 'ProperCountNoun', 'ProperNoun']]

seg([p('ADVP_non_cyclic', 1, 1), p('VP_non_cyclic', 2, 2), p('ADVP_non_cyclic', 3, 3), p('VP_non_cyclic', 4, 4)])

(thereExists ?SPEAKER 
  (and 
    (isa ?SPEAKER Person ) 
    (implies 
      (occursDuring ?SAW2 Monday ) 
      (holdsIn ?SAW2 
        (and 
          (isa ?SAW2 Event ) 
          (thereExists ?HIM 
            (and 
              (equals ?HIM 
                (PronounFn ThirdPerson-NLAttr Singular-NLAttr Masculine-NLAttr ObjectPronoun ) ) 
              (or 
                (awareOf ?SPEAKER ?HIM ) 
                (and 
                  (isa ?SAW2 SawingSomething ) 
                  (objectOfStateChange ?SAW2 ?HIM ) 
                  (doneBy ?SAW2 ?SPEAKER ) ) 
                (and 
                  (isa ?SAW2 VisualPerception ) 
                  (performedBy ?SAW2 ?SPEAKER ) 
                  (perceivedThings ?SAW2 ?HIM ) ) ) ) ) ) ) ) ) )

e2c("I saw him January").

[[txt, 'I'], [tag, staart, ppss, prp, 'ExpletivePronoun', 'IndefinitePronoun', 'Number-SP', 'ObjectPronoun', 'PossessivePronoun', 'PossessivePronoun-Post', 'Pronoun', 'Pronoun-SubjectOrObject', 'ReciprocalPronoun', 'ReflexivePronoun', 'SubjectPronoun', 'WHPronoun']]
[[txt, saw], [tag, z, vbd, 'CountNoun']]
[[txt, him], [tag, z, ppo, prp, 'ExpletivePronoun', 'IndefinitePronoun', 'Number-SP', 'ObjectPronoun', 'PossessivePronoun', 'PossessivePronoun-Post', 'Pronoun', 'Pronoun-SubjectOrObject', 'ReciprocalPronoun', 'ReflexivePronoun', 'SubjectPronoun', 'WHPronoun']]
[[txt, 'January'], [tag, laast, nnp, np, 'ProperCountNoun', 'ProperNoun']]

seg([p('ADVP_non_cyclic', 1, 1), p('VP_non_cyclic', 2, 2), p('ADVP_non_cyclic', 3, 3), p('VP_non_cyclic', 4, 4)])

(thereExists ?SPEAKER 
  (and 
    (isa ?SPEAKER Person ) 
    (implies 
      (occursDuring ?SAW3 January ) 
      (holdsIn ?SAW3 
        (and 
          (isa ?SAW3 Event ) 
          (thereExists ?HIM 
            (and 
              (equals ?HIM 
                (PronounFn ThirdPerson-NLAttr Singular-NLAttr Masculine-NLAttr ObjectPronoun ) ) 
              (or 
                (awareOf ?SPEAKER ?HIM ) 
                (and 
                  (isa ?SAW3 SawingSomething ) 
                  (objectOfStateChange ?SAW3 ?HIM ) 
                  (doneBy ?SAW3 ?SPEAKER ) ) 
                (and 
                  (isa ?SAW3 VisualPerception ) 
                  (performedBy ?SAW3 ?SPEAKER ) 
                  (perceivedThings ?SAW3 ?HIM ) ) ) ) ) ) ) ) ) )

e2c("I saw him January twenty first").

[[txt, 'I'], [tag, staart, ppss, prp, 'ExpletivePronoun', 'IndefinitePronoun', 'Number-SP', 'ObjectPronoun', 'PossessivePronoun', 'PossessivePronoun-Post', 'Pronoun', 'Pronoun-SubjectOrObject', 'ReciprocalPronoun', 'ReflexivePronoun', 'SubjectPronoun', 'WHPronoun']]
[[txt, saw], [tag, z, vbd, 'CountNoun']]
[[txt, him], [tag, z, ppo, prp, 'ExpletivePronoun', 'IndefinitePronoun', 'Number-SP', 'ObjectPronoun', 'PossessivePronoun', 'PossessivePronoun-Post', 'Pronoun', 'Pronoun-SubjectOrObject', 'ReciprocalPronoun', 'ReflexivePronoun', 'SubjectPronoun', 'WHPronoun']]
[[txt, 'January'], [tag, z, nnp, np, 'ProperCountNoun', 'ProperNoun']]
[[txt, twenty], [tag, z, cd, 'CountNoun', 'Determiner', 'Determiner-Central', 'Determiner-ClassA', 'Determiner-ClassB', 'Determiner-ClassC', 'ExpletivePronoun', 'IndefinitePronoun', 'Number-SP', 'ObjectPronoun', 'PossessivePronoun', 'PossessivePronoun-Post', 'Postdeterminer', 'Pronoun', 'Pronoun-SubjectOrObject', 'ReciprocalPronoun', 'ReflexivePronoun', 'SubjectPronoun', 'WHDeterminer', 'WHPronoun']]
[[txt, first], [tag, laast, jj, od, rb, 'Adjective', 'Adverb', 'CountNoun', 'NongradableAdjective', 'OrdinalAdjective', 'WHAdverb']]

seg([p('ADVP_non_cyclic', 1, 1), p('VP_non_cyclic', 2, 2), p('ADVP_non_cyclic', 3, 3), p('VP_non_cyclic', 4, 4), p('QP', 5, 5), p('PP_non_cyclic', 6, 6)])

e2c("Monday ' s concert should be good").

[[txt, 'Monday\'s'], [txt, 'Monday', '\'s'], [txt, 'Monday'], [tag, staart, '\'s', 'nr$']]
[[txt, concert], [tag, z, nn, 'CountNoun']]
[[txt, should], [tag, z, md, 'Modal']]
[[txt, be], [tag, z, be, vb, 'BeAux']]
[[txt, good], [tag, laast, jj, 'Adjective']]


e2c("We did it in Jan").

[[txt, 'We'], [tag, staart, prp, ppss, 'Determiner', 'Determiner-Central', 'Determiner-ClassA', 'Determiner-ClassB', 'Determiner-ClassC', 'ExpletivePronoun', 'IndefinitePronoun', 'Number-SP', 'ObjectPronoun', 'PossessivePronoun', 'PossessivePronoun-Post', 'Postdeterminer', 'Pronoun', 'Pronoun-SubjectOrObject', 'ReciprocalPronoun', 'ReflexivePronoun', 'SubjectPronoun', 'WHDeterminer', 'WHPronoun']]
[[txt, did], [tag, z, dod, vbd, 'DoAux']]
[[txt, it], [tag, z, prp, pps, ppo, 'ExpletivePronoun', 'IndefinitePronoun', 'Number-SP', 'ObjectPronoun', 'PossessivePronoun', 'PossessivePronoun-Post', 'Pronoun', 'Pronoun-SubjectOrObject', 'ReciprocalPronoun', 'ReflexivePronoun', 'SubjectPronoun', 'WHPronoun']]
[[txt, in], [tag, z, in, 'Adjective', 'Adverb', 'CountNoun', 'Preposition', 'Preposition-Directional-Telic', 'Preposition-Locative', 'VerbParticle', 'WHAdverb']]
[[txt, 'Jan'], [tag, laast, nnp, np]]

seg([p('ADVP_non_cyclic', 1, 1), p('VP_non_cyclic', 2, 2), p('ADVP_non_cyclic', 3, 3), p('PP_non_cyclic', 4, 4), p('VP_non_cyclic', 5, 5)])

(thereExists ?WE 
  (and 
    (equals ?WE 
      (PronounFn FirstPerson-NLAttr Plural-NLAttr Ungendered-NLAttr SubjectPronoun ) ) 
    (and 
      (and 
        (occursDurring ?IN3 ?G431374 ) 
        (bodilyDoer ?WE ?IN3 ) ) 
      (implies 
        (properNameString ?JAN68 "Jan" ) 
        (and 
          (occursDuring ?IN3 Now ) 
          (holdsIn ?IN3 
            (in-UnderspecifiedContainer ?WE ?JAN68 ) ) ) ) ) ) )


e2c("Failure to comply may result in dismissal").

[[txt, 'Failure'], [tag, staart, nn, 'CountNoun', 'MassNoun', 'MassNoun-Generic']]
[[txt, to], [tag, z, to, in, 'InfinitiveComp', 'Preposition', 'Preposition-Directional']]
[[txt, comply], [tag, z, vb, 'Adjective', 'Adverb', 'WHAdverb']]
[[txt, may], [tag, z, md, 'Modal', 'ProperCountNoun', 'ProperNoun']]
[[txt, result], [tag, z, nn, vb, 'CountNoun']]
[[txt, in], [tag, z, in, 'Adjective', 'Adverb', 'CountNoun', 'Preposition', 'Preposition-Directional-Telic', 'Preposition-Locative', 'VerbParticle', 'WHAdverb']]
[[txt, dismissal], [tag, laast, nn, 'CountNoun', 'Adjective']]

seg([p('VP_non_cyclic', 1, 1), p('PP_non_cyclic', 2, 2), p('VP_non_cyclic', 3, 3), p('VP_non_cyclic', 4, 4), p('VP_non_cyclic', 5, 5), p('PP_non_cyclic', 6, 6), p('VP_non_cyclic', 7, 7)])

(implies 
  (properNameString ?FAILURE3 "Failure" ) 
  (and 
    (and 
      (isa ?RESULT3 
        (AdverbFn Comply-TheWord ) ) 
      (and 
        (behavourCapable ?FAILURE3 ?RESULT3 ) 
        (implies 
          (and 
            (isa ?DISMISSAL9 
              (NounFn Dismiss-TheWord ) ) 
            (agentPopularity ?DISMISSAL9 
              (HighAmountFn PopularityLevel ) ) ) 
          (and 
            (occursDuring ?RESULT3 Now ) 
            (holdsIn ?RESULT3 
              (eventOutcomes ?FAILURE3 ?DISMISSAL9 ) ) ) ) ) ) 
    (implies 
      (and 
        (isa ?G461366 Thing ) 
        (isa ?G461366 Thing ) ) 
      (to-UnderspecifiedLocation ?FAILURE3 ?G461366 ) ) ) )

e2c("Absence to comply may result in dismissal").

[[txt, 'Absence'], [tag, staart, 'CountNoun', 'CountNoun-Generic', 'NLWordForm', 'Noun']]
[[txt, to], [tag, z, to, in, 'InfinitiveComp', 'Preposition', 'Preposition-Directional']]
[[txt, comply], [tag, z, vb, 'Adjective', 'Adverb', 'WHAdverb']]
[[txt, may], [tag, z, md, 'Modal', 'ProperCountNoun', 'ProperNoun']]
[[txt, result], [tag, z, nn, vb, 'CountNoun']]
[[txt, in], [tag, z, in, 'Adjective', 'Adverb', 'CountNoun', 'Preposition', 'Preposition-Directional-Telic', 'Preposition-Locative', 'VerbParticle', 'WHAdverb']]
[[txt, dismissal], [tag, laast, nn, 'CountNoun', 'Adjective']]


(implies 
  (properNameString ?ABSENCE3 "Absence" ) 
  (and 
    (and 
      (isa ?RESULT7 
        (AdverbFn Comply-TheWord ) ) 
      (and 
        (behavourCapable ?ABSENCE3 ?RESULT7 ) 
        (implies 
          (and 
            (isa ?DISMISSAL18 
              (NounFn Dismiss-TheWord ) ) 
            (agentPopularity ?DISMISSAL18 
              (HighAmountFn PopularityLevel ) ) ) 
          (and 
            (occursDuring ?RESULT7 Now ) 
            (holdsIn ?RESULT7 
              (eventOutcomes ?ABSENCE3 ?DISMISSAL18 ) ) ) ) ) ) 
    (implies 
      (and 
        (isa ?G495123 Thing ) 
        (isa ?G495123 Thing ) ) 
      (to-UnderspecifiedLocation ?ABSENCE3 ?G495123 ) ) ) )

e2c("He made a request that there be an investigation").

[[txt, 'He'], [tag, staart, pps, 'ExpletivePronoun', 'IndefinitePronoun', 'Number-SP', 'ObjectPronoun', 'PossessivePronoun', 'PossessivePronoun-Post', 'Pronoun', 'Pronoun-SubjectOrObject', 'ReciprocalPronoun', 'ReflexivePronoun', 'SubjectPronoun', 'WHPronoun']]
[[txt, made], [tag, z, vbd, vbn]]
[[txt, a], [tag, z, dt, at, 'Determiner', 'Determiner-Central', 'Determiner-ClassA', 'Determiner-ClassB', 'Determiner-ClassC', 'Determiner-Indefinite', 'Postdeterminer', 'WHDeterminer', 'CountNoun', 'MassNoun', 'MassNoun-Generic']]
[[txt, request], [tag, z, nn, 'CountNoun']]
[[txt, that], [tag, z, in, cs, dt, wdt, 'Adverb', 'Complementizer', 'Determiner', 'Determiner-Central', 'Determiner-ClassA', 'Determiner-ClassB', 'Determiner-ClassC', 'Determiner-Definite', 'IndefinitePronoun', 'Number-SP', 'ObjectPronoun', 'PossessivePronoun', 'PossessivePronoun-Post', 'Postdeterminer', 'Pronoun', 'Pronoun-SubjectOrObject', 'ReciprocalPronoun', 'ReflexivePronoun', 'SubjectPronoun', 'WHAdverb', 'WHDeterminer', 'WHPronoun']]
[[txt, there], [tag, z, ex, rb, 'Adverb', 'AdverbOfPlace', 'ExpletivePronoun', 'IndefinitePronoun', 'Number-SP', 'ObjectPronoun', 'PossessivePronoun', 'PossessivePronoun-Post', 'Pronoun', 'Pronoun-SubjectOrObject', 'ReciprocalPronoun', 'ReflexivePronoun', 'SubjectPronoun', 'There-Existential', 'WHAdverb', 'WHPronoun']]
[[txt, be], [tag, z, be, vb, 'BeAux']]
[[txt, an], [tag, z, dt, at, 'Determiner', 'Determiner-Central', 'Determiner-ClassA', 'Determiner-ClassB', 'Determiner-ClassC', 'Determiner-Indefinite', 'Postdeterminer', 'WHDeterminer']]
[[txt, investigation], [tag, laast, nn, 'CountNoun', 'MassNoun', 'MassNoun-Generic']]


(thereExists ?HE 
  (and 
    (isa ?HE Male ) 
    (and 
      (isa ?MADE1 Event ) 
      (thereExists ?REQUEST8 
        (and 
          (and 
            (isa ?REQUEST8 
              (OneOfFn InformationRequest-IBT Request Requesting-CommunicationAct ) ) 
            (isa ?REQUEST8 Thing ) ) 
          (and 
            (or 
              (causes-Underspecified ?HE ?REQUEST8 ) 
              (createdBy ?REQUEST8 ?HE ) 
              (doneBy ?REQUEST8 ?HE ) 
              (and 
                (isa ?MADE1 MakingSomething ) 
                (performedBy ?MADE1 ?HE ) 
                (products ?MADE1 ?REQUEST8 ) ) ) 
            (and 
              (isa ?BE29 
                (AdverbFn There-TheWord ) ) 
              (thereExists ?INVESTIGATION7 
                (and 
                  (isa ?INVESTIGATION7 Research ) 
                  (and 
                    (isa ?BE29 Living ) 
                    (occursDuring ?BE29 Now ) 
                    (preActors ?BE29 ?REQUEST8 ) 
                    (actors ?BE29 ?INVESTIGATION7 ) ) ) ) ) ) ) ) ) ) )

 

https://docs.google.com/document/d/1fkOxnmI1LqxadvZuCRS-fGIEweIKyPn6AVGp5Yjse1I/edit

 

 

Developer�s Install and Workflow Guide  (from https://drive.google.com/?authuser=0#folders/0B0QA19UX0ehlV1ZEaXEzc3hjTWM )


 

Server Installation

 

Developing on our Team Server  (Remote developer Installation)


 

Private developer Installation


  (You probably should feel comfortable once doing this before deploying on Team Server)

      TODO

    





 

There are three client interfaces ()   


 

NPC interface (non networked code)


 

This is the only actual interface into the mud.   Here is a prey.pl client written exclusively using that interface.   The npc_toploop.pl works by breathing life into that prey AI.   You can see how the prey turns it�s head and uses scoped (limited) access to the world.



 

Http interface (In progress)



 

Annie is developing a Http interface it might be up and previewable at  http://logicmoo.prologmoo.com:(Annie�s port num choice)


 

DMiles predicts many  tools will be easier to operate from Http and may be exclusively accessible from there.





 

Telnet interface (Complete)


 

The telnetplayer.pl is another written exclusively around NPC interface:  (why you see prolog code sometimes.. the telnet server author did not think time should be invested in generating text)  It is just a rewrite of: prey.pl + npc_toploop.pl above!


 

If you�d like to see the commands available from the (NPC) interface..   Type the �help� command. you should get something that looks like..   https://docs.google.com/document/d/1SjCfYLZdc-Pr1-VgX-PXLVuItROFs5Sv3XK8XFpf8Iw/edit


 

Since, Telnet is a rather ugly way to connect and MUD actions might overwrite your typing we suggest you use any of http://en.wikipedia.org/wiki/Comparison_of_MUD_clients


 

DMiles uses  MUSHClient from  http://www.gammon.com.au/welcome.html


 

Here is the config file used to connect  (This a MUCSClient  �world config� )�  

TeamLogicmooServer.MCL   


(All this fle really does is speciy a telent to:  
logicmoo.prologmoo.com:4040)

So after you connect you might see:
 




 

What can be done here? Find out at  Logicmoo Telnet Console



 

There are several types of content you might be interested in editing




 

The outlined sections are not quite based on code hierarchy but something that has to do with the types of things a hierarchy could be generated from:



 

 

 
 
 

 

Current physical disk layout

ls -R (and comment DMIles!)


 

Virtual disk layout is created from the physical
TODO


Physically editing code

If you have cloned and set up a local server.


 

Running in SWI-Prolog you may edit it right there in SWI-Prolog development env..


Code may be edited from Github

web such as �drink�  
Example  
https://github.com/TeamSPoon/PrologMUD/edit/master/src_incoming/actions/drink.pl



 

If your server is running a form of  https://github.com/TeamSPoon/PrologMUD/blob/master/hg_push_pull.sh


 

Your local directory will be magically updated and incorporated into it�s ongoing operations.
 

the Team Server also integrates your source code w/in 30 seconds of save