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.

<class property=String >
<system> String
<epc> xx.xxxxxxx.xxxxxx.xxxxxxxx </epc>
<code> String </code>
</system>
<type> String
<epc> xx.xxxxxxx.xxxxxx.xxxxxxxx </epc>
<code> String </code>
</type>
<name> String
<epc> xx.xxxxxxx.xxxxxx.xxxxxxxx </epc>
<code> String </code>
</name>
<subscribe>
<class> . . . </class>
. . .
<class> . . . </class>
</subscribe>
<members>
<class> . . . </class>
. . .
<class> . . . </class>
</members>
</class>

 

 

Specification: Class

 

<class property= String >
<system> String
<epc> xx.xxxxxxx.xxxxxx.xxxxxxxx </epc>
<code> String </code>
</system>
<type> String
<epc> xx.xxxxxxx.xxxxxx.xxxxxxxx </epc>
<code> String </code>
</type>
<name> String
<epc> xx.xxxxxxx.xxxxxx.xxxxxxxx </epc>
<code> String </code>
</name>
<subscribe>
<class> . . . </class>
. . .
<class> . . . </class>
</subscribe>
<members>
<class> . . . </class>
. . .
<class> . . . </class>
</members>
</class>