`Case 5:18—md-02834-BLF Document 233-2 Filed 10/04/18 Page 1 of 63
`
`EXHIBIT 2
`
`
`
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 2 of 63
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 2 of 63
`
`United States Patent
`(12)
`Farber et aI.
`
`(10) Patent N0.:
`(45) Date of Patent:
`
`US 6,928,442 B2
`Aug. 9, 2005
`
`USOO692844232
`
`(54)
`
`ENFORCEMENT AND POLICING OF
`LICENSED CONTENT USING
`CONTENT-BASED IDENTIFIERS
`
`Inventors:
`
`(75)
`
`(73)
`
`Assignees:
`
`(*)
`
`Notice:
`
`David A. Farber, Ojai, CA (US);
`Ronald D. Laehman, Northbrook, IL
`(US)
`
`Kineteeli, Inc., Northbrook, IL (US);
`Savvis, Ine., Town & Country, MO
`(US)
`
`Subject to any disclaimer, the term ofthis
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`(21)
`
`(32)
`
`(05)
`
`(63)
`
`(51)
`(53)
`
`(58)
`
`(56)
`
`Appl. N0.:
`Filed:
`
`09/987,723
`
`Nov. 15, 2001
`Prior Publication Data
`
`US 2002/0052884 A1 May 2. 2002
`
`Related U.S. Application Data
`
`(.ei'IlinIIIIion of III‘IPIILIIIIIII‘I No. 1.191283. 1le. film! on Apr. 1.
`|‘J‘1‘J.nowl’al. No (1.415.28111 which is a division 01
`applicationNo.111‘II‘JI'JIIHIIIl) him on (Jul. 24. I‘J‘I'I. new l’al.
`0111.5..91'8‘19I. which 116 a Lantinuation of application Nu.
`UHI425 1611 tiled on Apr 11,1995 no“ abandoned.
`Int. Cl.7
`.G06F 17/30
`U..S Cl.
`707/10 707/3; 707/;101
`.
`707/700 709/203; 709/219; 709/229
`Field of Search.
`.707/3,6,9. 10,
`707/101, 200;709/203, 219 229
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`3,668,647 A
`4,215,402 A
`4,290,105 A
`4,376,299 A
`4,405,829 A
`4,412,285 A
`
`6/1972
`7/1980
`9/1981
`3/1983
`9/1983
`10/1983
`
`Evangelisti
`Mitchell
`Ciehelli
`Rivest
`Rivest
`Neches
`
`(Continued)
`
`FOREIGN PATENT DOCUMENTS
`
`EI’
`
`0592045
`
`4/1994
`
`OTHER PUBLICATIONS
`
`Gwertzman, James, 61 al. “The Case for Geographical Push—
`Caehing." Technical Report HU TR 34—94 (excerpt), Har-
`vard University, DAS, Cambridge, MA 02138, 1994, 2 pgs.
`Grigni, Michelangelo, et al. “Tight Bounds on Minimum
`Broadcasts Networks." SIAM Journal of Discrete Math-
`ematics, vol. 4, No. 2, May 1991, pp. 207—222.
`Devine, Robert. “Design and Implementation of DDII: A
`Distributed Dynamic Hashing Algorithm.” In Proceedings
`of 4th International Conference on Foundations of Data
`Organizations and Algorithms, 1993, pp. 101—114.
`Deering, Stephen, et al. “Multicast Routing in Datagram
`Internetworks and Extended LANs." ACM Transactions on
`Computer Systems, vol. 8, No. 2, May 1990, pp. 85—110.
`
`(Continued)
`
`Primary Examiner—Luke S Wossum
`Assistant Examiner—Khanh Pham
`(74) Attorney, Agent, or Firm—Davidson Berquist Jackson
`& Gowdey, LLP
`
`(57)
`
`ABSTRACT
`
`Data files are distributed across a plurality ofeomputers. The
`computers may form a network such as a content delivery
`network (CDN) or a peer-to—peer network. The network may
`operate as a TCP/IP network such as the Internet. Data files
`may represent may represent digital messages,
`images,
`videos or audio signals. For content—data items or files in
`the system—a name is obtained (or determined), where the
`name is based, at least in part, on a given function ofthe data
`in a data item or file. The given function may be a message
`digest or hash function, and it may be MD4, MDS, and SI-IA.
`A cony of a requested file is only provided to licensed (or
`authorized) parties. The system may check one or more
`computers for unauthorized or unlicensed content. Content
`is served based on a measure of availability of servers.
`
`56 Claims, 31 Drawing Sheets
`
`GDMPU I E IIID FUNCI'10N ON
`DATA ITEM
`
`DATA ITEM
`
`.14
`APPEND LENGTH MODULO 32 OF
`
`I
`1
`
`EXHIBIT 2 - 1
`
`
`
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 3 of 63
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 3 of 63
`
`US 6,928,442 132
`Page 2
`
`U.S. PATENT DOCUMENTS
`
`Rabin, Michael. “Efficient Dispersal of Information for
`Security, Load Balancing, and Fault Tolerance." Journal of
`the ACM, vol. 36, No. 2, Apr. 1989, pp. 335—348.
`Ravi, R., “Rapid Rumor Ramificalion: Approximating the
`Minimum Broadcast Time." In Proceedings of the 35th
`IEEE Symposium on Foundation of Computer Science, Nov.
`1.994, pp. 202—213.
`Schmidt, Jeanette, ct al. “Chernoff—Hoeifding Bounds for
`Applications with Limited Independence." In Proceedings
`of the 4th ACS—SIAM Symposium on Discrete Algorithms,
`1993, pp. 331—340.
`Tarjan, Robert Endre, et al. “Storing a Sparse Table."
`Communications of the ACM, vol. 22, No. 11, Nov. 1979,
`pp. 606—611.
`Wegman, Mark, et al. “New Hash Functions and Their Use
`in Authentication and Set Equality." Journal of Computer
`and System Sciences vol. 22, Jun. 1981, pp. 265—279.
`Vitter, Jeffrey Scott, el al. “Optimal Prefetching via Data
`Compression." In Proceedings of32nd IEEE Symposium on
`Foundations of Computer Science, Nov. 1991, pp. 121—130.
`Fredman, Michael, et al. “Storing a Sparse Table with 0(1)
`Worst Case Access Time.” Journal of the Association for
`Computing Machinery, vol. 31, N0. 3, Jul. 1984, pp.
`538—544.
`Yao, Andrew Chi—Chih. “Should Tables be Sorted?" Journal
`of the Association for Computing Machinery, vol. 28, No. 3,
`Jul. 1981, pp. 615—628.
`Floyd, Sally, et al. “A reliable Multicast Framework for
`Light—Weight Sessions and Application level Framing." In
`Proceeding of ACM SIGCOMM '95, pp. 342—356.
`Feeley, Michael, et al. “Implementing Global Memory Man-
`agement in a Workstation Cluster." In Proceedings of the
`15th ACM Symposium on Operating Systems Principles,
`1995, pp. 201—212.
`Carter, J. Lawrence, et a1. “Universal Classes of Hash
`Functions.” Journal of Computer and System Sciences, vol.
`18, No. 2, Apr. 1979, pp. 143—154.
`Patent Abstracts of Japan, “Electronic Mail Multiplexing
`System and Communication Control Method in The Sys-
`tem." Jun. 30, 1993, JP 05162529.
`Kim el al., “Experiences with Tripwire: Using Integrity
`Checkers For Intrusion Detection", COAST Labs. Dept. of
`Computer Sciences Purdue University, Feb. 22, 1995, pp.
`1—12.
`
`Kim et al., “The Design and Implementation of Tripwire: A
`file System Integrity Checker", COAST Labs. Dept. of
`Computer Sciences Purdue University, Nov. 19, 1993, pp.
`1—21.
`Bert dem Boer et al., Collisions for the compression function
`of MDS, pp. 292—304.
`Sakti Pramanik et al., Multi—Directory Hasing, 1993, Info.
`Sys., vol. 18, No. 1, pp. 63—74.
`Murlidhar Koushik, Dynamic [lashing with Distributed
`Overflow Space: A File Organization with Good Insertion
`Performance, 1993, Info. Sys., vol. 18, No. 5, pp. 299—317.
`Witold Litwin et al., LH'—Linear Hashing for Distributed
`Files, HP Labs Tech. Report No. HPL—93—21, Jun. 1993, pp.
`1—22.
`
`Yuliang Zheng et al., l-lAVAI.—A One—Way Hashing Algo-
`rithm with Variable Length of Output (Extended Abstract),
`pp. 83—105.
`Chris Charncs and Josef Pieprzky, Linear Nonequivalencc
`versus Nonlinearity, Pieprzky, pp. 156—164.
`
`EXHIBIT 2 - 2
`
`.................. 707/1
`
`.............. 707/2
`
`707/2
`
`11/1983 Summer, Jr.
`4,414,624 A
`4/1984 Fletcher
`4,441,155 A
`8/1984 Benhase
`4,464,713 A
`12/1984 Dixon
`4,490,782 A
`2/1986 Emry, Jr.
`4,571,700 A
`3/1986 Matick
`4,577,293 A
`2/1987 Meaden
`4,642,793 A
`6/1987 Gruner
`4,675,810 A
`9/1987 Rivest
`4,691,299 A
`2/1988 Kronstadt
`4,725,945 A
`9/1988 Zamora
`4,773,039 A
`12/1989 Holloway
`4,887,235 A
`12/1989 Barnes
`4,888,681 A
`5/1990 Holloway
`4,922,414 A
`5/1990 Churm et al.
`4,922,417 A
`11/1990 Burke
`4,972,367 A
`6/1991 Cho
`5,025,421 A
`9/1991 Marca
`5,050,074 A
`9/1991 Dyson
`5,050,212 A
`10/1991 Colwell
`5,057,837 A
`12/1991 Bendert
`5,077,658 A
`7/1992 Kohayashi
`5,129,081 A
`7/1992 Tirfing
`5,129,082 A
`9/1992 Pogue, Jr.
`5,144,667 A
`1/1993 Colwell
`5,179,680 A
`4/1993 Gramlich et al.
`5,202,982 A
`5/1993 Vollert
`5,208,858 A
`1/1994 Howell
`5,276,901 A
`2/1994 Nemes
`5,287,499 A
`4/1994 Rajani
`5,301,286 A
`4/1994 Hamilton
`5,301,316 A
`8/1994 Pitkin et al.
`5,341,477 A
`8/1994 Moore
`5,343,527 A
`10/1994 Megory-Cohen
`5,357,623 A
`1/1995 Cannon
`5,384,565 A
`4/1995 Konrad
`5,404,508 A
`9/1995 Nelson et al.
`5,452,447 A
`10/1995 Burnett
`5,459,860 A
`7/1996 Neimal et al.
`5,542,087 A
`12/1996 Burnett
`5,581,758 A
`.................. 705/54
`6/1997 Stefik et al.
`5,638,443 A
`6/1997 Hamilton el al.
`. 709/303
`5,640,564 A
`
`713/177
`7/1998 Haber et al.
`5,781,629 A '
`
`.
`. 709/202
`9/1998 Balick et al.
`5,802,291 A
`
`9/1998 Nguyen ........
`707/1
`5,809,494 A
`.................. 345/810
`5,835,087 A ' 11/1998 Hera et al.
`5,907,704 A
`5/1999 Gudmundson et al.
`6,006,018 A
`12/1999 Burnett et al.
`......... 395/200.49
`6,134,603 A
`10/2000 Jones et al. ................. 709/330
`OTHER PUBLICATIONS
`
`................ 709/226
`
`.............. 707/205
`
`................ 707/10
`
`Cormen, Thomas H., et al. Introduction to Algorithms, The
`MIT Press, Cambridge, Massachusetts, 1994, pp. 219—243,
`991—993.
`
`Naor, Moni, et al. “The Load, Capacity and Availability of
`Quorum Systems." In Proceedings of the 35th IEEE Sym-
`posium on Foundations of Computer Science, Nov. 1994,
`pp. 214—225.
`for Space—
`“Pseudorandom Generators
`Nisan, Noam.
`Bounded Computation.” In Proceedings of the Twenty—
`Second Annual ACM Symposium on Theory of Computing,
`May 1990, pp. 204—212.
`Palmer, Mark, et al. “Fido: A Cache that Learns to Fetch."
`In Proceedings ofthe 17th International Conference on Very
`Large Data Bases, Sep. 1991, pp. 255—264.
`Pcleg, David, et al. “The Availability of Quorum Systems."
`Information and Computation 123, 1995, 210—223.
`
`
`
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 4 of 63
`Case 5:18—md-02834-BLF Document 233-2 Filed 10/04/18 Page 4 of 63
`
`US 6,928,442 132
`Page 3
`
`Witold Litwin et a1., Linear Hashing for Distributed Files,
`ACM SIGMOD, May 1993, pp. 327—336.
`Ming—Ling Lo et al., On Optimal Processor Allocation to
`Support Pipelined Hash Joins, ACM SIGMOD, pp. 69—78,
`May 1993.
`Thomas A. Berson, Dill'erential Cryptanalysis Mod 232 with
`Applications to MDS, pp. 69—81.
`William Perrizo et al., Distributed Join Processing Perfor-
`mance Evaluation, Twenty—Seventh Hawaii International
`Conference on System Sciences, vol. II, pp. 236—244.
`Vijay Kumar, A Concurrency Control Mechanism Based on
`Extendible Hashing for Main Memory Database Systems,
`ACM, v01. 3, 1989, pp. 109—113.
`Birgit Pfitzman, Sorting Out Signature Schemes, Nov. 1993,
`1" Conf. Computer & Comm. Security ’93, p. 74—85.
`Zhiyu Tian ct al., A New Hashing Function: Statistical
`Behaviour and Algorithm, pp. 3—13.
`G. L. Friedman, Digital Camera with Apparatu for Authen-
`tication of Images Produced from an Image File, NASA
`Case No. NPO—19108—1—CU, U.S. App]. No. 08/159,980,
`filed Nov. 24, 1993.
`H. Goodman, Ada, Object—Oriented 'l‘echniques, and Con—
`currency in 'l'euching Data Structures and l-‘ilc Management
`Report Documentation p. AID—A275 385 — 94-04277.
`Advances in Cryptology—Eumcrypt‘93, Workshop on the
`Theory and Application of Cryptographic 'l'eclmiques
`Lofthua. Norway. May 23—27, 1993 Proceedings.
`Proceedings of the 1993 ACM SIGMOD International Con—
`ference on Management of Data, vol. 22, Issue 2, Jun.
`|993.
`
`Advances in Cryptology—AUSCRYPT ’92—Workshop on
`the Theory and Application of Cryptographic Techniques
`Gold Coast, Queensland, Australia, Dec. 13—16, 1992 Pro-
`ceedings.
`Peter Deutsch (peterd@bunyip.com), “Re: MDS and LiFNs
`(was: Misc Commean)", www.acl.lan1.gov/URl/archive/
`uri—94q2.messages/0106.html, Apr. 26, 1994.
`Alexander Dupuy (dupuy@smarts.com), "RE: MDS and
`l.IFNs (was: Misc Comments)", www.acl.lanl.gov/URl/ar—
`chive/uri—94q2.messages/0113.html, Apr. 26. 1994.
`Alexander Dupuy (dupuy@smarts.com), “MDS and LIFNs
`(was: Misc Comments)”, www.acl.lanl.gov/URl/archive/
`uri—94q2.messages/0081.html, Apr. 17, 1994.
`Albert Langer (cmf851@anu.oz.au), http://groups.google-
`.com/groups?selm=
`1991 Aug7.225159.786%40newshost.anu.edu.au&oe=
`UTF—8&output=gplain, Aug. 7, 1991.
`Clitford Lynch (Calur@uccmvsa.bitnet), “ietf url/uri over-
`view draft paper (long)", www.acl.lanl.gov/URl/archive/
`uri—93q1.messages/0015.html, Mar. 25, 1993.
`K. Sollins and L. Masinter, “Functional Requirements for
`Uniform Resource Names", www.w3.org/Addressing/
`rfc1737.txt, Dec. 1994, pp. 1—7.
`W3C:ID, HTTP: A protocol for networked information,
`“Basic HTTP as defined in 1992", www.w3.org/Protocols/
`HTTPthml, 1992.
`European Search Report issued Dec. 23, 2004.
`
`* cited by examiner
`
`EXHIBIT 2 - 3
`
`
`
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 5 of 63
`Case 5:18—md-02834-BLF Document 233-2 Filed 10/04/18 Page 5 of 63
`
`US. Patent
`
`Aug. 9, 2005
`
`Sheet 1 0f 31
`
`US 6,928,442 B2
`
`106
`
`102
`
`PROCESSOR
`
`....———
`
`102
`
`102
`
`PROCESSOR
`
`IIl
`
`PROCESSOR
`
`FIG.I(a)
`
`102
`
`102
`
`PROCESSOR
`
`PROCESSOR
`
`STORAGE
`
`DEVICE
`
`DEVICE
`
`STORAGE
`
`192
`
`EXHIBIT 2 - 4
`
`
`
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 6 of 63
`Case 5:18—md-02834-BLF Document 233-2 Filed 10/04/18 Page 6 of 63
`
`US. Patent
`
`Aug. 9, 2005
`
`Sheet 2 of 31
`
`US 6,928,442 B2
`
`>MOEms—
`
`va
`
`_——$———
`
`32.
`
`__mm_—
`
`NEED—m
`
`mmr
`
`_—$mfl—
`
`_—qmm_—
`
`N2
`
`EXHIBIT 2 - 5
`
`
`
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 7 of 63
`Case 5:18—md-02834-BLF Document 233-2 Filed 10/04/18 Page 7 of 63
`
`US. Patent
`
`Aug. 9,2005
`
`Sheet 3 0f 31
`
`US 6,928,442 B2
`
`
`
`F
`°°
`.-
`
`E
`
`5
`LI]
`m
`E
`
`E
`
`E 8 B
`
`E
`n
`
`E
`i5
`
`LL!
`
`32
`‘_
`
`1‘
`
`t
`
`h1-
`V.“
`
`I
`.
`I
`
`z:\-
`
`¢D
`‘-
`F
`
`s
`m
`a E
`II- 5
`
`N.
`9
`
`
`
`I-
`E
`
`0
`Lu
`(D
`
`’5'
`
`EXHIBIT 2 - 6
`
`
`
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 8 of 63
`Case 5:18—md-02834-BLF Document 233-2 Filed 10/04/18 Page 8 of 63
`
`US. Patent
`
`Aug. 9,2005
`
`Sheet 4 0f 31
`
`US 6,928,442 B2
`
`m
`
`.40
`
`I42
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`EXHIBIT 2 - 7
`
`FIG. 3
`
`P T
`
`ru
`
`‘0
`
`Time of last acaess
`
`1me of last modiflcation
`
`
`
`
`
`FIG. 4
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Com-ressed File ID
`
`Time of last access
`
`Groomin- delete count
`
`3
`R oion status
`
`Mirror du-lication count
`
`FIG.5
`
`
`
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 9 of 63
`Case 5:18—md-02834-BLF Document 233-2 Filed 10/04/18 Page 9 of 63
`
`US. Patent
`
`Aug. 9, 2005
`
`Sheet 5 0f 31
`
`US 6,928,442 B2
`
`
`
`¢E
`
`03
`
`mg
`
`
`I
`
`
`
`
`SOHfiflUOHQUHQOU
`
`
`
`Lon..
`
`0.9m
`
`h.07.
`
`m.o_..._
`
`m.o_n_
`
`EXHIBIT 2 - 8
`
`
`
`
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 10 of 63
`Case 5:18—md-02834-BLF Document 233-2 Filed 10/04/18 Page 10 of 63
`
`US. Patent
`
`Aug. 9, 2005
`
`Sheet 6 0f 31
`
`US 6,928,442 B2
`
`FIG. 10(0)
`
`SIMPL
`
`DA TA ITEM
`
`COMPUTE MD FUNCTION 0N
`DATA ITEM
`
`DATA ITEM
`
`8214
`
`APPEND LENGTH MODULO 32 OF
`
`EXHIBIT 2 - 9
`
`
`
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 11 of 63
`Case 5:18—md-02834-BLF Document 233-2 Filed 10/04/18 Page 11 of 63
`
`US. Patent
`
`Aug. 9,2005
`
`Sheet 7 of 31
`
`US 6,928,442 B2
`
`YES
`
`$216
`
`DATA ITEM
`SIMPLE?
`
`
`
`
`
`PARTITION DATA ITEM INTO
`SEGMENTS
`
`
`$222
`
`
`
`ASSIMILATE EACH SEGMENT
`(COMPUTING rrs TRUE NAME)
`
`"""5'21's"""\l
`3 COMPUTE TRUE :
`1 NAME OF SIMPLE :
`
`~ ..............
`
`CREATE INDIRECT BLOCK 0F
`
`SEGMENT TRUE NAMES
`
`8225
`
`ASSIMILATE INDIRECT BLOCK
`(COMPUTING rrs TRUE NAME)
`
`ITEM
`
`3223
`
`REPLACE FINAL 32 BITS OF TRUE
`NAME WITH LENGHT MOD 32 OF DATA
`
`EXHIBIT 2 - 10
`
`
`
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 12 of 63
`Case 5:18—md-02834-BLF Document 233-2 Filed 10/04/18 Page 12 of 63
`
`US. Patent
`
`Aug. 9,2005
`
`Sheet 8 of 31
`
`US 6,928,442 B2
`
`fin:m..=n_m><=
`
`>mhzmwmonmm.»
`
`wmww
`
`
`
`9—w..=n_mmohb
`
`mew
`
`0.m4."—EJMD
`
`my,msEzNEE«moo
`
`
`MAEmam...z.kwsnw
`
`w>m._.w_0wm
`
`wwmw
`
`
`
`>m._.zmgmzm._.<mm0«
`
`
`WDJNEEMF—.0Pm—w
`
`
`
`
`
` ..Qw.=n_mmOhm«rO...P2300mm:.55a
`
`EXHIBIT 2 - 11
`
`omwm
`
`sz—mmmfi.
`
`mus—<2may;
`
`:.9“.
`
`
`
`
`
`
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 13 of 63
`Case 5:18—md-02834-BLF Document 233-2 Filed 10/04/18 Page 13 of 63
`
`US. Patent
`
`Aug. 9,2005
`
`Sheet 9 0f 31
`
`US 6,928,442 B2
`
`FIG. l2
`
`
`
` $238
`$240
`
`FILE
`UPDATE
`
`
`DEPENDENCY
`
`
`
`LOCKED?
`LIST
`
`$242
`
`SEND MESSAGE TO
`
`3244
`
` 8246
`MIRROR
`
`(IF DESIRED)
`
`
`
`CACHE SERVER T0
`
`UPDATE CACHE
`
`COMPRESS
`(IF DESIRED)
`
`
`
`
`EXHIBIT 2 - 12
`
`
`
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 14 of 63
`Case 5:18—md-02834-BLF Document 233-2 Filed 10/04/18 Page 14 of 63
`
`US. Patent
`
`Aug. 9,2005
`
`Sheet 10 0f 31
`
`US 6,928,442 B2
`
`FIG. I3
`
`‘ ,
`
`.
`
`‘ ,
`
`FAIL
`
`8250
`SEARCH FOR
`THE
`
`
`
`PATHNAME
`
`FOUND
`
`LDE INCLUDES
`
`TRUE NAME?
`
`
`
`
`
`
`LDE IDENTIFIES
`ASSIMILATE
`DIRECTORY?
`
`
`
`8258
`
`FILE ID
`
`Y5
`
`8256
`
`FREEZE
`
`DIRECTORY
`
`EXHIBIT 2 - 13
`
`
`
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 15 of 63
`Case 5:18—md-02834-BLF Document 233-2 Filed 10/04/18 Page 15 of 63
`
`US. Patent
`
`Aug. 9, 2005
`
`Sheet 11 0f 31
`
`US 6,928,442 B2
`
`
`
`8260
`
`CONFIRM THAT
`
`TRUE NAME
`
`EXISTS LOCALLY
`
`
`
`
`
`
`SEARCH FOR
`
`8262
`
`FIG.|4
`
`PATHNAME IN
`
`
`
`
`
`LDE TABLE
`
`
`
`
`CONFIRM THAT
`
`8264
`
`DIRECTORY
`
`EXISTS
`
`
`
`
`
`$266
`NAMED FILE
`
`8268
`DELETE
`
`EXISTS?
`
`
`
`TRUE FILE
`
`8270
`
`
`
`CREATE
`
`ENTRY IN LDE
`
`
`& UPDATE
`
`
`EXHIBIT 2 — 14
`
`
`
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 16 of 63
`Case 5:18—md-02834-BLF Document 233-2 Filed 10/04/18 Page 16 of 63
`
`US. Patent
`
`Aug. 9, 2005
`
`Sheet 12 0f 31
`
`US 6,928,442 B2
`
`mmZOmmmm
`
`m>_._._w0m
`
`whww
`
`
`
`w.=n_mam...awhzm
`
`owmw
`
`
`
`"5.ozmw
`
`waOmwmm
`
`m>F<omz
`
`wm>
`
`memmmoOm.<ZO_._.<OO.._m—
`
`
`
`mo".his5:05.a358:530mm
`£8mmzoummmSaw
`
`
`
`
`mm...
`
`
`
`O._.z_omsz—mm
`
`mmum
`
`may;Rims
`
`"5BE
`
`3353
`
`w.=..._DZE
`
`m_.o_n_
`
`EXHIBIT 2 - 15
`
`
`
`
`
`
`
`
`
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 17 of 63
`Case 5:18—md-02834-BLF Document 233-2 Filed 10/04/18 Page 17 of 63
`
`US. Patent
`
`Aug. 9, 2005
`
`Sheet 13 of 31
`
`US 6,928,442 B2
`
`
`
`Em..o_n_
`
`..=<u_O
`
`vmmw
`
`hzmfio
`
`whowgmw
`
`.mEommmoomn
`
`my
`
`mwNw
`
`>z<
`
`Dmhomfim
`
`mmmemUOM—a—
`
`owww
`
`Hzmfio
`
`MMZOlmmm
`
`-I-|i+|il-
`
`we:EOE
`
`Whm<oo<0mmmach.0m:
`
`mmZOlwmm
`
`SNEE.
`
`KO
`
`EXHIBIT 2 - 16
`
`
`
`
`
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 18 of 63
`Case 5:18—md-02834-BLF Document 233-2 Filed 10/04/18 Page 18 of 63
`
`US. Patent
`
`Aug. 9, 2005
`
`Sheet 14 0f 31
`
`US 6,928,442 B2
`
`
`pm...op22oz<.$396wwwmmwmvmm
`
`
`
`38m05mm
`
`
`-8meor3%meozmm
`
`mhwflnfim‘qhwxmmm:om”.wfiwmhwcwe".may...m>mmwmm
`
`EXHIBIT 2 - 17
`
`may;".0mom—40w
`
`
`
`5.0m...—mmwn—EDm2<2
`
`p20....<z_._.mmn
`
`omNm
`
`mKOPw
`
`n:mOwwwOOm—n.
`
`momww
`
`mo".mm...n5x00.—
`
`0n<amE<zmay:
`
`
`
`0—20:.<OO.—mew—30m
`
`m0".m9momaowoh.
`
`mE<zmeh
`
`
`
`35..oE
`
`
`
`
`
`
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 19 of 63
`Case 5:18—md-02834-BLF Document 233-2 Filed 10/04/18 Page 19 of 63
`
`US. Patent
`
`Aug. 9, 2005
`
`Sheet 15 of 31
`
`US 6,928,442 B2
`
`DECOMPRESS
`
`
`
`YES
`
`2
`
`0
`
`I
`r
`|
`'
`
`a“
`('39
`mu:
`fl-fi
`5“
`o
`
`
`FAIL
`
`N0
`
`”’
`E
`
`E2
`mam
`filo:
`—U-<
`Emz
`at:
`2
`
`YES
`
`m;
`E“
`OE
`Ea:
`as
`"-I—
`
`
`
`FIG.|7(a)
`
`EXHIBIT 2 - 18
`
`
`
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 20 of 63
`Case 5:18—md-02834-BLF Document 233-2 Filed 10/04/18 Page 20 of 63
`
`US. Patent
`
`Aug. 9, 2005
`
`Sheet 16 0f 31
`
`US 6,928,442 B2
`
`i
`
`oomw
`
`n:meFw
`
`232.o_n_
`
`Mm?»
`
`comm
`
`
`
`may:madam
`
`50Ewe".
`
`Amvmomaow
`
`vomw
`
`howl—mm
`
`
`
`mo.momaow
`
`Q.NOE:Om.
`
`MEGS02
`
`womw
`
`mF<UO._
`
`
`
`m..=uwho—2mm
`
`EXHIBIT 2 - 19
`
`
`
`
`
`
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 21 of 63
`Case 5:18—md-02834-BLF Document 233-2 Filed 10/04/18 Page 21 of 63
`
`US. Patent
`
`Aug. 9, 2005
`
`Sheet 17 0f 31
`
`US 6,928,442 B2
`
`25%.0E
`
`
`
`DADOIWIvhdmu
`
`
`
`
`
`max..."—0>n—OOmm
`
`m0".n:NJ."—
`
`hm...“—mam...
`
`Nwmm
`
`m3”:MXSZ
`
`.300.—MAE
`
`«mg—u.
`
`2mm
`
`mEJm—D
`
`m.=u_may:
`
`wMEFzmQmo..—
`
`
`
`MDMF02:.me
`
`kw..."—
`
`Owa
`
`
`
`gmzPray—O
`
`m4."—IOPéow
`
`EXHIBIT 2 - 20
`
`
`
`
`
`
`
`
`
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 22 of 63
`Case 5:18—md-02834-BLF Document 233-2 Filed 10/04/18 Page 22 of 63
`
`US. Patent
`
`Aug. 9,2005
`
`Sheet 18 0f 31
`
`US 6,928,442 B2
`
`
`
`ed
`
`
`dbl-”mg
`
`8&0:
`‘é-‘Eu‘
`
`IL!>_
`(D
`
`
`
`
`
`—
`
`DECREMENTUSE COUNT
`
`
`COPYFILETONEWFILE,STOREFILEIDINLDETABLE,
`
`EXHIBIT 2 - 21
`
`
`
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 23 of 63
`Case 5:18—md-02834-BLF Document 233-2 Filed 10/04/18 Page 23 of 63
`
`US. Patent
`
`Aug. 9, 2005
`
`Sheet 19 0f 31
`
`US 6,928,442 B2
`
`
`
`824.5592:fiwhuwwwwnz<BE
`
`$5.2533H8mEzEmOmzw
`8mm:93mo".
`BEME2.5.0.65.5
`
`
`
`>MOPUMEDzmzw
`
`39.0:
`
`mmmm
`
`kszmw—OE
`
`v.00.—mNmmmn.
`
`hmmw
`
`
`
`gm:”Pam—U
`
`
`
`Em:<._.<n
`
`EXHIBIT 2 - 22
`
`
`
`
`
`
`
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 24 of 63
`Case 5:18—md-02834-BLF Document 233-2 Filed 10/04/18 Page 24 of 63
`
`US. Patent
`
`Aug. 9, 2005
`
`Sheet 20 0f 31
`
`US 6,928,442 B2
`
`ovmw
`
`
`Amyfiww?<2052az<man.
`950mmBEEN.22345383
`5m:atz.598%.
`
`mmmw:06MO".
`
`Zora—amok;
`
`
`
`35..9“.
`
`
`
`>m0homw=0szG
`
`Nvmw
`
`
`
`m:._.mkfigfiwd
`
`
`
`Ewt<._.<Dgmz
`
`vam
`
`kZm—zmmowo
`
`memM—u.m1...
`
`KO0..—
`
`EXHIBIT 2 - 23
`
`
`
`
`
`
`
`
`0wn883mm«m
`
`m1m2<th<m
`
`
`
`Fm4.5".mfimmo
`
`F2,3mm83L9BgMm
`
`m>Ezmm50.5meEoBmmE33sz
`Dmofim20%mo".mmosoz
`
`wma.csU
`
`m.28..we".
`mtmay:mxsa.
`_no_mm9.8ONu.—
`
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 25 of 63
`a
`Mmm.
`
`mmmn24,wmm2<z2.5mw,0p:5;22:mmS8
`
`EXHIBIT 2 - 24
`
`
`
`
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 26 of 63
`Case 5:18—md-02834-BLF Document 233-2 Filed 10/04/18 Page 26 of 63
`
`US. Patent
`
`Aug. 9, 2005
`
`Sheet 22 0f 31
`
`US 6,928,442 B2
`
`
`
` 8354
`WAIT FOR
`
`FREEZE LOCK
`
`
`T0 TURN OF
`
`
`
`
`
`
`FIN D TFR
`ENTRY
`
`8356
`
` FlG.2l
`
`
`
`
` 535B
`
`DECREMENT
`
`
`REFERENCE
`COUNT
`
`
`
`REFERENCE COUNT IS
`
`
`
`
`DELETE
`
`ZERO & NO DEPENDENT
`
`TRUE FILE
`
`
`SYSTEMS IN TFR?
`
`
`S362
`
`
`8364
`
`
`REMOVE FILE ID
`AND COMPRESSED
`FILE ID
`
`
`
`EXHIBIT 2 - 25
`
`
`
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 27 of 63
`Case 5:18—md-02834-BLF Document 233-2 Filed 10/04/18 Page 27 of 63
`
`US. Patent
`
`Aug. 9,2005
`
`Sheet 23 of 31
`
`US 6,928,442 B2
`
`
`
`
`8365
`
`GET
`
`OPERATION
`
`
`
`FIG. 22
`
`8388
`
`YES
`ASSIMILATE
`
`
`S366
`
`MODIFY?
`
`CREATE OR
`
`
`
`
`
`
`
`COPY OR DELETE
`COMPOUND?
`
`
`
`8370
`8378
`RECORD TRUE
`
`
`MODIFY USE
`NAME IN AUDIT
`
`
`
`COUNT OF EACH
`FILE
`
`COMPONENT
`
`
`
`
`
`
`5379
`
`
`FOR EACH PARENT
`
`
`
`
`
`DIRECTORY OR FILE,
`UPDATE USE COUNT,
`LAST ACCESS AND
`MODIFY TIMES
`
`
`
`EXHIBIT 2 - 26
`
`
`
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 28 of 63
`Case 5:18—md-02834-BLF Document 233-2 Filed 10/04/18 Page 28 of 63
`
`US. Patent
`
`Aug. 9, 2005
`
`Sheet 24 of 31
`
`US 6,928,442 B2
`
`S382
`
`FIG. 23
`
`VERIFY
`GROOMING
`LOCK OFF
`
`COUNTS
`
`8386
`
`SET GROOM
`
`EXHIBIT 2 - 27
`
`
`
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 29 of 63
`Case 5:18—md-02834-BLF Document 233-2 Filed 10/04/18 Page 29 of 63
`
`US. Patent
`
`Aug. 9, 2005
`
`Sheet 25 of 31
`
`US 6,928,442 B2
`
`SIZES
`
`S394
`
`ADJUST FILE
`
`EXHIBIT 2 - 28
`
`8392
`
`INCREMENT
`
`GROOMING
`
`DELETE COUNT
`
`
`
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 30 of 63
`Case 5:18—md-02834-BLF Document 233-2 Filed 10/04/18 Page 30 of 63
`
`US. Patent
`
`Aug. 9,2005
`
`Sheet 26 of 31
`
`Us 6,928,442 B2
`
`FIG. 25
`
`LOCK
`
`$398
`
`UNLOCK
`
`GROOMING
`
`EXHIBIT 2 - 29
`
`
`
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 31 of 63
`Case 5:18—md-02834-BLF Document 233-2 Filed 10/04/18 Page 31 of 63
`
`US. Patent
`
`Aug. 9, 2005
`
`Sheet 27 0f 31
`
`US 6,928,442 B2
`
`GEN.oE
`
`.N>AJ<UOJ
`
`mkam—m..."—
`
`wovm
`
`hum—10¢.“
`
`2950
`
`8%
`
`05mm
`
`wow—ammo
`
`mvvw
`
`«ma...—
`
`IOPéom
`
`mmem
`
`hum—ZONE
`
`ZMn—O
`
`>Azoua<mm
`
`>mOPomm_-
`
`EXHIBIT 2 - 30
`
`
`
`
`
`
`
`
`
`S
`n
`mUm
`/4O/Olde
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 32 of 633
`8
`82mmd
`
`DM0F2aL9mm.
`3A
`
`eS
`
`H1F3M28323t2wth
`
`a.CS
`
`1m5aeP
`
`mm
`
`62fB02243A,e82w9,P6SmU
`
`3va.9“.
`
`vaw
`
`zmshwm
`
`0—
`
`m5."—10P<m0w
`
`.w29me>
`
`n:NJEszhmm
`
`
`
`ME...SOME
`
`
`
`.2004mxsz>m00
`
`8520.5.8
`
`moth...
`
`Whammy
`
`
`
`MAEIOFéOW
`
`mwvw
`
`hozEv—oo...
`
`DNXUOA
`
`m..=..._
`
`wowxo<0
`
`2.5
`
`02mm
`
`>Jm._.m._n=200
`
`zmtfigm.
`
`hwvw
`
`
`
`mEmmowe".mm<mm
`
`EXHIBIT 2 - 31
`
`
`
`
`
`
`
`
`
`
`
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 33 of 63
`Case 5:18—md-02834-BLF Document 233-2 Filed 10/04/18 Page 33 of 63
`
`US. Patent
`
`Aug. 9, 2005
`
`Sheet 29 0f 31
`
`US 6,928,442 B2
`
`
`
`29.5an>JZO-D<mm
`
`ham—Iona—wmrr2—moamv—OOJman—
`
`aOamoummmo..—0.
`
`«>m0homm5
`
`
`
`NDE.>u=h2mn=
`
`vaw
`
`>Ezwkmamo.—MEEmW—mo
`
`mou—wow—Comm
`
`m.=u_
`
`
`
`EKN.9“.use:
`
`
`
`may:5.0m."—m..."—
`
`EXHIBIT 2 - 32
`
`
`
`
`
`
`e
`emUm
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 34 of 63
`8
`6
`82mmd
`/40/Old
`
`lU
`
`fB024M4,8m.2a9,P6S
`
`32
`
`sPa0CS
`
`mm8e.1_t5a
`
`DM0El2L9,BMsMA
`
`M1El3f020333t2w.T.hnS
`
`thw
`
`whwdn—
`
`m.=u_no
`
`
`
`>n—OUIchéow
`
`
`
`MZO
`
`
`
`m.m.=u_mam—h.
`
`
`
`w.PZDOUmm:
`
`wNvm
`
`Oh>m._.2mnD<
`
`
`
`m.=n_._._o=<
`
`omvw
`
`PPM—Awn—
`
`MAEyam...
`
`BKN.GE
`
`
`
`Mm:moan—mm
`
`mzo>m.FZDOU
`
`Oz9:;m4."—
`
`wwE<Zmamh
`
`mm;
`
`EXHIBIT 2 - 33
`
`
`
`
`
`
`
`
`
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 35 of 63
`Case 5:18—md-02834-BLF Document 233-2 Filed 10/04/18 Page 35 of 63
`
`US. Patent
`
`Aug. 9, 2005
`
`Sheet 31 0f 31
`
`US 6,928,442 B2
`
`mm.9“.
`
`
`
`mmO._.hmeGm—m
`
`fiDMDMSSMOm
`
`mmww
`
`m>_._.<0mz
`
`NmZOmwmm
`
`Ozmm>
`
`vmvw
`
`«9230".
`
`mg
`
`meDGmm
`
`Daisy—On
`
`a.man—me3402
`
`nmmwNMn—EOOm0
`
`
`
`«D.m..."—
`
`Nah—won.
`
`mszmwmm
`
`EXHIBIT 2 - 34
`
`
`
`
`
`
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 36 of 63
`Case 5:18—md-02834-BLF Document 233-2 Filed 10/04/18 Page 36 of 63
`
`US 6,928,442 B2
`
`1
`ENFORCEMENT AND POLICING 0F
`LICENSED CONTENT USING CONTENT-
`[IASED IDENTIFIERS
`
`This is a continuation of application Ser. No. 09/283,160,
`filed Apr. 1, 1999, now US. Pat. No. 6,415,280, which is a
`division of application Ser. No. flit?96tl,079, filed Oct. 24,
`1997, now U.S. Pat. No. 5,978,791 filed Oct. 24, 2001 which
`is a continuation ofSer. No. 08/425,160, filed Apr. 11, 1995,
`now abandoned.
`
`BACKGROUND OF THE INVENTION
`
`1. Field of the Invention
`
`This invention relates to data processing systems and,
`more particularly, to data processing systems wherein data
`items are identified by substantially unique identifiers which
`depend on all of the data in the data items and only on the
`data in the data items.
`
`2. Background of the Invention
`Data processing (DI’) systems, computers, networks of
`computers, or the like, typically offer users and programs
`various ways to identify the data in the systems.
`Users typically identify data in the data processing system
`by giving the data some form of name. For example, a
`typical operating system (US) on a computer provides a tile
`system in which data items are named by alphanumeric
`identifiers. Programs typically identify data in the data
`processing system using a location or addrem. For example,
`a program may identify a record in a tile or database by using
`a record number which serves to locate that record.
`in all but the most primitive operating systems, users and
`programs are able to create and use collections of named
`data items,
`these collections themselves being named by
`identifiers. These named collections can then, themselves,
`be made part of other named collections. For example, an
`()8 may provide mechanisms to group files (data items) into
`directories (collections). Them: directories can then, them-
`selves be made part of other directories. A data item may
`thus be identified relative to these nested directories using a
`sequence of names, or a so-callcd pathnarnc, which defines
`a path through the directories to a particular data item (file
`or directory).
`As another example. a database management system may
`group data records (data items} into tables and then group
`these tables into database tiles (collections). The complete
`address of any data record can then be specilied using the
`database file name, the table name, and the record number of
`that data record.
`
`Other examples of identifying data items include: identi-
`fying files in a network file system, identifying objects in an
`object-oriented database,
`identifying images in an image
`database, and identifying articles in a text database.
`In general, the terms “data" and “data item" as used herein
`refer to sequences of bits. Thus a data item may be the
`contents of a file, a portion of a file, a page in memory, an
`object
`in an object-oriented program, a digital message, a
`digital scanned image. a part of a video or audio signal, or
`any other entity which can be represented by a sequence of
`bits. The term "data processing” herein refers to the pro-
`cessing of data items. and is sometimes dependent on the
`type of data item being processed. For example, a data
`processor for a digital
`image may dill‘er from a data pro-
`cessor for an audio signal.
`In all of the prior data processing systems the names or
`identifiers provided to identify data items (the data items
`
`10
`
`15
`
`20
`
`toU1
`
`30
`
`35
`
`4D
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`
`being tiles, directories, records in the database, objects in
`object-oriented programming, locations in memory or on a
`physical device, or the like) are always defined relative to a
`specific context. For instance,
`the tile identified by a par-
`ticular file name can only be determined when the directory
`containing the file (the context) is known. The file identified
`by a pathname can be determined only when the file system
`(context) is known. Similarly,
`the addresses in a process
`address space, the keys in a database table, or domain names
`on a global computer network such as the Internet are
`meaningful only because they are specified relative to a
`context.
`
`In prior art systems for identifying data items there is no
`direct relationship between the data names and the data item.
`The same data name in two different contexts may refer to
`different data items, and two different data names in the
`same context may refer to the same data item.
`In addition, because there is no correlation between a data
`name and the data it refers to, thereis no a priori way to
`confirm that a given data item is in fact the one named by a
`data name. For instance, in a DP system, if one processor
`requests that another processor deliver a data item with a
`given data name,
`the requesting processor cannot,
`in
`general. Verify that
`the data delivered is the correct data
`(given only the name).
`'l'herefore it may require further
`processing. typically on the part of the requester, to verify
`that the data item it has obtained is.
`in fact. the item it
`requested.
`A common operation in a DP system is adding a new data
`item to the system. When a new data item is added to the
`system. a name can be assigned to it only by updating the
`context
`in which names are defined. Thus such systems
`require a centralized mechanism for the management of
`names. Such a mechanism is required even in a multi-
`processing system when data items are created and identified
`at separate processors in distinct
`locations. and in which
`there is no other need for communication when data items
`are added.
`
`In many data processing systems or environments, data
`items are transferred between different
`locations in the
`system.
`'l'hese locations may be processors it!
`the data
`processing system, storage devices. memory. or the like. For
`example. one processor may obtain a data item from another
`processor or from an external storage device, such as a
`lloppy disk, and may incorporate that data item into its
`system (using the name provided with that data item}.
`However, when a processor (or some location) obtains a
`data item from another location in the DP system,
`it
`is
`possible that this obtained data item is already present in the
`system (either at the location of the processor or at some
`other location accessible by the processor) and therefore a
`duplicate of the data item is created. This situation is
`common in a network data processing environment where
`proprietary software products are installed from floppy disks
`onto several processors sharing a common tile server.
`in
`these systems. it is often the case that the same product will
`he installed on several systems. so that several copies ol~
`each file will reside on the common file server.
`In some data processing systems in which several pro-
`cessors are connected in a network, one system is designated
`as a cache server to maintain master copies of data items,
`and other systems are designated as cache cliean to copy
`local copies of the master data items into a local cache on an
`as-needed basis. Before using a cached item, a cache client
`must either reload the cached item, be informed of changes
`to the cached item, or confirm that the master item corre-
`
`EXHIBIT 2 - 35
`
`
`
`Case 5:18-md-02834-BLF Document 233-2 Filed 10/04/18 Page 37 of 63
`Case 5:18—md-02834-BLF Document 233-2 Filed 10/04/18 Page 37 of 63
`
`US 6,928,442 B2
`
`3
`
`spending to the cached item has not changed. In otherwnrds,
`a cache client must synchronize its data items with those on
`the cache server. This synchronization may involve reload-
`ing data items onto the cache client. The need to keep the
`cache synchronized or reload it adds significant overhead to
`existing caching mechanisms.
`In view of the above and other problems with prior art
`systems. it is therefore desirable to have a mechanism which
`allows each processor in a multiprocessor system to deter~
`mine a common and substantially unique identifier for a data
`item, using only the data in the data item and not relying on
`any sort of context.
`It is further desirable to have a mechanism for reducing
`multiple cop