Reuse, not rework
Home

License Awareness



Highly Reusable Software

By activity
Professions, Sciences, Humanities, Business, ...

User Interface
Text-based, GUI, Audio, Video, Keyboards, Mouse, Images,...

Text Strings
Conversions, tests, processing, manipulation,...

Math
Integer, Floating point, Matrix, Statistics, Boolean, ...

Processing
Algorithms, Memory, Process control, Debugging, ...

Stored Data
Data storage, Integrity, Encryption, Compression, ...

Communications
Networks, protocols, Interprocess, Remote, Client Server, ...

Hard World
Timing, Calendar and Clock, Audio, Video, Printer, Controls...

File System
Management, Filtering, File & Directory access, Viewers, ...


Creating a LIDESC_COMBINE string


Read How LIDESC detects and reports licensing conflicts for an overview and web-based demonstration. This page describes how to create a symbolic tag list to detect conflicts.

CAUTION: license compatibility reports are only as good as the description files created by human interpretation of license texts. You should obtain them from trusted suppliers, and be careful when creating them yourself. If a symbol list for a license is empty or incomplete, it is not possible to accurately report incompatibility. It is better to leave a symbol list empty than to create an inaccurate list.

LIDESC does not read or interpret the text in licenses. Instead, LIDESC reports incompatibilities and conflicts based on lists of tags created by humans reading and interpreting licenses. (This means that reports are only as trustworthy as the lists of symbolic tags.)

LIDESC stores two files for each license: the full license text (.txt file extension), and a corresponding license description file (.lh file extension.) The license description file is where symbolic tags are listed.

The default _LIDESC_COMBINE string has an empty symbol-list, which means that the license does not place conditions on the other licenses of combined works.

Conflicts are specified by a list of conflicting tags in the LIDESC_COMBINE string in the description file. LIDESC reports a conflict when a symbol in the TAGS string of another license is in the COMBINE string preceded by '~'.

The form of the LIDESC_COMBINE string is very similar to the LIDESC_TAGS string.
	LIDESC_COMBINE: tagname symbol-list

	tagname: prefix '_LIDESC_COMBINE_' license-short-name

	prefix:			[A-Za-z_0-9]* (given on the command line)

	license-short-name:	[A-Za-z_0-9]* (given on the command line)

	symbol-list:
		(empty)
		~symbol  symbol-list
		~symbol  '(' comment ')' symbol-list

	comment: 		(any string of characters without ')' )

	symbol:  [A-Za-z_0-9]* (see notes below)

Always use the standard librock_ symbols when possible. They were carefully selected and worded. They are already in use by others. See Creating additional symbolic tags for some guidelines for creating tags when local sites have the need to create special-purpose tags.

WARNING: It is folly to assume that a simple program like this can do anything more than find and report some of the biggest problems, while leaving others undetected. This system does not match the educated human intelligence required to interpret and apply licenses. On the other hand, it can be useful to identify some of the license clauses which deserve extra scrutiny.

Up to: Creating a license description file
See also: Creating additional symbolic tags


Librock LIDESC. Software License Analyzer and Compatibility Reporter
Copyright 2001-2002, Forrest J. Cavalier III, Mib Software
You may reproduce verbatim copies of this page, but changing it is not allowed.
Email: Contact