DomainLink is an open source tool which is focused on managing knowledge which is required in Computer programming or software development. Its a a complement to existing means of knowledge capture such as UML-modelling, requirements and design specification documents as well as source code comments.
In DomainLink descriptions, knowledge about concepts are grouped into various domains. The application domain contains the concepts which the application must operate on to serve its purpose. In the case of a program or device which plays media files(such as iTunes or iPod from Apple), key concepts are music and video files and means to control their playback, volume, etc. In addition, DomainLink descriptions can capture facts about concepts and their relations. For example, a fact about music files is that they are compressed and represented using some encoding (a separate concept).
The resulting descriptions are not embedded in the source code but stored separately, thus allowing concepts to be linked to several different implementations. Its not uncommon to have multiple implementation items which all represent the same concept. In a banking application, a financial transaction may be implemented as both a class, a database-record and an XML-file at various points in the program flow. Also, its possible for program libraries to be distributed with DomainLink descriptions which describes the knowledge required to use the library in a uniform and machine-readable way.