The goal of the Comprehensive and Automated Software Inventory Creation System (CASICS) project is to develop machine learning techniques to analyze source code in software repositories. The basic approach is this:
The following diagram illustrates the main software components in the overall CASICS scheme.
The modular components can run on separate computers and communicate over TCP/IP network connections using either the MondoDB API, the Python Pyro4 API, direct file system access, or a REST API (notably, GitHub's REST API).
As part of developing CASICS, we also developed some independent software libraries that can be used for other purposes and projects:
We have also been developing new ontologies for areas where we could not find existing ontologies with suitable terms or sufficient breadth: