The Application Level Events (ALE) Specification, Version 1.0 - GS1
The Application Level Events (ALE) Specification, Version 1.0 - GS1
The Application Level Events (ALE) Specification, Version 1.0 - GS1
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
388<br />
389<br />
390<br />
391<br />
392<br />
393<br />
394<br />
395<br />
396<br />
397<br />
398<br />
399<br />
400<br />
401<br />
402<br />
403<br />
404<br />
405<br />
406<br />
407<br />
408<br />
409<br />
410<br />
411<br />
412<br />
413<br />
414<br />
415<br />
416<br />
417<br />
418<br />
419<br />
420<br />
421<br />
422<br />
423<br />
424<br />
425<br />
client specifies the reports, and the implementation of the API decides where best to carry<br />
out the requested filtering.<br />
5 Group Reports<br />
Sometimes it is useful to group EPCs read during an event cycle based on portions of the<br />
EPC or attributes of the objects identified by the EPCs. For example, in a shipment<br />
receipt verification application, it is useful to know the quantity of each type of case (i.e.,<br />
each distinct case GTIN), but not necessarily the serial number of each case. This<br />
requires slightly more complex processing, based on the notion of a grouping operator.<br />
A grouping operator is a function G that maps an EPC code into some sort of group<br />
code g. For example, a grouping operator might map an EPC code into a GTIN group, or<br />
simply into the upper bits (manufacturer and product) of the EPC. Other grouping<br />
operators might be based on other information available on an EPC tag, such as the filter<br />
code that implies the type of object (i.e., pallet, case, item, etc.).<br />
<strong>The</strong> notation S↓g means the subset of EPCs s1, s2, … in the set S that belong to group g.<br />
That is, S↓g ≡ { s in S | G(s) = g }.<br />
A group membership report for grouping operator G is a set of pairs, where the first<br />
element in each pair is a group name g, and the second element is the list of EPCs that<br />
fall into that group, i.e., S↓g.<br />
A group cardinality report is similar, but instead of enumerating the EPCs in each group,<br />
the group cardinality report just reports how many of each there are. That is, the group<br />
cardinality report for grouping operator G is a set of pairs, where the first element in each<br />
pair is a group name g, and the second element is the number of EPCs that fall into that<br />
group, i.e., |S↓g|.<br />
Formally, then, the reporting options from the last section are:<br />
• Whether to report<br />
• A group membership (group list) report for one or more specified grouping<br />
operators Gi, which may include, and may possibly be limited to, the default<br />
(unnamed) group. In mathematical notation: { (g, F(R)↓g) | F(R)↓g is non-empty<br />
}.<br />
• A group cardinality (group count) report for one or more specified grouping<br />
operators Gi, which may include, and may possibly be limited to, the default<br />
(unnamed) group. In mathematical notation: { (g, |F(R)↓g|) | F(R)↓g is nonempty<br />
}.<br />
6 Read Cycle Timing<br />
<strong>The</strong> <strong>ALE</strong> API is intentionally silent about the timing of read cycles. Clients may specify<br />
the boundaries of event cycles, which accumulate data from one or more underlying read<br />
cycles, but the API does not provide a client with explicit control over the frequency at<br />
which read cycles are completed. <strong>The</strong>re are several reasons for this:<br />
Copyright © 2005, 2004 EPCglobal Inc, All Rights Reserved. Page 13 of 71