🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Semantic Nets and Production Systems

Started by
1 comment, last by Kylotan 22 years, 5 months ago
I know a bit about these two concepts from the academic side of AI, but they are rarely mentioned in this forum. One of my forthcoming games uses a simple semantic net to allow user-defined inheritance models without recompiling (or even restarting) the game. But I''d be interested in hearing if any of you, especially the professionals, find (m)any uses for these (and other) areas of AI that aren''t commonly mentioned with regards to games? [ MSVC Fixes | STL | SDL | Game AI | Sockets | C++ Faq Lite | Boost ]
Advertisement
Wow, a semantic net... Don''t see that very often... Which is a mistake in my opinion. It is a very powerful tool for knowledge representation that I am currently using to build a set of common snese knowledge like blue is a color.

I haven''t used them that much though but once my common sense network is done, I might use them in RPGs I make so I can have more interactivity.
Soar is a classic example of a production system which attempts to capture the full gamut of human cognition in its model. Its short term memory is a semantic net. It has been used and is being used to create non-cheating Quake bots among other things. One of the interesting benefits of its behavior is the notion of distraction. The production system is constantly firing against what is in short term memory and what it is perceiving from its sensory inputs. While it is working to satisfy goals, it can also be distracted by external events which might cause it to propose new goals.

Semantic nets define knowledge through their links. A single node titled TheBigBall has no meaning. If TheBigBall has a slot or attribute called color with an entry of red then the knowledgebase knows that the ball is red. However, it still doesn't know that the ball is a ball. For the knowledgebase to know that, their would have to be a slot on TheBigBall called something like InstanceOf which contained an entry like ball .

Cyc is a massive example of a semantic net. Originally based on frames, which are basically grouped associations of semantic links, Cyc evolved into a full blown predicate calculus system with modeling of beliefs and nonmonotonic logic.

Graph theory is a discipline which can be applied to semantic nets to group subsections of the semantic net into partitions with limited flow between partitions for improved search. When resolution refutation is applied to a semantic net built with predicate calculus, it becomes an unmanagebale process as the knowledgebase grows. By partitioning the knowledgebase into separate compartments connected via the minimum vertex separator algorithm, resolution can be speeded up significantly.

One major advantage of applying resolution refutation to semantic nets is to insure knowledgebase integrity, which is imperative to prevent meaningless conclusions to be drawn. Another advantage is the ability to add disjunctions into the knowledgebase. Imagine being able to assert a fact stating that TheBigBall is either red or green . Now suppose the knowledgebase is informed that there is a green box in the room and their is only one green object in the room. The knoledgebase can now effectively determine that TheBigBall is red and refute any assertion that says otherwise.

___________________________________



Edited by - bishop_pass on January 21, 2002 5:44:59 PM
_______________________________
"To understand the horse you'll find that you're going to be working on yourself. The horse will give you the answers and he will question you to see if you are sure or not."
- Ray Hunt, in Think Harmony With Horses
ALU - SHRDLU - WORDNET - CYC - SWALE - AM - CD - J.M. - K.S. | CAA - BCHA - AQHA - APHA - R.H. - T.D. | 395 - SPS - GORDIE - SCMA - R.M. - G.R. - V.C. - C.F.

This topic is closed to new replies.

Advertisement