[Next] [Up] [Previous]
Next: Some Procedures to Access Up: Stored Knowledge Previous: Conclusion

Appendix: Representing Knowledge

In this section we shall develop the notion of matching patterns against a database, as a tool for manipulating knowledge in our Automated Tourist Guide. The version of the Guide described in chapter two had the severe limitation that its `knowledge' of London consisted entirely of questions paired with appropriate answers. This a cumbersome way of storing knowledge, in that a single concept, such as Buckingham Palace, must be held in a number of different forms, depending on the type of question to be asked about it. It is also inconvenient; the knowlege is hidden within the English phrases and so cannot easily be used as the basis for automated reasoning or planning.

By contrast, the knowledge of MSBLOCKS is kept as a series of entries in a database, with concepts stored as compact symbol structures. There are a number of ways in which a database for a Tourist Guide might be organized, but for our purposes it contains a number of component entries, which can be searched, added to, or removed. Each item in the database is arranged as a sub-list of three parts, representing two items and their relationship. Here, for example, are some possible entries in the database:

[[marble arch] near [hyde park]]
[[marble arch] at [the west end of oxford street]]
[[marble arch] isa [triumphal arch]]
[[the science museum] near [the natural history museum]]
[[the science museum] underground [south kensington]]
[[the natural history museum] isa [museum]]

It is useful to have information stored in the form of lists of triplets like this, rather than English text such as

[marble arch is near hyde park]
[marble arch is at the west end of oxford street]

If we know in advance that every item in the database will be a triplet, and that the item indicating relationship is drawn from a restricted set of words (`near', `at', etc.), then searching through the database becomes much more straightforward. It is also easy to give a database in this form some the characteristics of a semantic network, or to use it as a foundation for the more structured representations like frames or scripts.

The POP-11 database is stored in a variable called, appropriately, database. The procedures below all operate on database and its value is a list of items, each of which represents one entry. Initially we want the database to be empty. We can do this by `initializing' the variable database, as follows:

[ ] -> database;

The expression [ ] stands for the empty list.




[Next] [Up] [Previous]
Next: Some Procedures to Access Up: Stored Knowledge Previous: Conclusion

Cogsweb Project: luisgh@cogs.susx.ac.uk