LogiMOO is a BinProlog based virtual world, usable for collaborative work or simply online chat. A simple agent, the Notifier is provided (see file moo.pl in directory LogiMOO).
Still in prototype stage, but working fine.
See the our PAP'96 paper [] for more info.
Here is an example of session (requires Solaris 2.4 or better) playing with distributed objects (created by "obmaster") and listed by "joe". You'll need some imagination to reconstitute the exact sequence. Better, try it out yourself on a Sparc with Solaris!
--------------------------------------------------------------- Window 1: - wizard (see server.pl) mbp ?- [server]. ..... ?- go. yes ?- notfier started wizard says: Hello ?- list. place(lobby) . lobby contains wizard . yes ?- joe says: Hello ?- obmaster says: Hello ?- ------------------------------------------------------------------ Window 2: - joe: (see joe.pl) mbp ?- [joe]. ... ?- go. notfier started joe says: Hello ?- yes ?- obmaster says: Hello ?- list. place(lobby) . lobby contains wizard . lobby contains joe . lobby contains obmaster . ob(object,<:,object) . obs(object,:>,object) . ob(mammal,<:,object) . obs(object,:>,mammal) . ob(mammal,legs,4) . obs(mammal,>>,legs) . ob(dog,<:,mammal) . obs(mammal,:>,dog) . obs(dog,>>,legs) . ob(dog,legs,3) . yes ------------------------------------------------------------------ Window 3: - obmaster: (see obmaster.pl and included files) mbp ?- [obmaster]. ... ?- go. notfier started obmaster says: Hello :- object with true. :- mammal extends object with (legs := 4,true). :- dog extends mammal with (legs := 3,true). ?- bye.