On Sat, Aug 02, 2003 at 01:24:03PM -0500, Manoj Srivastava wrote: > On Fri, 1 Aug 2003 21:50:13 -0700, John H Robinson, IV <[EMAIL PROTECTED]> > said: > > > Manoj Srivastava wrote: > >> On Thu, 31 Jul 2003 16:38:43 -0700, John H Robinson, IV > >> <[EMAIL PROTECTED]> said: > >> > >> > as a mostly passive observer at this point, the only data we are > >> > missing is a clear working definition to separate out Software, > >> > Data, and Documentation. > >> > >> My feeling is that there may not be any such clear cut distinction. > > > i am going to try to take a stab at it: > > > hardware: physical computing devices software: logical information > > stored by hardware devices that can be used for computation. > > > this allows us to break software into three (or more) areas: > > > program: software that provides instructions to hardware > > > data: input to software > > > documentation: information about software or data > > > Drawer 'O': software that does not fit in the above three > > categories. > > OK. I have a program (for my day job), where we have pluggable > probes deployed by a sensor program, as and when the sensor deems > fit. Initially, the sensor does not know how many probes have been > installed on the local machine, it goes out and discovers the number > and nature of the probes in an initial resource discovery phase. > > Each probe, when installed, installs an XML document that can > be converted into HTML or PDF by applying a sinple xsl transform; > this is where all the documentation oabout the probe lives. > > This files is, then documentation, no? > > The sensor reads the same file, applies another xsl transform, > and gets to know the capabilities of the probe, and how to classify > it, and publishes the data to a central trading service. > > The file is configuration data, no? > > Now, when a request for data comes in, a generic probe handler > is deployed, which reads the same file, applies a transform, and is > handed a seris of instructions on how to deploy the probe and > commuunicate with it. > > This file is program code, no? > > You disambiguate my program for me, and I'll believe there > are rigid classifications of software which are feasible. > > manoj
Here is my classification, which handles this better: A piece of information, whether in analog, digital or other form, is a program if it is intended to directly control the actions of a computer, other than by simply holding a pure description of its other contents. A piece of information, which is not a program, and whose contents is not primarily intended for human consumption is just data. A piece of information, which is not a program and whose entire contents is primarily intended for human consumption is either computer documentation or non-computer literature, depending on its subject. Thus if something serves as both program and documentation, the program classification wins. If something else holds both information for a humans and information for computers, the data classification wins. If something is entirely intended for humans but discusses both computer stuff and non-computer stuff, the documentation classification wins. Thus your XML example is a program. Some of the files derived from it are just data or program documentation, but the file they come from is a program. gcc is a program, the output of gcc --help is documentation. The Debian Social Contract is Literature, as is the GNU Manifesto. Most PostScript files are documentation or non-computer literature, even though PostScript is potentially Turing Complete and the standard preamble of some of these files may use programming constructs to describe the format. But there are PostScript files that are Programs or just data, some of the files in the GhostScript package are obvious examples. Most HTML files are documentation too, unless there are scripts involved. XML is about as general as plain ASCII, and XML files can end up in all classifications depending on contents. Most C files are clearly programs, but there are exceptions: The keyboard map in the Linux Kernel is data stored in C format. The classic K&R Hello, World sample is Literature: It does not truly direct the computer to take actions other than to show itself. The contents shown is not data, it is not even documentation, it is just a polite greeting. Note that this classification is solely for use in evaluation compliance with requirements for software freedom, such as DFSG, OSD or RMS's 4 freedoms. For other purposes it may be more relevant to use entirely different classifications. Also note that the classification deliberately avoids the contentious question as to which of the above qualify as Software. Jakob -- This message is hastily written, please ignore any unpleasant wordings, do not consider it a binding commitment, even if its phrasing may indicate so. Its contents may be deliberately or accidentally untrue. Trademarks and other things belong to their owners, if any.