Classification
Perhaps
one of the greatest challenges in describing physical
objects is classification and categorization. Within
the Physical Markup Language, we include data structures
that provide efficient methods for classifying objects.
Many previous standards and languages provided this
capability, and we used these as a guide in the approach
to the classification specificaton.
In
object oriented programming languages, such as C++,
JAVA and ADA, as well as modeling tools, such as the
Uniform Modeling Language (UML), there is an emphasis
on building efficient class hierarchies.
A
classic example is "the apples and oranges."
In this example, an 'apple' and 'orange' are a type-of
'fruit', and a 'fruit' is a type-of 'food,' as illustrated
in Figure 8, Classification and generalization are
important functions for any language describing the
physical world.. Or is the classic example, "apples
and oranges," in which we classify these objects
based on shape, as shown in Figure 9, "Apples"
and "oranges" could just as easily be grouped
together by their shape.
There
are, however, many different ways to classify objects
- and this is the real problem. We might say an 'apple'
and a 'stop sign' are a type-of 'round red shape',
which are a type-of 'red object'. This would be critical,
for example, if you suffered from red-green color
deficiency. There are many examples. There are, perhaps,
as many ways to classify objects in the physical world
as there are people to observe it.
The
important point here is that classification depends
on a particular viewpoint. The Physical Markup Language
accommodates multiple classification schemes for identical
physical attributes.
This
classification list will help the application software
organize, filter and present particular characteristics
of the physical world. Different views of the same
data can be presented to different individuals at
different times. A distributor may view the data in
terms of shipment size, a retailer in terms of product
movement, a consumer by price and a recycler by toxicity.
In
addition to classification within a particular PML
file, object descriptions may subscribe to shared
categorization schemes. In other words, common themes,
such as material type, product class, storage system
and recycling method, may be shared globally by the
object description files.
Background
We
assume classification schemes exist in hierarchical
trees, and that an object or a class of objects
may exist simultaneously in more than one tree.
The
major groups that make up the system for scientific
classification of organisms is a good example. There
are seven groups (1) Kingdom, (2) Phylum, (3) Class,
(4) Order, (5) Family, (6) Genus and (7) Species.
Every know organism and plant has a particular location
within each group, as illustrated schematically
in Figure 10, Classification of organisms illustrates
the hierarchical structure of classification schemes..
There
are numerous other well-known classification systems,
which have similar structure. Some of these are
created and managed by international standards bodies
such as ISO, ANSI, ASME, ASQC, ISTA, BS, CSA, UL,
IED, etc.
It
is not the intention of the Physical Markup Language
to propose or recommendate a particular classifcation
system, but rather create a mechanism to "plug-into"
existing taxonomies.
If
we consider a generic node in a classification tree
as shown in Figure 11, A generic node in a classification
tree references one or more parent nodes and one
or more members., we see that a particular class
must reference (or register membership with) a parent
class, as well as contain a list of subordinate
classes. A class node must also reference the classification
system to which it belongs (such as
The Scientific Classification of Organisms
as from the previous example), the type or level
in the classification tree (such as
phylum ) and the particular name, or instance,
(such as phylum Chordata
).
For
each of these - classification system, class type
and class name - the current version of the Physical
Markup Language will allow a text string identifier
as well as a alphanumeric code type (for legacy
coding) and a virtual EPC code. The specifics of
these will be outlined in the following section.
Class
We
introduce the class
element, containing classification information.
The class
element contains an system
element indicating the classification system to
which this class
element belongs, a type
element defining the type or level within the specified
system, and a name
element providing the particular instance within
the classification type.
Each
of the items above - system
, type
and name
- may contain a text string (a human readable name),
an epc
element (a virtual epc code) and a code
element (for common and legacy alphanumeric codes).
Each
class
element also includes a subscribe
element, containing one or more class
elements representing the parent classes to which
this particular class belongs, and a
members element, which contains a list of subordinate
class elements.
Finally,
the class
element includes a property
attribute indicating the particular characteristic
or aspect of the physical object refered to by this
class. In other words, an object may have a number
of properties, such as material composition, geometry,
function, usage, etc. Each of these properties may
refer to a separate classification tree.