The format is intended to deal with sending a number of elements where each element has common attributes - possible applications include descriptions of books, financial transactions, recipies etc. Many of these things are exchanged in tag-like formats already, but all would benefit from using the same overall structure. Different applications can use different fields but there are core applications which can operate on any tagged type.
Thus we can take advantage of common functions across tagged types, for example project management systems have topological dependancies on actions which are very similar to the topological dependancies in a package management system.
Whew - that all sounds very complicated, but in fact it is very simple - an example may help
Tag-vehiclelog-version: 1.0 Description:: END_D This file provides a convenient place to put information about events in the life of a car, such as when they got filled up with petrol (or gas if you prefer), and when they were serviced. END_D Vehicle: Ferrari End: Odometer: 23097 Type: Fuel Fuel: 38.56 Cost: 22.33 Where: Lands End Date: 1-Apr-1998 Comments: Strange wailing from behind at 100, dies away at 150 End: Odometer: 23274 Type: Service Date: 2-Apr-1998 Description:: END_D Took car into dealer, complained about noise, they stripped the engine down but couldnt find anything END_D Cost: 500 End: Odometer: 23285 Type: Fuel Fuel: 36.22 Cost: 21.48 Date: 3-Apr-1998 End: Odometer: 23320 Date: 4-Apr-1998 Type: Misc Comments: Speeding fine Cost: 100 End:We can pass a file in this format to a person, and they will be able to understand what it means, but it is sufficiently structured to allow us to write a program which will, for example, calculate the total cost of motoring over a period of time.
These programs, and this data format, aim to fill the gap between text markup systems, which are very flexible, but hard for a program to process, and things like tab separated fields, or the various speadsheet export formats, which are easy to process, but a bit too rigid for some cases.
Thus there is a hierarchy of interchange formats, starting with text/tab-separated, then text/prs.jlines.tag, then text/xml, then text/html, then text/plain. In general it is easy to convert automatically in the direction of text/plain, but processing by an application is easier in the direction of tab-separated.
On this site you will find some specifications for the tag format, and some programs which manipulate it.
The current software version is 0.0.9