Skip to content

IRC LOG

DouglasRMiles edited this page Nov 11, 2014 · 1 revision
#!prolog



[06:24] <ttmrichter> dmiles: Why not just write a MUD in Prolog?
[06:24] <ttmrichter> I'd even gladly assist in that.
[06:26] <dmiles> i have before... i should again.. ok i think WE should
[06:27] <dmiles> part of why i was lookign for external language was for intial code completeness
[06:27] <dmiles> but really getting ti started and going isnt all that hard
[06:28] <dmiles> secretly i want the prolog database to reside in OpenCyc .. why i was looking for lisp
[06:28] <dmiles> but i can exbed prolog in the OpenCYc server anythow
[06:29] <dmiles> but i can embed prolog in the OpenCyc server later or as it becomes conveientent
[06:29] * hashcat_ ([email protected]) Quit (Ping timeout: 246 seconds)
[06:30] <dmiles> one of the important fetures of the mud i am loolking for will be the ability to load CircleMUD .obj /.mob files
[06:30] <dmiles> i already wrote that even
[06:31] <dmiles> ok .. maybe I  shall start with http://zhar.net/projects/vworld/  first
[06:33] <ttmrichter> First question: which Prolog?
[06:33] <dmiles> SWI_prolgo ok?
[06:33] <ttmrichter> Yep.
[06:33] <ttmrichter> I'd also strive for making it run under YAP as a sanity check.
[06:33] <dmiles> absolutely
[06:34] <ttmrichter> Second question: do we want to go more modern and make it web-based or are we sticking with Telnet?  (Or could we do both?)
* Retrieving ##prolog modes...
[06:34] <dmiles> i think both is not unreasonable
[06:35] <dmiles> initially telnet is where i am goign to concintrate on
[06:35] <dmiles> but i think web based is just as possible without pain in code
[06:36] <ttmrichter> Well if you want to do both, we need to cleanly split between "communication" and "functionality".
[06:36] <dmiles> the representation of the world is the most intersting to me
[06:36] <ttmrichter> (Which most MU*es don't do.)
[06:36] <ttmrichter> Also, you're shooting for MUD or more generic extensible MUD/MUSH/et al?
[06:37] <dmiles> right i think  to cleanly split between "communication" and "functionality" is part of even teh reason why i belive to be able to do both is importaqnt
[06:37] <dmiles> i am shooting for something that is extendable .. and even scritpable outdisside of prolog expextations
[06:38] <dmiles>  .. and even scriptable outside of prolog expextations.. example.. being..
[06:38] <ttmrichter> OK, so really you're talking about a world hosting environment that people customize for their worlds, MUSH/MUCK/MOO-like?
[06:38] <dmiles> the ability to read inform6 code
[06:38] <dmiles> yes
[06:38] <dmiles> so we create  the world and then others create rooms and objects
[06:38] <dmiles> and they add affordances onto objects
[06:38] <dmiles> ()aka verbs)
[06:39] <ttmrichter> We could go a level lower.
[06:39] <dmiles> also they (and we) add properties and attempt to use each others inheritance
[06:39] <ttmrichter> We could create the tools to create worlds (creating two worlds in the process just to ensure it's flexible enough).
[06:40] <dmiles> go on.. these two worlds are intersting..
[06:40] * oleo ([email protected]) has joined ##prolog
[06:40] <dmiles> i am really interested in creating tools to create worlds.. giving peopel the abilty to author things
[06:41] <ttmrichter> Well, if you look at MUSH (and look past it's REALLY shitty language), in a MUSH you've basically got a world creation toolkit.
[06:41] <ttmrichter> No world.
[06:41] <ttmrichter> Just the toolkit.
[06:41] <ttmrichter> Every MUSH game out there has hand-coded its world, it's game mechanics, even most of its commands.
[06:42] <ttmrichter> Now for cultural reasons most MUSHes are talkers.  (Part of this is because the MUSH language is so utterly god-awful.)
[06:42] <ttmrichter> But MUCK (based on Forth) is similarly flexible and more MUD-like in most games based on it.
[06:42] <dmiles> oh right ok.. yeah i seen these talker muds
[06:42] <ttmrichter> (Sadly, for cultural reasons you want to avoid MUCKs.  They're overrun with furries.)
[06:43] <ttmrichter> Even in the MUSH realm there are some MUD-like games.  Firan leaps to mind.
[06:43] <dmiles> objects are usually created to do someting social or whacky or offensive 
[06:43] <ttmrichter> Code up the wazoo for everything.
[06:43] <ttmrichter> But the key to MUSH, MOO, MUCK and so on is that they're world building toolkits, not worlds.
[06:44] <ttmrichter> MUDs typically have a world which you can customize to varying degrees.
[06:44] <ttmrichter> MUSHes et al have you starting off by making the world.
[06:44] <ttmrichter> You "dig" rooms.
[06:44] <dmiles> yeah so i think what i have in mind does fit more to MUD
[06:44] <ttmrichter> You "desc" things.
[06:44] <dmiles> so the first thing our users woould is "@dig MyRoom" 
[06:44] <ttmrichter> You code commands, theme files, etc.
[06:44] <dmiles> and attach "desc" properties
[06:45] <dmiles> oh bt though .. i can fast load some competed worlds to our mud no problem.. and start us off with some basic commands
[06:45] <ttmrichter> Yeah, that's what you do in MUSH too.
[06:46] <ttmrichter> Well importing from other database formats would be a cool feature for certain.  :)
[06:46] <ttmrichter> Why create from scratch when you can import and modify?
[06:46] <dmiles> right thats what i am thinking i i created starttrek once into PRolog
[06:46] <dmiles> into a prolog world.. by loading CyircleMUD files
[06:47] <ttmrichter> So in terms of basic abstractions we have the user, the character (which may or may not be a 1:1 mapping), the session, the room, the object, etc.
[06:47] <dmiles> yes.. and intitalyl when we import over describbed text rooms
[06:47] <ttmrichter> Presumably we want some form of privilege control?
[06:48] <ttmrichter> (I'd suggest using a capabilities system instead of the "Wizard" system so typically used.)
[06:48] <dmiles> yes.. and intitally when we import over described text rooms for CircleMUD the first thing that becomes obviouslty is nothign but a few objects really exist
[06:48] <dmiles> but rookms are ritch and interesting
[06:49] <ttmrichter> Oh, and, of course, exits.
[06:49] <ttmrichter> Connections between rooms.
[06:49] <dmiles> yes .. sort of an expansion of AMZI's Nani
[06:50] <ttmrichter> It was looking at that waaaaaaaaaaaaaaaaaay back when that gave me the idea that Prolog might be an ideal MU* creation language.
[06:50] <dmiles> connection(room234234,room33453455,'East')/
[06:50] <dmiles> it is the most ideal ever
[06:51] <ttmrichter> Yes.  Indeed.
[06:51] <dmiles> this had led me down paths into 3D though
[06:51] <ttmrichter> It's amazing how expressive you can get if you get away from the tyranny of object thinking.
[06:52] <dmiles> yes.. prolog provides the most amazing interface to even using objects
[06:52] * SpaceWizard ([email protected]) has joined ##prolog
[06:52] <dmiles> well MUD like objects and proably all objects
[06:53] <ttmrichter> Have you looked at LogTalk?  :D
[06:53] <dmiles> it also provides incredicabnle OO iheritance
[06:53] <dmiles> i have.. though i havent used it wnough to be realyl good with it
[06:54] <dmiles> i think a mud world will help me see Logitalk better since i can at some point try to honor it's object system
[06:54] <ttmrichter> Logtalk is very interesting.
[06:54] <ttmrichter> I keep trying to find a use case for it.  A MU* may be that use case.
[06:54] <SpaceWizard> dmiles: Have you taken a look at "Adventure in Prolog"?
[06:54] <ttmrichter> SpaceWizard: We were just talking about Amzi's "Nani".
[06:55] <ttmrichter> That's from Adventure in Prolog.  ;)
[06:55] <SpaceWizard> :)
[06:55] <dmiles> though for me objects work like..   obj_prop_value(obj34534535,width,45).
[06:55] <SpaceWizard> Yep.
[06:55] <SpaceWizard> This one as well: http://www.amzi.com/articles/prolog_fun.htm
[06:55] <SpaceWizard> err.
[06:55] <SpaceWizard> yep, that's the one.
[06:56] <dmiles> i want to translate the NL of the user to a intermediate language like...     goal(user3434,know(prop_obj(width,bj34534535)).
[06:56] <dmiles>      goal(user3434,know(prop_obj(width,obj34534535)).
[06:57] <ttmrichter> And that opens up the possiblity of allowing different users to use different languages based on their backgrounds.
[06:57] <dmiles> well actualyl i ahve abotu 10 differnt experments i expect to run aznd need this world to start ;)
[06:58] <dmiles> right
[06:58] <dmiles> there are some many topics that such a mud opens up for proacticing arround
[06:59] <dmiles> wether that be natlang Q&A .. or world building tools.. or translation of belief driven agents
[06:59] * Fly-Man- [uid19689@gateway/web/irccloud.com/x-fdilajwbygdmujyw] has left IRC
[07:00] <dmiles> as far as security and so forth of priveligdes that is even usefull
[07:00] <dmiles> well what i like about this server that we will write.. is that given 5-10 hours at any random time... there is exponential imrpovment
[07:03] <ttmrichter> Indeed after the first five hours there's infinite improvement!  :)
[07:03] <dmiles> ttmrichter: what is your github username?
[07:03] <ttmrichter> I don't have one.
[07:03] * ttmrichter uses Fossil for personal projects and Bitbucket for public.
[07:03] <dmiles> ok bitbucket is good!
[07:04] <ttmrichter> My bitbucket account is very difficult to find, sadly.
[07:04] <ttmrichter> https://bitbucket.org/ttmrichter
[07:04] <dmiles> my bitbucket has mostly been forking.. it'll be nice to do soemthjig unique
[07:04] <dmiles> erm orginalish
[07:05] <dmiles> though i am importing vacumeworld and goign to modernizse it first and add the telnet interface
[07:06] <ttmrichter> Well, set up a team, invite me to it and we can start taking a crack at this.
[07:08] <dmiles> I am sure Annie will enjpoy woring with this to
[07:09] <dmiles> and anyone e3lse in here just say the word .. i'll get it set up and telnetable first.. by the end of today :)
[07:10] <dmiles> so how interested in the http interface ? 
[07:10] <ttmrichter> As a user, very.
[07:11] <ttmrichter> As a programmer, not at all.  I don't do web.  :D
[07:11] <ttmrichter> (Annie may be into that portion, though.)
[07:11] <dmiles> ANnie loves the swi-httpd i have written http servers
[07:11] <dmiles> but never used the official one
[07:11] <dmiles> ones^
[07:14] <ttmrichter> dmiles: Do you know of any SMALL and simple Prolog interpreters?
[07:14] * ttmrichter still has this dream of running Prolog on an MCU.
[07:15] * rcjsuen [[email protected]] is on IRC
[07:15] <dmiles> not that small
[07:15] <SpaceWizard> ttmrichter: join the club!
[07:15] <SpaceWizard> Even a subset of Prolog would do.
[07:15] <ttmrichter> How much are the dues?
[07:15] <SpaceWizard> $0. :)
[07:16] <ttmrichter> I know that the original machines that ran Prolog were smaller, in terms of capabilities, than even this toy little STM32F030F4 chip I've got.
[07:16] <ttmrichter> Yet ...
[07:16] * Aune ([email protected]) Quit (Quit: Hath Deprated)
[07:16] <dmiles> sang i have to name the team
[07:16] <dmiles> dang i have to name the team
[07:16] <ttmrichter> I can't find any Prologs that could get crammed into even the super-large MCUs like the STM32F429 and their ilk.
[07:16] <ttmrichter> Spoon.
[07:16] <SpaceWizard> ttmrichter: You'd need to design your own I suppose.
[07:16] <ttmrichter> Team SPoon.
[07:17] * ttmrichter lacks the time, patience and talent for that, SpaceWizard.
[07:18] * SpaceWizard doesn't!
[07:18] <SpaceWizard> I'm just getting into the field of Logic Programming.
[07:23] * SpaceWizard ([email protected]) Quit (Read error: Operation timed out)
[07:24] * SpaceWizard ([email protected]) has joined ##prolog
[07:28] <dmiles> the project called logicmoo ok ?
[07:28] <dmiles> I already did it 
[07:28] <ttmrichter> Sounds fine.
[07:28] <dmiles> https://bitbucket.org/teamspoon/logicmoo/src/10ac99722ab0d287b794632f98d04cc658c60583/src/vworld/?at=default
[07:29] <dmiles> i am starting out with that working prototype that i didnt write.. just found
[07:31] <dmiles> i am telnet-ifying it via overrifing user_output and user_input
[07:33] <dmiles> i am telnet-ifying it via overriding user_output and user_input .. but going to not use  write/1 nl/0 etc going to twrite/1 tnl etc
[07:35] <ttmrichter> OK, you've membered me and now I'm following.  :)
[07:35] * Siecje ([email protected]) has joined ##prolog
[07:38] * RLa ([email protected]) Quit (Remote host closed the connection)
[07:38] * Nosomy|Off ([email protected]) has joined ##prolog
[07:39] * Nosroam ([email protected]) Quit (Ping timeout: 252 seconds)
[07:42] <SpaceWizard> Logicmoo?
[07:42] <SpaceWizard> sick. :)
[07:42] <SpaceWizard> You guys are writing a MUD in Prolog?
[07:42] <dmiles> yup
[07:43] <SpaceWizard> Sick!
[07:44] * Nosomy|Off ([email protected]) Quit (Ping timeout: 255 seconds)
[07:46] * Nosomy|Off ([email protected]) has joined ##prolog
[07:47] <ttmrichter> And with that I bid you all a fond goodnight.
[07:47] <ttmrichter> Chat later.
[07:49] <dmiles> the current impl uses .. but going to let that use loc(xy(X,Y),Obj) instead
[07:49] <dmiles> you bet!
[07:53] <uzo> everyone that reads "Adventure in Prolog" ends up writing one. lol
[07:53] <SpaceWizard> it's really cool.
[07:54] <uzo> I'm working on an adventure game too in prolog.

Clone this wiki locally