OMCSNetCPP is a C++ API and inference toolkit for accessing OMCSNet, a semantic network mined out of the Open Mind Common Sense knowledge base.

This project is based on OMCSNet 1.2, a semantic network and inference toolkit written in Python/Java by Hugo Liu and Push Singh of the MIT Media Lab. OMCSNet currently contains over 280,000 separate pieces of common sense information extracted from the raw OMCS dataset.

  • OMCSNetCPP was written by Elliot Turner (
  • OMCSNetCPP is based on the OMCSNet project. Thank you to the original OMCSNet developers for making this resource available.
back to top
  • NEW! Jan 26, 2004 - OMCSNetCPP 1.1b has been released. This is a minor release containing several bugfixes for certain issues related to Boost compilation and predicates.dat loading.
  • Oct 8, 2003 - A server issue temporarily broke access to the OMCSNetCPP CGI web interface. Access has now been restored.
  • Oct 1, 2003 - OMCSNet-WNLG v1.3 is now available! This new version contains WordNet sense tagging for 23,000+ additional words, using a new automated scoring algorithm. Get it here.
  • Sept 26, 2003 - OMCSNet-WNLG v1.2 released! This new version contains additional part-of-speech tagging, WordNet sense tagging and other updates. More information can be found here!
  • Sept 24, 2003 - OMCSNet+WordNet project renamed to OMCSNet-WNLG, to reflect use of the Link Grammar syntactic English Parser. OMCSNet-WNLG v1.1 released! This new version contains preliminary Part-of-Speech and WordNet sense tagging of OMCSNet data. Get it here.
  • Sept 19, 2003 - OMCSNet+WordNet knowledge mapping / concept disambiguation project started. More information is available here.
  • Sept 18, 2003 - Stuart Horner has submitted a cgi-script that allows the OMCSNetCPP test application to be accessed via the web. Try it out [update 04-26-2005 - CGI interface temporarily disabled due to webhost maintenance, sorry!].
  • Sept 17, 2003 - OMCSNetCPP 1.0a released!
back to top
  • C++ API for accessing the OMCSNet data
  • Parsing of raw predicates.txt data into optimized binary representation
  • Searching the semantic network for a specific concept (See Example)
  • Finding all semantic paths between two concepts in the network (See Example)
  • Finding all concepts within the semantic context of one or more concepts (See Example)
  • Finding all concepts that are analogous to a concept (See Example)
  • Speed
back to top
Downloads & Documentation:
back to top
Interact with OMCSNetCPP:
  • OMCSNetCPP may now be accessed via a web browser interface.
  • Using this interface you may search for specific concepts within the semantic network, perform inference activities, etc.
  • Click [update 04-26-2005 - CGI interface temporarily disabled due to webhost maintenance, sorry!] to try it out.
back to top

Note: OMCSNetCPP is distributed under the terms of the GNU Lesser General Public License.