The PIF Process Interchange Format and Framework
The PIF Process Interchange Format and Framework
Jintae Lee, Gregg Yost and the PIF Working Group[1]
Version 1.0
December 22, 1994
Table of Contents
1. Abstract
2. Introduction
3. History and current status
4. PIF
5. Alphabetic Class Reference
6. Extending PIF
7. Appendix A: PIF Syntax
8. Appendix B: An Example PIF File
9. References
4. PIF
A PIF process description consists of a file of objects, such as
ACTIVITY, ACTOR, and RESOURCE objects. Each object in the file has a
unique id that other objects can use to refer to it. Each object type
(or class) has a particular set of attributes defined for it;
each attribute describes some aspect of the object. For example, an
ACTOR object has a Skills attribute listing the actor's skills.
Object classes fall into a class hierarchy (see Figure 1). Each
object class has all of the attributes of all of its superclasses, in
addition to its own attributes. For example, all PIF objects have a
Name attribute, since the class at the root of the PIF hierarchy
(ENTITY) has a Name attribute.
When an attribute of one object has another object as its value,
the attribute represents a relationship between the two object
classes. For example, an ACTOR's Skill attribute takes SKILL objects
as values, so Skill represents a relationship between the ACTOR and
SKILL classes. Figure 2 depicts the relationships among the PIF
classes.
The PIF hierarchy has grown out of the efforts of the PIF Working
Group to share process descriptions among the group members' various
tools. We have used the following guidelines in developing this
hierarchy:
- Generality is preferred over computational efficiency when
there is a tradeoff, for the reason that PIF is an interchange
language, not a processing language. Therefore, the organization
of the object classes is not necessarily well-suited to performing
any particular task such as workflow management or process
simulation. Instead, our goal has been to define classes that can
express a wide variety of processes, and that can be readily
translated into other formats that may be more suitable for a
particular application.
- The PIF constructs should be able to express the constructs of
some existing common process representations such as IDEF (SADT)
or Petri Nets.
- PIF should start with the minimal set of classes and then
expand only as it needs to. The minimal set was decided at the
first PIF Workshop (October 1993) by examining those constructs
common to some major existing process representations and to the
process representations used by members of the PIF Working Group.
- Additions to the standard PIF classes could be proposed by
anybody, but the proposal must be accompanied by concrete examples
illustrating the need for the additions. The Working Group
decided, through discussions and votes if necessary, whether to
accept the proposal. PIF allows groups to define local extensions
at will (see Section 4), so new classes or attributes should be
added to the standard PIF classes only if they seem to be of
sufficiently general usefulness.
The current PIF class hierarchy is by no means complete and is
still under development. Section 3 describes all of the current PIF
classes.
Figure 1: The PIF class hierarchy.
Figure 2: Relationships among PIF classes.
Primitive value types
The value of an attribute in a PIF object is either the unique
identifier of another PIF object or a literal value of one of the
following primitive PIF value types. Appendix
A describes PIF's syntax, including the syntax of these primitive
literals.
- NUMBER: A numeric value. The NUMBER type is subdivided
into INTEGER and FLOAT types.
- STRING: A sequence of characters.
- SYMBOL: Symbols are denoted by character sequences, but
have somewhat different properties than strings. PIF symbols are a
much-simplified version of symbols in the Lisp programming
language (Steele, 1990). In PIF,
the main difference between strings and symbols is that symbols
are not case-sensitive unless specially quoted, but strings are
always case-sensitive.
- RESTRICTED-KIF-SENTENCE: A logical expression that may
include quantifiers as well as the more common Boolean operators.
This type is named as it is because the expressions PIF allows are
a subset of those allowed in KIF, a logic-based knowledge
interchange format. Appendix A has more details on KIF.