Small adventure Games Gleaned off the Web
CIS 554 Programming Paradigms http://www.cis.upenn.edu/~matuszek/cis554-2014/index.html Fall 2014, David Matuszek
Marty's Interactive Fiction Engine in Prolog under marty_white
?- ensure_loaded(library(nomic_mu)).
Featuring a chatbot named Floyd whom uses
The CHAT80 system has been developed in the 70s and 80s by Fernando C.N. Pereira and David H.D. Warren. It implements a natural language question answering system that answers questions about the world: countries, cities, rivers, etc. It does so by parsing the question, translate the parse to a Prolog query and run this against its database.
This version is derived from the original via Quintus Prolog after some compatibility modifications for SWI-Prolog and adding a module header that allows using it safely together with other applications.
The code is definitely dated. Still, it provides a nice example using Prolog for parsing, assigning meaning and querying.
The copyright is as far as we know with the original authors and made
available under a classical academic use license. See LICENSE
in the
prolog/chat80
directory. The content of that file was copied from the
Python NLTK data package
that includes the chat80 files.
(base) root@gitlab:/opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog# su - tmptest
tmptest@gitlab:~$ swipl
Welcome to SWI-Prolog (threaded, 64 bits, version 8.1.15)
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software.
Please run ?- license. for legal details.
For online help and background, visit http://www.swi-prolog.org
For built-in help, use ?- help(Topic). or ?- apropos(Word).
?- pack_install(prologmud_I7).
% Contacting server at https://www.swi-prolog.org/pack/query ... ok
Install prologmud_I7@1.2.111 from https://github.com/TeamSPoon/small_adventure_games.git Y/n? Y
Create directory for packages
(1) * /home/tmptest/.local/share/swi-prolog/pack
(2) Cancel
Your choice? 1
% Cloning into '/home/tmptest/.local/share/swi-prolog/pack/small_adventure_games'...
% Checking out files: 90% (1313/1458)
% Checking out files: 91% (1327/1458)
% Checking out files: 92% (1342/1458)
% Checking out files: 93% (1356/1458)
% Checking out files: 94% (1371/1458)
% Checking out files: 95% (1386/1458)
% Checking out files: 96% (1400/1458)
% Checking out files: 97% (1415/1458)
% Checking out files: 98% (1429/1458)
% Checking out files: 99% (1444/1458)
Checking out files: 100% (1458/1458), done.
% Contacting server at https://www.swi-prolog.org/pack/query ... ok
Warning: Package depends on the following:
Warning: "logicmoo_utils", provided by logicmoo_utils@1.2.111 from https://github.com/TeamSPoon/logicmoo_utils.git
Warning: "predicate_streams", provided by predicate_streams@1.2.111 from http://github.com/TeamSPoon/predicate_streams.git
What do you wish to do
(1) * Install proposed dependencies
(2) Only install requested package
(3) Cancel
Your choice? 1
% "small_adventure_games.git" was downloaded 1 times
% Cloning into '/home/tmptest/.local/share/swi-prolog/pack/logicmoo_utils'...
i logicmoo_utils@1.2.111 - Common predicates that are used throughout LogicMOO Software
% Updating index for library /home/tmptest/.local/share/swi-prolog/pack/logicmoo_utils/prolog/
% Cloning into '/home/tmptest/.local/share/swi-prolog/pack/predicate_streams'...
Warning: warning: redirecting to https://github.com/TeamSPoon/predicate_streams.git/
i predicate_streams@1.2.111 - Implement your own Abstract Predicate Streams
% Updating index for library /home/tmptest/.local/share/swi-prolog/pack/predicate_streams/prolog/
Package: small_adventure_games
Title: PrologMUD I7 (NomicMU!) with small Adventure Games in Prolog using the CHAT80 Prolog natural language application
Installed version: 1.2.111
Author: Douglas R. Miles <logicmoo@gmail.com>, Marty White <lmw22@cornell.edu>, Fernando C.N. Pereira <unknown@unknown>, David H.D. Warren <unknown@unknown>, Jan Wielemaker <J.Wielemaker@vu.nl>
Maintainer: Douglas R, Miles <logicmoo@gmail.com>
Home page: https://github.com/TeamSPoon/prologmud_I7.git
Download URL: https://github.com/TeamSPoon/prologmud_I7/archive/V*.zip
Requires: logicmoo_utils
Activate pack "small_adventure_games" Y/n? Y
true.
?-
?- ensure_loaded(library(nomic_mu)).
?- ensure_loaded(library(nomic_mu)).
% Contacting server at https://www.swi-prolog.org/pack/query ... ok
Install dictoo@1.2.111 from GIT at https://github.com/TeamSPoon/dictoo.git Y/n? Y
% Cloning into '/home/tmptest/.local/share/swi-prolog/pack/dictoo'...
% Contacting server at https://www.swi-prolog.org/pack/query ... ok
Warning: Package depends on the following:
Warning: "gvar_syntax", provided by gvar_syntax@1.2.111 from https://github.com/TeamSPoon/gvar_syntax.git
What do you wish to do
(1) * Install proposed dependencies
(2) Only install requested package
(3) Cancel
Your choice? 1
% "dictoo.git" was downloaded 10 times
% Cloning into '/home/tmptest/.local/share/swi-prolog/pack/gvar_syntax'...
i gvar_syntax@1.2.111 - Global Variable Syntax
Package: dictoo
Title: Dict-like OO Syntax
Installed version: 1.2.111
Author: Douglas R. Miles <logicmoo@gmail.com>
Maintainer: TeamSPoon <https://github.com/TeamSPoon/>
Packager: TeamSPoon/LogicMoo <https://github.com/TeamSPoon/>
Home page: https://github.com/TeamSPoon/dictoo
Download URL: https://github.com/TeamSPoon/dictoo/releases/*.zip
Requires: gvar_syntax
Activate pack "dictoo" Y/n? Y
Loading tt0_00022_cycl.qlf ...
% 28,465,540 inferences, 11.850 CPU in 11.859 seconds (100% CPU, 2402080 Lips)
Loading ac_xnl_7166.qlf (this may take 60-120 seconds the very first time) ...
% 201,098,429 inferences, 77.354 CPU in 77.401 seconds (100% CPU, 2599732 Lips)
Loading clex_nldata.qlf ...
% 406,594 inferences, 0.417 CPU in 0.417 seconds (100% CPU, 974460 Lips)
You may start the server with:
?- srv_mu.
true.
[debug] ?- halt.
Lets exit though ..
Will be lots of inforational spam sorry.. [[skip past]]
tmptest@gitlab:~$ swipl
Welcome to SWI-Prolog (threaded, 64 bits, version 8.1.15)
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software.
Please run ?- license. for legal details.
For online help and background, visit http://www.swi-prolog.org
For built-in help, use ?- help(Topic). or ?- apropos(Word).
?- ensure_loaded(library(nomic_mu)).
% Contacting server at https://www.swi-prolog.org/pack/query ... ok
% Pack `dictoo' is already installed @1.2.111
Loading tt0_00022_cycl.qlf ...
% 648 inferences, 0.194 CPU in 0.194 seconds (100% CPU, 3339 Lips)
Loading ac_xnl_7166.qlf (this may take 60-120 seconds the very first time) ...
% 752 inferences, 1.261 CPU in 1.261 seconds (100% CPU, 596 Lips)
Loading clex_nldata.qlf ...
% 391,074 inferences, 0.371 CPU in 0.372 seconds (100% CPU, 1052937 Lips)
You may start the server with:
?- srv_mu.
true.
[debug] ?- srv_mu.
% adv_server(2666)
Server is starting on port 2666
% Thread Status Time Stack use allocated
% ---------------------------------------------------
% main running 10.247 182,704 505,696
% gc running 0.418 848 112,480
% mu_2666 running 0.000 912 112,480
% 'ORDERING TEST:~n'
% unordered was {6,[before(start,finish),before(start,x),before(start,y),before(y,finish),before(x,z)],...(_48590)}
% ordering is {8,[before(z,finish),before(x,finish),before(x,z),before(start,z),before(y,finish)],...(_49058)}
% picked [start,x,y,z,finish]
% picked [start,x,z,y,finish]
% picked [start,y,x,z,finish]
% ' END ORDERING TEST~n'
% /home/tmptest/.local/share/swi-prolog/pack/small_adventure_games/prolog/nldata/clex_lexicon_user1.nldata:97543
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_15666)]), type_props(wrench, [inherit(shiny, t)]), ...(_15682)], the(cup), _15620).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_29372)]), type_props(wrench, [inherit(shiny, t)]), ...(_29388)], the(cabinate), _29326).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_43698)]), type_props(wrench, [inherit(shiny, t)]), ...(_43714)], the(cabinate), _43652).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_57670)]), type_props(wrench, [inherit(shiny, t)]), ...(_57686)], kitchen, _57624).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_71894)]), type_props(wrench, [inherit(shiny, t)]), ...(_71910)], the(plate), _71848).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_9588)]), type_props(wrench, [inherit(shiny, t)]), ...(_9604)], the(sink), _9542).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_24194)]), type_props(wrench, [inherit(shiny, t)]), ...(_24210)], the(sink), _24148).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_38530)]), type_props(wrench, [inherit(shiny, t)]), ...(_38546)], kitchen, _38484).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_53142)]), type_props(wrench, [inherit(shiny, t)]), ...(_53158)], the(lamp), _53096).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_67580)]), type_props(wrench, [inherit(shiny, t)]), ...(_67596)], the(table), _67534).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_11300)]), type_props(wrench, [inherit(shiny, t)]), ...(_11316)], the(table), _11254).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_25896)]), type_props(wrench, [inherit(shiny, t)]), ...(_25912)], kitchen, _25850).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_40896)]), type_props(wrench, [inherit(shiny, t)]), ...(_40912)], the(flour), _40850).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_55698)]), type_props(wrench, [inherit(shiny, t)]), ...(_55714)], the(bowl), _55652).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_71188)]), type_props(wrench, [inherit(shiny, t)]), ...(_71204)], the(bowl), _71142).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_12590)]), type_props(wrench, [inherit(shiny, t)]), ...(_12606)], the(box), _12544).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_28166)]), type_props(wrench, [inherit(shiny, t)]), ...(_28182)], the(box), _28120).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_43448)]), type_props(wrench, [inherit(shiny, t)]), ...(_43464)], the(table), _43402).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_59470)]), type_props(wrench, [inherit(shiny, t)]), ...(_59486)], the(table), _59424).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_74938)]), type_props(wrench, [inherit(shiny, t)]), ...(_74954)], the(table_leg), _74892).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_14600)]), type_props(wrench, [inherit(shiny, t)]), ...(_14616)], the(apple), _14554).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_30292)]), type_props(wrench, [inherit(shiny, t)]), ...(_30308)], the(crate), _30246).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_46866)]), type_props(wrench, [inherit(shiny, t)]), ...(_46882)], the(crate), _46820).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_62924)]), type_props(wrench, [inherit(shiny, t)]), ...(_62940)], kitchen, _62878).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_79440)]), type_props(wrench, [inherit(shiny, t)]), ...(_79456)], the(fireplace), _79394).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_16090)]), type_props(wrench, [inherit(shiny, t)]), ...(_16106)], living_room, _16044).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_32702)]), type_props(wrench, [inherit(shiny, t)]), ...(_32718)], the(videocamera), _32656).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_49042)]), type_props(wrench, [inherit(shiny, t)]), ...(_49058)], living_room, _48996).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_65950)]), type_props(wrench, [inherit(shiny, t)]), ...(_65966)], the(shovel), _65904).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_82472)]), type_props(wrench, [inherit(shiny, t)]), ...(_82488)], basement, _82426).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_18188)]), type_props(wrench, [inherit(shiny, t)]), ...(_18204)], the(mushroom), _18142).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_34786)]), type_props(wrench, [inherit(shiny, t)]), ...(_34802)], garden, _34740).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_52078)]), type_props(wrench, [inherit(shiny, t)]), ...(_52094)], the(fountain), _52032).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_68962)]), type_props(wrench, [inherit(shiny, t)]), ...(_68978)], garden, _68916).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_86448)]), type_props(wrench, [inherit(shiny, t)]), ...(_86464)], the(rock), _86402).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_103514)]), type_props(wrench, [inherit(shiny, t)]), ...(_103530)], garden, _103468).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_20450)]), type_props(wrench, [inherit(shiny, t)]), ...(_20466)], the(locker), _20404).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_37594)]), type_props(wrench, [inherit(shiny, t)]), ...(_37610)], pantry, _37548).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_55468)]), type_props(wrench, [inherit(shiny, t)]), ...(_55484)], the(shelf), _55422).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_72898)]), type_props(wrench, [inherit(shiny, t)]), ...(_72914)], pantry, _72852).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_91494)]), type_props(wrench, [inherit(shiny, t)]), ...(_91510)], the(wrench), _91448).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_109562)]), type_props(wrench, [inherit(shiny, t)]), ...(_109578)], floyd, _109516).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_22964)]), type_props(wrench, [inherit(shiny, t)]), ...(_22980)], the(coins), _22918).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_41152)]), type_props(wrench, [inherit(shiny, t)]), ...(_41168)], the(bag), _41106).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_60428)]), type_props(wrench, [inherit(shiny, t)]), ...(_60444)], the(bag), _60382).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_79018)]), type_props(wrench, [inherit(shiny, t)]), ...(_79034)], the(player), _78972).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_98492)]), type_props(wrench, [inherit(shiny, t)]), ...(_98508)], the(watch), _98446).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_117148)]), type_props(wrench, [inherit(shiny, t)]), ...(_117164)], the(player), _117102).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_38096)]), type_props(wrench, [inherit(shiny, t)]), ...(_38112)], the(player), _38050).
% create_1obj('~1', [type_props(broken_videocam, [can_be(switch, f), powered=f, inherit(videocamera, t)]), type_props(videocamera, [inherit(memorize, t), inherit(perceptq, t), inherit(memorize_perceptq, t), ...(_57014)]), type_props(wrench, [inherit(shiny, t)]), ...(_57030)], kitchen, _56968).
% iObjectList={34,['player~1','watch~1','bag~1','coins~1','wrench~1'],...(_60412)}
% create_object('player~1',[shape=player,inherit(player,t),nouns([player])])
% create_object('watch~1',[shape=watch,inherit(watch,t),nouns([watch])])
% create_object('bag~1',[shape=bag,inherit(bag,t),nouns([bag])])
% create_object('coins~1',[shape=coins,inherit(coins,t),nouns([coins])])
% create_object('wrench~1',[shape=wrench,inherit(wrench,t),nouns([wrench])])
% create_object('shelf~1',[shape=shelf,inherit(shelf,t),nouns([shelf])])
% create_object('locker~1',[shape=locker,inherit(locker,t),nouns([locker])])
% create_object('rock~1',[shape=rock,inherit(rock,t),nouns([rock])])
% create_object('fountain~1',[shape=fountain,inherit(fountain,t),nouns([fountain])])
% create_object('mushroom~1',[shape=mushroom,inherit(mushroom,t),nouns([mushroom])])
% create_object('shovel~1',[shape=shovel,inherit(shovel,t),nouns([shovel])])
% create_object('videocamera~1',[shape=videocamera,inherit(videocamera,t),nouns([videocamera])])
% create_object('fireplace~1',[shape=fireplace,inherit(fireplace,t),nouns([fireplace])])
% create_object('crate~1',[shape=crate,inherit(crate,t),nouns([crate])])
% create_object('apple~1',[shape=apple,inherit(apple,t),nouns([apple])])
% create_object('table_leg~1',[shape=table_leg,inherit(table_leg,t),nouns([table_leg])])
% create_object('table~1',[shape=(table),inherit(table,t),nouns([table])])
% create_object('box~1',[shape=box,inherit(box,t),nouns([box])])
% create_object('bowl~1',[shape=bowl,inherit(bowl,t),nouns([bowl])])
% create_object('flour~1',[shape=flour,inherit(flour,t),nouns([flour])])
% create_object('lamp~1',[shape=lamp,inherit(lamp,t),nouns([lamp])])
% create_object('sink~1',[shape=sink,inherit(sink,t),nouns([sink])])
% create_object('plate~1',[shape=plate,inherit(plate,t),nouns([plate])])
% create_object('cabinate~1',[shape=cabinate,inherit(cabinate,t),nouns([cabinate])])
% create_object('cup~1',[shape=cup,inherit(cup,t),nouns([cup])])
% create_object(floyd,[name='Floyd the robot',powered=f,inherit(autonomous,t),inherit(robot,t)])
% create_object(screendoor,[door_to(kitchen),door_to(garden),opened=f,inherit(door,t)])
% create_object(brklamp,[inherit(broken,t),name='possibly broken lamp',effect(switch(on),print_(_4448,"Switch is flipped")),effect(hit,[print_("Hit brklamp"),setprop($self,inherit(broken))]),inherit(lamp,t)])
% create_object(pantry,{6,[volume_capacity=1000,nouns(closet),nominals(kitchen),desc='You\'re in a dark kitchen pantry.',dark=t],...(_132008)})
% create_object(living_room,[inherit(place,t)])
% create_object(kitchen,[inherit(place,t),desc='cooking happens here'])
% create_object(garden,[inherit(place,t),cant_go($agent,up,'You lack the ability to fly.'),cant_go($agent,_4928,'The fence surrounding the garden is too tall and solid to pass.')])
% create_object(dining_room,[inherit(place,t)])
% create_object(basement,[inherit(place,t),desc='This is a very dark basement.',dark=t])=============================================
INIT STATE
=============================================
[ props(basement,
[ volume_capacity = 10000,
default_rel = in,
has_rel(in,t),
nouns([here,basement]),
adjs([locally]),
can_be(move,f),
can_be(take,f),
has_rel(exit(Exit_Ret),t),
inherited(place),
desc = 'This is a very dark basement.',
dark = t,
co([ inherit(place,t),
desc = 'This is a very dark basement.',
dark = t
])
]),
props(dining_room,
[ volume_capacity = 10000,
default_rel = in,
has_rel(in,t),
nouns([here,dining_room]),
adjs([locally]),
can_be(move,f),
can_be(take,f),
has_rel(exit(Exit_Ret2),t),
inherited(place),
co([inherit(place,t)])
]),
props(garden,
[ volume_capacity = 10000,
default_rel = in,
has_rel(in,t),
nouns([here,garden]),
adjs([locally]),
can_be(move,f),
can_be(take,f),
has_rel(exit(Exit_Ret3),t),
inherited(place),
cant_go($agent,up,'You lack the ability to fly.'),
co([ inherit(place,t),
cant_go($agent,up,'You lack the ability to fly.'),
cant_go($ agent,
up,
'The fence surrounding the garden is too tall and solid to pass.')
])
]),
props(kitchen,
[ volume_capacity = 10000,
default_rel = in,
has_rel(in,t),
nouns([here,kitchen]),
adjs([locally]),
can_be(move,f),
can_be(take,f),
has_rel(exit(Exit_Ret4),t),
inherited(place),
desc = 'cooking happens here',
co([inherit(place,t),desc='cooking happens here'])
]),
props(living_room,
[ volume_capacity = 10000,
default_rel = in,
has_rel(in,t),
nouns([here,living_room]),
adjs([locally]),
can_be(move,f),
can_be(take,f),
has_rel(exit(Exit_Ret5),t),
inherited(place),
co([inherit(place,t)])
]),
props(pantry,
[ volume_capacity = 1000,
nouns([closet,here,pantry]),
nominals(kitchen),
desc = 'You\'re in a dark kitchen pantry.',
dark = t,
default_rel = in,
has_rel(in,t),
adjs([locally]),
can_be(move,f),
can_be(take,f),
has_rel(exit(Exit_Ret6),t),
inherited(place),
co([ volume_capacity = 1000,
nouns(closet),
nominals(kitchen),
desc = 'You\'re in a dark kitchen pantry.',
dark = t,
inherit(place,t)
])
]),
props(brklamp,
[ name = 'definately broken',
effect(switch(on),true),
effect(switch(off),true),
adjs([dented,broken,shiny,physical,fully_corporial,thinkable]),
inherited(broken),
effect(hit,
[print_("Hit brklamp"),setprop(brklamp,inherit(broken))]),
nouns([lamp,light,brklamp]),
powered = t,
can_be(switch,t),
nominals(brass),
inherited(shiny),
can_be(move,t),
can_be(touch,t),
cleanliness = clean,
class_desc([ 'kind is corporial',
'kind is normally thinkable',
'kind is an Movable Object'
]),
inherited(fully_corporial),
can_be(examine,t),
inherited(thinkable),
inherited(object),
emitting(see,light),
breaks_into = broken_lamp,
inherited(lamp),
co([ inherit(broken,t),
name = 'possibly broken lamp',
effect(switch(on),
print_(Print_Param,"Switch is flipped")),
effect(hit,
[ print_("Hit brklamp"),
setprop($self,inherit(broken))
]),
inherit(lamp,t)
])
]),
props(screendoor,
[ door_to(kitchen),
door_to(garden),
opened = f,
nouns([door,screendoor]),
can_be(take,f),
can_be(open,t),
can_be(close,t),
can_be(touch,t),
can_be(examine,t),
adjs([thinkable,fully_corporial]),
class_desc(['kind is normally thinkable','kind is corporial']),
inherited(thinkable),
cleanliness = clean,
inherited(fully_corporial),
inherited(door),
co([ door_to(kitchen),
door_to(garden),
opened = f,
inherit(door,t)
])
]),
props(floyd,
[ name = 'Floyd the robot',
powered = f,
knows_verbs(eat,f),
nouns([ autonomous,
robot,
character,
no_perceptq,
actor,
autoscan,
floyd
]),
inherited(autonomous),
emitting(see,light),
mass = 200,
adjs([ metallic,
shiny,
physical,
fully_corporial,
partly_noncorporial,
thinkable,
noncorporial
]),
desc = 'Your classic robot: metallic with glowing red eyes, enthusiastic but not very clever.',
can_be(switch,t),
can_be(move,t),
class_desc([ 'kind is an Movable Object',
'kind is corporial',
'kind is normally thinkable',
'direct inheriters are completely noncorporial',
'kind is both partly corporial and non-corporial'
]),
inherited(object),
inherited(shiny),
has_rel(worn_by,t),
has_rel(held_by,t),
model_depth = 3,
volume = 50,
has_sense(see),
inherited(no_perceptq),
knows_verbs(examine,t),
inherited(actor),
inherited(autoscan),
can_be(touch,t),
can_be(examine,t),
cleanliness = clean,
inherited(fully_corporial),
inherited(thinkable),
~(inherit(fully_corporial)),
inherited(noncorporial),
inherited(partly_noncorporial),
inherited(character),
effect(switch(on),setprop(floyd,powered=t)),
effect(switch(off),setprop(floyd,powered=f)),
inherited(robot),
co([ name = 'Floyd the robot',
powered = f,
inherit(autonomous,t),
inherit(robot,t)
])
]),
memories(floyd,
[ structure_label(mem(floyd)),
timestamp(0,51.7),
goals([]),
goals_skipped([]),
goals_satisfied([]),
todo([look(floyd)]),
inst(floyd)
]),
props('cup~1',
[ shape = cup,
nouns([cup,container,'cup~1']),
adjs([physical,fully_corporial,thinkable]),
default_rel = in,
opened = f,
can_be(open,t),
has_rel(in,t),
inherited(container),
can_be(move,t),
can_be(touch,t),
cleanliness = clean,
class_desc([ 'kind is corporial',
'kind is normally thinkable',
'kind is an Movable Object'
]),
inherited(fully_corporial),
can_be(examine,t),
inherited(thinkable),
inherited(object),
inherited(flask),
inherited(cup),
co([shape=cup,inherit(cup,t),nouns([cup])])
]),
props('cabinate~1',
[ shape = cabinate,
nouns([cabinate,container,'cabinate~1']),
default_rel = in,
opened = f,
can_be(open,t),
has_rel(in,t),
inherited(container),
adjs([untakeable,fully_corporial,physical,thinkable]),
can_be(take,f),
class_desc([ 'kind is an Immobile Object',
'kind is corporial',
'kind is normally thinkable',
'kind is furnature'
]),
inherited(untakeable),
can_be(touch,t),
inherited(fully_corporial),
has_rel(on,t),
cleanliness = clean,
inherited(surface),
can_be(examine,t),
inherited(thinkable),
inherited(furnature),
volume_capacity = 10,
inherited(cabinate),
co([shape=cabinate,inherit(cabinate,t),nouns([cabinate])])
]),
props('plate~1',
[ shape = plate,
nouns([plate,'plate~1']),
has_rel(on,t),
default_rel = on,
adjs([physical,fully_corporial,thinkable]),
inherited(surface),
can_be(move,t),
can_be(touch,t),
cleanliness = clean,
class_desc([ 'kind is corporial',
'kind is normally thinkable',
'kind is an Movable Object'
]),
inherited(fully_corporial),
can_be(examine,t),
inherited(thinkable),
inherited(object),
volume_capacity = 2,
breaks_into = shards,
name = plate,
inherited(plate),
co([shape=plate,inherit(plate,t),nouns([plate])])
]),
props('sink~1',
[ shape = sink,
nouns([sink,uncloseable,container,'sink~1']),
cleanliness = dirty,
opened = t,
can_be(close,f),
can_be(open,f),
inherited(uncloseable),
adjs([physical,untakeable,fully_corporial,thinkable]),
default_rel = in,
has_rel(in,t),
inherited(container),
can_be(move,t),
class_desc([ 'kind is an Movable Object',
'kind is an Immobile Object',
'kind is corporial',
'kind is normally thinkable',
'kind is furnature'
]),
inherited(object),
inherited(flask),
can_be(take,f),
inherited(untakeable),
can_be(touch,t),
inherited(fully_corporial),
has_rel(on,t),
inherited(surface),
can_be(examine,t),
inherited(thinkable),
inherited(furnature),
volume_capacity = 5,
inherited(sink),
co([shape=sink,inherit(sink,t),nouns([sink])])
]),
props('lamp~1',
[ shape = lamp,
nouns([lamp,light,'lamp~1']),
name = 'shiny brass lamp',
powered = t,
can_be(switch,t),
nominals(brass),
adjs([shiny,physical,fully_corporial,thinkable]),
inherited(shiny),
can_be(move,t),
can_be(touch,t),
cleanliness = clean,
class_desc([ 'kind is corporial',
'kind is normally thinkable',
'kind is an Movable Object'
]),
inherited(fully_corporial),
can_be(examine,t),
inherited(thinkable),
inherited(object),
emitting(see,light),
effect(switch(on),setprop('lamp~1',emitting(see,light))),
effect(switch(off),delprop('lamp~1',emitting(see,light))),
breaks_into = broken_lamp,
inherited(lamp),
co([shape=lamp,inherit(lamp,t),nouns([lamp])])
]),
props('flour~1',
[ shape = flour,
nouns([flour,food,'flour~1']),
can_be(eat,t),
adjs([physical,fully_corporial,thinkable,measurable]),
can_be(move,t),
can_be(touch,t),
cleanliness = clean,
class_desc([ 'kind is corporial',
'kind is normally thinkable',
'kind is an Movable Object'
]),
inherited(fully_corporial),
can_be(examine,t),
inherited(thinkable),
inherited(object),
inherited(food),
ammount = some,
inherited(measurable),
inherited(flour),
co([shape=flour,inherit(flour,t),nouns([flour])])
]),
props('bowl~1',
[ shape = bowl,
nouns([bowl,uncloseable,container,'bowl~1']),
opened = t,
can_be(close,f),
can_be(open,f),
inherited(uncloseable),
adjs([physical,fully_corporial,thinkable]),
default_rel = in,
has_rel(in,t),
inherited(container),
can_be(move,t),
can_be(touch,t),
cleanliness = clean,
class_desc([ 'kind is corporial',
'kind is normally thinkable',
'kind is an Movable Object'
]),
inherited(fully_corporial),
can_be(examine,t),
inherited(thinkable),
inherited(object),
inherited(flask),
volume_capacity = 2,
breaks_into = shards,
name = 'porcelain bowl',
desc = 'This is a modest glass cooking bowl with a yellow flower motif glazed into the outside surface.',
inherited(bowl),
co([shape=bowl,inherit(bowl,t),nouns([bowl])])
]),
props('box~1',
[ shape = box,
nouns([box,container,'box~1',cardboard,paper]),
volume_capacity = 11,
default_rel = in,
opened = f,
can_be(open,t),
has_rel(in,t),
inherited(container),
adjs([physical,fully_corporial,thinkable]),
can_be(move,t),
can_be(touch,t),
cleanliness = clean,
class_desc([ 'kind is corporial',
'kind is normally thinkable',
'kind is an Movable Object'
]),
inherited(fully_corporial),
can_be(examine,t),
inherited(thinkable),
inherited(object),
can_be(burn,t),
inherited(paper),
inherited(cardboard),
inherited(box),
co([shape=box,inherit(box,t),nouns([box])])
]),
props('table~1',
[ shape = table,
has_rel(on,t),
cleanliness = clean,
inherited(surface),
adjs(physical),
default_rel = on,
inherited(table),
nouns([table]),
co([shape=(table),inherit(table,t),nouns([table])])
]),
props('table_leg~1',
[ shape = table_leg,
inherited(table_leg),
nouns([table_leg]),
co([shape=table_leg,inherit(table_leg,t),nouns([table_leg])])
]),
props('apple~1',
[ shape = apple,
inherited(apple),
nouns([apple]),
co([shape=apple,inherit(apple,t),nouns([apple])])
]),
props('crate~1',
[ shape = crate,
nouns([crate,container,'crate~1',wooden]),
default_rel = in,
opened = f,
can_be(open,t),
has_rel(in,t),
inherited(container),
adjs([physical,fully_corporial,thinkable]),
can_be(move,t),
can_be(touch,t),
cleanliness = clean,
class_desc([ 'kind is corporial',
'kind is normally thinkable',
'kind is an Movable Object'
]),
inherited(fully_corporial),
can_be(examine,t),
inherited(thinkable),
inherited(object),
volume_capacity = 13,
breaks_into = splinters,
can_be(burn,t),
inherited(wooden),
inherited(crate),
co([shape=crate,inherit(crate,t),nouns([crate])])
]),
props('fireplace~1',
[ shape = fireplace,
nouns([fireplace,uncloseable,container,'fireplace~1']),
has_rel(on,f),
has_rel(over,t),
opened = t,
can_be(close,f),
can_be(open,f),
default_rel = in,
has_rel(in,t),
inherited(container),
inherited(uncloseable),
volume_capacity = 20,
adjs([untakeable,fully_corporial,physical,thinkable]),
can_be(take,f),
class_desc([ 'kind is an Immobile Object',
'kind is corporial',
'kind is normally thinkable',
'kind is furnature'
]),
inherited(untakeable),
can_be(touch,t),
inherited(fully_corporial),
cleanliness = clean,
inherited(surface),
can_be(examine,t),
inherited(thinkable),
inherited(furnature),
inherited(fireplace),
co([shape=fireplace,inherit(fireplace,t),nouns([fireplace])])
]),
props('videocamera~1',
[ shape = videocamera,
nouns([videocamera,memorize_perceptq]),
inherited(memorize_perceptq),
can_be(switch,t),
effect(switch(on),setprop('videocamera~1',powered=t)),
effect(switch(off),setprop('videocamera~1',powered=f)),
powered = t,
has_sense(see),
breaks_into = broken_videocam,
inherited(videocamera),
co([ shape = videocamera,
inherit(videocamera,t),
nouns([videocamera])
])
]),
memories('videocamera~1',
[ structure_label(mem('videocamera~1')),
timestamp(0,51.6),
goals([]),
goals_skipped([]),
goals_satisfied([]),
todo([look('videocamera~1')]),
inst('videocamera~1')
]),
perceptq('videocamera~1',[]),
props('shovel~1',
[ shape = shovel,
inherited(shovel),
nouns([shovel]),
co([shape=shovel,inherit(shovel,t),nouns([shovel])])
]),
props('mushroom~1',
[ shape = mushroom,
name = 'speckled mushroom',
nouns([food,'mushroom~1',mushroom,fungus,toadstool]),
adjs([physical,fully_corporial,thinkable,measurable,speckled]),
can_be(move,t),
can_be(touch,t),
cleanliness = clean,
class_desc([ 'kind is corporial',
'kind is normally thinkable',
'kind is an Movable Object'
]),
inherited(fully_corporial),
can_be(examine,t),
inherited(thinkable),
inherited(object),
ammount = some,
inherited(measurable),
inherited(food),
initial('A speckled mushroom grows out of the sodden earth, on a long stalk.'),
desc = 'The mushroom is capped with blotches, and you aren\'t at all sure it\'s not a toadstool.',
can_be(eat,t),
before(eat,(random100=<30,die('It was poisoned!');'yuck!')),
after(take,
initial ',' 'You pick the mushroom, neatly cleaving its thin stalk.'),
inherited(mushroom),
co([shape=mushroom,inherit(mushroom,t),nouns([mushroom])])
]),
props('fountain~1',
[ shape = fountain,
nouns([fountain,here,'fountain~1',sink,uncloseable,container]),
volume_capacity = 150,
adjs([locally,physical,untakeable,fully_corporial,thinkable]),
can_be(move,f),
has_rel(exit(Exit_Ret7),t),
inherited(place),
cleanliness = dirty,
opened = t,
can_be(close,f),
can_be(open,f),
inherited(uncloseable),
default_rel = in,
has_rel(in,t),
inherited(container),
class_desc([ 'kind is an Movable Object',
'kind is an Immobile Object',
'kind is corporial',
'kind is normally thinkable',
'kind is furnature'
]),
inherited(object),
inherited(flask),
can_be(take,f),
inherited(untakeable),
can_be(touch,t),
inherited(fully_corporial),
has_rel(on,t),
inherited(surface),
can_be(examine,t),
inherited(thinkable),
inherited(furnature),
inherited(sink),
inherited(fountain),
co([shape=fountain,inherit(fountain,t),nouns([fountain])])
]),
props('rock~1',
[ shape = rock,
inherited(rock),
nouns([rock]),
co([shape=rock,inherit(rock,t),nouns([rock])])
]),
props('locker~1',
[ shape = locker,
nouns([locker,container,'locker~1',metal]),
default_rel = in,
can_be(open,t),
has_rel(in,t),
inherited(container),
adjs([physical,fully_corporial,thinkable]),
can_be(move,t),
can_be(touch,t),
cleanliness = clean,
class_desc([ 'kind is corporial',
'kind is normally thinkable',
'kind is an Movable Object'
]),
inherited(fully_corporial),
can_be(examine,t),
inherited(thinkable),
inherited(object),
volume_capacity = 13,
can_be(burn,f),
inherited(metal),
opened = f,
inherited(locker),
co([shape=locker,inherit(locker,t),nouns([locker])])
]),
props('shelf~1',
[ shape = shelf,
adjs([physical,untakeable,fully_corporial,thinkable]),
can_be(take,f),
class_desc([ 'kind is an Immobile Object',
'kind is corporial',
'kind is normally thinkable',
'kind is furnature'
]),
inherited(untakeable),
can_be(touch,t),
inherited(fully_corporial),
has_rel(on,t),
default_rel = on,
cleanliness = clean,
inherited(surface),
can_be(examine,t),
nouns(['shelf~1',shelf]),
inherited(thinkable),
inherited(furnature),
inherited(shelf),
co([shape=shelf,inherit(shelf,t),nouns([shelf])])
]),
props('wrench~1',
[ shape = wrench,
nouns([wrench,'wrench~1']),
adjs([shiny,physical,thinkable,fully_corporial]),
can_be(move,t),
class_desc([ 'kind is an Movable Object',
'kind is normally thinkable',
'kind is corporial'
]),
inherited(object),
can_be(touch,t),
can_be(examine,t),
inherited(thinkable),
cleanliness = clean,
inherited(fully_corporial),
inherited(shiny),
inherited(wrench),
co([shape=wrench,inherit(wrench,t),nouns([wrench])])
]),
props('coins~1',
[ shape = coins,
nouns([coins,'coins~1']),
adjs([shiny,physical,thinkable,fully_corporial,measurable]),
can_be(move,t),
class_desc([ 'kind is an Movable Object',
'kind is normally thinkable',
'kind is corporial'
]),
inherited(object),
can_be(touch,t),
can_be(examine,t),
inherited(thinkable),
cleanliness = clean,
inherited(fully_corporial),
inherited(shiny),
ammount = some,
inherited(measurable),
inherited(coins),
co([shape=coins,inherit(coins,t),nouns([coins])])
]),
props('bag~1',
[ shape = bag,
nouns([bag,container,'bag~1']),
volume_capacity = 10,
default_rel = in,
opened = f,
can_be(open,t),
has_rel(in,t),
inherited(container),
adjs([physical,fully_corporial,thinkable]),
can_be(move,t),
can_be(touch,t),
cleanliness = clean,
class_desc([ 'kind is corporial',
'kind is normally thinkable',
'kind is an Movable Object'
]),
inherited(fully_corporial),
can_be(examine,t),
inherited(thinkable),
inherited(object),
inherited(bag),
co([shape=bag,inherit(bag,t),nouns([bag])])
]),
props('watch~1',
[ shape = watch,
inherited(watch),
nouns([watch]),
co([shape=watch,inherit(watch,t),nouns([watch])])
]),
props('player~1',
[ shape = player,
nouns([ player,
humanoid,
character,
no_perceptq,
actor,
autoscan,
'player~1'
]),
name = 'player~1',
look_depth = 2,
user_mode = 2,
access_level = admin,
adjs([ physical,
fully_corporial,
partly_noncorporial,
thinkable,
noncorporial
]),
nominals([console]),
inherited(console),
knows_verbs(eat,t),
has_rel(worn_by,t),
has_rel(held_by,t),
model_depth = 3,
mass = 50,
volume = 50,
has_sense(see),
inherited(no_perceptq),
knows_verbs(examine,t),
inherited(actor),
inherited(autoscan),
can_be(touch,t),
can_be(examine,t),
cleanliness = clean,
class_desc([ 'kind is corporial',
'kind is normally thinkable',
'direct inheriters are completely noncorporial',
'kind is both partly corporial and non-corporial'
]),
inherited(fully_corporial),
inherited(thinkable),
~(inherit(fully_corporial)),
inherited(noncorporial),
inherited(partly_noncorporial),
inherited(character),
can(switch(off),f),
powered = t,
inherited(humanoid),
inherited(player),
co([shape=player,inherit(player,t),nouns([player])])
]),
memories('player~1',
[ structure_label(mem('player~1')),
timestamp(0,51.5),
goals([]),
goals_skipped([]),
goals_satisfied([]),
todo([look('player~1')]),
inst('player~1')
]),
h(in,'player~1',kitchen),
h(worn_by,'watch~1','player~1'),
h(held_by,'bag~1','player~1'),
h(in,'coins~1','bag~1'),
h(held_by,'wrench~1',floyd),
h(in,'shelf~1',pantry),
h(in,'locker~1',pantry),
h(in,'rock~1',garden),
h(in,'fountain~1',garden),
h(in,'mushroom~1',garden),
h(in,'shovel~1',basement),
h(in,'videocamera~1',living_room),
h(in,'fireplace~1',living_room),
h(in,'crate~1',kitchen),
h(in,'apple~1','crate~1'),
h(reverse(on),'table~1','table_leg~1'),
h(on,'box~1','table~1'),
h(in,'bowl~1','box~1'),
h(in,'flour~1','bowl~1'),
h(in,'table~1',kitchen),
h(on,'lamp~1','table~1'),
h(in,'sink~1',kitchen),
h(in,'plate~1','sink~1'),
h(in,'cabinate~1',kitchen),
h(in,'cup~1','cabinate~1'),
type_props(broken_videocam,
[can_be(switch,f),powered=f,inherit(videocamera,t)]),
type_props(videocamera,
[ inherit(memorize,t),
inherit(perceptq,t),
inherit(memorize_perceptq,t),
can_be(switch,t),
effect(switch(on),setprop($self,powered=t)),
effect(switch(off),setprop($self,powered=f)),
powered = t,
has_sense(see),
breaks_into = broken_videocam
]),
type_props(wrench,[inherit(shiny,t)]),
type_props(table,[inherit(surface,t),adjs(physical),default_rel=on]),
type_props(shelf,
[inherit(surface,t),adjs(physical),inherit(furnature,t)]),
type_props(surface,
[ has_rel(on,t),
default_rel = on,
adjs(physical),
cleanliness = clean
]),
type_props(broken_lamp,
[ name = 'dented brass lamp',
nouns(light),
nominals(brass),
adjs(dented),
can_be(switch,t),
effect(switch(on),true),
effect(switch(off),true)
]),
type_props(lamp,
[ name = 'shiny brass lamp',
powered = t,
can_be(switch,t),
nouns(light),
nominals(brass),
inherit(shiny,t),
inherit(object,t),
emitting(see,light),
effect(switch(on),setprop($self,emitting(see,light))),
effect(switch(off),delprop($self,emitting(see,light))),
breaks_into = broken_lamp
]),
type_props(flour,[inherit(food,t),inherit(measurable,t)]),
type_props(coins,[inherit(shiny,t),inherit(measurable,t)]),
type_props(shiny,
[ adjs($class),
inherit(object,t),
inherit(fully_corporial,t)
]),
type_props(measurable,[adjs($class),ammount=some]),
type_props(fountain,
[volume_capacity=150,inherit(place,t),inherit(sink,t)]),
type_props(cabinate,
[ inherit(container,t),
inherit(furnature,t),
volume_capacity = 10
]),
type_props(uncloseable,
[ opened = t,
can_be(close,f),
can_be(open,f),
inherit(container,t)
]),
type_props(sink,
[ cleanliness = dirty,
inherit(uncloseable,t),
inherit(flask,t),
inherit(furnature,t),
volume_capacity = 5
]),
type_props(paper,[can_be(burn,t)]),
type_props(cardboard,[inherit(paper,t)]),
type_props(metal,[can_be(burn,f)]),
type_props(wooden,[breaks_into=splinters,can_be(burn,t)]),
type_props(locker,
[ inherit(container,t),
inherit(object,t),
volume_capacity = 13,
inherit(metal,t),
opened = f
]),
type_props(crate,
[ inherit(container,t),
inherit(object,t),
volume_capacity = 13,
inherit(wooden,t),
opened = t
]),
type_props(box,
[ opened = f,
volume_capacity = 11,
inherit(container,t),
inherit(object,t),
inherit(cardboard,t)
]),
type_props(fireplace,
[ has_rel(on,f),
has_rel(over,t),
inherit(uncloseable,t),
volume_capacity = 20,
inherit(furnature,t)
]),
type_props(plate,
[ inherit(surface,t),
inherit(object,t),
volume_capacity = 2,
breaks_into = shards,
cleanliness = dirty,
name = $ class
]),
type_props(bowl,
[ inherit(uncloseable,t),
inherit(flask,t),
volume_capacity = 2,
breaks_into = shards,
cleanliness = dirty,
name = 'porcelain bowl',
desc = 'This is a modest glass cooking bowl with a yellow flower motif glazed into the outside surface.'
]),
type_props(flask,
[adjs(physical),inherit(container,t),inherit(object,t)]),
type_props(cup,[inherit(flask,t)]),
type_props(bag,
[ volume_capacity = 10,
inherit(container,t),
inherit(object,t)
]),
type_props(container,
[default_rel=in,opened=f,can_be(open,t),has_rel(in,t)]),
type_props(place,
[ volume_capacity = 10000,
default_rel = in,
has_rel(in,t),
nouns([here,$self]),
adjs([locally]),
can_be(move,f),
can_be(take,f),
has_rel(exit(Exit_Ret8),t)
]),
type_props(natural_force,
[ knows_verbs(eat,f),
can_be(touch,f),
has_rel(held_by,f),
has_rel(worn_by,f),
has_sense(see),
inherit(no_perceptq,t),
inherit(noncorporial,t),
inherit(actor,t)
]),
type_props(robot,
[ knows_verbs(eat,f),
inherit(autonomous,t),
emitting(see,light),
volume = 50,
mass = 200,
nouns([robot]),
adjs([metallic]),
desc = 'Your classic robot: metallic with glowing red eyes, enthusiastic but not very clever.',
can_be(switch,t),
inherit(memorize,t),
nouns($class),
inherit(shiny,t),
inherit(character,t),
powered = t,
effect(switch(on),setprop($self,powered=t)),
effect(switch(off),setprop($self,powered=f))
]),
type_props(actor,
[knows_verbs(examine,t),inherit(partly_noncorporial,t)]),
type_props(character,
[ has_rel(worn_by,t),
has_rel(held_by,t),
model_depth = 3,
mass = 50,
volume = 50,
has_sense(see),
inherit(no_perceptq,t),
inherit(memorize,t),
inherit(actor,t),
inherit(autoscan,t),
inherit(partly_noncorporial,t)
]),
type_props(autonomous,[inherit(autoscan,t)]),
type_props(humanoid,
[ knows_verbs(eat,t),
volume = 50,
mass = 50,
inherit(character,t),
inherit(memorize,t),
can(switch(off),f),
powered = t
]),
type_props(console,
[adjs(physical),nominals([console]),nouns([player])]),
type_props(player,
[ name = $ self,
model_depth = 3,
look_depth = 2,
user_mode = 2,
access_level = admin,
inherit(console,t),
inherit(humanoid,t)
]),
type_props(telnet,[adjs([remote]),inherit(player,t),nouns([player])]),
type_props(furnature,
[ can_be(examine,t),
inherit(untakeable,t),
inherit(fully_corporial,t),
inherit(surface,t),
inherit(thinkable,t),
adjs(physical),
class_desc(['kind is furnature'])
]),
type_props(untakeable,
[ adjs($class),
can_be(take,f),
class_desc(['kind is an Immobile Object'])
]),
type_props(object,
[ can_be(examine,t),
adjs(physical),
can_be(move,t),
inherit(fully_corporial,t),
inherit(thinkable,t),
class_desc(['kind is an Movable Object'])
]),
type_props(fully_corporial,
[ can_be(touch,t),
can_be(examine,t),
inherit(thinkable,t),
cleanliness = clean,
adjs($class),
class_desc(['kind is corporial'])
]),
type_props(partly_noncorporial,
[ inherit(fully_corporial,t),
adjs($class),
inherit(noncorporial,t),
class_desc([ 'kind is both partly corporial and non-corporial'
])
]),
type_props(only_conceptual,
[ adjs($class),
inherit(noncorporial,t),
inherit(thinkable,t),
class_desc(['kind is only conceptual'])
]),
type_props(noncorporial,
[ can_be(examine,f),
can_be(touch,f),
inherit(thinkable,t),
adjs($class),
~(inherit(fully_corporial)),
class_desc([ 'direct inheriters are completely noncorporial'
])
]),
type_props(thinkable,
[ can_be(examine,t),
nouns($self),
adjs($class),
class_desc(['kind is normally thinkable'])
]),
type_props(unthinkable,
[ can_be(examine,f),
adjs($class),
class_desc(['kind is normally unthinkable'])
]),
type_props(door,
[ can_be(take,f),
can_be(open,t),
can_be(close,t),
opened = t,
nouns($class),
inherit(fully_corporial,t),
can_be(take,f),
can_be(open,t),
can_be(close,t),
opened = t,
nouns(door),
inherit(fully_corporial,t)
]),
type_props(mushroom,
[ name = 'speckled mushroom',
inherit(food,t),
nouns([mushroom,fungus,toadstool]),
adjs([speckled]),
initial('A speckled mushroom grows out of the sodden earth, on a long stalk.'),
desc = 'The mushroom is capped with blotches, and you aren\'t at all sure it\'s not a toadstool.',
can_be(eat,t),
before(eat,(random100=<30,die('It was poisoned!');'yuck!')),
after(take,
initial ',' 'You pick the mushroom, neatly cleaving its thin stalk.')
]),
type_props(broken,
[ name = 'definately broken',
effect(switch(on),true),
effect(switch(off),true),
can_be(switch,t),
adjs([dented]),
adjs($class)
]),
type_props(food,
[can_be(eat,t),inherit(object,t),inherit(measurable,t)]),
h(in,brklamp,garden),
h(in,screendoor,garden),
h(in,screendoor,kitchen),
h(exit(west),kitchen,living_room),
h(exit(south),living_room,kitchen),
h(exit(east),living_room,dining_room),
h(exit(north),dining_room,living_room),
h(exit(west),dining_room,kitchen),
h(exit(east),kitchen,dining_room),
h(exit(north),garden,kitchen),
h(exit(south),kitchen,garden),
h(exit(up),basement,pantry),
h(exit(down),pantry,basement),
h(exit(north),kitchen,pantry),
h(exit(south),pantry,kitchen),
h(in,floyd,pantry),
structure_label(istate)
]
=============================================
Welcome to Marty's Prolog Adventure Prototype
=============================================
% player~1 @ kitchen: already about todo: look(player~1)
% aXiom(look('player~1'))
{{ sub__examine('player~1',see,in,kitchen,3) }}
{{ percept('player~1',see,3,props(kitchen,[volume_capacity=10000,has_rel(in,t),has_rel(exit(D2),t),desc='cooking happens here'])) }}
Player~1 is in kitchen and sees: crate, table, sink, cabinate and screendoor.
Exits in kitchen are: west, east, south and north.
{{ percept('player~1',see,2,props('crate~1',[shape=crate,opened=f,has_rel(in,t)])) }}
'...verbose...'('crate is closed from seeing In')
{{ percept('player~1',see,2,props('table~1',[shape=(table),has_rel(on,t)])) }}
Player~1 see on table: box and lamp.
{{ percept('player~1',see,2,props('sink~1',[shape=sink,opened=t,has_rel(in,t),has_rel(on,t)])) }}
Player~1 see in sink: plate.
'...verbose...'('nothing on sink')
{{ percept('player~1',see,2,props('cabinate~1',[shape=cabinate,opened=f,has_rel(in,t),has_rel(on,t)])) }}
'...verbose...'('cabinate is closed from seeing In')
'...verbose...'('nothing on cabinate')
{{ percept('player~1',see,2,props(screendoor,[opened=f])) }}
'...verbose...'('percept(''player~1'',see,1,props(''box~1'',[shape=box]))')
'...verbose...'('box is closed from seeing In')
'...verbose...'('percept(''player~1'',see,1,props(''lamp~1'',[shape=lamp]))')
'...verbose...'('percept(''player~1'',see,1,props(''plate~1'',[shape=plate]))')
Player~1 see on plate: <nothing>
player~1@spatial>
% floyd~1 @ somewhere: about to: look
player~1@spatial>
% floyd~1 @ somewhere: about to: examine(see,shelf~1)
player~1@spatial>
Player~1 see: Player~1 are in the kitchen
Exits are north, south, east and west.
Player~1 see: cabinate, sink, table and screendoor.
player~1@spatial>
% floyd~1: sense_props(see,'shelf~1',[has_rel(spatial,on),can_be(move,f),inherited(shelf),co([inherit(shelf,t)])])
player~1@spatial>
% floyd~1: sense_props(see,'floyd~1',[name('Floyd the robot'),can_do(eat,f),inherited(autonomous),emitting(see,light),mass(200),nouns(robot),adjs(metallic),desc('Your classic robot: metallic with glowing red eyes, enthusiastic but not very clever.'),can_be(switch,t),adjs(shiny),can_be(move,t),class_desc(['kind is both partly corporial and non-corporial','kind is completely non-corporial','kind is normally thinkable','kind is corporial','kind is an Object']),inherited(object),inherited(shiny),has_rel(spatial,held_by),volume(50),can_do(examine,t),can_do(touch,t),can_be(touch,t),can_be(examine(spatial),t),inherited(corporial),inherited(thinkable),inherit(corporial,f),inherited(noncorporial),inherited(partly_noncorporial),inherited(character),state(powered,t),effect(switch(on),setprop('floyd~1',state(powered,t))),effect(switch(off),setprop('floyd~1',state(powered,f))),inherited(robot),co([name('Floyd the robot'),inherit(autonomous,t),inherit(robot,t)])])
player~1@spatial>
% failed_update_model('floyd~1',failure(take('floyd~1'),cant(manipulate(_552,self))),4).
% failed_update_model('floyd~1',true,5).
% floyd~1: sense_props(see,'shovel~1',[inherited(shovel),co([inherit(shovel,t)])])
player~1@spatial>
the floyd arrives from the north
player~1@spatial>
% floyd~1: sense_props(see,'cabinate~1',[oper('cabinate~1',put(spatial,_662,in,'cabinate~1'),precond(~(getprop(_662,inherit(liquid,t))),['liquids would spill out']),body(move(spatial,_662,in,'cabinate~1'))),has_rel(spatial,in),inherited(container),can_be(touch,t),can_be(move,f),can_be(examine(spatial),t),class_desc(['kind is furnature','kind is normally thinkable']),inherited(thinkable),inherited(furnature),volume_capacity(10),inherited(cabinate),co([inherit(cabinate,t),inherit(cabinate,t)])])
player~1@spatial>
% floyd~1: sense_props(see,'sink~1',[oper('sink~1',put(spatial,_124,in,'sink~1'),precond(~(getprop(_124,inherit(liquid,t))),['liquids would spill out']),body(move(spatial,_124,in,'sink~1'))),has_rel(spatial,in),inherited(container),can_be(touch,t),can_be(move,f),can_be(examine(spatial),t),class_desc(['kind is furnature','kind is normally thinkable']),inherited(thinkable),inherited(furnature),volume_capacity(10),state(dirty,t),inherit(flask,f),inherited(sink),co([inherit(sink,t),inherit(sink,t)])])
player~1@spatial>
% floyd~1: sense_props(see,'table~1',[has_rel(spatial,on),inherited(table),co([inherit(table,t),inherit(table,t),inherit(table,t),inherit(table,t)])])
player~1@spatial>
% floyd~1: sense_props(see,'player~1',[name('player~1'),inherited(console),has_rel(spatial,held_by),mass(50),volume(50),can_do(eat,t),can_do(examine,t),can_do(touch,t),can_be(touch,t),can_be(examine(spatial),t),class_desc(['kind is both partly corporial and non-corporial','kind is completely non-corporial','kind is normally thinkable','kind is corporial']),inherited(corporial),inherited(thinkable),inherit(corporial,f),inherited(noncorporial),inherited(partly_noncorporial),inherited(character),inherited(player),can_be(switch(off),f),state(powered,t),inherited(humanoid),co([name($self),inherit(console,t),inherit(humanoid,t)])])
player~1@spatial>
% floyd~1: sense_props(see,screendoor,[door_to(kitchen),door_to(garden),state(opened,f),can_be(move,f),can_be(open,t),can_be(close,t),nouns(door),can_be(touch,t),can_be(examine(spatial),t),class_desc(['kind is corporial','kind is normally thinkable']),inherited(thinkable),inherited(corporial),inherited(door),co([door_to(kitchen),door_to(garden),state(opened,f),inherit(door,t)])])
player~1@spatial>
[,floyd] goes west
player~1@spatial>
% floyd~1: sense_props(see,'videocamera~1',[can_be(switch,t),effect(switch(on),setprop('videocamera~1',state(powered,t))),effect(switch(off),setprop('videocamera~1',state(powered,f))),state(powered,t),fragile(broken_videocam),inherited(videocamera),co([inherit(videocamera,t)])])
player~1@spatial>
the floyd arrives from the west
player~1@spatial>
[,floyd] goes east
player~1@spatial>
player~1@spatial> help
help
:- dynamic cmd_help/2.
cmd_help(quit, "Quits the game.").
cmd_help(english, "english <level>: turn on paraphrase generation.").
cmd_help(rtrace, "Debbuging: Start the non-interactive tracer.").
cmd_help(nortrace, "Debbuging: Stop the non-interactive tracer.").
...
cmd_help(possess(agent), "Take possession of a character").
player~1@spatial>
player~1@spatial> a
a
auto
player~1@spatial>
the player~1 arrives from the west
player~1@spatial>
Player~1 see: Player~1 are in the kitchen
Exits are north, south, east and west.
Player~1 see: floyd, cabinate, sink, table and screendoor.
player~1@spatial> a
a
auto
player~1@spatial>
the player~1 arrives from the west
player~1@spatial>
Player~1 see: Player~1 are in the dining_room
Exits are west and north.
Player~1 see: <nothing>
player~1@spatial>
the floyd arrives from the west
player~1@spatial>
player~1@spatial> memory
memory
memory(player~1)
[ todo([]),
[ emoted(see,
'floyd~1',
*,
[cap(subj('floyd~1')),'inspects their inspection cover.'])
],
model([ h(spatial,in,'floyd~1',dining_room,13),
h(spatial,exit(north),dining_room,'<unexplored>',13),
h(spatial,exit(west),dining_room,'<unexplored>',13),
h(spatial,in,'player~1',dining_room,13),
h(spatial,exit(east),kitchen,dining_room,13),
h(spatial,exit(west),kitchen,living_room,10),
h(spatial,exit(south),kitchen,'<unexplored>',10),
h(spatial,exit(north),kitchen,'<unexplored>',10),
h(spatial,in,screendoor,kitchen,10),
h(spatial,in,'table~1',kitchen,10),
h(spatial,in,'sink~1',kitchen,10),
h(spatial,in,'cabinate~1',kitchen,10),
h(spatial,exit(south),living_room,kitchen,10),
h(spatial,exit(east),living_room,'<unexplored>',8),
h(spatial,in,'videocamera~1',living_room,8)
]),
timestamp(14,1926.7),
[ moved('player~1',kitchen,in,dining_room),
the('player~1'),
person(arrived,arrives),
from,
the,
west
],
[ sense(see,
[ you_are(in,dining_room),
exits_are([west,north]),
here_are(['player~1'])
])
],
[ moved('floyd~1',kitchen,in,dining_room),
the('floyd~1'),
person(arrived,arrives),
from,
the,
west
],
timestamp(13,1845.6),
did(goto(walk,east,L38,M38)),
goals([]),
[ emoted(see,
'floyd~1',
*,
[cap(subj('floyd~1')),'hums quietly to themself.'])
],
timestamp(12,1835.3),
[ emoted(see,
'floyd~1',
*,
[cap(subj('floyd~1')),'inspects their inspection cover.'])
],
timestamp(11,1825.1),
[ moved('player~1',living_room,in,kitchen),
the('player~1'),
person(arrived,arrives),
from,
the,
west
],
[ sense(see,
[ you_are(in,kitchen),
exits_are([north,south,east,west]),
here_are([ 'player~1',
'floyd~1',
'cabinate~1',
'sink~1',
'table~1',
screendoor
])
])
],
timestamp(10,1814.6),
did(goto(walk,south,L38,M38)),
[time_passes],
timestamp(9,1812.3),
did(wait),
[ moved('player~1',kitchen,in,living_room),
the('player~1'),
person(arrived,arrives),
from,
the,
south
],
[ sense(see,
[ you_are(in,living_room),
exits_are([east,south]),
here_are(['player~1','videocamera~1'])
])
],
timestamp(8,1764.9),
did(goto(walk,west,L38,M38)),
[ moved('floyd~1',kitchen,in,garden),
[cap(subj('floyd~1')),person(go,goes),south]
],
timestamp(7,1762.6),
[ moved('floyd~1',dining_room,in,kitchen),
the('floyd~1'),
person(arrived,arrives),
from,
the,
east
],
timestamp(6,1751.5),
[ moved('floyd~1',kitchen,in,dining_room),
[cap(subj('floyd~1')),person(go,goes),east]
],
timestamp(5,1720.6),
[ moved('floyd~1',living_room,in,kitchen),
the('floyd~1'),
person(arrived,arrives),
from,
the,
west
],
timestamp(4,1710.2),
[ moved('floyd~1',kitchen,in,living_room),
[cap(subj('floyd~1')),person(go,goes),west]
],
timestamp(3,1700.1),
[ moved('floyd~1',pantry,in,kitchen),
the('floyd~1'),
person(arrived,arrives),
from,
the,
north
],
timestamp(2,1685.2),
[ sense(see,
[ you_are(in,kitchen),
exits_are([north,south,east,west]),
here_are(['cabinate~1','sink~1','table~1','player~1',screendoor])
])
],
timestamp(1,1651.3),
did(look),
structure_label(mem('player~1')),
timestamp(0,1650.3),
inst('player~1'),
name('player~1'),
inherit(console,t),
inherit(humanoid,t)
]
player~1@spatial>