Re: Inconsistencies in our approach
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 <firstname.lastname@example.org> said:
> > Manoj Srivastava wrote:
> >> On Thu, 31 Jul 2003 16:38:43 -0700, John H Robinson, IV
> >> <email@example.com> 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.
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
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
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
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
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
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.