April 30, 2015



Software is dealt with in a few different ways in Cyc. Two salient senses of software are:

As a kind of propositional conceptual work, software, or a specific computer program, is a deliberately created abstract object comprised of propositions that together constitute a list of instructions for computers to execute. Examples include Emacs (the program) and the Linux kernel (the program). Computer programs are distinct from computer code and from both running and installed programs. The instructions that comprise a computer program can be expressed as abstract computer code, but no list of instructions expressed in code constitutes a computer program as a conceptual work. Rather, the code in which a computer program is expressed constitutes an abstract information structure that can be related to the program it expresses. More than one computer code can express the same computer program; for example, a single computer program can be written in source code in several different computer languages, or it can be compiled as a binary executable. A physical computer program is called a “computer program copy” which is an information-bearing thing. A computer program that is being executed is called a “running computer process”.

As an object, software is either a versioned or unversioned non-series software object, such as a program, a version of a program, a software package, or a library. Positive examples include Google Chrome, Microsoft Windows 10 Version 1511, and SUNWzip. Negative examples include Microsoft Windows 7 through 10 inclusive, which is a series.