Reset Password
Existing players used to logging in with their character name and moo password must signup for a website account.
- KarlTrellson 2h
- QueenZombean 17s
- notloose 1h
- BitLittle 3h
- AdamBlue9000 19s Rolling 526d6 damage against both of us.
a Mench 8h Doing a bit of everything.
And 16 more hiding and/or disguised
Connect to Sindome @ or just Play Now

Intelligent Systems
And their practical application

On a whim I started to really explore the Open Source Intelligent Systems Knoledge Base software OpenCyc (

Really facinating stuff, and very applicable to some things were trying to do here.

Not that you should expect anything to ever come of this, but it was very interesting to apply some of the problems we experience here and try and translate them into something OpenCyc could help us with.

Immideately the first thing that came to mind is relationships. You could define individual entities in the system, then make assertions about them, then it would draw conclusions about them for you, given the proper question.

For instance. I could start by saying that memebers of the same Gang like each other, and -hate- members of other gangs. Then I could say that Bob was a member of the Arteries, and Chayney was a member of the Sinners... and given the proper query (what's Bob's disposition to Chayney?) it would draw the conclusion for me that they hate each other.

This may seem really simplistic at first, but when you start to add other factors which affect these (like make the assertion that attacking someone is against the law, and people won't break the law in the presence of a judge, or that a knife will loose in a gun battle) and any Object Oriented framework which you might build to represent this quickly becomes hopelessly complex, as the rules, and more importantly the exceptions to the rules balloon out in complexity.

My reaction to this is if an initial set of assertions were made about how we expect people to react, and then communication happened from the MOO to the knoledge base at a rather high level (connect, disconnect, entering/exiting a room), some very interesting and realistic behavior might be implemented. Obviously they won't carry on an intelligent conversation with you, but they might react just a little more responsively. Further assertions would enhance this, as it would make them more 'reactive' to situtations. (Even though Bob hates Chayney, Bob's on Chayney's turf and dosn't have a weapon, and can see that Chayney does. Proper response? Run.)

Has anyone had any experience with using a product/framework of this nature/implementing it into an existing system, or have any other good ideas about how this might enhance the world? Not that I'm saying I will... mearly curious as to what your experience has been. If I'm not mistaken, we could (theoretically) implement new NPC behavior entirely through assertions in the knowledge base.

Looking forward to your input.


Quote: from Kevlar on 6:40 pm on April 22, 2003[br]Has anyone had any experience with using a product/framework of this nature/implementing it into an existing system

Uh, no. �If we had this where I work, we could probably eliminate 97% of management as they have absolutely -no- common sense. �;)

Quote: from Kevlar on 6:40 pm on April 22, 2003[br]or have any other good ideas about how this might enhance the world?

Well, I think the ability to enchance the way the NPCs interact with the PCs and other NPCs would be huge.

Off the top of my head, when combined with some of the other recent enhancements, I can see many more 'ambient population' NPCs being created to really flesh out the world and make it come even more alive.

- Imagine Bob the Ambient Population Ninja walking into FullerMed after Chaim kicked his ass because he wandered onto his turf and then going to Surplus N Shit, getting a new knife, finding a friend or two and going back for revenge!

-Imagine Bob the ambient population Ninja hiding on 'his' street corner and trying to mug PCs (or other NPCs) as they walk by or comming after a PC if Bob got mugged by a PC?

-Imagine NPC strippers or NPC whores at the Red Canary that -remember- who tipped them well and alter their behavior accordingly?

-Imagine NPC judges or TERRA agents that have a common knowledge base (who did what?) and act accordingly while they roam the streets?

-Imagine NPCs who based on info they got from someone else, go looking for PCs to ...
Hire them
Fight them
Give them info (false or not)

Lemme read up a bit and see what else I can come up with ..

An excelent reply.

And exactly the type of problem this is prepared to tackle in a very efficent and sexy manner.

Simply assert that TERRA agents don't like law breakers, and murder is against the law, and Bob the Ninja is known to have commited murder.

Then when the disposition of the Terra agent to Bob is queried, the response comes back they really don't like them.

In a nutshell:
The application of doing this type of thing is a facinating journey into a language called CycL. It makes a basic distinction between a collection or an individual (The US Marie Corps vs. A Member of the US Marine core) and a dichotamy of multiple inheritance via the concepts of 'Generalization Of' (which is transitive) and 'Is A' (which is not transitive, nor is it inheritantly reflexive, nor is it anti-reflexive). Against this model you make assertions (Murder is against the law, A Judge dosn't like law breakers, etc.), and with your assertions form Microtheories (A set of assertions in which no assertion in the microtheory contradicts another assertion in that microtheory) which allows you to have a knolwedge base which is globally contradictive (that is to say there's assertions which contradict other assertions) but locally coherent (within microtheories). Thus changing 'viewpoints' is as simple as applying a different set of microtheories... which comprises a theory. An example of a Theory would be a Judge Behavior Theory: A set of microtheories which makes up your assertions on the data... your view into the data if you will.

In this design lies the key to deducing 'implicit' knoledge from the information we have 'explicitly' provided. The most difficult task is structuring your microtheories in a useful heircharchy and building your theories from them. But the results are fucking amazing.



The page refers to this as being a "commonsense reasoning engine".  What other applications for common sense are there in the game?

Basically, this is an AI type project, fuzzy logic.

That said ...

Is not the MOO a collection of relationships?

How is this room related to that room?

How are these character (PC or NPC) related?

How is this knife related to that character?

If you define a microtheory for a for a weapon class (shortblades are most effective/damaging with an agi in this range and a str in this range) and a microtheory for characters (people without short blade skill have a basic ability to use the weapon) ...


Hmmm, this could give some reality to people not knowing particular skills, but being able to do things in that area.

For example.

I don't know how to knife fight.  However, if I had a knife and someone came at me, you can believe I'd know how to use it to stab them.  The rule has always been, if you don't have the skill, you can't do it.  For somethings that works, skills that take high amounts of knowledge, but our present system eliminates the "common sense" reality of it.


What I was about to say was that I could see this replacing sections of the code that are rigid, unflexible and not realistic with a more common sense approach.

Can multiple microtheories be applied to an object?

Bob the TERRA agent get's the TERRA theories (doesn't like law breakers)

Bob is addicted to drugs and has those theories (is liked by others addicted to drugs and drug dealers, is a law breaker)

Jane the NPC drug dealer has those theories (Likes drugs and addicts.  Hates TERRA)

What happens if the microthrories contradict for Bob?

What happens when Bob goes to score a fix with Jane?

My mind is spinning.  I have to stop now.

Actually, in SD, whether you have a skill or not, you can do the thing.

The 'basic ability', as Max mentioned, is simply a character's stats. Assuming a character has no melee skill, for instance, he can still beat you senseless with a baseball bat by virtue of his Agi, Str, and other stats. Sure, he's not used to the weapon so he won't swing all that well, he might miss, or swing to slow, too fast, but he has a fair chance of thwacking you nonetheless.

In the case of Max's example,

If someone lunges at you, and you're brandishing a knife-

a)If he comes -straight at you- when you have a knife out, then he's not showing much consideration for his safety
b)If he's not showing much consideration for his safety, we can assume he's concetrating on hitting you

These being true, we can assume he's using the 'kamikaze' posture. Whether you have the skill or not, unless you're particularly slow, you will probably strike him with the knife as he comes at you, skill or not, especially if you make an effort to stab him (i.e. posture offensive).

People have to stop thinking of game mechanics as game mechanics but rather as to what they represent.

In the above example again, the guy wants to kick your ass, but he sees your knife and doesn't want to get cut. What does he do? He attacks you more carefully, circling maybe, looking for an opening before trying to strike (i.e.  posture neutral), or, if he's really cautious, he might make a move to attack you, while still staying back, conentrating on avoiding your counter-blows until he finds a proper opening to hit you (postures defensive and guarded). You don't need any special code for this, its already there as far as I can see.

Though Murphy brings up some good points, one has to wonder..  are the stats and skills of the average PC reasonable compared to real-life standards?  Personally, I have no idea..  and there's probably no way to tell, as a person's abilities to fight another could very well be affected by such things as..

1) Said person's weight, compared to his/her enemy's.
2) Said person's height, compared to his/her enemy's.
3) Said person's fitness level, (etc., etc.)
4) Weight of the weapon, compared to str., agil., etc.
5) Evading/Dodging skills of both compared to agil.
6) Said person's skill in that particular weapon-type (and this could be affected by the rarety of the weapon, should it be a common one, or something hard to get ahold of).

And so on, and so on..  Granted, many, MANY things are already taken into account with SD's coding, there are literally infinite variables that could come into focus here.  True, a PC in Sindome could -very well- attack someone and kill them with a stiletto even without any weapon skills.  However, that would probably take a crapload of agility and strength stat-wise to make any sort of noticeable difference for a player..  and yes, even a decker or a corpie should be able to use a knife to do some damage to someone.  Also, you have to wonder if coding allows such things as a "common knowledge base" for easily accessible weapons/items.  It only makes sense..  This could affect things like knives, guns, swords, baseball bats..  hell, even medpaks and electronic equipment..  or tools or something.  All I'm saying is that at this time, Sindome is rather unrealistic in some of its aspects.  However, its definately understandable, because some of these things are just damn impossible to code (or so I'd imagine).  This programming language that Kevlar's talking about though..  Hell, it sounds like it could help make alot of things seem more realistic (though I dunno how much coding would be involved)..  I say even though SD is fun as shit right now, this could make it even more enjoyable, especially with that relationships thing!  Anyway, please correct me if I'm incorrect with any of this, as I am definately not a programmer.  Regardles, I hope -something- I've said here makes some kind of sense.  ;)

Please don't tell me how to think, or what I should be thinking at any given time.

Frankly, it's insulting.

As for game mechanics, in my opinion, this is -entirely- about game mechanics and how to make those mechanics -more accurately- portray what should happen and how it should happen in the fictional reality that is Sindome.

We would do this by injecting 'common sense' as defined by a common body of knowledge, actions and reactions shared among people or groups with specific similar charateristics. �This, would make the mechanics seem less mechanical.

Maybe Bob the Ninja sees the knife and because (common sense tells him) the 50 chyen he might get isn't worth getting stabbed, (a situation that, in my opinion, is much more realistic,) he doesn't mug the victim.

Or maybe Bob has to make a descision about the intended victim that will determine whether he circles, attacks all out, whatever.

Should much thought be given as to what those mechanics represent, of course.

So in this case, I will be thinking about game mechanics.

Quote: from Max on 10:29 pm on April 23, 2003[br]Please don't tell me how to think, or what I should be thinking at any given time.

Frankly, it's insulting.

I wasn't -telling- you what to think, I was expressing my opinion as to how I believe people should be thinking. If that insults you, tough.

Ike, in my mind, having a skill in something represents training or experience therein. So if Decker McWimpy and Corpie McFatass got into a little tussle with knives, you'd basically have two unskilled combatants trying to kill each other. It could go two ways, either one would stab the other, or they'd keep overreaching and stumbling all over the place. Which makes perfect sense.
Now, take either Decker McWimpy or Corpie McFatass and have them fight Professional McKiller, and, you have a fair idea how that would go. Fact is, in RPGs in general, you don't play an average person. That's no fun, that's what you do in real life. RPing, to me, isn't a way to go and do things I could be doing in real life, it's adventuring. I mean, RPing a regular person is like...I dunno, watching hockey on TV. No point, it's much more constructive to do it for real. On the other hand, watching an action film is entertainment, it's something beyond the ordinary.

Ok... Well getting back to the topic at hand:

From the website:
The Cyc inference engine handles modus ponens and modus tollens (contrapositive) inferencing, universal and existential quantification, and mathematical inferencing.

Modus ponens is defined as:
A rule of inference under which, given a knowledge base which contains the formulas "A" and "A implies B", one may conclude "B".

Modus tollens:
A rule of inference which can be derived from modus ponens under which, given a knowledge base which contains the formulas "Not B" and "A implies B", one may conclude "Not A".

Universal quantification is just a fancy way of saying you can make broad statements about things. Such as: All leaves are green.

Existential quantification means you can declare 'instances' of things. That is to say you can assert that man exists, and he can be Unmarried, or Married. You can then state that there -exists- a man who is unmarried (and we'll call him Fred). Note the distinction. In the first case, we made a universal qualification. In the second case, we made a existential qualification.

In other words, it supports the 'concepts' and 'objects' existing within the conext of concept(s). And it supports the concepts of explicit AND implicit deductions.

This allows for enormous potential. But if your not careful, it can bite you in the ass. If your sloppy about your assertions, it can 'infer' the wrong conclusion about things. For instance, if you say that judges don't like murders, and that law abiding citizens like judges, it could infer from that that law-abiding citizens don't like murderers, and they should be attacked on sight. The concept of 'something known' and 'environmental' factors are key in getting useful information out of this. To this extent I believe it's usefullness to the game is quite interesting because that's exactly the problem we sometimes face: The 'something known' and the 'taking everything else into consideration' problem. In a model like this that could move us away from having to explicitly track every nuance of everything and allowing 'known facts' and 'common-sence inferances' to take it's place.

Everything I've read tells me that the most time consuming part is finding existing concepts on which to base new concepts, and that there's no substution (presently) for familiarity.

Fortunately this thing comes out of the box with over a million assertions concerning human behavior and how it relates to things (money, environment, proximity, known facts, rumors, impressions, prior experiences, etc.).

Maybe someday...


Quote: from Murphy on 4:11 pm on April 23, 2003[br]People have to stop thinking of game mechanics as game mechanics but rather as to what they represent.

Seemed more like a directive than an opinion to me, but whatever. �If it's not intended that way, then I don't take offense.

As for the rest, lets assume that all the rules and assertations had been created.

How difficult would it be to link that knowledgebase or knowledgebases with the Moo code?

Would the Moo just call out to the KB as needed?

Is that even possible?