On a whim I started to really explore the Open Source Intelligent Systems Knoledge Base software OpenCyc (www.opencyc.org).
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.