Cyc and Tags
June 20, 2006
Many websites now use tags to allow users to annotate and search for information. However, these tags are merely keywords with no other clear structure. If I tag a post with ‘hamburger’ and another with ‘eggsalad’, I can’t search for ‘food’ to fetch both posts. Tag hierarchies, which WordPress supports, provides enough structure to allow a search for ‘food’. However, we can do better.
We can use the atomic terms in the Cyc KB as tags. For example, the KB already has terms for Hamburger and EggSalad. One can now make more interesting queries which can be solved by reasoning about these terms. For example, Cyc knows that a hamburger is a kind of sandwich that contains GroundBeef. It could, therefore, know that a hamburger is not appropriate for a vegetarian and suggest EggSalad instead (unless the person is a vegan). [Unfortunately, the KB doesn’t capture the fact that vegetarians don’t eat meat. My point is that it could know it.]
By using tags from Cyc, one can perform more powerful searches and reasoning on information. There are people working on automatically extracting Cyc terms from text, which would make it enormously easier to deploy this idea. Furthermore, one could use reifed non-atomic terms (functions on terms) to broaden the set of available tags. The kinds of queries would be (in Cyc queries, of course): “What did I eat this week?”, “Find pictures of my family in Spain.”, etc. Without additional information about tags, they aren’t very interesting. Cyc is merely one way to give tags more meaning.