PPVL: The PIRL Parameter Value Logic

The PIRL Parameter Value Logic is a tolerant C-Language application
programmer interface (API) implementation of the Parameter Value
Language (PVL). PVL is used as a standard in Planetary Data System
(PDS) files to describe the information contained in the file (see
http://pds.jpl.nasa.gov/stdref). It is a superset of the Object
Description Language (ODL) that is used for describing information in
other file formats; e.g. the HDF-EOS metadata attributes are described
using ODL. Though the language specification is provided by the
Consultative Committee for Space Data Systems in the Blue Book
("Parameter Value Language Specification (CCSDS0006)", May 1992 [CCSDS
640.1-B-1]) and Green Book ("Parameter Value Language - A Tutorial",
May 1992 [CCSDS 640.1-G-1]) documents, various PDS products over the
years have used PVL in different ways, some of which are now considered
non-standard. The PPVL API has proven able to correctly interpret all
PDS products it has encountered (e.g. viking, clementine, galileo,
etc.) generated by various software systems (e.g. vicar, isis, etc.)
and appears capable of handling any others.

The PPVL API offers the ability to interpret, create, modify, and
search PVL defined data structures as well as write PVL that conforms
to the PDS standard. The implementation is available as a
self-contained package on the PIRL anonymous ftp site
(ftp://PIRLftp.LPL.Arizona.edu/pub/PPVL). Accessing the capabilities of
the API is very easy. A useful little utility that resports on the PVL
contents of a file is provided as an example application. An extension
has been provided to make mapping of named PVL parameters to internal
software variables a centrally managed table definition mechanism. This
dramatically simplifies even complex uses of PVL files. The version of
xv enhanced at PIRL to display PDS images is offered as a complete
application of PPVL (also available from the PIRL anonymous ftp site:
ftp://PIRLftp.LPL.Arizona.edu/pub/xv). The PPVL API, and the sample
applications, have been built on various Unix flavors: Sun (SunOS, and
Solaris), HP-UX, SGI/Irix, FreeBSD, and Linux, and porting to other
operating environments should be trivial.
