Notes:
If you have any questions, please feel free to contact me
Smartphone Example
The smartphone example code requires the Windows Mobile 2003 SDK
The smartphone example was written as a quick tech demo, and I actually only spent an afternoon programming it to demonstrate the overall idea. What I did was create hashtables of the results from a call to the getContext function in ConceptNet, these hashtables are stored in ConceptNet.cs. The reason each letter of alphabet has its own table is because hashtables in the .NET compact framework have a limit to the number of items they can hold. I limited the context for each word to the first 10 results to decrease the amount of memory needed to run the application. I believe it currently takes up about 5 MB of RAM on the phone.
This code was generated in the fall of 2004 using ConceptNet 1.0, and there have been significant changes to the knowledge base since then. Because of this, I am including the ConceptNet 2.1 server, and an example client application I just wrote in C# to demonstrate how to access it.
ConceptNet 2.1 Server
To start the XML RPC server, run conceptNetServer.bat. The server will start running at http://localhost:8000/. Launch the C# Client to try out calling ConceptNet's functions. Each of the functions of ConcpetNet has an example associated with it in the client application.
The Smartphone Example Isn't as Cool as it Could Be
In general, I think commonsense reasoning could be used much more effectively then simply loading the context for each topic into memory (the current example code). For instance, with part of speech tagging and commonsense knowledge, we could identify a statement like "Buy me a ticket, I'll meet you at the..." and then filter the next word to concepts that (1) are locations, and (2) have the context of "ticket." (Currently it just does 2). By making better use of the semantic information in ConceptNet, I believe we could get word prediction accuracy rates that are impossible using only statistics.
More Information
More Information about Commonsense Reasoning research at the Media Lab
More Information about ConceptNet
More Information about ConceptNet (Article)
Using Commonsense Reasoning in Mobile Applications (Article)