US20040019546A1 - Method and apparatus for processing usage rights expressions - Google Patents
Method and apparatus for processing usage rights expressions Download PDFInfo
- Publication number
- US20040019546A1 US20040019546A1 US10/388,226 US38822603A US2004019546A1 US 20040019546 A1 US20040019546 A1 US 20040019546A1 US 38822603 A US38822603 A US 38822603A US 2004019546 A1 US2004019546 A1 US 2004019546A1
- Authority
- US
- United States
- Prior art keywords
- rights expression
- recited
- exemplary
- rights
- format
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/12—Payment architectures specially adapted for electronic shopping systems
- G06Q20/123—Shopping for digital content
- G06Q20/1235—Shopping for digital content with control of digital rights management [DRM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/107—License processing; Key processing
- G06F21/1073—Conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/254—Management at additional data server, e.g. shopping server, rights management server
- H04N21/2541—Rights Management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/835—Generation of protective data, e.g. certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/835—Generation of protective data, e.g. certificates
- H04N21/8355—Generation of protective data, e.g. certificates involving usage data, e.g. number of copies or viewings allowed
- H04N21/83555—Generation of protective data, e.g. certificates involving usage data, e.g. number of copies or viewings allowed using a structured language for describing usage rules of the content, e.g. REL
Definitions
- This invention generally relates to controlling use of content, or other items, through usage rights associated with the content or other items, and more particularly to a method and apparatus for multi-pass interpretation of usage rights expressions.
- DRM Digital Rights Management
- U.S. Pat. No. 5,634,012 discloses a DRM system for controlling the distribution of digital content, wherein devices of the DRM system can include a repository associated therewith.
- a predetermined set of usage transaction steps define a protocol used by the repositories for enforcing usage rights associated with the content.
- Usage rights persist with the content and the usage rights associated with the content comprise a digital work.
- the usage rights can permit various manners of use of the content, such as a right to view or print or display the content, a right to use the content only once, a right to distribute or redistribute the content. Such usage rights can be made contingent on payment or other conditions.
- a method for processing a rights expression for association with an item for use in a system for controlling use of the item in accordance with the rights expression comprises specifying a rights expression in an original format and generating an intermediate format for the rights expression based on at least one of syntax information and semantics information associated with the original format.
- the rights expression specifies a manner of use of the item for enforcement on a device.
- FIG. 1 is a schematic illustration of an exemplary Digital Rights Management system on which various embodiments of the present invention can be implemented;
- FIG. 2 is a schematic illustration of exemplary multi-pass interpretation processes that can be implemented on the Digital Rights Management systems of FIGS. 1, 4 and 5 ;
- FIG. 3 is a flowchart for illustrating the exemplary multi-pass interpretation processes of FIG. 2;
- FIG. 4 is a schematic illustration of an exemplary Digital Rights Management system, according to another embodiment
- FIG. 5 is a schematic illustration of an exemplary Digital Rights Management system, according to another embodiment
- FIG. 6 is a schematic illustration of exemplary localizer processes that can be implemented on the Digital Rights Management systems of FIGS. 1, 4 and 5 ;
- FIG. 7 is a flowchart for illustrating exemplary pre-processor processes of the localizer processes of FIG. 6;
- FIGS. 8 A- 8 B are a flowchart for illustrating an exemplary binary transformation algorithm
- FIG. 9 is a schematic illustration of exemplary pre-processor processes of the localizer processes of FIG. 6;
- FIG. 10 is a schematic illustration of exemplary simplifier processes that can be implemented on the Digital Rights Management systems of FIGS. 1, 4 and 5 ;
- FIG. 11 is a flowchart for illustrating the exemplary simplifier processes of FIG. 10;
- FIGS. 12 A- 12 B are a flowchart for illustrating exemplary pruning and evaluator processes of FIG. 10;
- FIG. 13 is a schematic illustration of an exemplary structure of a binary format that can be generated by the exemplary multi-pass interpretation processes of FIG. 2;
- FIG. 14 is a schematic illustration of an exemplary structure of an enforceable format that can be generated by the exemplary multi-pass interpretation processes of FIG. 2;
- FIG. 15 illustrates an exemplary symbolic representation of a rights expression that can be generated by the Digital Rights Management systems of FIGS. 1, 4 and 5 .
- the present invention includes recognition that authentication, authorization, accounting, payment and financial clearing, rights specification, rights verification, rights enforcement, and document protection issues can be addressed by a Digital Rights Management system.
- a Digital Rights Management system Commonly assigned U.S. Pat. No. 5,530,235, No. 5,629,980, No. 5,634,012, No. 5,638,443, No. 5,715,403, No. 6,233,684, and No. 6,236,971, the entire disclosures of all of which are hereby incorporated by reference herein, disclose DRM systems addressing these and other issues.
- the present invention includes recognition that the processing of rights expressions encoded with a native grammar-based language, such as XrML, an XML-based language, can involve resource intensive operations numerous resources can be employed for parsing and processing encoded rights expressions.
- the encoded rights expressions can be very complex and lengthy, entailing multiple and repeated parsing and interpretation tasks. Further, latency, real-time demands, can entail high-performance interpretation of a large number of encoded rights expressions.
- the exemplary embodiments described herein address the above and other needs by providing improved systems and methods, whereby a grammar-based rights expressions can be simplified, optimized, and translated into exemplary data, formats, that can be processed with increasing efficiency, that can be better matched to resources of a targeted computing environment.
- the targeted computation environment can include a targeted device, component, application, function, system, platform.
- a grammar-based language such as extensible rights Markup Language (XrML), extensible Access Control Markup Language (XACML), Open Digital Rights Language (ODRL), an extensible Markup Language (XML)-based language, can be employed for specifying a rights expression.
- XrML extensible rights Markup Language
- XACML extensible Access Control Markup Language
- ODRL Open Digital Rights Language
- XML extensible Markup Language
- any suitable grammar, language can be employed in practicing the exemplary embodiments.
- the exemplary embodiments can be directed to improved methods and systems, whereby a grammar-based rights expressions can be simplified, optimized, translated, into the exemplary data, formats, that can be processed with increasing efficiency, that can be better matched to resources of the targeted computing environment.
- the exemplary embodiments can be referred to as multi-pass interpretation, because various stages of interpretation can be employed, wherein a grammar-based rights expression can be simplified into the exemplary data, format, that can be more suitable for the targeted computing environment.
- the processes of evaluation, interpretation, of a rights expression can be partitioned into multiple processing steps the intermediate results of each processing step can be saved as exemplary data, as an exemplary format, that at a later time can be evaluated, interpreted, or so that the processes of evaluation, interpretation, can be can be resumed at later time.
- the resulting exemplary formats of the intermediate results can be referred to as intermediate formats.
- the formats described herein are of an exemplary nature, and any suitable type of format, can be employed to capture the results from the processes of the exemplary embodiments, as will now be further described.
- the DRM system 100 includes a user activation component in the form of an activation server 110 that issues a set of public and private key pairs 112 to a content user in a protected fashion.
- the user installs software that works with, or includes, a rendering application for a particular content format.
- the software is installed in a client environment 120 such as a computing device associated with the user.
- the software can be part of the DRM system 100 and can be used to access protected content 134 .
- the software can be activated.
- some information is exchanged between the activation server 110 and the client environment 120 .
- a client software component 122 can be downloaded and installed in the client environment 120 .
- the client software component 122 can be tamper resistant and can include the set of public and private key pairs 112 issued by the activation server 110 , as well as other components.
- a rights offer 132 can be associated with the protected content 134 and can specify usage rights 132 A, having a manner of use, that are available to an end-user when one or more corresponding conditions 132 B are satisfied.
- a license server 140 manages the encryption keys 112 and issues a license 142 for the protected content 134 .
- the license 142 can embody the actual granting of the usage rights 132 A to the end user the rights offer 132 may grant the end user the right to view the protected content 134 on the condition of payment of a fee of five dollars, and the right to print the protected content on the condition of payment of a fee of ten dollars.
- the license 142 can be issued for the view right when the five dollar fee has been paid and/or for the print right when 10 dollar fee has been paid.
- the client component 122 interprets and enforces the rights that have been specified in the license 142 .
- Clear content 136 can be prepared with an application 138 , such as a document preparation application, installed on a computer 130 associated with a content publisher, a content distributor, a content service provider, or any other suitable party.
- Preparation of the clear content 136 can include specifying the rights 132 A and the conditions 132 B under which the clear content 136 can be used, associating the rights offer 132 with the clear content 136 , and protecting the clear content 136 with a cryptography algorithm to generate the protected content 134 .
- a rights language such as XrML, XACML, ODRL, can be used to specify the rights offer 132 .
- the rights offer 132 can be specified in any suitable manner.
- the rights offer 132 can be in the form of a pre-defined specification, profile, template, that can be associated with the protected content 134 . Accordingly, the process of specifying the rights offer 132 can include any suitable process for associating rights, conditions, with content.
- the rights offer 132 associated with the protected content 134 and the encryption key 112 used to encrypt the clear content 136 can be transmitted to the license server 140 .
- a typical workflow for the DRM system 100 can include a user operating within the client environment 120 being activated for receiving the protected content 134 by the activation server 110 .
- the activation process results in the public and private key pair 112 , and some user and/or machine-specific information, being downloaded to the client environment 120 in the form of the client software component 122 .
- the activation process can be accomplished at any suitable time prior to the issuing of the license 142 .
- the user When the user wishes to use the protected content 134 , the user makes a request for the protected content 134 the user might browse a Web site running on a Web server 150 , using a browser installed in the client environment 120 , and attempt to download the protected content 134 . During this process, the user may go through a series of steps possibly including a fee transaction, such as in the sale of content, other transactions, such as collection of information. When the appropriate conditions and other prerequisites, such as the collection of a fee and verification that the user has been activated, are satisfied, the Web server 150 contacts the license server 140 through a secure communications channel, such as a channel using a Secure Sockets Layer (SSL).
- SSL Secure Sockets Layer
- the license server 140 then generates the license 142 for the protected content 134 and the Web server 150 downloads both the protected content 134 and the license 142 .
- the license 142 can include the appropriate usage rights of the usage rights 132 A and can be downloaded from the license server 140 or an associated device.
- the protected content 134 can be downloaded from the computer 130 associated with a publisher, distributor, or other party.
- the rights offer 132 can be persistent and remain associated with the protected content 134 .
- the client software component 122 in the client environment 120 can then proceed to interpret the license 142 and allow use of the protected content 134 based on the rights 132 A and the conditions 132 B specified in the license 142 .
- the interpretation and enforcement of the usage rights are further described in commonly assigned U.S. Pat. No. 5,530,235, No. 5,629,980, No. 5,634,012, No. 5,638,443, No. 5,715,403, No. 6,233,684, and No. 6,236,971.
- the above steps can take place sequentially, approximately simultaneously, in various orders.
- the DRM system 100 addresses security aspects of protecting the protected content 134 .
- the DRM system 100 can authenticate the license 142 that has been issued by the license server 140 .
- One way to accomplish such authentication is for the client software component 122 to determine if the licenses 142 can be trusted.
- the client software component 122 can include the capability to verify and/or validate the cryptographic signature, or other identifying characteristic of the license 142 .
- the client environment 120 and the license server 140 can receive the set of keys 112 in a tamper-resistant software package that can include other components, such as the client software component 122 for the activated client environment 120 to verify the signature of the license 142 .
- the DRM system 100 is of an exemplary nature and can be implemented in numerous other equivalent arrangements the license 142 and the protected content 134 can be distributed from different entities.
- the rights offer 132 can be associated with the protected content 134 by a party other than the party preparing the protected content 134 .
- a clearinghouse 160 can be used to process payment transactions and verify payment prior to issuing the license 142 .
- the various processes and transactions can be performed via online and/or offline environments and/or combinations thereof an end user could download content to a computer and then transfer the content from the computer to a personal digital assistant (PDA).
- PDA personal digital assistant
- the end user could then buy a license for the content via a supermarket kiosk, a cash register, a prep-paid license card, and then transfer the license to the PDA.
- the end user could then activate the content for use on the PDA and/or the computer.
- the various devices can, but need not, communicate directly with one another and information can be exchanged in any suitable manner, such as by physically moving media between the devices.
- FIG. 2 is a schematic illustration of exemplary multi-pass interpretation processes 200 that can be implemented on one or more of the devices and sub-systems of the Digital Rights Management systems of FIGS. 1, 4 and 5 .
- the exemplary multi-pass interpretation processes 200 can include exemplary localizer processes 201 , exemplary simplifier processes 203 , and exemplary translator processes 205 .
- the exemplary localizer processes 201 can receive a rights expression 207 in a grammar-based language, such as XrML, and rights expression language information 209 including syntax information, semantics information.
- the exemplary localizer processes 201 can convert the rights expression 207 into an intermediate format that can be referred to as in an exemplary self-contained format 211 based on and the grammar-based rights expression language information 209 .
- the exemplary simplifier processes 203 can receive the rights expression 207 , the rights expression 207 in the exemplary self-contained format 211 , state of rights information 213 , device information 217 for the targeted computing environment.
- the exemplary simplifier processes 203 can convert the rights expression 207 , the rights expression 207 in the exemplary self-contained format 211 , to an exemplary intermediate format that can be referred to as an exemplary simplified format 215 based on the state of rights information 213 , the device information 217 .
- the exemplary translator processes 205 can receive the rights expression 207 , the rights expression 207 in the exemplary self-contained format 211 or the rights expression 207 in the exemplary simplified format 215 , along with the device information 217 .
- the exemplary translator processes 205 can convert the rights expression 207 , the rights expression 207 in the exemplary self-contained format 211 , the rights expression 207 in the exemplary simplified format 215 , into an intermediate format that can be referred to as an exemplary device-specific format 219 based on the device information 217 .
- the exemplary localizer processes 201 can be implemented on one or more of the devices and sub-systems of the Digital Rights Management systems of FIGS. 1, 4 and 5 .
- FIG. 3 is a flowchart for illustrating the exemplary multi-pass interpretation processes 200 of FIG. 2.
- the rights expression 207 file in a grammar-based language such as XrML
- the retrieved rights expression 207 can be converted from a native format, such as XrML, into the exemplary self-contained format 211 , including an exemplary binary format, such as an XML-based binary format, an XrML-based binary format and the like.
- the rights expression 207 in the exemplary self-contained format 211 can be machine-readable, platform-independent.
- the rights expression 207 in the self-contained format 211 does not have to be dependent on any specific processing capability, such as an XML processing capability, an XrML processing capability.
- the self-contained format 211 can be interpreted, and simplified, to extract a list of conditions, from the rights expressions 207 in the exemplary self-contained format 211 .
- the rights expression 207 in the exemplary self-contained format 211 can be converted into the exemplary simplified format 215 .
- the rights expression 207 in the exemplary simplified format 215 can include conditions that can be validated, enforced, by the targeted computing environment.
- the exemplary simplified format 215 can be XML-based or XrML-based and can be referred to as an exemplary enforceable format.
- the rights expression 207 in the simplified format 215 can be converted into the rights expression 207 in the exemplary device-specific format 219 the rights expression 207 in the exemplary device-specific format 219 can be readily executed by the targeted computing environment.
- the exemplary embodiments can be described in terms of employing the exemplary self-contained format 211 , the exemplary simplified format 215 , to store intermediate results, any suitable format can be employed to store the intermediate results, the format conversations can be performed in various orders, the format conversations can be repeated multiple times.
- the exemplary multi-pass validation and interpretation processes 200 can include the exemplary localizer processes 201 , the exemplary simplifier processes 203 , and the exemplary translator processes 205 .
- the exemplary localizer processes 201 can include devices, components, applications, functions, systems, platforms, responsible for assigning the semantic meaning of keywords, elements, conditions, rights expressions, employed in the rights expression 207 , for resolving potential ambiguities within the rights expression 207 , for pre-processing the rights expression 207 .
- the exemplary localizer processes 201 can employ the syntax and semantics information 209 of the corresponding rights language to pre-process the rights expressions 207 to generate the rights expression 207 in the exemplary self-contained format 211 , which, can include the rights expression 207 in an unambiguous form.
- the exemplary self-contained format 211 can include an unambiguous version of the rights expression 207 , a semantic meaning of words used in the rights expression 207 , and processing instructions for processing the rights expression 207 .
- the format 211 can be considered self-contained, because the rights expression 207 stored in the exemplary self-contained format 211 can be readily processed by any suitable application, system, device, without a need to employ external resources, such as syntax and semantics resources, and language parsing resources.
- the rights expression 207 can include any suitable expression of a usage right, such as a label, a license, or fragments thereof.
- a rights expression language, for expressing the rights expression 207 can include any suitable language having predefined syntax and semantics and that can be used to express a usage right.
- a rights grammar can include a set of predefined symbols, for expressing a usage right.
- a usage right can include a specification of a permitted manner of use of an item.
- a label can include a prepackaged set of usage rights not associated with a specific item.
- a license can include a prepackaged set of usage rights including an item association.
- a condition can include a specification of one or more prerequisites for exercising a manner of use of an item.
- An item can include anything for which use can be controlled by associated usage rights, such as digital content, software, services, goods, resources.
- a resource can include a digital device or portion thereof to which access can be controlled by an associated usage right.
- the rights expression 207 can include, a sequence of expressions for specifying usage rights, conditions, manner of use, policies, principals, subjects.
- the rights expression 207 further can specify a resource, that the usage rights can be applied to, as well as imposed usage conditions, actions, obligations, that can be satisfied before the granted usage right can be exercised.
- semantic meanings can be stored within the exemplary self-contained format 211 that can be used to determine the meaning of expressions within the rights expression 207 , the meaning of the processing instructions for processing the rights expression 207 . Accordingly, the semantic meanings can be used to identify a specific expression within the rights expression 207 , such as an expression used for identifying a principal, an expression used for identifying a condition.
- any suitable application, system, device can efficiently process the rights expression 207 in the exemplary self-contained format 211 without a need to employ external resources.
- the exemplary self-contained format 211 can be used to store intermediate results generated by the exemplary localizer processes 201 .
- the exemplary simplifier processes 203 can include devices, components, applications, functions, systems, platforms, responsible for pre-evaluating, and simplifying, the rights expression 207 , the rights expression 207 in the exemplary self-contained format 211 .
- the exemplary simplifier processes 203 can employ the state of rights information 213 , the device information 217 for the targeted computing environment, to evaluate expressions, such as condition expressions, and rights expressions within the rights expression 207 .
- Such an evaluation can be employed to determine whether or not a given condition, rights expression, can be removed from the rights expression 207 for the targeted computing environment. For example, a condition, such as payment of fee, that has to be satisfied in order for the targeted computing environment to gain unlimited access to digital content can be expressed within the rights expression 207 . If, however, the payment of the fee condition has been satisfied, the step of checking on whether or not the fee has been paid, every time the targeted computing environment attempts to access the digital content, can be eliminated from the rights expression 207 .
- a condition such as payment of fee
- any suitable condition, rights expression can be removed from the rights expression 207 for the targeted computing environment, thus, reducing the size of the resulting rights expression 207 , the time needed to process the resulting rights expression 207 .
- the exemplary simplifier processes 203 can generate the rights expression 207 in the exemplary simplified format 215 , eliminating any suitable conditions, rights expressions, that need not be verified, validated, for the targeted computing environment.
- the exemplary embodiments can be described in terms of employing the exemplary simplified format 215 to store intermediate results, of the exemplary simplifier processes 203 , any suitable format can be employed to store the intermediate results of the exemplary simplifier processes 203 .
- the exemplary translator processes 203 can include devices, components, applications, functions, systems, platforms, responsible for translating the rights expression 207 , the rights expression 207 in the exemplary simplified format 215 , the rights expression 207 in the exemplary self-contained format 211 , into the rights expression 207 in the exemplary device-specific format 219 for the targeted computing environment.
- the exemplary device-specific format 219 can include a stream of data that can be processed by the targeted computing environment.
- the exemplary translator processes 203 can be configured to transmit the rights expression 207 in the exemplary device-specific format 219 as a sequence of bits that can represent data, a data structure, that can be processed by the targeted computing environment.
- the exemplary translator processes 203 can be configured to transmit the rights expression 207 in the exemplary device-specific format 219 as a sequence of native instructions that can be processed, executed, by the targeted computing environment.
- the localizer 201 processes, the simplifier 203 processes, the translator 205 processes can be independent from one another. In a further exemplary embodiment, however, the localizer 201 processes, the simplifier 203 processes, and the translator 205 processes, can be dependent on one another. In addition, the localizer 201 processes, the simplifier 203 processes, and the translator 205 processes can communicate with each other via any suitable data format, such as the exemplary intermediate formats.
- the exemplary multi-pass validation and interpretation processes 200 can be employed to allow flexible configurations of interpretation systems that can be better suited for the targeted computing environment. For example if the targeted computing environment has limited resources or processing capabilities, such as a mobile phone, a handheld device, instead of sending a grammar-based rights expression document, such as an XrML document, to the targeted computing environment, the grammar-based rights expression document can be translated into the exemplary device-specific format 219 before being transmitted to the target environment.
- a grammar-based rights expression document such as an XrML document
- the rights expression 207 in the exemplary device-specific format 219 can be configured by the translator 205 processes to be native to the targeted computing environment, which then can be transmitted to the targeted computing environment for execution.
- FIG. 4 is a schematic illustration of an exemplary Digital Rights Management system 400 , wherein a protected item, such as a text document, music, or software, can be used on different devices.
- the DRM system 400 can be employed to allow digital music to be played on both a personal computer 405 and one or more other devices 409 , such MP2 players, MP3 players, set-top boxes, handheld devices.
- small devices 409 are devices with specific functions. For example, on MP3 player might only be able to play music and is not able to print or accept payments.
- the rights expression 207 can be converted into the exemplary self-contained format 211 using the exemplary localizer processes 201 , the exemplary simplified format 215 using the exemplary simplifier processes 203 .
- the converted rights expression 207 then can be sent to the personal computer 405 where the converted rights expression 207 can be processed to authorize the use of the protected digital music.
- Exemplary distributor processes 401 can be employed to transmit the rights expression 207 in the exemplary self-contained format 211 to the personal computer 405 via the gateway.
- a user From the personal computer 405 , a user also can translate the rights expression 207 in the exemplary self-contained format 211 or the exemplary simplified format 215 , into the exemplary device-specific format 219 suitable for the small devices 205 using the exemplary translator processes 205 .
- the user then can send both the protected digital music and the associated rights expression 207 in the exemplary device-specific format 219 to the small devices 409 , so that the protected digital music can be played on the small devices 409 in accordance with rights expression 207 .
- the rights expression 207 can be converted into the exemplary self-contained format 211 or the exemplary simplified format 215 and then to the exemplary device-specific format 219 as illustrated in FIG. 2 and discussed above.
- the DRM system 400 can include exemplary interpreter processes 403 which can be configured to process large amounts of rights expressions 207 in the exemplary self-contained format 211 .
- the exemplary self-contained format 211 can include the processing instructions and the semantic meaning of the rights expression 207 , resulting in improved performance, for the exemplary interpreter processes 403 .
- the personal computer 405 can process the rights expression 207 in the exemplary self-contained format 211 in an efficient manner.
- the rights expression 207 in the exemplary simplified format 215 can be transmitted to one or more resource-constrained devices 407 , as shown in FIG. 4.
- resource constrained devices are multi-purpose devices that do not have syntactical or semantic processing capability.
- the exemplary localizer processes 201 , the exemplary distributor processes can be implemented in the computer system 130 of FIG. 1, while the personal computer 405 , the exemplary interpreter processes 403 , the exemplary simplifier processes 203 and the exemplary translator processes 205 , can be implemented on the exemplary client environment 120 of FIG. 1.
- the exemplary localizer processes 201 , the exemplary distributor processes 401 , the exemplary interpreter processes 403 , the exemplary simplifier processes 203 , and the exemplary translator processes 205 can be implemented on one or more of the devices and sub-systems of the Digital Rights Management systems of FIGS. 1, 4 and 5 .
- FIG. 5 is a schematic illustration of an exemplary Digital Rights Management system 500 with a multi-processor capability, according to an exemplary embodiment.
- the DRM system 500 can be configured, to process large amounts of the rights expressions 207 , such as a batch 501 , of the of the rights expressions 207 a pool 503 of processors 505 can be configured to enable a respective pool 507 of the exemplary localizer processes 201 to generate a batch 509 , of the rights expressions 207 in the exemplary self-contained format 211 from the batch 501 of rights expressions 207 .
- the batch 509 of the rights expressions 207 in the exemplary self-contained format 211 can be further multi-processed.
- a pool 511 of processors 505 can be configured to enable a respective pool 513 of next processes 515 , such as the exemplary simplifier processes 203 and the exemplary translator processes 205 to generate a batch 517 of the rights expressions 207 in another format 519 , such as the exemplary simplified format 215 or the exemplary device-specific format 219 .
- the pool 503 of the processors 505 , the pool 507 of the exemplary localizer processes 201 , the pool 511 of the processors 505 , and the pool 513 of the next processes 515 can be implemented on one or more of the devices and sub-systems of the Digital Rights Management systems of FIGS. 1, 4 and 5 .
- the exemplary localizer processes 201 can be configured to pre-process the rights expression 207 , to generate the rights expression 207 in the exemplary self-contained format 211 .
- the exemplary self-contained format 211 can include the rights expression 207 in an unambiguous form, the semantic meaning of one or more keywords, elements, conditions, rights expressions, employed within the rights expressions 207 , instructions for processing the rights expressions 207 .
- FIG. 6 is a schematic illustration of the exemplary localizer processes 201 that can be implemented on one or more of the devices and sub-systems of the Digital Rights Management systems of FIGS. 1, 4 and 5 .
- exemplary canonicalizer processes 601 can resolve potential ambiguities within the rights expression 207 , based on syntax information 607 of the syntax and semantics information 209 to generate the rights expression 207 in an unambiguous form.
- the exemplary canonicalizer processes 601 can convert the unambiguous rights expression 207 into a canonical form 609 as described in greater detail below.
- Exemplary pre-processor processes 603 can be employed to process the unambiguous rights expression 207 in the canonical form 609 based on semantics information 611 of the syntax and semantics information 209 , to generate processing results 613 .
- the processing results 613 can include, the unambiguous rights expression 207 , a context table, a semantics table, the processing instructions.
- Exemplary formatter processes 605 can package, process, the processing results 613 to generate the rights expression 207 in the exemplary self-contained format 211 .
- the rights expression 207 in the exemplary self-contained format 211 can include the semantic meaning of the rights expression 207 , the processing instructions for the rights expression 207 allowing efficient processing thereof, without a need to employ external resources, such as language parsers, syntax and semantics processors.
- the rights expression 207 in the exemplary self-contained format 211 can be converted back to the original format of the rights expression 207 , such as an XrML format.
- the rights expression 207 in the exemplary self-contained format 211 can be employed to ease the computational burden of processing the rights expressions 207 for a targeted computing environment having limited storage capabilities, processing capabilities, such as constrained devices 407 of FIG. 4.
- the exemplary self-contained format 211 can include the binary format. However, any other suitable format can be employed as the self-contained format 211 .
- the exemplary binary format is employed as the exemplary self-contained format 211 for rights expression 207 distribution purposes, the rights expression 207 can be digitally signed employing an exemplary binary transformation algorithm.
- the exemplary binary transformation algorithm can transform the rights expression 207 into the binary format, for example, while preserving a digital signature between the rights expression 207 in the original format and the exemplary self-contained format 211 .
- the context table the semantics table, can be pre-built, pre-defined or pre-stored, in the targeted computing environment, thus optimizing storage the rights expression information.
- the exemplary canonicalizer processes 601 can be employed to remove ambiguities, if any, in the rights expressions 207 .
- ambiguities can be based on various choices that can be made with respect to the rights expressions 207 , and variations in rights expressions 207 for which some type standardization may be desired.
- the exemplary canonicalizer processes 601 converts the unambiguous rights expression 207 into the canonical form 609 many language-based expressions can vary in their physical representations, based on the syntax changes permitted by their respective languages, and still can be logical equivalents within a given application context.
- the exemplary canonicalizer processes 601 can be employed to convert the unambiguous rights expression 207 into the canonical form 609 based on the syntax and semantics information 209 for the given rights expression language.
- the exemplary pre-processor processes 603 can be employed to construct the context table for the contexts or namespaces used by the rights expressions 207 , and to construct the semantic table for providing meanings for the elements used in the rights expression 207 , to generate the processing instructions for processing the rights expression 207 .
- the exemplary pre-processor processes 603 can covert the unambiguous rights expressions 207 in the canonical form 609 into the format 613 supported by the targeted self-contained format 211 generated by the exemplary formatter processes 605 .
- FIG. 7 is a flowchart for illustrating the exemplary pre-processor processes 603 of FIG. 6.
- the exemplary pre-processor processes 603 can populate the unambiguous rights expression 207 in the canonical form 609 , for example in a Document Object Model (DOM) tree.
- DOM Document Object Model
- the exemplary pre-processor processes 603 process each child node of a document node by employing a node processing process including steps 703 - 713 .
- the namespace of the input node can be looked up in the context table. If the namespace cannot be found in the context table, as determined at step 705 , at step 711 , a new entry can be created in the context table using the next available context identification (id).
- the semantic type of the input node can be determined by looking up the name of the input node in the semantics table. If the semantic type of the input node cannot found in the semantics table, as determined at step 709 at step 713 , a new entry can be created the in the semantics table using an element type, an element name, the context id, and the next available element id.
- the node processing process of steps 703 - 713 can be repeated for each attribute of an element by calling the node processing process with a corresponding attribute node. In a similar manner, the node processing process of steps 703 - 713 can be repeated for each child element by calling the node processing process with a corresponding element node.
- the context table can include the context id, length of the namespace, and a Uniform Resource Identifier (URI) of the namespace of the context, namespace URI.
- the context id can be assigned based on the order of occurrence, probability of occurrence, of the namespace of the context within the rights expression 207 .
- the following first exemplary rights expression in the form of an XrML-based license to play a song can be used to illustrate a context table, a semantics table, and a pre-defined type table.
- Table 1 An exemplary context table, based on the first exemplary rights expressing, is illustrated in Table 1.
- Table 1 Exemplary Context Table.
- context id length namespace URI 01 44 http://www.xrml.org/schema/2001/11/xrml2core 02 42 http://www.xrml.org/schema/2001/11/xrml2cx 03 52 http://www.xrml.org/schema/2001/11/ xrml2compactMusic
- the exemplary context table in the exemplary binary format can include the context id entries 01 - 03 assigned based on the order of usage, probability of usage, of the contexts identified by the namespace URM entries in the first exemplary rights expression, and the corresponding length entries of the contexts identified by namespace URI entries.
- the semantics table in the exemplary binary format can include an element id, an element type, and element name, and a context id.
- the element id of the semantics table can be assigned based on the order of occurrence, or probability of occurrence, of an element within the rights expression 207 .
- the element types having values from 00 to 22 can be optionally included in a semanitics table, and can be defined in a pre-defined type table. Accordingly the pre-defined type can be employed, including predefined values for predetermined element types, as illustrated in Table 3 below. TABLE 3 Exemplary Pre-Defined Type Table. element type element name 00 next level 01 element 02 attribute 03 value 04 number of children 10 license 11 grantGroup 12 grant 13 principal 14 rights 15 resource 16 allCondition 17 condition 18 issuer 20 inventory definition 21 variable definition 22 reference
- the following second exemplary rights expression in the form of an XrML-based license can be used to further illustrate a context table, and a semantics table.
- the exemplary canonicalizer processes 601 can be employed to generate unambiguous rights expressions in the canonical form 609 from the rights expressions 207 .
- the term ambiguity can refers to the fact that certain elements, in a rights expression can have default values or can have values where the interpretation can be assumed.
- a rate element in a rights expression can include the optional attribute CurrencyCode, which can default to US dollars (USD).
- USD US dollars
- the above statement can be ambiguous, when the context is not known. Resolving such an ambiguity can include determining a default value, an assumed value, an assumed context, in which the rate element can be expressed.
- the unambiguous form of the above expression can include a currency attribute for the rate element, and can be expressed as follows:
- the exemplary localizer processes 201 can be employed to convert the rights expression 207 into the exemplary self-contained format 211 . Such a conversion can employ the exemplary binary transformation algorithm.
- FIGS. 8 A- 8 B are a flowchart for illustrating the exemplary binary transformation algorithm.
- rights expressions for example in the form of a rights expression document, file, such as an XrML, document, file, can be retrieved for processing.
- the syntax of the rights expressions can be verified to remove ambiguities. Then, for example, the rights expressions can be converted into their canonical.
- the rights expressions can vary in physical representations, for example based on permitted syntax changes, but still can be logical equivalents within a given application context. Accordingly, the rights expressions can be canonicalizer into the canonical form. In an exemplary embodiment, the rights expressions with the same canonical form can be configured as logical equivalents using any suitable algorithm, for example, such as the algorithm described in the Canonical XML Version 1.0 from the World Wide Web Consortium (W 3 C), W 3 C Recommendation 15 Mar. 2001, available on the World Wide Web (WWW) at ⁇ http://www.w 3 .org/TR/ 2001 /REC-xml-cl 4 n- 20010315 >, incorporated by reference herein.
- W 3 C World Wide Web Consortium
- WWWW World Wide Web
- the context table and semantics table can be generated.
- the rights expressions can be translated into the exemplary binary format, for example, using the corresponding context table and semantics table.
- the exemplary localizer processes 201 can be employed, for example to resolve default values for optional elements, attributes, in a rights expression document, file, removing ambiguities in the rights expression document.
- FIG. 8B further illustrates the step 803 in FIG. 8A that can be used for generating the semantics table.
- a semantics table can be generated for each namespace declared in the rights expression document, wherein the context for each namespace declared in the rights expression document can be identified, defined.
- the syntax and semantics of many grammar-based languages, such as XrML can be defined in many independent schemes, wherein each schema can be employed to define its own set of keywords, semantic meanings for the keywords.
- a context id for each schema used in the rights expression document can be identified and assigned.
- each identified context can be assigned a context id based on the of occurrence, probability of occurrence, within the rights expression document. If a rights expression language can be extensible and derived from a core or base language, the first employed context id can be assigned to the core context, regardless of where the elements of the core context can be used within the rights expression. However, a context id can be assigned in any suitable order.
- an element id, an element type, and an element name for each element declared in the rights expression document can be identified and assigned.
- the element id can be assigned based on the order of occurrence, probability of occurrence, of an element within the rights expression document.
- each entry in the semantics table can include an element id, an element type, an element name, and a context id.
- FIG. 9 is a schematic illustration of the exemplary pre-processor processes 603 of the exemplary localizer processes 201 of FIG.
- the exemplary processes 901 - 907 perform one or more of the steps of exemplary binary transformation algorithm described with respect to FIGS. 8 A- 8 B.
- the exemplary binary transformation algorithm also can be employed to perform a binary transformation on a digital signature, such as an XML digital signature.
- the transformed signature can be a binary representation of an original signature, thereby preserving the original signature.
- employing the exemplary binary transformation algorithm preserves the integrity of the digital signatures, preserves the semantic meanings.
- the exemplary self-contained format 211 can be made independent of resources, such as a XML parser, can provide improvements in processing, and can provide improvements in transmission performance. Accordingly, the exemplary self-contained format 211 can be targeted to a wide variety of computing environments such as computing environments having limited resource capabilities, limited processing capabilities, limited storage capabilities, limited functions.
- a semantic meaning of the elements of a rights expression can be stored in a semantics document, such as a XML schema document.
- the rights expression can be digitally signed and the signature can be employed to protect the rights expression.
- the semantics document can be in a document that is distinct from the document including the rights expression.
- the present invention includes recognition that the semantics document can be hacked, modified. In this way, the meanings employed for processing, evaluating, validating a digitally signed rights expression can be changed without comprising the integrity of the digitally signed rights expression.
- the above and other problems are addressed and solved by employing a digital signature, for protecting a rights expression, semantic meanings for the rights expression.
- the semantic meanings for a rights expression and the rights expression can be included in separate documents, files, and a digital signature, referred to as a signature envelope, can be employed, and included in an envelope document, file.
- the signature envelope can include fingerprints, hash values, for the rights expression document and the semantic meanings document.
- the signature envelope in the form of a digital signature, such as a XML digital signature can be employed to protect the rights expression document, the semantic meanings document.
- the ⁇ SignatureInfo . . . > element can include the signature envelope information
- the ⁇ SignatureValue> . . . ⁇ /Signature Value>element can include a signature of the signature envelope.
- the semantic meanings for the rights expression and the rights expression can be included in a binary document, file, and the signature envelope can be included in an envelope document.
- the signature envelope can include fingerprints, hash values, for the binary document, including the rights expression, and the semantic meanings for the rights expression.
- the ⁇ SignatureValue> . . . ⁇ /Signature Value>element can include a signature of the binary document.
- a rights expression interpreter can be configured to process a request, such as a request to perform an operation, a request to view a document, based on a rights expression, which can result in the authorization of the request.
- a request such as a request to perform an operation
- a request to view a document based on a rights expression, which can result in the authorization of the request.
- the exemplary simplifier processes 203 can be employed for processing rights expressions without a need for employing a request.
- FIG. 10 is a schematic illustration of the exemplary simplifier processes 203 that can be implemented on one or more of the devices and sub-systems of the Digital Rights Management systems of FIGS. 1, 4 and 5 .
- the semantic meanings of one or more rights expressions in the rights expression 207 document can be included in the exemplary self-contained format 211 , and can be employed by the exemplary simplifier processes 203 to evaluate, reduce, the rights expressions in order to generate the rights expressions 207 document in the exemplary simplified format 215 .
- the exemplary simplifier processes 203 can perform simplification of one or more rights expressions in a rights expressions 207 document. Such a simplification can include determining the semantic meaning of the rights expressions, evaluating the rights expressions based the device information 217 for the targeted computing environment and determining the status of the rights expressions based on the state of rights information 213 .
- Exemplary pruner processes 1001 can prune or remove, one or more rights expressions from the rights expression 207 document that are not employed by the targeted computing environment, for example, based on the device information 217 .
- the exemplary pruner processes 1001 can be used to generate the rights expressions in a pruned form 1007 that can be supported by the targeted computing environment. As an example, if the targeted computing environment is a cell phone that cannot print or play digital content, all elements relating to these functions can be pruned.
- Exemplary evaluator processes 1003 can be employed for evaluating one or more conditions, elements, in the rights expressions in the pruned form 1007 based on the state of rights information 213 , and, optionally, based on results from exemplary condition validator processes 1007 .
- the exemplary evaluator processes 1003 can be used to generate the rights expressions in a simplified form 1009 by excluding one or more conditions, rights expressions from the pruned rights expressions 1007 . For example, if a condition bas been satisfied and will not expire, that condition can be pruned from the rights expression.
- Exemplary formatter processes 1005 can be employed for formatting, re-formatting, the simplified rights expressions 1009 to generate the rights expression 207 in the exemplary simplified format 215 .
- the rights expression 207 in the exemplary simplified format 215 can include only the minimal, rights, conditions, that are to be employed, evaluated or otherwise processed.
- the exemplary simplifier processes 203 can process the rights expression 207 document or the rights expression 207 document in the exemplary self-contained format 211 a rights expression document can be received by the exemplary simplifier processes 203 , and can be transmitted to the exemplary localizer processes 201 , which can return the rights expression document in the exemplary self-contained format 211 to the exemplary simplifier processes 203 .
- FIG. 11 is a flowchart for illustrating the exemplary simplifier processes 203 of FIG. 10.
- the exemplary simplifier processes 203 can be used to receive the rights expression 207 document including one or more rights expressions.
- the exemplary pruner processes 1001 can perform the pruning of the rights expressions, based on the device information 217 to generate the rights expressions in the pruned form 1007 .
- right expressions portions that cannot be processed by the targeted computing environment can be eliminated from the rights expression 207 document. For example, if the targeted computing environment is not able to print, then a print right can be eliminated from the rights expression 207 document.
- the exemplary evaluator processes 1003 can be used to process the pruned rights expressions 1007 to extract one or more conditions, from the pruned rights expressions 1007 for evaluation.
- Exemplary evaluator processes 1003 can attempt to evaluate the extracted conditions, based on the state of rights information 213 to generate the simplified rights expressions 1009 .
- the exemplary formatter processes 1005 can be used to convert the simplified rights expressions 1009 into the rights expression 207 document in the exemplary simplified format 215 .
- the rights expression 207 document in the exemplary simplified format 215 can include minimal rights expressions and conditions, that are to be later evaluated in order to authorize a user, device, system, to exercise one or more rights within the rights expression 207 document, file, and like.
- FIG. 12A- 12 B are a flowchart for further illustrating the exemplary pruning processes 1001 and the exemplary evaluator processes 1003 of FIG. 10, wherein FIG. 12A corresponds to the exemplary pruning processes 1001 , and FIG. 12B corresponds to the exemplary evaluator processes 1003 .
- FIG. 12A at step 1201 the rights expression 207 document, file, in the exemplary self-contained format 211 , can be retrieved.
- a rights expression can be extracted from the rights expression 207 document for further processing.
- the extracted rights expression can be validated. If the extracted rights expression is determined to be valid, as determined at step 1207 the extracted rights expression can be transmitted, passed, to the exemplary evaluator processes 1003 of FIG. 12B for further processing. If, however, the extracted rights expression is determined to be invalid, as determined at step 1207 the extracted rights expression can be removed from the rights expression 207 document, and, at step 1203 , a next rights expression can be processed.
- a condition if any, can be extracted from the valid rights expression.
- the valid rights expression can be output as the rights expression in the simplified form 1009 , and, at step 1203 of FIG. 12A, a next rights expression can be processed. Otherwise, at step 1215 the exemplary evaluator processes 1003 can be used to evaluate, validate, the extracted condition.
- the exemplary condition validator processes 1007 can be employed to validate, evaluate, an extracted condition. Accordingly, the exemplary evaluator processes 1003 can send, transmit, one or more of the extracted conditions to a respective one or more of the exemplary condition validator processes 1007 .
- the evaluation results for the extracted condition as determined by the exemplary evaluator processes 1003 and/or by the exemplary condition validator processes 1007 can include a true value, a false value, or a cannot be evaluated value.
- the extracted condition cannot be evaluated, as determined at step 1217 , at step 1225 , the extracted condition can be maintained in the corresponding valid rights expression, and, at step 1211 , a next condition can be processed. If the extracted condition can be evaluated, as determined at step 1217 , and the condition evaluation result is true, as determined by step 1219 , the extracted condition can be removed from the corresponding valid rights expression, and, at step 1211 , a next condition can be processed. If the extracted condition can be evaluated, as determined at step 1217 , and the condition evaluation result is false, as determined by step 1219 , the valid rights expression can be removed from the rights expression 207 document, and, at step 1203 of FIG. 12A, a next rights expression can be processed.
- the exemplary simplifier processes 203 can be employed to determine valid rights within a rights expression, to evaluate conditions associated with the valid rights, to maintain conditions that cannot be evaluated, to remove conditions having evaluation results with true values from the valid rights conditions, to remove valid rights associated with conditions having evaluation results with false values.
- the exemplary self-contained format 211 can include the exemplary binary format, a variation of the exemplary binary format, wherein the context table can be optional, referred to as the exemplary enforceable format.
- the context id column can be removed from the semantics table.
- the context and/or the semantics table can be pre-built, pre-defined, pre-stored, in the targeted computing environment. In this way, the exemplary self-contained format 211 can include the rights expressions that need to be further evaluated with no need to include the context table and/or the semantics table.
- the exemplary enforceable format can be platform-neutral and much more compact than both than a native format, such as XrML, and the exemplary binary format. With the exemplary enforceable format, typically there is no need to employ external rights interpretation resources to understand the semantic meanings of the rights expression since this has been resolved, interpreted.
- the exemplary enforceable format there typically is no need for a full rights expression processing system, because a simple validator can be sufficient to authorize a request and can be employed to read conditions, parameters, from the exemplary enforceable format, and locate and invoke, a rights condition validator.
- the exemplary enforceable format can be the most optimized of the formats while still being platform-independent, can be employed in resource-constrained computing environments can be the most efficient of the formats for high-performance operations.
- a rights expression 207 can be converted into the exemplary enforceable format, with no need to employ a context table.
- the exemplary enforceable format thus, can be employed where no conflicts exist in the elements of a rights expression and the targeted computing environment can understand the context of the corresponding rights in the rights expression.
- the context table, and the context id column of the semantics table need not be employed with the exemplary enforceable format.
- the semantics table can be pre-built, pre-defined or pre-stored, in the targeted computing environment.
- the exemplary enforceable format can include the rights expressions that need to be further evaluated with no need to include the semantics table.
- the exemplary translator processes 205 can include devices, components, applications, functions, systems, platforms, responsible for translating the exemplary simplified format 211 into the exemplary device-specific format 219 .
- the exemplary device-specific format 219 can be made specific to a targeted computing environment, and can be more efficiently consumed by the targeted computing environment.
- a rights expression in the exemplary device-specific format 219 can vary from device to device, but, generally, can be in the form of a data structure that can include conditions to be validated and a list of processing instructions to be carried out in order to authorize a request to exercise a right within the rights expression.
- Exemplary device-specific formats 219 that into which the exemplary translator processes 205 can translate the rights expression 207 are formats based on glyphs, formats based on profiles, formats based on templates, formats that can be processed by a specific device, such as an MP3 device, a set-top box.
- the targeted computing environment can be configured to run a programming language such as the PROgramming in LOGic (Prolog) language, and an exemplary rights expression can be configured to specify, for example, that “Alice can view a video identified by 123456 no more than 5 times.”
- the exemplary rights expression can be translated by a Prolog translator into the following Prolog expression: (1) Principal(“Alice”), (2) Video(“123456”), (3) View(p, r) :- (4) Principal(p), (5) Video(r), (6) Count(5).
- the targeted computing environment may be configured to employ a data structure given by: Struct ⁇ Rights : byte; // 01 : View, 02: Print . . . Principal: char[20]; ConditionList; ⁇ ConditionList ⁇ Number of condition: 2 byte integer ⁇ ConditionID: 1 byte ; // 01 FIat Fee, 02 MaxCount Conditon Value: 4 byte integer ⁇ ⁇
- the exemplary rights expression can be translated by the exemplary translator processes 205 configured for the targeted Prolog computing environment into the following stream of bytes:
- the exemplary binary format can include the rights expressions from an XrML document, and the semantic meanings of the elements used in the rights expressions.
- the structure of rights expressions in the exemplary binary format can be similar to the structure of the rights expressions in the XrML document, such as native XML.
- the binary structure of the exemplary binary format can be processed by any suitable application, device, system, platform, without the need for external resources, such as XML resources, parsers. Since the semantic meanings for the elements of the rights expressions can be included in the exemplary binary format, no XML schemes, need be employed in order to interpret the meanings of the rights expressions.
- the rights expressions in the exemplary binary format can be platform-neutral and platform-independent.
- there is increased performance because of a reduced need for external resources, such as XML parsers, schema parsers, which otherwise would be needed to process and interpret the meanings of the rights expression in coventional formats.
- the exemplary binary transformation algorithm can be employed on a digital signature to preserve the digital signature between an original document, such as an XrML document, and the binary document in the exemplary binary format, to ensure the integrity of the original document.
- FIG. 13 is a schematic illustration of a structure 1300 of the exemplary binary format.
- a file in the exemplary binary format can include a prolog section 1301 , a context table section 1303 , a semanitics table section 1305 , a rights expression section 1307 , and a signature table section 1309 .
- the signature table section 1309 can be eliminated from the file by providing the signature table section 1309 information as redundant information in one or more of the other sections 1301 - 1307 of the file.
- the prolog section 1301 can include information about the exemplary binary format, including version number, vendor information, and the id of the original document.
- the prolog section 1301 can include a magic number field that can be used to indicate a format of the file such as the exemplary enforceable format, the exemplary binary format, and an optimized version of the exemplary binary format that can eliminate the context table and semantics table.
- the prolog section 1301 can further include a version number field for indicating a version number of the format employed in the file, a first pointer field that can include a pointer to the context table within the file, a second pointer field that can include a pointer to the semantics table within the file, a third pointer field that can include a pointer to the rights expression within the file.
- the context table section 1303 can include the context table of namespaces used in the original document.
- the context table section 1303 can be configured with one entry per namespace including the context id, which can include a unique identification for each namespace.
- the context id can be assigned based on the occurrence of an element within the original document of the corresponding context.
- the rights expression language can be extensible and derived from a core language, a base language
- the first context id can be assigned to the core context, regardless of where the elements of the core context can be used within the original document.
- the context table section 1303 can further include a length of namespace URI for specifying the length of the namespace, and a namespace URI for identifying the namespace, the context.
- the semantics table section 1305 can include one semantics table per namespace.
- the semantics table can include information for each element of that namespace used in the rights expression.
- the semantics table section 1305 can be configured to include information for each element of the namespace used in the rights expression.
- the semantics table section 1305 can be configured with one entry per element, including an element id that can be a unique id assigned to an element, and with fixed ids that can be assigned for the core elements.
- the semantics table section 1305 can include an element type for specifying a type of element.
- the pre-defined element types can be specified as shown in Table 3, the exemplary pre-defined type table.
- the semantics table section 1305 can include an element name for specifying a name of an element, as defined in the schema, and an element context id corresponding to a context id of the namespace that includes the element.
- [“seq “] 1..n where “seq” “type”
- the term RE “seq”
- [“seq”]1 . . . n can indicate that the rights expression can include a sequence “seq” or one or more sequences [“seq”]1 . .
- “seq” can be a “type” or “specialType”
- “specialType” can be of the type 02 or 03 from the pre-defined type table and can have “length” and “value,” where “length” can be the length of the “value” in bytes, “value” can be a sequence of bytes, and “type” corresponds to the id from the pre-defined type table, except for ids 02 and 03 , which correspond to attribute and value types from the pre-defined type table.
- the simplified format 215 there can be various formats for the simplified format 215 , such as the exemplary binary format and a variation of the exemplary binary format, wherein the context table can be optional, referred to as the exemplary enforceable format.
- the context table when the context table is not included in the exemplary simplified format 215 , then the context id column can be omitted from the corresponding semantics table.
- FIG. 14 is a schematic illustration of an exemplary structure 1400 of the exemplary enforceable format.
- the structure 1300 of the exemplary binary format can include the prolog section 1301 , the context table section 1303 , the semantics table section 1305 , the rights expression section 1307 and the signature table section 1309 .
- the exemplary enforceable format can include the prolog section 1301 , the semantics table section 1305 and the rights expression section 1307 .
- the exemplary structure 1400 can be configured in a similar manner as the exemplary structure 1300 , as previously described, except for the omission of the context table section 1303 , the signature table section 1309 , and the context id column from the semantics table.
- the device-specific formats 219 that the exemplary translator processes 205 can translate the rights expression into can include formats based on glyphs, formats based on profiles, formats based on templates, formats based on a Prolog program, formats that can be processed by a specific device, such as an MP3 device, a set-top box.
- a symbolic representation can be employed to encode a rights expression.
- the symbolic representation can include a graphical representation, such as based on glyphs, a modulated or varied signal-based representation, such as those based on modulated or varied light or sound signals.
- the symbolic representation of a rights expression can be encoded, derived, based on glyph structures, based on star-shaped structures, square-shaped structures, rectangular-shaped structures, circular-shaped structures, triangular-shaped structures, or portions thereof.
- a rights expression can be encoded, derived, based on modulated or varied signals, lights, sounds, series of sounds, light pulses, using at any suitable frequency and amplitude, including ultraviolet waves, x-rays, microwaves, radio waves, employing lasers, modulated or convoluted information, different colors or wavelengths, electric or magnetic field variations.
- FIG. 15 illustrates an exemplary symbolic representation of the rights expression 207 that can be generated by the exemplary translator processes 205 based on exemplary symbols, such a glyphs.
- an exemplary symbolic representation can be derived from a glyph structure based on a star-shaped structure, and can be used for expressing the rights expression 207 .
- the symbols 1501 - 1504 derived from the star-shaped structure can be taken from the Red, Green, and Blue (RGB) color space.
- the symbols 1501 - 1504 of the star-shaped structure can include the Red (R), Green (G), and/or Blue (B) colors. Accordingly, in a basic case, wherein no colors can be combined, 12 symbols can be generated (four symbols times three colors). To increase the number of members or symbols, however, complex symbols 1511 - 1519 having overlapping colors can be generated, as shown in FIG. 15.
- two or more symbols of different colors up to all 12 symbols can be combined to overlap on a physical location, to potentially produce part or all of the star-shaped structure in different colors, or combination of colors for each part of the star shape the color of the resulting horizontal symbol 1501 of the complex symbol 1511 can be based on the combination of Green and Red symbols 1501 .
- the symbols 1501 - 1504 in various color combinations, can be used to generate the complex symbols 1511 - 1519 , as shown in FIG. 15.
- the number of complex symbols in the exemplary symbol set illustrated by FIG. 15 can be (2 12 ⁇ 1) or 4095 symbols, assuming that a blank space is not considered a symbol with the numerous choices for the complex symbols provided by the exemplary embodiment, correspondingly complex and comprehensive symbolic representations of information, such as information for grammar, language, for a rights expressions can be generated.
- the exemplary rights expression 207 can indicate an expiration date for access to an e-book and can be expressed using the exemplary complex symbol set.
- the symbols 1511 - 1519 can be used to express the rights expression 207 for a book identification (ID) number in a database being 245 , which refers to a novel by a given author, and an access expiration date being July 12 , 2003 .
- ID book identification
- the first complex symbol 1511 can be used to express the phrase “Book (or resource) ID number”
- the second complex symbol 1513 can be used to express the integer “ 245 ”
- the third complex symbol 1515 can be used to express the phrase “Access/expiration date”
- the fourth complex symbol 1517 can be used to express day and month of the year “July 12,” or 7-12
- the fifth complex symbol 1519 can be used to express the year “2003,” and the like.
- any suitable rights expression can be expressed using one or more symbols, such as glyphs.
- the glyphs, symbols, words, messages, of the exemplary embodiments used to convey information about a rights expression can be encoded using light, sound, a series of sounds, light pulses, using at any suitable frequency, amplitude, can include ultraviolet waves, x-rays, microwaves, radio waves, can employ lasers, modulated or convoluted information, different colors or wavelengths, electric or magnetic field variations.
- Any suitable series of the glyphs, symbols, words, messages, of the exemplary embodiments employed can have its own grammar, rules, which provide a meaning to a transmitted message a sound or light in a range of frequencies that a human ear or eye cannot detect, can be employed for transmitting the glyphs, symbols, words, messages during security applications, privacy applications.
- a transmitted message can be made transparent to a user or users, but at the same can be retrieved and understood, by a suitable sensor, detector.
- the glyphs, symbols, words, messages, of the exemplary embodiments can be expressed using any suitable human or machine sensing organ or device, so long as that the sensed information, message, can be quantized, digitized, expressed, based on numbers, bits, bytes or another manner.
- the device-specific formats 219 that the exemplary translator processes 205 can translate the rights expression 207 into can include formats based on profiles, formats based on templates.
- One or more of the devices and sub-systems of the Digital Rights Management systems of FIGS. 1, 4 and 5 can communicate over a communications network 170 , and can include any suitable servers, workstations, personal computers (PCs), laptop computers, PDAs, Internet appliances, set top boxes, modems, handheld devices, telephones, cellular telephones, wireless devices, resource-constrained devices or other devices, capable of performing the functions of the disclosed embodiments.
- the devices and subsystems of the Digital Rights Management systems of FIGS. 1, 4 and 5 can communicate with each other using any suitable protocol and can be implemented using a general-purpose computer system.
- One or more interface mechanisms can be used in the Digital Rights Management systems of FIGS.
- communications network 170 can include wireless communications networks, cellular communications networks, satellite communications networks, Public Switched Telephone Networks (PSTNs), Packet Data Networks (PDNs), the Internet, intranets, hybrid communications networks, combinations thereof.
- PSTNs Public Switched Telephone Networks
- PDNs Packet Data Networks
- the communications network 170 can be the same or different networks.
- FIGS. 1, 4 and 5 are illustrated for exemplary purposes, as many variations of the specific hardware used to implement the disclosed exemplary embodiments are possible the functionality of the devices and the subsystems of the Digital Rights Management systems of FIGS. 1, 4 and 5 can be implemented via one or more programmed computer systems or devices.
- a single computer system can be programmed to perform the special purpose functions of one or more of the devices and subsystems of the Digital Rights Management systems of FIGS. 1, 4 and 5 .
- two or more programmed computer systems or devices can be substituted for any one of the devices and subsystems of the Digital Rights Management systems of FIGS. 1, 4 and 5 . Accordingly, principles and advantages of distributed processing, such as redundancy, replication, also can be implemented, as desired to increase the robustness and performance of the Digital Rights Management systems of FIGS. 1, 4 and 5 .
- the Digital Rights Management systems of FIGS. 1, 4 and 5 as described with respect to FIGS. 1 - 15 can be used to store information relating to various processes described herein. This information can be stored in one or more memories, such as a hard disk, optical disk, magneto-optical disk, RAM, of the devices and sub-systems of the Digital Rights Management systems of FIGS. 1, 4 and 5 .
- One or more databases of the devices and subsystems of the Digital Rights Management systems of FIGS. 1, 4 and 5 can store the information used to implement the exemplary embodiments.
- the databases can be organized using data structures, such as records, tables, arrays, fields, graphs, trees, lists, included in one or more memories, such as the memories listed above.
- All or a portion of the Digital Rights Management systems of FIGS. 1, 4 and 5 as described with respect to FIGS. 1 - 15 can be conveniently implemented using one or more general-purpose computer systems, microprocessors, digital signal processors, micro-controllers, programmed according to the teachings of the disclosed exemplary embodiments. Appropriate software can be readily prepared by programmers of ordinary skill based on the teachings of the disclosed exemplary embodiments.
- the Digital Rights Management systems of FIGS. 1, 4 and 5 can be implemented by the preparation of application-specific integrated circuits or by interconnecting an appropriate network of component circuits.
- the exemplary embodiments described herein can be employed in offline systems, online systems, and in applications, such as TV applications, computer applications, DVD applications, VCR applications, appliance applications, CD player applications.
- the signals employed to transmit the glyphs, symbols, words, messages, of the exemplary embodiments can be configured to be transmitted within the visible spectrum of a human, within the audible spectrum of a human, not within the visible spectrum of a human, not within the audible spectrum of a human, combinations thereof.
- the exemplary embodiments can be described in terms of employing XrML, XML, the exemplary embodiments are not so limited, but also can be practiced with any suitable grammar, language, whether or not XrML-based, XML-based.
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Finance (AREA)
- Technology Law (AREA)
- Software Systems (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Storage Device Security (AREA)
Abstract
Description
- The present invention claims benefit of priority under 35 U.S.C. § 119(e) to commonly assigned, co-pending, U.S. Provisional Patent Application Serial No. 60/363,932 of Raley et al., entitled “USE OF RIGHTS EXPRESSIONS IN APPLICATIONS WITH PERFORMANCE CONSTRAINTS,” filed on Mar. 14, 2002, the entire disclosure of which is hereby incorporated by reference herein.
- 1. Field of the Invention
- This invention generally relates to controlling use of content, or other items, through usage rights associated with the content or other items, and more particularly to a method and apparatus for multi-pass interpretation of usage rights expressions.
- 2. Description of Related Art
- One of the most important issues concerning the widespread distribution of digital content, such as documents, music, movies, software, information, in forms usable by computing devices, via electronic means, and the Internet in particular, is the provision of the ability to enforce the intellectual property rights during the distribution and use of the digital content. Technologies for resolving this problem are referred to as Digital Rights Management (DRM) herein. However, there are a number of issues to be considered in effecting a DRM system, such as authentication, autohorzation, accounting, payment and financial clearing, rights specification, rights verification, rights enforcement, and document protection issues, to name but a few.
- in the world of printed documents and other physical content, a work created by an author is usually provided to a publisher, which formats and prints numerous copies of the work. The copies are then sent by a distributor to bookstores or other retail outlets, from which the copies are purchased by end users. While the low quality of copying and the high cost of distributing printed material have served as deterrents to unauthorized copying of most printed documents, it is much easier to copy, modify, and redistribute unprotected digital content with high quality. Therefore, there is a need for mechanisms to protect digital content.
- Accordingly, commonly assigned U.S. Pat. No. 5,634,012 discloses a DRM system for controlling the distribution of digital content, wherein devices of the DRM system can include a repository associated therewith. A predetermined set of usage transaction steps define a protocol used by the repositories for enforcing usage rights associated with the content. Usage rights persist with the content and the usage rights associated with the content comprise a digital work. The usage rights can permit various manners of use of the content, such as a right to view or print or display the content, a right to use the content only once, a right to distribute or redistribute the content. Such usage rights can be made contingent on payment or other conditions.
- The above and other needs are addressed by embodiments of the present invention, which provide an improved system and method for expressing usage rights for content or other items based on modulated or varied signals or graphical representations of the usage rights.
- Accordingly, in one aspect, there is provided a method for processing a rights expression for association with an item for use in a system for controlling use of the item in accordance with the rights expression. The method comprises specifying a rights expression in an original format and generating an intermediate format for the rights expression based on at least one of syntax information and semantics information associated with the original format. The rights expression specifies a manner of use of the item for enforcement on a device.
- Still other aspects, features, and advantages of the present invention are readily apparent from the following detailed description, simply by illustrating a number of exemplary embodiments and implementations, including the best mode contemplated for carrying out the present invention. The present invention is also capable of other and different embodiments, and its several details can be modified in various respects, all without departing from the spirit and scope of the present invention. Accordingly, the drawings and descriptions are to be regarded as illustrative in nature, and not as restrictive.
- The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:
- FIG. 1 is a schematic illustration of an exemplary Digital Rights Management system on which various embodiments of the present invention can be implemented;
- FIG. 2 is a schematic illustration of exemplary multi-pass interpretation processes that can be implemented on the Digital Rights Management systems of FIGS. 1, 4 and5;
- FIG. 3 is a flowchart for illustrating the exemplary multi-pass interpretation processes of FIG. 2;
- FIG. 4 is a schematic illustration of an exemplary Digital Rights Management system, according to another embodiment;
- FIG. 5 is a schematic illustration of an exemplary Digital Rights Management system, according to another embodiment;
- FIG. 6 is a schematic illustration of exemplary localizer processes that can be implemented on the Digital Rights Management systems of FIGS. 1, 4 and5;
- FIG. 7 is a flowchart for illustrating exemplary pre-processor processes of the localizer processes of FIG. 6;
- FIGS.8A-8B are a flowchart for illustrating an exemplary binary transformation algorithm;
- FIG. 9 is a schematic illustration of exemplary pre-processor processes of the localizer processes of FIG. 6;
- FIG. 10 is a schematic illustration of exemplary simplifier processes that can be implemented on the Digital Rights Management systems of FIGS. 1, 4 and5;
- FIG. 11 is a flowchart for illustrating the exemplary simplifier processes of FIG. 10;
- FIGS.12A-12B are a flowchart for illustrating exemplary pruning and evaluator processes of FIG. 10;
- FIG. 13 is a schematic illustration of an exemplary structure of a binary format that can be generated by the exemplary multi-pass interpretation processes of FIG. 2;
- FIG. 14 is a schematic illustration of an exemplary structure of an enforceable format that can be generated by the exemplary multi-pass interpretation processes of FIG. 2; and
- FIG. 15 illustrates an exemplary symbolic representation of a rights expression that can be generated by the Digital Rights Management systems of FIGS. 1, 4 and5.
- A method and apparatus for multi-pas interpretation of usage rights expressions are described. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It is apparent to one skilled in the art, however, that the present invention can be practiced without these specific details or with equivalent arrangements. In some instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present invention.
- The present invention includes recognition that authentication, authorization, accounting, payment and financial clearing, rights specification, rights verification, rights enforcement, and document protection issues can be addressed by a Digital Rights Management system. Commonly assigned U.S. Pat. No. 5,530,235, No. 5,629,980, No. 5,634,012, No. 5,638,443, No. 5,715,403, No. 6,233,684, and No. 6,236,971, the entire disclosures of all of which are hereby incorporated by reference herein, disclose DRM systems addressing these and other issues.
- In addition, the present invention includes recognition that the processing of rights expressions encoded with a native grammar-based language, such as XrML, an XML-based language, can involve resource intensive operations numerous resources can be employed for parsing and processing encoded rights expressions. In addition, the encoded rights expressions can be very complex and lengthy, entailing multiple and repeated parsing and interpretation tasks. Further, latency, real-time demands, can entail high-performance interpretation of a large number of encoded rights expressions.
- Accordingly, such a computational burden can be quite taxing on various types of systems, devices, platforms, such as systems and devices with limited resources, small devices, handheld devices, systems and platforms responsible for processing large amounts of rights expressions within a limited amount time. Therefore, there is a need for a system and method for easing the computational burden for the processing of encoded rights expressions in a robust and reliable manner.
- the exemplary embodiments described herein address the above and other needs by providing improved systems and methods, whereby a grammar-based rights expressions can be simplified, optimized, and translated into exemplary data, formats, that can be processed with increasing efficiency, that can be better matched to resources of a targeted computing environment. In exemplary embodiment, the targeted computation environment can include a targeted device, component, application, function, system, platform. In an exemplary embodiment, a grammar-based language, such as extensible rights Markup Language (XrML), extensible Access Control Markup Language (XACML), Open Digital Rights Language (ODRL), an extensible Markup Language (XML)-based language, can be employed for specifying a rights expression. However, any suitable grammar, language, can be employed in practicing the exemplary embodiments.
- The exemplary embodiments can be directed to improved methods and systems, whereby a grammar-based rights expressions can be simplified, optimized, translated, into the exemplary data, formats, that can be processed with increasing efficiency, that can be better matched to resources of the targeted computing environment. The exemplary embodiments can be referred to as multi-pass interpretation, because various stages of interpretation can be employed, wherein a grammar-based rights expression can be simplified into the exemplary data, format, that can be more suitable for the targeted computing environment.
- In an exemplary embodiment, the processes of evaluation, interpretation, of a rights expression can be partitioned into multiple processing steps the intermediate results of each processing step can be saved as exemplary data, as an exemplary format, that at a later time can be evaluated, interpreted, or so that the processes of evaluation, interpretation, can be can be resumed at later time. The resulting exemplary formats of the intermediate results can be referred to as intermediate formats. However, the formats described herein are of an exemplary nature, and any suitable type of format, can be employed to capture the results from the processes of the exemplary embodiments, as will now be further described.
- Referring now to the drawings, wherein like reference numerals designate identical or corresponding parts throughout the several views, and more particularly to FIG. 1 thereof, there is illustrated a
DRM system 100 that can be used in connection with the described exemplary embodiments to specify and enforce usage rights for content, services, or other property. In FIG. 1, theDRM system 100 includes a user activation component in the form of anactivation server 110 that issues a set of public and private key pairs 112 to a content user in a protected fashion. Typically, when the user uses theDRM system 100 for the first time, the user installs software that works with, or includes, a rendering application for a particular content format. - The software is installed in a
client environment 120 such as a computing device associated with the user. The software can be part of theDRM system 100 and can be used to access protectedcontent 134. After the installation, the software can be activated. During the activation process, some information is exchanged between theactivation server 110 and theclient environment 120. Aclient software component 122 can be downloaded and installed in theclient environment 120. Theclient software component 122 can be tamper resistant and can include the set of public and private key pairs 112 issued by theactivation server 110, as well as other components. - A
rights offer 132 can be associated with the protectedcontent 134 and can specifyusage rights 132A, having a manner of use, that are available to an end-user when one or morecorresponding conditions 132B are satisfied. Alicense server 140 manages theencryption keys 112 and issues alicense 142 for the protectedcontent 134. Thelicense 142 can embody the actual granting of theusage rights 132A to the end user therights offer 132 may grant the end user the right to view the protectedcontent 134 on the condition of payment of a fee of five dollars, and the right to print the protected content on the condition of payment of a fee of ten dollars. Thelicense 142 can be issued for the view right when the five dollar fee has been paid and/or for the print right when 10 dollar fee has been paid. Theclient component 122 interprets and enforces the rights that have been specified in thelicense 142. -
Clear content 136, such as unprotected content, can be prepared with anapplication 138, such as a document preparation application, installed on acomputer 130 associated with a content publisher, a content distributor, a content service provider, or any other suitable party. Preparation of theclear content 136 can include specifying therights 132A and theconditions 132B under which theclear content 136 can be used, associating the rights offer 132 with theclear content 136, and protecting theclear content 136 with a cryptography algorithm to generate the protectedcontent 134. A rights language, such as XrML, XACML, ODRL, can be used to specify therights offer 132. However, the rights offer 132 can be specified in any suitable manner. Also, the rights offer 132 can be in the form of a pre-defined specification, profile, template, that can be associated with the protectedcontent 134. Accordingly, the process of specifying the rights offer 132 can include any suitable process for associating rights, conditions, with content. The rights offer 132 associated with the protectedcontent 134 and theencryption key 112 used to encrypt theclear content 136 can be transmitted to thelicense server 140. - A typical workflow for the
DRM system 100 can include a user operating within theclient environment 120 being activated for receiving the protectedcontent 134 by theactivation server 110. The activation process results in the public and privatekey pair 112, and some user and/or machine-specific information, being downloaded to theclient environment 120 in the form of theclient software component 122. The activation process can be accomplished at any suitable time prior to the issuing of thelicense 142. - When the user wishes to use the protected
content 134, the user makes a request for the protectedcontent 134 the user might browse a Web site running on aWeb server 150, using a browser installed in theclient environment 120, and attempt to download the protectedcontent 134. During this process, the user may go through a series of steps possibly including a fee transaction, such as in the sale of content, other transactions, such as collection of information. When the appropriate conditions and other prerequisites, such as the collection of a fee and verification that the user has been activated, are satisfied, theWeb server 150 contacts thelicense server 140 through a secure communications channel, such as a channel using a Secure Sockets Layer (SSL). Thelicense server 140 then generates thelicense 142 for the protectedcontent 134 and theWeb server 150 downloads both the protectedcontent 134 and thelicense 142. Thelicense 142 can include the appropriate usage rights of theusage rights 132A and can be downloaded from thelicense server 140 or an associated device. The protectedcontent 134 can be downloaded from thecomputer 130 associated with a publisher, distributor, or other party. The rights offer 132 can be persistent and remain associated with the protectedcontent 134. - The
client software component 122 in theclient environment 120 can then proceed to interpret thelicense 142 and allow use of the protectedcontent 134 based on therights 132A and theconditions 132B specified in thelicense 142. The interpretation and enforcement of the usage rights are further described in commonly assigned U.S. Pat. No. 5,530,235, No. 5,629,980, No. 5,634,012, No. 5,638,443, No. 5,715,403, No. 6,233,684, and No. 6,236,971. The above steps can take place sequentially, approximately simultaneously, in various orders. - The
DRM system 100 addresses security aspects of protecting the protectedcontent 134. In particular, theDRM system 100 can authenticate thelicense 142 that has been issued by thelicense server 140. One way to accomplish such authentication is for theclient software component 122 to determine if thelicenses 142 can be trusted. In other words, theclient software component 122 can include the capability to verify and/or validate the cryptographic signature, or other identifying characteristic of thelicense 142. During the activation step described above, theclient environment 120 and thelicense server 140 can receive the set ofkeys 112 in a tamper-resistant software package that can include other components, such as theclient software component 122 for the activatedclient environment 120 to verify the signature of thelicense 142. - The
DRM system 100 is of an exemplary nature and can be implemented in numerous other equivalent arrangements thelicense 142 and the protectedcontent 134 can be distributed from different entities. As another example, the rights offer 132 can be associated with the protectedcontent 134 by a party other than the party preparing the protectedcontent 134. As a further example, aclearinghouse 160 can be used to process payment transactions and verify payment prior to issuing thelicense 142. Moreover, the various processes and transactions can be performed via online and/or offline environments and/or combinations thereof an end user could download content to a computer and then transfer the content from the computer to a personal digital assistant (PDA). The end user could then buy a license for the content via a supermarket kiosk, a cash register, a prep-paid license card, and then transfer the license to the PDA. The end user could then activate the content for use on the PDA and/or the computer. In such an offline scenario, the various devices can, but need not, communicate directly with one another and information can be exchanged in any suitable manner, such as by physically moving media between the devices. - FIG. 2 is a schematic illustration of exemplary multi-pass interpretation processes200 that can be implemented on one or more of the devices and sub-systems of the Digital Rights Management systems of FIGS. 1, 4 and 5. In FIG. 2, the exemplary multi-pass interpretation processes 200 can include exemplary localizer processes 201, exemplary simplifier processes 203, and exemplary translator processes 205. The exemplary localizer processes 201 can receive a
rights expression 207 in a grammar-based language, such as XrML, and rightsexpression language information 209 including syntax information, semantics information. The exemplary localizer processes 201 can convert therights expression 207 into an intermediate format that can be referred to as in an exemplary self-containedformat 211 based on and the grammar-based rightsexpression language information 209. - The exemplary simplifier processes203 can receive the
rights expression 207, therights expression 207 in the exemplary self-containedformat 211, state ofrights information 213,device information 217 for the targeted computing environment. The exemplary simplifier processes 203 can convert therights expression 207, therights expression 207 in the exemplary self-containedformat 211, to an exemplary intermediate format that can be referred to as an exemplarysimplified format 215 based on the state ofrights information 213, thedevice information 217. - The exemplary translator processes205 can receive the
rights expression 207, therights expression 207 in the exemplary self-containedformat 211 or therights expression 207 in the exemplarysimplified format 215, along with thedevice information 217. The exemplary translator processes 205 can convert therights expression 207, therights expression 207 in the exemplary self-containedformat 211, therights expression 207 in the exemplarysimplified format 215, into an intermediate format that can be referred to as an exemplary device-specific format 219 based on thedevice information 217. In an exemplary embodiment, the exemplary localizer processes 201, the exemplary simplifier processes 203, the exemplary translator processes 205, can be implemented on one or more of the devices and sub-systems of the Digital Rights Management systems of FIGS. 1, 4 and 5. - FIG. 3 is a flowchart for illustrating the exemplary multi-pass interpretation processes200 of FIG. 2. In FIG. 3, at
step 301 therights expression 207 file in a grammar-based language, such as XrML, can be retrieved for multi-pass interpretation processing. Atstep 303 the retrievedrights expression 207 can be converted from a native format, such as XrML, into the exemplary self-containedformat 211, including an exemplary binary format, such as an XML-based binary format, an XrML-based binary format and the like. In an exemplary embodiment, therights expression 207 in the exemplary self-containedformat 211, can be machine-readable, platform-independent. Thus, therights expression 207 in the self-containedformat 211, does not have to be dependent on any specific processing capability, such as an XML processing capability, an XrML processing capability. - At
step 305 the self-containedformat 211 can be interpreted, and simplified, to extract a list of conditions, from therights expressions 207 in the exemplary self-containedformat 211. In this way, therights expression 207 in the exemplary self-containedformat 211 can be converted into the exemplarysimplified format 215. Therights expression 207 in the exemplarysimplified format 215 can include conditions that can be validated, enforced, by the targeted computing environment. In an exemplary embodiment, the exemplarysimplified format 215 can be XML-based or XrML-based and can be referred to as an exemplary enforceable format. - At
step 307 therights expression 207 in thesimplified format 215 can be converted into therights expression 207 in the exemplary device-specific format 219 therights expression 207 in the exemplary device-specific format 219 can be readily executed by the targeted computing environment. Although, the exemplary embodiments can be described in terms of employing the exemplary self-containedformat 211, the exemplarysimplified format 215, to store intermediate results, any suitable format can be employed to store the intermediate results, the format conversations can be performed in various orders, the format conversations can be repeated multiple times. - The exemplary multi-pass validation and interpretation processes200 can include the exemplary localizer processes 201, the exemplary simplifier processes 203, and the exemplary translator processes 205. In an exemplary embodiment, the exemplary localizer processes 201 can include devices, components, applications, functions, systems, platforms, responsible for assigning the semantic meaning of keywords, elements, conditions, rights expressions, employed in the
rights expression 207, for resolving potential ambiguities within therights expression 207, for pre-processing therights expression 207. The exemplary localizer processes 201 can employ the syntax andsemantics information 209 of the corresponding rights language to pre-process therights expressions 207 to generate therights expression 207 in the exemplary self-containedformat 211, which, can include therights expression 207 in an unambiguous form. - Accordingly, the exemplary self-contained
format 211 can include an unambiguous version of therights expression 207, a semantic meaning of words used in therights expression 207, and processing instructions for processing therights expression 207. Theformat 211 can be considered self-contained, because therights expression 207 stored in the exemplary self-containedformat 211 can be readily processed by any suitable application, system, device, without a need to employ external resources, such as syntax and semantics resources, and language parsing resources. - In an exemplary embodiment, the
rights expression 207 can include any suitable expression of a usage right, such as a label, a license, or fragments thereof. A rights expression language, for expressing therights expression 207, can include any suitable language having predefined syntax and semantics and that can be used to express a usage right. A rights grammar can include a set of predefined symbols, for expressing a usage right. A usage right can include a specification of a permitted manner of use of an item. A label can include a prepackaged set of usage rights not associated with a specific item. A license can include a prepackaged set of usage rights including an item association. A condition can include a specification of one or more prerequisites for exercising a manner of use of an item. An item can include anything for which use can be controlled by associated usage rights, such as digital content, software, services, goods, resources. A resource can include a digital device or portion thereof to which access can be controlled by an associated usage right. - According to a further exemplary embodiment, the
rights expression 207 can include, a sequence of expressions for specifying usage rights, conditions, manner of use, policies, principals, subjects. Therights expression 207 further can specify a resource, that the usage rights can be applied to, as well as imposed usage conditions, actions, obligations, that can be satisfied before the granted usage right can be exercised. - In an exemplary embodiment, semantic meanings can be stored within the exemplary self-contained
format 211 that can be used to determine the meaning of expressions within therights expression 207, the meaning of the processing instructions for processing therights expression 207. Accordingly, the semantic meanings can be used to identify a specific expression within therights expression 207, such as an expression used for identifying a principal, an expression used for identifying a condition. - By providing both the semantic meanings and the processing instructions, any suitable application, system, device, can efficiently process the
rights expression 207 in the exemplary self-containedformat 211 without a need to employ external resources. In addition, the exemplary self-containedformat 211 can be used to store intermediate results generated by the exemplary localizer processes 201. - In an exemplary embodiment, the exemplary simplifier processes203 can include devices, components, applications, functions, systems, platforms, responsible for pre-evaluating, and simplifying, the
rights expression 207, therights expression 207 in the exemplary self-containedformat 211. The exemplary simplifier processes 203 can employ the state ofrights information 213, thedevice information 217 for the targeted computing environment, to evaluate expressions, such as condition expressions, and rights expressions within therights expression 207. - Such an evaluation can be employed to determine whether or not a given condition, rights expression, can be removed from the
rights expression 207 for the targeted computing environment. For example, a condition, such as payment of fee, that has to be satisfied in order for the targeted computing environment to gain unlimited access to digital content can be expressed within therights expression 207. If, however, the payment of the fee condition has been satisfied, the step of checking on whether or not the fee has been paid, every time the targeted computing environment attempts to access the digital content, can be eliminated from therights expression 207. - Accordingly, any suitable condition, rights expression, can be removed from the
rights expression 207 for the targeted computing environment, thus, reducing the size of the resultingrights expression 207, the time needed to process the resultingrights expression 207. Thus, the exemplary simplifier processes 203 can generate therights expression 207 in the exemplarysimplified format 215, eliminating any suitable conditions, rights expressions, that need not be verified, validated, for the targeted computing environment. Although, the exemplary embodiments can be described in terms of employing the exemplarysimplified format 215 to store intermediate results, of the exemplary simplifier processes 203, any suitable format can be employed to store the intermediate results of the exemplary simplifier processes 203. - In an exemplary embodiment, the exemplary translator processes203 can include devices, components, applications, functions, systems, platforms, responsible for translating the
rights expression 207, therights expression 207 in the exemplarysimplified format 215, therights expression 207 in the exemplary self-containedformat 211, into therights expression 207 in the exemplary device-specific format 219 for the targeted computing environment. For example, the exemplary device-specific format 219 can include a stream of data that can be processed by the targeted computing environment. Accordingly, the exemplary translator processes 203 can be configured to transmit therights expression 207 in the exemplary device-specific format 219 as a sequence of bits that can represent data, a data structure, that can be processed by the targeted computing environment. In addition, the exemplary translator processes 203 can be configured to transmit therights expression 207 in the exemplary device-specific format 219 as a sequence of native instructions that can be processed, executed, by the targeted computing environment. - In an exemplary embodiment, the
localizer 201 processes, thesimplifier 203 processes, thetranslator 205 processes, can be independent from one another. In a further exemplary embodiment, however, thelocalizer 201 processes, thesimplifier 203 processes, and thetranslator 205 processes, can be dependent on one another. In addition, thelocalizer 201 processes, thesimplifier 203 processes, and thetranslator 205 processes can communicate with each other via any suitable data format, such as the exemplary intermediate formats. - The exemplary multi-pass validation and interpretation processes200 can be employed to allow flexible configurations of interpretation systems that can be better suited for the targeted computing environment. For example if the targeted computing environment has limited resources or processing capabilities, such as a mobile phone, a handheld device, instead of sending a grammar-based rights expression document, such as an XrML document, to the targeted computing environment, the grammar-based rights expression document can be translated into the exemplary device-
specific format 219 before being transmitted to the target environment. - In an exemplary embodiment, the
rights expression 207 in the exemplary device-specific format 219 can be configured by thetranslator 205 processes to be native to the targeted computing environment, which then can be transmitted to the targeted computing environment for execution. FIG. 4 is a schematic illustration of an exemplary DigitalRights Management system 400, wherein a protected item, such as a text document, music, or software, can be used on different devices. - In FIG. 4, the
DRM system 400 can be employed to allow digital music to be played on both apersonal computer 405 and one or moreother devices 409, such MP2 players, MP3 players, set-top boxes, handheld devices. In this embodiment,small devices 409 are devices with specific functions. For example, on MP3 player might only be able to play music and is not able to print or accept payments. In theDRM system 400, therights expression 207 can be converted into the exemplary self-containedformat 211 using the exemplary localizer processes 201, the exemplarysimplified format 215 using the exemplary simplifier processes 203. - The converted
rights expression 207 then can be sent to thepersonal computer 405 where the convertedrights expression 207 can be processed to authorize the use of the protected digital music. Exemplary distributor processes 401 can be employed to transmit therights expression 207 in the exemplary self-containedformat 211 to thepersonal computer 405 via the gateway. - From the
personal computer 405, a user also can translate therights expression 207 in the exemplary self-containedformat 211 or the exemplarysimplified format 215, into the exemplary device-specific format 219 suitable for thesmall devices 205 using the exemplary translator processes 205. The user then can send both the protected digital music and the associatedrights expression 207 in the exemplary device-specific format 219 to thesmall devices 409, so that the protected digital music can be played on thesmall devices 409 in accordance withrights expression 207. Accordingly, therights expression 207 can be converted into the exemplary self-containedformat 211 or the exemplarysimplified format 215 and then to the exemplary device-specific format 219 as illustrated in FIG. 2 and discussed above. - In an exemplary embodiment, the
DRM system 400 can include exemplary interpreter processes 403 which can be configured to process large amounts ofrights expressions 207 in the exemplary self-containedformat 211. The exemplary self-containedformat 211 can include the processing instructions and the semantic meaning of therights expression 207, resulting in improved performance, for the exemplary interpreter processes 403. Accordingly, thepersonal computer 405 can process therights expression 207 in the exemplary self-containedformat 211 in an efficient manner. In addition, therights expression 207 in the exemplarysimplified format 215 can be transmitted to one or more resource-constraineddevices 407, as shown in FIG. 4. In this embodiment resource constrained devices are multi-purpose devices that do not have syntactical or semantic processing capability. - The exemplary localizer processes201, the exemplary distributor processes can be implemented in the
computer system 130 of FIG. 1, while thepersonal computer 405, the exemplary interpreter processes 403, the exemplary simplifier processes 203 and the exemplary translator processes 205, can be implemented on theexemplary client environment 120 of FIG. 1. However, the exemplary localizer processes 201, the exemplary distributor processes 401, the exemplary interpreter processes 403, the exemplary simplifier processes 203, and the exemplary translator processes 205, can be implemented on one or more of the devices and sub-systems of the Digital Rights Management systems of FIGS. 1, 4 and 5. - The exemplary embodiments provide flexible configurations that can be ideal for various computing environments, such as resource-constrained computing environments, size-constrained (of function constrained) computing environments, multi-processor computing environments. FIG. 5 is a schematic illustration of an exemplary Digital
Rights Management system 500 with a multi-processor capability, according to an exemplary embodiment. - In FIG. 5, the
DRM system 500 can be configured, to process large amounts of therights expressions 207, such as abatch 501, of the of the rights expressions 207 apool 503 ofprocessors 505 can be configured to enable arespective pool 507 of the exemplary localizer processes 201 to generate abatch 509, of therights expressions 207 in the exemplary self-containedformat 211 from thebatch 501 ofrights expressions 207. Thebatch 509 of therights expressions 207 in the exemplary self-containedformat 211 can be further multi-processed. - Accordingly, a
pool 511 ofprocessors 505 can be configured to enable arespective pool 513 ofnext processes 515, such as the exemplary simplifier processes 203 and the exemplary translator processes 205 to generate abatch 517 of therights expressions 207 in anotherformat 519, such as the exemplarysimplified format 215 or the exemplary device-specific format 219. In a further exemplary embodiment, thepool 503 of theprocessors 505, thepool 507 of the exemplary localizer processes 201, thepool 511 of theprocessors 505, and thepool 513 of thenext processes 515 can be implemented on one or more of the devices and sub-systems of the Digital Rights Management systems of FIGS. 1, 4 and 5. - According to the exemplary embodiments, the exemplary localizer processes201 can be configured to pre-process the
rights expression 207, to generate therights expression 207 in the exemplary self-containedformat 211. The exemplary self-containedformat 211 can include therights expression 207 in an unambiguous form, the semantic meaning of one or more keywords, elements, conditions, rights expressions, employed within therights expressions 207, instructions for processing therights expressions 207. FIG. 6 is a schematic illustration of the exemplary localizer processes 201 that can be implemented on one or more of the devices and sub-systems of the Digital Rights Management systems of FIGS. 1, 4 and 5. - In FIG. 6, exemplary canonicalizer processes601 can resolve potential ambiguities within the
rights expression 207, based onsyntax information 607 of the syntax andsemantics information 209 to generate therights expression 207 in an unambiguous form. In addition, the exemplary canonicalizer processes 601 can convert theunambiguous rights expression 207 into acanonical form 609 as described in greater detail below. - Exemplary pre-processor processes603 can be employed to process the
unambiguous rights expression 207 in thecanonical form 609 based onsemantics information 611 of the syntax andsemantics information 209, to generate processing results 613. The processing results 613 can include, theunambiguous rights expression 207, a context table, a semantics table, the processing instructions. Exemplary formatter processes 605 can package, process, the processing results 613 to generate therights expression 207 in the exemplary self-containedformat 211. - The
rights expression 207 in the exemplary self-containedformat 211 can include the semantic meaning of therights expression 207, the processing instructions for therights expression 207 allowing efficient processing thereof, without a need to employ external resources, such as language parsers, syntax and semantics processors. Therights expression 207 in the exemplary self-containedformat 211, can be converted back to the original format of therights expression 207, such as an XrML format. Therights expression 207 in the exemplary self-containedformat 211 can be employed to ease the computational burden of processing therights expressions 207 for a targeted computing environment having limited storage capabilities, processing capabilities, such asconstrained devices 407 of FIG. 4. - The exemplary self-contained
format 211 can include the binary format. However, any other suitable format can be employed as the self-containedformat 211. When the exemplary binary format is employed as the exemplary self-containedformat 211 forrights expression 207 distribution purposes, therights expression 207 can be digitally signed employing an exemplary binary transformation algorithm. - The exemplary binary transformation algorithm can transform the
rights expression 207 into the binary format, for example, while preserving a digital signature between therights expression 207 in the original format and the exemplary self-containedformat 211. The context table, the semantics table, can be pre-built, pre-defined or pre-stored, in the targeted computing environment, thus optimizing storage the rights expression information. - The exemplary canonicalizer processes601 can be employed to remove ambiguities, if any, in the
rights expressions 207. For example, such ambiguities can be based on various choices that can be made with respect to therights expressions 207, and variations inrights expressions 207 for which some type standardization may be desired. - The exemplary canonicalizer processes601 converts the
unambiguous rights expression 207 into thecanonical form 609 many language-based expressions can vary in their physical representations, based on the syntax changes permitted by their respective languages, and still can be logical equivalents within a given application context. The following XML elements can be logically equivalent, even though they can differ in their respective physical representations, as shown below:<doc> <e1 /> <e2 ></e2> <e3 name = “elem3” id=“elem3” /> </doc> and <doc> <e1></e1> <e2/> <e3 id=“elem3” name=“elem3”></e3> </doc> - The canonical form of the above XML elements, can be:
<doc> <e1></e1> <e2></e2> <e3 id=“elem 3” name=“elem3”></e3> </doc> - Accordingly, the exemplary canonicalizer processes601 can be employed to convert the
unambiguous rights expression 207 into thecanonical form 609 based on the syntax andsemantics information 209 for the given rights expression language. The exemplary pre-processor processes 603 can be employed to construct the context table for the contexts or namespaces used by therights expressions 207, and to construct the semantic table for providing meanings for the elements used in therights expression 207, to generate the processing instructions for processing therights expression 207. - In addition, the exemplary pre-processor processes603 can covert the
unambiguous rights expressions 207 in thecanonical form 609 into theformat 613 supported by the targeted self-containedformat 211 generated by the exemplary formatter processes 605. FIG. 7 is a flowchart for illustrating the exemplary pre-processor processes 603 of FIG. 6. The exemplary pre-processor processes 603 can populate theunambiguous rights expression 207 in thecanonical form 609, for example in a Document Object Model (DOM) tree. - In FIG. 7, at
step 701 the exemplary pre-processor processes 603 process each child node of a document node by employing a node processing process including steps 703-713. Atstep 703 the namespace of the input node can be looked up in the context table. If the namespace cannot be found in the context table, as determined atstep 705, atstep 711, a new entry can be created in the context table using the next available context identification (id). - Otherwise, at
step 707 the semantic type of the input node can be determined by looking up the name of the input node in the semantics table. If the semantic type of the input node cannot found in the semantics table, as determined atstep 709 atstep 713, a new entry can be created the in the semantics table using an element type, an element name, the context id, and the next available element id. The node processing process of steps 703-713 can be repeated for each attribute of an element by calling the node processing process with a corresponding attribute node. In a similar manner, the node processing process of steps 703-713 can be repeated for each child element by calling the node processing process with a corresponding element node. - The context table can include the context id, length of the namespace, and a Uniform Resource Identifier (URI) of the namespace of the context, namespace URI. The context id can be assigned based on the order of occurrence, probability of occurrence, of the namespace of the context within the
rights expression 207. - The following first exemplary rights expression in the form of an XrML-based license to play a song, can be used to illustrate a context table, a semantics table, and a pre-defined type table.
-
<license xmlns=http://www.xrml.org/schema/2001/11/xrml2core xmlns:sx=http://www.xrml.org/schema/2001/11/xrml2sx xmlns:dsig=http://www.w3.org/2000/09/xmldsig# xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xmlns:cx=http://www.xrml.org/schema/2001/11/xrml2cx xmlns:cm= http://www.xrml.org/schema/2001/11/xrml2compactMusic > <grant> <cm:device cmid=“123”/> <cx.play/> <cm:music cmid=“456”/> </grant> <cm:issuerDevice> <cm:device cmid=“024”/> </cm:issuerDevice> </license> - An exemplary context table, based on the first exemplary rights expressing, is illustrated in Table 1.
TABLE 1 Exemplary Context Table. context id length namespace URI 01 44 http://www.xrml.org/schema/2001/11/xrml2core 02 42 http://www.xrml.org/schema/2001/11/xrml2cx 03 52 http://www.xrml.org/schema/2001/11/ xrml2compactMusic - As shown in Table 1, the exemplary context table in the exemplary binary format, can include the context id entries01-03 assigned based on the order of usage, probability of usage, of the contexts identified by the namespace URM entries in the first exemplary rights expression, and the corresponding length entries of the contexts identified by namespace URI entries.
- The semantics table in the exemplary binary format can include an element id, an element type, and element name, and a context id. The element id of the semantics table can be assigned based on the order of occurrence, or probability of occurrence, of an element within the
rights expression 207. - An exemplary semantics table, based on the first exemplary rights expression, is illustrated in Table 2 below.
TABLE 2 Exemplary Semantics Table. element id element type element name context id 01 10 license 0 02 11 grantGroup 0 03 12 grant 0 04 13 principal 0 05 14 rights 0 06 15 resource 0 07 16 allConditions 0 08 17 condition 0 09 18 issuer 0 10 20 inventory definition 0 11 21 variable definition 0 12 22 reference 0 20 01 device 2 21 02 cmid 2 22 01 play 3 23 01 music 2 24 01 issuerDevice 2 - The element types having values from 00 to 22 can be optionally included in a semanitics table, and can be defined in a pre-defined type table. Accordingly the pre-defined type can be employed, including predefined values for predetermined element types, as illustrated in Table 3 below.
TABLE 3 Exemplary Pre-Defined Type Table. element type element name 00 next level 01 element 02 attribute 03 value 04 number of children 10 license 11 grantGroup 12 grant 13 principal 14 rights 15 resource 16 allCondition 17 condition 18 issuer 20 inventory definition 21 variable definition 22 reference - The first exemplary rights expression converted into the exemplary binary format, based on Tables 1-3, can given as follows:
01 03 04 202103123 05 22 06 232103456 09 24 00 202103024, where: 01 <license> 03 <grant> 04 principal [Processing instruction] 2021030123 <cm:device cmid=“123”/> 05 right [Processing instruction] 22 <cx.play> 06 resource [Processing instruction] 232103456 <cm:music cmid=“456”/> 09 issuer [Processing instruction] 24 <cm:issuerDevice> 00 next level 2021030024 <cm:device cmid=“024”/> - The following second exemplary rights expression in the form of an XrML-based license, including an inventory list, can be used to further illustrate a context table, and a semantics table.
-
<license xmlns=http://www.xrml.org/schema/2001/11/xrml2core xmlns:sx=http://www.xrml.org/schema/2001/11/xrml2sx xmlns:dsig=http://www.w3.org/2000/09/xmldsig# xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xmlns:cx=http://www.xrml.org/schema/2001/11/xrml2cx > <inventory> <cx:digitalWork licensePartId=“dvdMovie”> <cx:metadata> <xml> <cx:simpleDigitalWorkMetadata> <cx:title>Air Force One</cx:title> </cx:simpleDigitalWorkMetadata> </xml> </cx:metadata> </cx:digitalWork> </inventory> <grant> <keyHolder> <info> <dsig:Key Value> <dsig:RSAKeyValue> </dsig:RSAKeyValue> </dsig:KeyValue> </info> </keyHolder> <cx:play/> <cx:digitalWork licensePartIdRef=“dvdMovie”/> </grant> </license> - An exemplary context table based on the second exemplary rights expression, is illustrated in Table 4 below.
TABLE 4 Exemplary Context Table. context id length namespace URI 01 44 http://www.xrml.org/schema/2001/11/xrml2core 02 42 http://www.xrml.org/schema/2001/11/xrml2cx 03 34 http://www.w3.org/2000/09/xmldsig# - An exemplary semantics table based on the second exemplary rights expression, is illustrated in Table 5 below.
TABLE 5 Exemplary Semantics Table. element id element type element name context id 01 10 license 0 02 11 grantGroup 0 03 12 grant 0 04 13 principal 0 05 14 rights 0 06 15 resource 0 07 16 allConditions 0 08 17 condition 0 09 18 issuer 0 10 20 inventory definition 0 11 21 variable definition 0 12 22 reference 0 20 20 dvdMovie 1 21 01 digitalWork 2 22 01 metadata 2 23 01 xml 1 24 01 simpleDigitalWorkMetadata 2 25 01 title 2 26 01 keyHolder 1 27 01 info 1 28 01 KeyValue 3 29 01 RSAKeyValue 3 30 01 play 2 - The second exemplary rights expression converted into the exemplary binary format, based on the exemplary Tables 3-5, can be given as follows:
01 10 20 21 0022 0023 0024 00250313Air Force One 03 04 26 0027 0028 0029 05 30 06 12 20, where: 01 <license> 10 inventory definition [Processing instruction] 20 licensePartId=“dvdMovie” <cx:digitalWork licensePartId=“dvdMovie”> 21 <cx:digitalWork> 0022 next level <cx:metaData> 0023 next level <xml> 0024 next level <cx:simpleDigitalWorkMetadata> 00250313Air Force One next level <cx:title>Air Force One</cx:title> 03 <grant> 04 principal [Processing instruction] 26 <keyHolder> 0027 <info> 0028 <dsig:KeyValue> 0029 <dsif:RSAKeyValue> 05 rights [Processing instruction] 30 <cx:play> 06 resource [Processing instruction] 12 reference to - The exemplary canonicalizer processes601 can be employed to generate unambiguous rights expressions in the
canonical form 609 from therights expressions 207. The term ambiguity can refers to the fact that certain elements, in a rights expression can have default values or can have values where the interpretation can be assumed. For example a rate element in a rights expression can include the optional attribute CurrencyCode, which can default to US dollars (USD). Thus, the $USD 50 rate can be expressed as: - <rate>50</rate>
- The above statement can be ambiguous, when the context is not known. Resolving such an ambiguity can include determining a default value, an assumed value, an assumed context, in which the rate element can be expressed. Thus, the unambiguous form of the above expression can include a currency attribute for the rate element, and can be expressed as follows:
- <rate currency=“USD”>50</rate>
- The exemplary localizer processes201 can be employed to convert the
rights expression 207 into the exemplary self-containedformat 211. Such a conversion can employ the exemplary binary transformation algorithm. FIGS. 8A-8B are a flowchart for illustrating the exemplary binary transformation algorithm. - In FIG. 8A, at
step 801, for example, rights expressions, for example in the form of a rights expression document, file, such as an XrML, document, file, can be retrieved for processing. Atstep 803, for example the syntax of the rights expressions can be verified to remove ambiguities. Then, for example, the rights expressions can be converted into their canonical. - For example many rights expressions can vary in physical representations, for example based on permitted syntax changes, but still can be logical equivalents within a given application context. Accordingly, the rights expressions can be canonicalizer into the canonical form. In an exemplary embodiment, the rights expressions with the same canonical form can be configured as logical equivalents using any suitable algorithm, for example, such as the algorithm described in the Canonical XML Version 1.0 from the World Wide Web Consortium (W3C), W3C Recommendation 15 Mar. 2001, available on the World Wide Web (WWW) at <http://www.w3.org/TR/2001 /REC-xml-cl4n-20010315>, incorporated by reference herein.
- At
step 803, for example the context table and semantics table can be generated. Atstep 805, for example the rights expressions can be translated into the exemplary binary format, for example, using the corresponding context table and semantics table. - In an exemplary embodiment, the exemplary localizer processes201 can be employed, for example to resolve default values for optional elements, attributes, in a rights expression document, file, removing ambiguities in the rights expression document. FIG. 8B further illustrates the
step 803 in FIG. 8A that can be used for generating the semantics table. - In FIG. 8B, at step811 a semantics table can be generated for each namespace declared in the rights expression document, wherein the context for each namespace declared in the rights expression document can be identified, defined. For example the syntax and semantics of many grammar-based languages, such as XrML, can be defined in many independent schemes, wherein each schema can be employed to define its own set of keywords, semantic meanings for the keywords. A context id for each schema used in the rights expression document can be identified and assigned.
- At
step 813 each identified context can be assigned a context id based on the of occurrence, probability of occurrence, within the rights expression document. If a rights expression language can be extensible and derived from a core or base language, the first employed context id can be assigned to the core context, regardless of where the elements of the core context can be used within the rights expression. However, a context id can be assigned in any suitable order. - At
step 815 for each namespace, an element id, an element type, and an element name for each element declared in the rights expression document can be identified and assigned. The element id can be assigned based on the order of occurrence, probability of occurrence, of an element within the rights expression document. Thus, each entry in the semantics table can include an element id, an element type, an element name, and a context id. - FIG. 9 is a schematic illustration of the exemplary pre-processor processes603 of the exemplary localizer processes 201 of FIG. In FIG. 9 the exemplary processes 901-907 perform one or more of the steps of exemplary binary transformation algorithm described with respect to FIGS. 8A-8B. The exemplary binary transformation algorithm, also can be employed to perform a binary transformation on a digital signature, such as an XML digital signature. The transformed signature can be a binary representation of an original signature, thereby preserving the original signature. In addition, employing the exemplary binary transformation algorithm, preserves the integrity of the digital signatures, preserves the semantic meanings.
- The exemplary self-contained
format 211 can be made independent of resources, such as a XML parser, can provide improvements in processing, and can provide improvements in transmission performance. Accordingly, the exemplary self-containedformat 211 can be targeted to a wide variety of computing environments such as computing environments having limited resource capabilities, limited processing capabilities, limited storage capabilities, limited functions. - A semantic meaning of the elements of a rights expression can be stored in a semantics document, such as a XML schema document. The rights expression can be digitally signed and the signature can be employed to protect the rights expression. However, the semantics document can be in a document that is distinct from the document including the rights expression.
- The present invention includes recognition that the semantics document can be hacked, modified. In this way, the meanings employed for processing, evaluating, validating a digitally signed rights expression can be changed without comprising the integrity of the digitally signed rights expression. The above and other problems are addressed and solved by employing a digital signature, for protecting a rights expression, semantic meanings for the rights expression.
- Accordingly, the semantic meanings for a rights expression and the rights expression can be included in separate documents, files, and a digital signature, referred to as a signature envelope, can be employed, and included in an envelope document, file. The signature envelope can include fingerprints, hash values, for the rights expression document and the semantic meanings document.
- In an exemplary embodiment, the signature envelope, in the form of a digital signature, such as a XML digital signature can be employed to protect the rights expression document, the semantic meanings document. An exemplary signature envelope that can be employed for protecting the rights expression document, the semantic meanings document, is as follows:
<Signature> <SignatureInfo. . .> <CanonicalizationMethod>. . .</CanonicalizationMethod> <SignatureMethod>. . .</SignatureMethod> <Reference URI=“Reference to Right expression”> . . . <DigestValue>. . .</DigestValue> </Reference> <Reference URI=“Reference to Semantics doc”> . . . <DigestValue>. . .</Digest Value> </Reference> </SignatureInfo> <SignatureValue>. . .</SignatureValue> </Signature> - In the above exemplary signature envelope, the <SignatureInfo . . . > element can include the signature envelope information, the <Reference URJ=“Reference to Right expression”> element can include a pointer to and a fingerprint, hash value, of the rights expression document, the <Reference URJ=“Reference to Semantics doc”> element can include a pointer to and a fingerprint, hash value, of the semantics document, and the <SignatureValue> . . . </Signature Value>element can include a signature of the signature envelope.
- The semantic meanings for the rights expression and the rights expression can be included in a binary document, file, and the signature envelope can be included in an envelope document. The signature envelope can include fingerprints, hash values, for the binary document, including the rights expression, and the semantic meanings for the rights expression.
- An exemplary signature envelope that can be employed to protect the binary document, is as follows:
<Signature> <SignatureInfo. . .> <CanonicalizationMethod>. . .</CanonicalizationMethod> <SignatureMethod>. . .</SignatureMethod> <Reference URI= “. .”> <Transform Algorithm=“XrML Binaty”/> <DigestValue>. . .</DigestValue> </Reference> </SignatureInfo> <SignatureValue>. . .</SignatureValue> </Signature> - In the above exemplary signature envelope the <Reference URI=“. . ”> element can include a pointer to and a fingerprint, hash value, of the binary document, the <Transform Algorithm=“XrML Binary”/> element can indicate that the exemplary binary transformation algorithm is employed, and the <SignatureValue> . . . </Signature Value>element can include a signature of the binary document.
- In an exemplary embodiment, a rights expression interpreter can be configured to process a request, such as a request to perform an operation, a request to view a document, based on a rights expression, which can result in the authorization of the request. However, the exemplary simplifier processes203 can be employed for processing rights expressions without a need for employing a request.
- FIG. 10 is a schematic illustration of the exemplary simplifier processes203 that can be implemented on one or more of the devices and sub-systems of the Digital Rights Management systems of FIGS. 1, 4 and 5. In FIG. 10 the semantic meanings of one or more rights expressions in the
rights expression 207 document can be included in the exemplary self-containedformat 211, and can be employed by the exemplary simplifier processes 203 to evaluate, reduce, the rights expressions in order to generate therights expressions 207 document in the exemplarysimplified format 215. - The exemplary simplifier processes203 can perform simplification of one or more rights expressions in a
rights expressions 207 document. Such a simplification can include determining the semantic meaning of the rights expressions, evaluating the rights expressions based thedevice information 217 for the targeted computing environment and determining the status of the rights expressions based on the state ofrights information 213. - Exemplary pruner processes1001 can prune or remove, one or more rights expressions from the
rights expression 207 document that are not employed by the targeted computing environment, for example, based on thedevice information 217. Theexemplary pruner processes 1001 can be used to generate the rights expressions in a prunedform 1007 that can be supported by the targeted computing environment. As an example, if the targeted computing environment is a cell phone that cannot print or play digital content, all elements relating to these functions can be pruned. - Exemplary evaluator processes1003 can be employed for evaluating one or more conditions, elements, in the rights expressions in the pruned
form 1007 based on the state ofrights information 213, and, optionally, based on results from exemplary condition validator processes 1007. The exemplary evaluator processes 1003 can be used to generate the rights expressions in asimplified form 1009 by excluding one or more conditions, rights expressions from the prunedrights expressions 1007. For example, if a condition bas been satisfied and will not expire, that condition can be pruned from the rights expression. -
Exemplary formatter processes 1005 can be employed for formatting, re-formatting, thesimplified rights expressions 1009 to generate therights expression 207 in the exemplarysimplified format 215. Therights expression 207 in the exemplarysimplified format 215 can include only the minimal, rights, conditions, that are to be employed, evaluated or otherwise processed. - The exemplary simplifier processes203 can process the
rights expression 207 document or therights expression 207 document in the exemplary self-contained format 211 a rights expression document can be received by the exemplary simplifier processes 203, and can be transmitted to the exemplary localizer processes 201, which can return the rights expression document in the exemplary self-containedformat 211 to the exemplary simplifier processes 203. - FIG. 11 is a flowchart for illustrating the exemplary simplifier processes203 of FIG. 10. In FIG. 11, at
step 1101 the exemplary simplifier processes 203, can be used to receive therights expression 207 document including one or more rights expressions. Atstep 1103 theexemplary pruner processes 1001 can perform the pruning of the rights expressions, based on thedevice information 217 to generate the rights expressions in the prunedform 1007. Atstep 1103 right expressions portions that cannot be processed by the targeted computing environment can be eliminated from therights expression 207 document. For example, if the targeted computing environment is not able to print, then a print right can be eliminated from therights expression 207 document. - At
step 1105 the exemplary evaluator processes 1003 can be used to process the prunedrights expressions 1007 to extract one or more conditions, from the prunedrights expressions 1007 for evaluation. Exemplary evaluator processes 1003 can attempt to evaluate the extracted conditions, based on the state ofrights information 213 to generate thesimplified rights expressions 1009. - At
step 1107 theexemplary formatter processes 1005 can be used to convert thesimplified rights expressions 1009 into therights expression 207 document in the exemplarysimplified format 215. Therights expression 207 document in the exemplarysimplified format 215 can include minimal rights expressions and conditions, that are to be later evaluated in order to authorize a user, device, system, to exercise one or more rights within therights expression 207 document, file, and like. - FIG. 12A-12B are a flowchart for further illustrating the
exemplary pruning processes 1001 and the exemplary evaluator processes 1003 of FIG. 10, wherein FIG. 12A corresponds to theexemplary pruning processes 1001, and FIG. 12B corresponds to the exemplary evaluator processes 1003. In FIG. 12A, atstep 1201 therights expression 207 document, file, in the exemplary self-containedformat 211, can be retrieved. - At step1203 a rights expression can be extracted from the
rights expression 207 document for further processing. Atstep 1203 the extracted rights expression can be validated. If the extracted rights expression is determined to be valid, as determined atstep 1207 the extracted rights expression can be transmitted, passed, to the exemplary evaluator processes 1003 of FIG. 12B for further processing. If, however, the extracted rights expression is determined to be invalid, as determined atstep 1207 the extracted rights expression can be removed from therights expression 207 document, and, atstep 1203, a next rights expression can be processed. - Accordingly, in FIG. 12B, at step1211 a condition, if any, can be extracted from the valid rights expression. At
step 1213 it is determined whether or not a condition has been the extracted from the valid rights expression, and if not, the valid rights expression can be output as the rights expression in thesimplified form 1009, and, atstep 1203 of FIG. 12A, a next rights expression can be processed. Otherwise, atstep 1215 the exemplary evaluator processes 1003 can be used to evaluate, validate, the extracted condition. - In a further exemplary embodiment, however, the exemplary
condition validator processes 1007 can be employed to validate, evaluate, an extracted condition. Accordingly, the exemplary evaluator processes 1003 can send, transmit, one or more of the extracted conditions to a respective one or more of the exemplary condition validator processes 1007. In an exemplary embodiment, the evaluation results for the extracted condition as determined by the exemplary evaluator processes 1003 and/or by the exemplarycondition validator processes 1007 can include a true value, a false value, or a cannot be evaluated value. - If the extracted condition cannot be evaluated, as determined at
step 1217, atstep 1225, the extracted condition can be maintained in the corresponding valid rights expression, and, atstep 1211, a next condition can be processed. If the extracted condition can be evaluated, as determined atstep 1217, and the condition evaluation result is true, as determined bystep 1219, the extracted condition can be removed from the corresponding valid rights expression, and, atstep 1211, a next condition can be processed. If the extracted condition can be evaluated, as determined atstep 1217, and the condition evaluation result is false, as determined bystep 1219, the valid rights expression can be removed from therights expression 207 document, and, atstep 1203 of FIG. 12A, a next rights expression can be processed. - The exemplary simplifier processes203 can be employed to determine valid rights within a rights expression, to evaluate conditions associated with the valid rights, to maintain conditions that cannot be evaluated, to remove conditions having evaluation results with true values from the valid rights conditions, to remove valid rights associated with conditions having evaluation results with false values.
- The exemplary self-contained
format 211 can include the exemplary binary format, a variation of the exemplary binary format, wherein the context table can be optional, referred to as the exemplary enforceable format. In the exemplary enforceable format, the context id column can be removed from the semantics table. The context and/or the semantics table, can be pre-built, pre-defined, pre-stored, in the targeted computing environment. In this way, the exemplary self-containedformat 211 can include the rights expressions that need to be further evaluated with no need to include the context table and/or the semantics table. - The exemplary enforceable format can be platform-neutral and much more compact than both than a native format, such as XrML, and the exemplary binary format. With the exemplary enforceable format, typically there is no need to employ external rights interpretation resources to understand the semantic meanings of the rights expression since this has been resolved, interpreted.
- In addition, with the exemplary enforceable format there typically is no need for a full rights expression processing system, because a simple validator can be sufficient to authorize a request and can be employed to read conditions, parameters, from the exemplary enforceable format, and locate and invoke, a rights condition validator. In addition, the exemplary enforceable format can be the most optimized of the formats while still being platform-independent, can be employed in resource-constrained computing environments can be the most efficient of the formats for high-performance operations.
- A
rights expression 207 can be converted into the exemplary enforceable format, with no need to employ a context table. The exemplary enforceable format, thus, can be employed where no conflicts exist in the elements of a rights expression and the targeted computing environment can understand the context of the corresponding rights in the rights expression. The context table, and the context id column of the semantics table need not be employed with the exemplary enforceable format. - The following third exemplary rights expression in the form of an XrML-based license to play a music, can be used to further illustrate an exemplary semantics table.
-
<license xmlns=http://www.xrml.org/schema/2001/11/xrml2core xmlns:sx=http://www.xrml.org/schema/2001/11/xrml2sx xmlns:dsig=http://www.w3.org/2000/09/xmldsig# xmlns.xsi=http://www.w3.org/2001/XMLSchema-instance xmlns:cx=http://www.xrml.org/schcma/2001/11/xrml2cx xmlns:cm= http://www.xrml.org/schema/2001/11/xrml2compactMusic > <grant> <cm:device cmid=“123”/> <cx:play/> <cm:music cmid=“456”/> <sx:validityIntervalFloating> <sx:stateReference> <cm:intervalKeeper key=“777”> <cm:device cmid=“123”/> </cm:intervalKeeper> </sx:stateReference> </sx:validityIntervalFloating> </grant> <cm:issuerDevice> <cm:device cmid=“024”/> </cm:issuerDevice> </license> - An exemplary semantics table, based on the third exemplary rights expression, in Table 6 below.
TABLE 6 Exemplary Semantics Table. element id element type element name 01 10 license 02 11 grantGroup 03 12 grant 04 13 principal 05 14 rights 06 15 resource 07 16 allConditions 08 17 condition 09 18 issuer 10 20 inventory definition 11 21 variable definition 12 22 reference 20 01 device 21 02 cmid 22 01 play 23 01 music 24 01 validityIntervalFloating 25 01 stateReference 26 01 intervalKeeper 27 02 key 28 01 issuerDevice - The third exemplary rights expression converted into the exemplary enforceable format, based on the exemplary Tables 3 and 6, is as follows:
01 02 04 202103123 05 22 06 232103456 08 24 0025 00262703777 09 28 00202103024, where: 01 <license> 02 <grant> 04 principal [processing instruction] 202103123 <cm:device cmid=“123”/> 05 rights [processing instruction] 22 <cx:play> 06 resource [processing instruction] 232103456 <cm:music cmid“456”/> 08 condition 24 <sx:validityIntervalFloating> 0025 next level <sx:stateReference> 00262703777 next level <cm:intervalKeeper key=“777”> 09 issuer [processing instruction] 28 <cm:issuerDevice> 00202103024 next level <cm:device cmid=“024”/> - The semantics table can be pre-built, pre-defined or pre-stored, in the targeted computing environment. In this way, the exemplary enforceable format can include the rights expressions that need to be further evaluated with no need to include the semantics table.
- By converting rights expression into the
simplified format 211, a more efficient, more compact format can be employed for enforcing rights, as compared to employing the rights expression in their native format, such as XrML. However, in computing environments, where platform-independence need not be employed, such as homogeneous environments where devices can be part of a single platform, further optimization can be accomplished. - Accordingly, the exemplary translator processes205 can include devices, components, applications, functions, systems, platforms, responsible for translating the exemplary
simplified format 211 into the exemplary device-specific format 219. The exemplary device-specific format 219 can be made specific to a targeted computing environment, and can be more efficiently consumed by the targeted computing environment. - A rights expression in the exemplary device-
specific format 219 can vary from device to device, but, generally, can be in the form of a data structure that can include conditions to be validated and a list of processing instructions to be carried out in order to authorize a request to exercise a right within the rights expression. Exemplary device-specific formats 219 that into which the exemplary translator processes 205 can translate therights expression 207 are formats based on glyphs, formats based on profiles, formats based on templates, formats that can be processed by a specific device, such as an MP3 device, a set-top box. - In an exemplary embodiment, the targeted computing environment can be configured to run a programming language such as the PROgramming in LOGic (Prolog) language, and an exemplary rights expression can be configured to specify, for example, that “Alice can view a video identified by123456 no more than 5 times.” The exemplary rights expression can be translated by a Prolog translator into the following Prolog expression:
(1) Principal(“Alice”), (2) Video(“123456”), (3) View(p, r) :- (4) Principal(p), (5) Video(r), (6) Count(5). - However, the targeted computing environment may be configured to employ a data structure given by:
Struct { Rights : byte; // 01 : View, 02: Print . . . Principal: char[20]; ConditionList; } ConditionList { Number of condition: 2 byte integer { ConditionID: 1 byte ; // 01 FIat Fee, 02 MaxCount Conditon Value: 4 byte integer } } - Accordingly, the exemplary rights expression can be translated by the exemplary translator processes205 configured for the targeted Prolog computing environment into the following stream of bytes:
- IAlice 01020005
- The exemplary binary format can include the rights expressions from an XrML document, and the semantic meanings of the elements used in the rights expressions. The structure of rights expressions in the exemplary binary format can be similar to the structure of the rights expressions in the XrML document, such as native XML.
- The binary structure of the exemplary binary format can be processed by any suitable application, device, system, platform, without the need for external resources, such as XML resources, parsers. Since the semantic meanings for the elements of the rights expressions can be included in the exemplary binary format, no XML schemes, need be employed in order to interpret the meanings of the rights expressions.
- Accordingly, as compared to the rights expressions in an XrML format, the rights expressions in the exemplary binary format, can be platform-neutral and platform-independent. In addition, when employing the rights expressions in the exemplary binary format, there is increased performance because of a reduced need for external resources, such as XML parsers, schema parsers, which otherwise would be needed to process and interpret the meanings of the rights expression in coventional formats.
- The exemplary binary transformation algorithm can be employed on a digital signature to preserve the digital signature between an original document, such as an XrML document, and the binary document in the exemplary binary format, to ensure the integrity of the original document.
- FIG. 13 is a schematic illustration of a
structure 1300 of the exemplary binary format. In FIG. 13 in an exemplary embodiment, a file in the exemplary binary format can include aprolog section 1301, acontext table section 1303, asemanitics table section 1305, arights expression section 1307, and asignature table section 1309. However, thesignature table section 1309 can be eliminated from the file by providing thesignature table section 1309 information as redundant information in one or more of the other sections 1301-1307 of the file. - The
prolog section 1301 can include information about the exemplary binary format, including version number, vendor information, and the id of the original document. Theprolog section 1301 can include a magic number field that can be used to indicate a format of the file such as the exemplary enforceable format, the exemplary binary format, and an optimized version of the exemplary binary format that can eliminate the context table and semantics table. Theprolog section 1301 can further include a version number field for indicating a version number of the format employed in the file, a first pointer field that can include a pointer to the context table within the file, a second pointer field that can include a pointer to the semantics table within the file, a third pointer field that can include a pointer to the rights expression within the file. - The
context table section 1303 can include the context table of namespaces used in the original document. In addition, thecontext table section 1303 can be configured with one entry per namespace including the context id, which can include a unique identification for each namespace. The context id can be assigned based on the occurrence of an element within the original document of the corresponding context. When the rights expression language can be extensible and derived from a core language, a base language, the first context id can be assigned to the core context, regardless of where the elements of the core context can be used within the original document. Thecontext table section 1303 can further include a length of namespace URI for specifying the length of the namespace, and a namespace URI for identifying the namespace, the context. - The
semantics table section 1305 can include one semantics table per namespace. The semantics table can include information for each element of that namespace used in the rights expression. In addition, thesemantics table section 1305 can be configured to include information for each element of the namespace used in the rights expression. Further, thesemantics table section 1305 can be configured with one entry per element, including an element id that can be a unique id assigned to an element, and with fixed ids that can be assigned for the core elements. - The
semantics table section 1305 can include an element type for specifying a type of element. The pre-defined element types can be specified as shown in Table 3, the exemplary pre-defined type table. Thesemantics table section 1305 can include an element name for specifying a name of an element, as defined in the schema, and an element context id corresponding to a context id of the namespace that includes the element. - The
rights expression section 1307 can include a rights expression (RE), with an exemplary structure that can be given as follows:RE = “seq” | [“seq “]1..n where “seq” = “type” | “specialType,” “sepecialType” = [02\03]“length,” “value,” “length” = length of the “value” in bytes, “value” = sequence of bytes, “type” = id defined in the “pre-defined type table” except 02 and 03. - In the above exemplary structure of the rights expression, the term RE=“seq”|[“seq”]1 . . . n can indicate that the rights expression can include a sequence “seq” or one or more sequences [“seq”]1 . . n of expressions, where “seq” can be a “type” or “specialType,” “specialType” can be of the type02 or 03 from the pre-defined type table and can have “length” and “value,” where “length” can be the length of the “value” in bytes, “value” can be a sequence of bytes, and “type” corresponds to the id from the pre-defined type table, except for ids 02 and 03, which correspond to attribute and value types from the pre-defined type table.
- There can be various formats for the
simplified format 215, such as the exemplary binary format and a variation of the exemplary binary format, wherein the context table can be optional, referred to as the exemplary enforceable format. In addition, when the context table is not included in the exemplarysimplified format 215, then the context id column can be omitted from the corresponding semantics table. - FIG. 14 is a schematic illustration of an
exemplary structure 1400 of the exemplary enforceable format. In FIG. 13, thestructure 1300 of the exemplary binary format can include theprolog section 1301, thecontext table section 1303, thesemantics table section 1305, therights expression section 1307 and thesignature table section 1309. As shown in FIG. 14, however, the exemplary enforceable format can include theprolog section 1301, thesemantics table section 1305 and therights expression section 1307. Accordingly, theexemplary structure 1400 can be configured in a similar manner as theexemplary structure 1300, as previously described, except for the omission of thecontext table section 1303, thesignature table section 1309, and the context id column from the semantics table. - According to the exemplary embodiments, the device-
specific formats 219 that the exemplary translator processes 205 can translate the rights expression into can include formats based on glyphs, formats based on profiles, formats based on templates, formats based on a Prolog program, formats that can be processed by a specific device, such as an MP3 device, a set-top box. - A symbolic representation can be employed to encode a rights expression. The symbolic representation can include a graphical representation, such as based on glyphs, a modulated or varied signal-based representation, such as those based on modulated or varied light or sound signals. Thus, the symbolic representation of a rights expression can be encoded, derived, based on glyph structures, based on star-shaped structures, square-shaped structures, rectangular-shaped structures, circular-shaped structures, triangular-shaped structures, or portions thereof. In a similar manner, a rights expression can be encoded, derived, based on modulated or varied signals, lights, sounds, series of sounds, light pulses, using at any suitable frequency and amplitude, including ultraviolet waves, x-rays, microwaves, radio waves, employing lasers, modulated or convoluted information, different colors or wavelengths, electric or magnetic field variations.
- FIG. 15 illustrates an exemplary symbolic representation of the
rights expression 207 that can be generated by the exemplary translator processes 205 based on exemplary symbols, such a glyphs. In FIG. 15, an exemplary symbolic representation can be derived from a glyph structure based on a star-shaped structure, and can be used for expressing therights expression 207. In an exemplary embodiment, the symbols 1501-1504 derived from the star-shaped structure can be taken from the Red, Green, and Blue (RGB) color space. Thus, the symbols 1501-1504 of the star-shaped structure can include the Red (R), Green (G), and/or Blue (B) colors. Accordingly, in a basic case, wherein no colors can be combined, 12 symbols can be generated (four symbols times three colors). To increase the number of members or symbols, however, complex symbols 1511-1519 having overlapping colors can be generated, as shown in FIG. 15. - Thus, two or more symbols of different colors up to all 12 symbols, can be combined to overlap on a physical location, to potentially produce part or all of the star-shaped structure in different colors, or combination of colors for each part of the star shape the color of the resulting
horizontal symbol 1501 of thecomplex symbol 1511 can be based on the combination of Green andRed symbols 1501. In this way, the symbols 1501-1504, in various color combinations, can be used to generate the complex symbols 1511-1519, as shown in FIG. 15. - Accordingly, the number of complex symbols in the exemplary symbol set illustrated by FIG. 15 can be (212−1) or 4095 symbols, assuming that a blank space is not considered a symbol with the numerous choices for the complex symbols provided by the exemplary embodiment, correspondingly complex and comprehensive symbolic representations of information, such as information for grammar, language, for a rights expressions can be generated.
- as shown in FIG. 15, the
exemplary rights expression 207 can indicate an expiration date for access to an e-book and can be expressed using the exemplary complex symbol set. In FIG. 15, the symbols 1511-1519 can be used to express therights expression 207 for a book identification (ID) number in a database being 245, which refers to a novel by a given author, and an access expiration date being July 12, 2003. - Accordingly, the first
complex symbol 1511 can be used to express the phrase “Book (or resource) ID number,” the secondcomplex symbol 1513 can be used to express the integer “245,” the thirdcomplex symbol 1515 can be used to express the phrase “Access/expiration date,” the fourthcomplex symbol 1517 can be used to express day and month of the year “July 12,” or 7-12), the fifthcomplex symbol 1519 can be used to express the year “2003,” and the like. Further any suitable rights expression can be expressed using one or more symbols, such as glyphs. - The glyphs, symbols, words, messages, of the exemplary embodiments used to convey information about a rights expression can be encoded using light, sound, a series of sounds, light pulses, using at any suitable frequency, amplitude, can include ultraviolet waves, x-rays, microwaves, radio waves, can employ lasers, modulated or convoluted information, different colors or wavelengths, electric or magnetic field variations.
- Any suitable series of the glyphs, symbols, words, messages, of the exemplary embodiments employed can have its own grammar, rules, which provide a meaning to a transmitted message a sound or light in a range of frequencies that a human ear or eye cannot detect, can be employed for transmitting the glyphs, symbols, words, messages during security applications, privacy applications. In this way, a transmitted message can be made transparent to a user or users, but at the same can be retrieved and understood, by a suitable sensor, detector. The glyphs, symbols, words, messages, of the exemplary embodiments can be expressed using any suitable human or machine sensing organ or device, so long as that the sensed information, message, can be quantized, digitized, expressed, based on numbers, bits, bytes or another manner.
- The device-
specific formats 219 that the exemplary translator processes 205 can translate therights expression 207 into can include formats based on profiles, formats based on templates. An exemplary rights expression in the form of a license granting the right to a specified manner use, such as playing an identified song, on an identified device can be expressed, for example, as follows:<license> <grant> <cm:device cmid=“123”/> <cx:play/> <cm:music cmid=“456”/> </grant> <cm:issuerDevice> <cm:device cmid=“024”/> </cm:issuerDevice> </license> - Then, according to an exemplary embodiment, the corresponding template, profile, and the like wherein variables in the license are removed, can be generated as the exemplary device-
specific format 219 by the exemplary translator processes 205, as follows:<license> <grant> <cm:device cmid= “ ”/> <cx:play/> <cm:music cmid= “ ”/> </grant> <cm:issuerDevice> <cm:device cmid= “ ”/> </cm:issuerDevice> </license> - One or more of the devices and sub-systems of the Digital Rights Management systems of FIGS. 1, 4 and5 can communicate over a
communications network 170, and can include any suitable servers, workstations, personal computers (PCs), laptop computers, PDAs, Internet appliances, set top boxes, modems, handheld devices, telephones, cellular telephones, wireless devices, resource-constrained devices or other devices, capable of performing the functions of the disclosed embodiments. The devices and subsystems of the Digital Rights Management systems of FIGS. 1, 4 and 5, can communicate with each other using any suitable protocol and can be implemented using a general-purpose computer system. One or more interface mechanisms can be used in the Digital Rights Management systems of FIGS. 1, 4 and 5, including Internet access, telecommunications in any suitable form, such as voice, modem, wireless communications media. Accordingly,communications network 170 can include wireless communications networks, cellular communications networks, satellite communications networks, Public Switched Telephone Networks (PSTNs), Packet Data Networks (PDNs), the Internet, intranets, hybrid communications networks, combinations thereof. In addition, thecommunications network 170 can be the same or different networks. - As noted above, it is to be understood that the Digital Rights Management systems of FIGS. 1, 4 and5 are illustrated for exemplary purposes, as many variations of the specific hardware used to implement the disclosed exemplary embodiments are possible the functionality of the devices and the subsystems of the Digital Rights Management systems of FIGS. 1, 4 and 5 can be implemented via one or more programmed computer systems or devices. To implement such variations as well as other variations, a single computer system can be programmed to perform the special purpose functions of one or more of the devices and subsystems of the Digital Rights Management systems of FIGS. 1, 4 and 5. On the other hand, two or more programmed computer systems or devices can be substituted for any one of the devices and subsystems of the Digital Rights Management systems of FIGS. 1, 4 and 5. Accordingly, principles and advantages of distributed processing, such as redundancy, replication, also can be implemented, as desired to increase the robustness and performance of the Digital Rights Management systems of FIGS. 1, 4 and 5.
- The Digital Rights Management systems of FIGS. 1, 4 and5 as described with respect to FIGS. 1-15, can be used to store information relating to various processes described herein. This information can be stored in one or more memories, such as a hard disk, optical disk, magneto-optical disk, RAM, of the devices and sub-systems of the Digital Rights Management systems of FIGS. 1, 4 and 5. One or more databases of the devices and subsystems of the Digital Rights Management systems of FIGS. 1, 4 and 5 can store the information used to implement the exemplary embodiments. The databases can be organized using data structures, such as records, tables, arrays, fields, graphs, trees, lists, included in one or more memories, such as the memories listed above.
- All or a portion of the Digital Rights Management systems of FIGS. 1, 4 and5 as described with respect to FIGS. 1-15, can be conveniently implemented using one or more general-purpose computer systems, microprocessors, digital signal processors, micro-controllers, programmed according to the teachings of the disclosed exemplary embodiments. Appropriate software can be readily prepared by programmers of ordinary skill based on the teachings of the disclosed exemplary embodiments. In addition, the Digital Rights Management systems of FIGS. 1, 4 and 5 can be implemented by the preparation of application-specific integrated circuits or by interconnecting an appropriate network of component circuits.
- the exemplary embodiments described herein can be employed in offline systems, online systems, and in applications, such as TV applications, computer applications, DVD applications, VCR applications, appliance applications, CD player applications. In addition, the signals employed to transmit the glyphs, symbols, words, messages, of the exemplary embodiments, can be configured to be transmitted within the visible spectrum of a human, within the audible spectrum of a human, not within the visible spectrum of a human, not within the audible spectrum of a human, combinations thereof.
- Although, the exemplary embodiments can be described in terms of employing XrML, XML, the exemplary embodiments are not so limited, but also can be practiced with any suitable grammar, language, whether or not XrML-based, XML-based.
- While the present invention have been described in connection with a number of embodiments and implementations, the present invention is not so limited, but rather covers various modifications and equivalent arrangements, which fall within the purview of the appended claims.
Claims (54)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/388,226 US7359884B2 (en) | 2002-03-14 | 2003-03-14 | Method and apparatus for processing usage rights expressions |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US36393202P | 2002-03-14 | 2002-03-14 | |
US10/388,226 US7359884B2 (en) | 2002-03-14 | 2003-03-14 | Method and apparatus for processing usage rights expressions |
Publications (2)
Publication Number | Publication Date |
---|---|
US20040019546A1 true US20040019546A1 (en) | 2004-01-29 |
US7359884B2 US7359884B2 (en) | 2008-04-15 |
Family
ID=28041836
Family Applications (6)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/388,167 Abandoned US20040015426A1 (en) | 2002-03-14 | 2003-03-14 | System and method for expressing usage rights with sound signals |
US10/388,162 Active 2027-11-01 US8108313B2 (en) | 2002-03-14 | 2003-03-14 | Rights expression profile system and method using templates |
US10/388,226 Expired - Lifetime US7359884B2 (en) | 2002-03-14 | 2003-03-14 | Method and apparatus for processing usage rights expressions |
US10/388,171 Abandoned US20030225700A1 (en) | 2002-03-14 | 2003-03-14 | System and method for graphical rights expressions |
US10/388,217 Abandoned US20030233169A1 (en) | 2002-03-14 | 2003-03-14 | System and method for expressing usage rights using light signals |
US12/204,393 Expired - Lifetime US9626668B2 (en) | 2002-03-14 | 2008-09-04 | Rights expression profile system and method using templates |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/388,167 Abandoned US20040015426A1 (en) | 2002-03-14 | 2003-03-14 | System and method for expressing usage rights with sound signals |
US10/388,162 Active 2027-11-01 US8108313B2 (en) | 2002-03-14 | 2003-03-14 | Rights expression profile system and method using templates |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/388,171 Abandoned US20030225700A1 (en) | 2002-03-14 | 2003-03-14 | System and method for graphical rights expressions |
US10/388,217 Abandoned US20030233169A1 (en) | 2002-03-14 | 2003-03-14 | System and method for expressing usage rights using light signals |
US12/204,393 Expired - Lifetime US9626668B2 (en) | 2002-03-14 | 2008-09-04 | Rights expression profile system and method using templates |
Country Status (8)
Country | Link |
---|---|
US (6) | US20040015426A1 (en) |
EP (4) | EP1483717A4 (en) |
JP (5) | JP4290565B2 (en) |
KR (3) | KR100703521B1 (en) |
CN (4) | CN103150492A (en) |
AU (4) | AU2003230651A1 (en) |
BR (1) | BR0308409A (en) |
WO (4) | WO2003077955A1 (en) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040268146A1 (en) * | 2003-06-25 | 2004-12-30 | Microsoft Corporation | Distributed expression-based access control |
US20060225055A1 (en) * | 2005-03-03 | 2006-10-05 | Contentguard Holdings, Inc. | Method, system, and device for indexing and processing of expressions |
DE102005033698A1 (en) * | 2005-07-19 | 2007-02-01 | Siemens Ag | Method for exporting usage rights to electronic data objects |
US20070033168A1 (en) * | 2005-08-08 | 2007-02-08 | David Minogue | Agent rank |
US20070156601A1 (en) * | 2006-01-03 | 2007-07-05 | International Business Machines Corporation | Method and system for providing interoperability between digital rights management systems |
US20070156670A1 (en) * | 2005-12-29 | 2007-07-05 | Blue Jungle | Techniques of optimizing policies in an information management system |
US20090249186A1 (en) * | 2008-03-25 | 2009-10-01 | International Business Machines Corporation | Multi-pass validation of extensible markup language (xml) documents |
US8352467B1 (en) | 2006-05-09 | 2013-01-08 | Google Inc. | Search result ranking based on trust |
US8606792B1 (en) | 2010-02-08 | 2013-12-10 | Google Inc. | Scoring authors of posts |
US8655826B1 (en) | 2008-08-01 | 2014-02-18 | Motion Picture Laboratories, Inc. | Processing and acting on rules for content recognition systems |
US20140229918A1 (en) * | 2013-02-08 | 2014-08-14 | Fujitsu Limited | Computer-readable recording medium storing therein test data generating program, test data generating method, test data generating apparatus and information processing system |
US8819290B2 (en) | 2009-10-23 | 2014-08-26 | Zte Corporation | Method and system for transmitting compressed rights |
US10361716B2 (en) | 2014-07-02 | 2019-07-23 | Agilepq, Inc. | Data recovery utilizing optimized code table signaling |
US10523490B2 (en) * | 2013-08-06 | 2019-12-31 | Agilepq, Inc. | Authentication of a subscribed code table user utilizing optimized code table signaling |
US10587399B2 (en) | 2016-06-06 | 2020-03-10 | Agilepq, Inc. | Data conversion systems and methods |
Families Citing this family (118)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7712024B2 (en) | 2000-06-06 | 2010-05-04 | Microsoft Corporation | Application program interfaces for semantically labeling strings and providing actions based on semantically labeled strings |
US7421645B2 (en) | 2000-06-06 | 2008-09-02 | Microsoft Corporation | Method and system for providing electronic commerce actions based on semantically labeled strings |
US7716163B2 (en) | 2000-06-06 | 2010-05-11 | Microsoft Corporation | Method and system for defining semantic categories and actions |
US7770102B1 (en) | 2000-06-06 | 2010-08-03 | Microsoft Corporation | Method and system for semantically labeling strings and providing actions based on semantically labeled strings |
US7788602B2 (en) | 2000-06-06 | 2010-08-31 | Microsoft Corporation | Method and system for providing restricted actions for recognized semantic categories |
US9038108B2 (en) | 2000-06-28 | 2015-05-19 | Verizon Patent And Licensing Inc. | Method and system for providing end user community functionality for publication and delivery of digital media content |
JP4774582B2 (en) * | 2000-06-30 | 2011-09-14 | ソニー株式会社 | Content management apparatus, content management method, and program storage medium |
US7778816B2 (en) | 2001-04-24 | 2010-08-17 | Microsoft Corporation | Method and system for applying input mode bias |
US8972862B2 (en) * | 2001-06-27 | 2015-03-03 | Verizon Patent And Licensing Inc. | Method and system for providing remote digital media ingest with centralized editorial control |
US7970260B2 (en) | 2001-06-27 | 2011-06-28 | Verizon Business Global Llc | Digital media asset management system and method for supporting multiple users |
US8990214B2 (en) | 2001-06-27 | 2015-03-24 | Verizon Patent And Licensing Inc. | Method and system for providing distributed editing and storage of digital media over a network |
US20040015426A1 (en) * | 2002-03-14 | 2004-01-22 | Bijan Tadayon | System and method for expressing usage rights with sound signals |
US7325194B2 (en) | 2002-05-07 | 2008-01-29 | Microsoft Corporation | Method, system, and apparatus for converting numbers between measurement systems based upon semantically labeled strings |
US7707496B1 (en) | 2002-05-09 | 2010-04-27 | Microsoft Corporation | Method, system, and apparatus for converting dates between calendars and languages based upon semantically labeled strings |
JP4143329B2 (en) * | 2002-05-10 | 2008-09-03 | キヤノン株式会社 | Server apparatus, control method thereof, and program thereof |
US7742048B1 (en) | 2002-05-23 | 2010-06-22 | Microsoft Corporation | Method, system, and apparatus for converting numbers based upon semantically labeled strings |
US7707024B2 (en) | 2002-05-23 | 2010-04-27 | Microsoft Corporation | Method, system, and apparatus for converting currency values based upon semantically labeled strings |
BR0311592A (en) * | 2002-06-03 | 2005-05-10 | Contentguard Holdings Inc | System and method for supplying and managing rights expressions |
US7281245B2 (en) | 2002-06-05 | 2007-10-09 | Microsoft Corporation | Mechanism for downloading software components from a remote source for use by a local software application |
US7827546B1 (en) | 2002-06-05 | 2010-11-02 | Microsoft Corporation | Mechanism for downloading software components from a remote source for use by a local software application |
US7356537B2 (en) | 2002-06-06 | 2008-04-08 | Microsoft Corporation | Providing contextually sensitive tools and help content in computer-generated documents |
US7716676B2 (en) | 2002-06-25 | 2010-05-11 | Microsoft Corporation | System and method for issuing a message to a program |
US7392479B2 (en) * | 2002-06-27 | 2008-06-24 | Microsoft Corporation | System and method for providing namespace related information |
US7502945B2 (en) * | 2002-06-28 | 2009-03-10 | Microsoft Corporation | Using a flexible rights template to obtain a signed rights label (SRL) for digital content in a rights management system |
US7209915B1 (en) | 2002-06-28 | 2007-04-24 | Microsoft Corporation | Method, system and apparatus for routing a query to one or more providers |
FR2848054A1 (en) * | 2002-11-29 | 2004-06-04 | France Telecom | SYSTEM AND METHOD FOR TRANSMITTING INFORMATION ASSOCIATED WITH RIGHTS OF USE |
US7322042B2 (en) * | 2003-02-07 | 2008-01-22 | Broadon Communications Corp. | Secure and backward-compatible processor and secure software execution thereon |
US20040267384A1 (en) * | 2003-02-07 | 2004-12-30 | Broadon Communications, Inc. | Integrated console and controller |
US7779482B1 (en) | 2003-02-07 | 2010-08-17 | iGware Inc | Delivery of license information using a short messaging system protocol in a closed content distribution system |
US20100017627A1 (en) | 2003-02-07 | 2010-01-21 | Broadon Communications Corp. | Ensuring authenticity in a closed content distribution system |
US8131649B2 (en) * | 2003-02-07 | 2012-03-06 | Igware, Inc. | Static-or-dynamic and limited-or-unlimited content rights |
US7783614B2 (en) | 2003-02-13 | 2010-08-24 | Microsoft Corporation | Linking elements of a document to corresponding fields, queries and/or procedures in a database |
US7711550B1 (en) | 2003-04-29 | 2010-05-04 | Microsoft Corporation | Methods and system for recognizing names in a computer-generated document and for providing helpful actions associated with recognized names |
US7558841B2 (en) | 2003-05-14 | 2009-07-07 | Microsoft Corporation | Method, system, and computer-readable medium for communicating results to a data query in a computer network |
US9553879B2 (en) * | 2003-06-06 | 2017-01-24 | Core Wireless Licensing S.A.R.L. | Method and apparatus to represent and use rights for content/media adaptation/transformation |
US7739588B2 (en) | 2003-06-27 | 2010-06-15 | Microsoft Corporation | Leveraging markup language data for semantically labeling text strings and data and for providing actions based on semantically labeled text strings and data |
US6898555B2 (en) * | 2003-07-14 | 2005-05-24 | Aladdin Knowledge Systems Ltd. | Method for indicating the integrity of use-information of a computer program |
US7281274B2 (en) | 2003-10-16 | 2007-10-09 | Lmp Media Llc | Electronic media distribution system |
US7178102B1 (en) | 2003-12-09 | 2007-02-13 | Microsoft Corporation | Representing latent data in an extensible markup language document |
US7487515B1 (en) | 2003-12-09 | 2009-02-03 | Microsoft Corporation | Programmable object model for extensible markup language schema validation |
US7404195B1 (en) | 2003-12-09 | 2008-07-22 | Microsoft Corporation | Programmable object model for extensible markup language markup in an application |
US7434157B2 (en) | 2003-12-09 | 2008-10-07 | Microsoft Corporation | Programmable object model for namespace or schema library support in a software application |
US7813000B2 (en) * | 2003-12-30 | 2010-10-12 | Microsoft Corporation | Device color characterization profile format |
US7509573B1 (en) | 2004-02-17 | 2009-03-24 | Microsoft Corporation | Anti-virus security information in an extensible markup language document |
JP4333494B2 (en) * | 2004-06-17 | 2009-09-16 | ソニー株式会社 | Content reproduction apparatus, content reproduction method, content management apparatus, content management method, and computer program. |
GB0413848D0 (en) | 2004-06-21 | 2004-07-21 | British Broadcasting Corp | Accessing broadcast media |
KR100608585B1 (en) * | 2004-07-12 | 2006-08-03 | 삼성전자주식회사 | Method and apparatus for searching rights objects stored in portable storage device using object location data |
WO2006006783A1 (en) * | 2004-07-12 | 2006-01-19 | Samsung Electronics Co., Ltd. | Apparatus and method for processing digital rights object |
US8359332B1 (en) * | 2004-08-02 | 2013-01-22 | Nvidia Corporation | Secure content enabled drive digital rights management system and method |
US8402283B1 (en) | 2004-08-02 | 2013-03-19 | Nvidia Corporation | Secure content enabled drive system and method |
JP4319118B2 (en) * | 2004-09-28 | 2009-08-26 | 株式会社ソニー・コンピュータエンタテインメント | Terminal device |
US7664751B2 (en) | 2004-09-30 | 2010-02-16 | Google Inc. | Variable user interface based on document access privileges |
US7603355B2 (en) | 2004-10-01 | 2009-10-13 | Google Inc. | Variably controlling access to content |
US20060150153A1 (en) * | 2004-12-04 | 2006-07-06 | Micah Altman | Digital object verification method |
US8346807B1 (en) | 2004-12-15 | 2013-01-01 | Nvidia Corporation | Method and system for registering and activating content |
US8788425B1 (en) | 2004-12-15 | 2014-07-22 | Nvidia Corporation | Method and system for accessing content on demand |
US8875309B1 (en) | 2004-12-15 | 2014-10-28 | Nvidia Corporation | Content server and method of providing content therefrom |
US8751825B1 (en) | 2004-12-15 | 2014-06-10 | Nvidia Corporation | Content server and method of storing content |
US7526812B2 (en) * | 2005-03-24 | 2009-04-28 | Xerox Corporation | Systems and methods for manipulating rights management data |
DE102005015113A1 (en) * | 2005-04-01 | 2006-10-05 | Siemens Ag | Method for managing rights of use of electronic data objects by a rights purchaser |
US8893299B1 (en) | 2005-04-22 | 2014-11-18 | Nvidia Corporation | Content keys for authorizing access to content |
US8245051B2 (en) * | 2005-05-13 | 2012-08-14 | Microsoft Corporation | Extensible account authentication system |
US7860801B2 (en) * | 2005-07-05 | 2010-12-28 | Xerox Corporation | Tools for accessing digital works |
US9076311B2 (en) | 2005-09-07 | 2015-07-07 | Verizon Patent And Licensing Inc. | Method and apparatus for providing remote workflow management |
US9401080B2 (en) | 2005-09-07 | 2016-07-26 | Verizon Patent And Licensing Inc. | Method and apparatus for synchronizing video frames |
US7788590B2 (en) | 2005-09-26 | 2010-08-31 | Microsoft Corporation | Lightweight reference user interface |
US7992085B2 (en) | 2005-09-26 | 2011-08-02 | Microsoft Corporation | Lightweight reference user interface |
WO2007041170A2 (en) * | 2005-09-29 | 2007-04-12 | Contentguard Holdings, Inc. | System for digital rights management using advanced copy with issue rights and managed copy tokens |
KR100746014B1 (en) * | 2005-11-09 | 2007-08-06 | 삼성전자주식회사 | Digital rights management method and system |
US20070143228A1 (en) * | 2005-12-15 | 2007-06-21 | Microsoft Corporation | Licensing matrix |
US7921059B2 (en) * | 2005-12-15 | 2011-04-05 | Microsoft Corporation | Licensing upsell |
US8661348B2 (en) * | 2006-01-27 | 2014-02-25 | At&T Intellectual Property I, L.P. | Methods and systems to process an image |
US20070219908A1 (en) * | 2006-03-02 | 2007-09-20 | Yahoo! Inc. | Providing syndicated media to authorized users |
US8364965B2 (en) * | 2006-03-15 | 2013-01-29 | Apple Inc. | Optimized integrity verification procedures |
US20070255659A1 (en) * | 2006-05-01 | 2007-11-01 | Wei Yen | System and method for DRM translation |
EP2033350A2 (en) | 2006-05-02 | 2009-03-11 | Broadon Communications Corp. | Content management system and method |
JP4969301B2 (en) * | 2006-05-09 | 2012-07-04 | 株式会社リコー | Computer equipment |
US7624276B2 (en) * | 2006-10-16 | 2009-11-24 | Broadon Communications Corp. | Secure device authentication system and method |
US7613915B2 (en) | 2006-11-09 | 2009-11-03 | BroadOn Communications Corp | Method for programming on-chip non-volatile memory in a secure processor, and a device so programmed |
US8200961B2 (en) * | 2006-11-19 | 2012-06-12 | Igware, Inc. | Securing a flash memory block in a secure device system and method |
CN101246527B (en) * | 2007-02-15 | 2011-07-20 | 华为技术有限公司 | Method and system for providing and using copyright description |
US20080301003A1 (en) * | 2007-05-31 | 2008-12-04 | Daniel Harkabi | System for Online Buying |
US20090006109A1 (en) * | 2007-06-28 | 2009-01-01 | Yahoo! Inc. | Rights Engine Including Event Logs |
US8117094B2 (en) * | 2007-06-29 | 2012-02-14 | Microsoft Corporation | Distribution channels and monetizing |
KR101401818B1 (en) | 2007-09-12 | 2014-05-30 | 소니 픽쳐스 엔터테인먼트, 인크. | Open market content distribution |
US20090094147A1 (en) * | 2007-10-09 | 2009-04-09 | Fein Gene S | Multi-Computer Data Transfer and Processing to Support Electronic Content Clearance and Licensing |
KR20090046561A (en) * | 2007-11-06 | 2009-05-11 | 엘지전자 주식회사 | MP3 player and its playlist creation method |
US20090132435A1 (en) * | 2007-11-21 | 2009-05-21 | Microsoft Corporation | Popularity based licensing of user generated content |
US20090132422A1 (en) * | 2007-11-21 | 2009-05-21 | Microsoft Corporation | Machine-readable and enforceable license |
US20090132403A1 (en) * | 2007-11-21 | 2009-05-21 | Microsoft Corporation | Licensing interface for user generated content |
US20090210333A1 (en) * | 2008-02-14 | 2009-08-20 | Microsoft Corporation | Micro-licensing of composite content |
US20090254482A1 (en) * | 2008-04-07 | 2009-10-08 | Microsoft Corporation | Time-based licenses |
EP2164022A1 (en) * | 2008-09-02 | 2010-03-17 | Siemens Aktiengesellschaft | Method for assigning access authorisation to a computer-based object in an automation system, computer program and automation system |
US8532978B1 (en) * | 2008-10-31 | 2013-09-10 | Afrl/Rij | Natural language interface, compiler and de-compiler for security policies |
US20100174818A1 (en) * | 2009-01-07 | 2010-07-08 | Microsoft Corporation | Input Service for Client Devices |
US9244965B2 (en) | 2010-02-22 | 2016-01-26 | Thoughtwire Holdings Corp. | Method and system for sharing data between software systems |
US10657507B2 (en) * | 2010-05-17 | 2020-05-19 | Adobe Inc. | Migration between digital rights management systems without content repackaging |
FR2980865A1 (en) * | 2011-09-29 | 2013-04-05 | France Telecom | CONTENT DISTRIBUTION METHOD, OBTAINING DEVICE AND CORRESPONDING COMPUTER PROGRAM |
US9081974B2 (en) * | 2011-11-10 | 2015-07-14 | Microsoft Technology Licensing, Llc | User interface for selection of multiple accounts and connection points |
US20130144755A1 (en) * | 2011-12-01 | 2013-06-06 | Microsoft Corporation | Application licensing authentication |
US8725650B2 (en) * | 2012-01-26 | 2014-05-13 | Microsoft Corporation | Document template licensing |
US9172711B2 (en) * | 2012-02-13 | 2015-10-27 | PivotCloud, Inc. | Originator publishing an attestation of a statement |
US8627097B2 (en) | 2012-03-27 | 2014-01-07 | Igt | System and method enabling parallel processing of hash functions using authentication checkpoint hashes |
US9177158B2 (en) * | 2012-11-07 | 2015-11-03 | Theplatform, Llc | Methods and systems for processing content rights |
FI20135164L (en) * | 2013-02-22 | 2014-08-23 | Op Palvelut Oy | Communication during payment transaction |
US10372442B2 (en) | 2013-03-14 | 2019-08-06 | Thoughtwire Holdings Corp. | Method and system for generating a view incorporating semantically resolved data values |
US10313433B2 (en) | 2013-03-14 | 2019-06-04 | Thoughtwire Holdings Corp. | Method and system for registering software systems and data-sharing sessions |
US9742843B2 (en) | 2013-03-14 | 2017-08-22 | Thoughtwire Holdings Corp. | Method and system for enabling data sharing between software systems |
US9319727B2 (en) | 2013-10-29 | 2016-04-19 | Fx Networks, Llc | Viewer-authored content acquisition and management system for in-the-moment broadcast in conjunction with media programs |
US9305000B1 (en) * | 2014-03-27 | 2016-04-05 | Veritas Us Ip Holdings Llc | Creating and publishing service level representations of applications from operational representations |
US9589124B2 (en) | 2014-05-29 | 2017-03-07 | Comcast Cable Communications, Llc | Steganographic access controls |
US9514123B2 (en) | 2014-08-21 | 2016-12-06 | Dropbox, Inc. | Multi-user search system with methodology for instant indexing |
US9384226B1 (en) | 2015-01-30 | 2016-07-05 | Dropbox, Inc. | Personal content item searching system and method |
US9183303B1 (en) | 2015-01-30 | 2015-11-10 | Dropbox, Inc. | Personal content item searching system and method |
SG10201806847PA (en) * | 2018-08-13 | 2020-03-30 | Mastercard International Inc | Methods and systems for facilitating migration to centralized compliance content for integration with a plurality of digital applications |
PH12022550544A1 (en) * | 2019-09-05 | 2023-03-20 | Open Lens Project Ltd | System and method for management of digital media content |
US12248537B2 (en) | 2023-05-26 | 2025-03-11 | VendEx Solutions, Inc. | Systems and methods for uniform usage rights management |
CN117478427B (en) * | 2023-12-26 | 2024-04-02 | 广东省能源集团贵州有限公司 | Network security data processing method and system |
Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5091966A (en) * | 1990-07-31 | 1992-02-25 | Xerox Corporation | Adaptive scaling for decoding spatially periodic self-clocking glyph shape codes |
US5128525A (en) * | 1990-07-31 | 1992-07-07 | Xerox Corporation | Convolution filtering for decoding self-clocking glyph shape codes |
US5168147A (en) * | 1990-07-31 | 1992-12-01 | Xerox Corporation | Binary image processing for decoding self-clocking glyph shape codes |
US5221833A (en) * | 1991-12-27 | 1993-06-22 | Xerox Corporation | Methods and means for reducing bit error rates in reading self-clocking glyph codes |
US5245165A (en) * | 1991-12-27 | 1993-09-14 | Xerox Corporation | Self-clocking glyph code for encoding dual bit digital values robustly |
US5438508A (en) * | 1991-06-28 | 1995-08-01 | Digital Equipment Corporation | License document interchange format for license management system |
US5444779A (en) * | 1993-10-18 | 1995-08-22 | Xerox Corporation | Electronic copyright royalty accounting system using glyphs |
US5449895A (en) * | 1993-12-22 | 1995-09-12 | Xerox Corporation | Explicit synchronization for self-clocking glyph codes |
US5449896A (en) * | 1993-12-22 | 1995-09-12 | Xerox Corporation | Random access techniques for use with self-clocking glyph codes |
US5453605A (en) * | 1993-12-22 | 1995-09-26 | Xerox Corporation | Global addressability for self-clocking glyph codes |
US5521372A (en) * | 1993-12-22 | 1996-05-28 | Xerox Corporation | Framing codes for robust synchronization and addressing of self-clocking glyph codes |
US5530235A (en) * | 1995-02-16 | 1996-06-25 | Xerox Corporation | Interactive contents revealing storage device |
US5576532A (en) * | 1995-01-03 | 1996-11-19 | Xerox Corporation | Interleaved and interlaced sync codes and address codes for self-clocking glyph codes |
US6311214B1 (en) * | 1995-07-27 | 2001-10-30 | Digimarc Corporation | Linking of computers based on optical sensing of digital data |
US20010042057A1 (en) * | 2000-01-25 | 2001-11-15 | Nec Corporation | Emotion expressing device |
US6384829B1 (en) * | 1999-11-24 | 2002-05-07 | Fuji Xerox Co., Ltd. | Streamlined architecture for embodied conversational characters with reduced message traffic |
US20020099545A1 (en) * | 2001-01-24 | 2002-07-25 | Levitt Benjamin J. | System, method and computer program product for damage control during large-scale address speech recognition |
US6434525B1 (en) * | 1998-05-27 | 2002-08-13 | Nec Corporation | Human image dialogue device and a recording medium storing a human image dialogue device |
US20020153409A1 (en) * | 2001-02-16 | 2002-10-24 | Chun Pong Yu | System with improved methodology for providing international address validation |
US20030157983A1 (en) * | 1998-10-08 | 2003-08-21 | Yasuhide Kobayashi | Portable toy, portable information terminal, entertainment system, and recording medium |
Family Cites Families (242)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2258112A5 (en) | 1973-11-30 | 1975-08-08 | Honeywell Bull Soc Ind | |
CH624877A5 (en) * | 1977-05-13 | 1981-08-31 | Idc Chemie Ag | |
US4278837A (en) | 1977-10-31 | 1981-07-14 | Best Robert M | Crypto microprocessor for executing enciphered programs |
US4159468A (en) * | 1977-11-17 | 1979-06-26 | Burroughs Corporation | Communications line authentication device |
GB2022969B (en) | 1978-04-12 | 1982-06-09 | Data Recall Ltd | Video display control apparatus |
US4361851A (en) | 1980-01-04 | 1982-11-30 | Asip William F | System for remote monitoring and data transmission over non-dedicated telephone lines |
AU556499B2 (en) | 1981-05-22 | 1986-11-06 | Data General Corporation | Data processing system |
US4423287A (en) | 1981-06-26 | 1983-12-27 | Visa U.S.A., Inc. | End-to-end encryption system and method of operation |
US4429385A (en) * | 1981-12-31 | 1984-01-31 | American Newspaper Publishers Association | Method and apparatus for digital serial scanning with hierarchical and relational access |
US4578531A (en) | 1982-06-09 | 1986-03-25 | At&T Bell Laboratories | Encryption system key distribution method and apparatus |
US4736422A (en) * | 1983-06-30 | 1988-04-05 | Independent Broadcasting Authority | Encrypted broadcast television system |
US4658093A (en) | 1983-07-11 | 1987-04-14 | Hellman Martin E | Software distribution system |
US4652990A (en) * | 1983-10-27 | 1987-03-24 | Remote Systems, Inc. | Protected software access control apparatus and method |
US4740890A (en) * | 1983-12-22 | 1988-04-26 | Software Concepts, Inc. | Software protection system with trial period usage code and unlimited use unlocking code both recorded on program storage media |
US4621321A (en) | 1984-02-16 | 1986-11-04 | Honeywell Inc. | Secure data processing system architecture |
LU86203A1 (en) * | 1985-12-11 | 1987-07-24 | Cen Centre Energie Nucleaire | METHOD AND APPARATUS FOR VERIFYING THE AUTHENTICITY OF DOCUMENTS LINKED TO A PERSON AND THE IDENTITY OF THEIR CARRIERS |
US5319710A (en) | 1986-08-22 | 1994-06-07 | Tandem Computers Incorporated | Method and means for combining and managing personal verification and message authentication encrytions for network transmission |
EP0257585B1 (en) | 1986-08-22 | 1992-11-25 | Nec Corporation | Key distribution method |
US5014234A (en) * | 1986-08-25 | 1991-05-07 | Ncr Corporation | System with software usage timer and counter for allowing limited use but preventing continued unauthorized use of protected software |
JPH087720B2 (en) | 1986-09-16 | 1996-01-29 | 富士通株式会社 | Area access method for IC cards for multiple services |
US4977594A (en) | 1986-10-14 | 1990-12-11 | Electronic Publishing Resources, Inc. | Database usage metering and protection system and method |
EP0268139A3 (en) | 1986-11-05 | 1991-04-10 | International Business Machines Corporation | Manipulating rights-to-execute in connection with a software copy protection mechanism |
US5109413A (en) | 1986-11-05 | 1992-04-28 | International Business Machines Corporation | Manipulating rights-to-execute in connection with a software copy protection mechanism |
US4796220A (en) * | 1986-12-15 | 1989-01-03 | Pride Software Development Corp. | Method of controlling the copying of software |
US5390297A (en) * | 1987-11-10 | 1995-02-14 | Auto-Trol Technology Corporation | System for controlling the number of concurrent copies of a program in a network based on the number of available licenses |
US4937863A (en) | 1988-03-07 | 1990-06-26 | Digital Equipment Corporation | Software licensing management system |
US5247575A (en) * | 1988-08-16 | 1993-09-21 | Sprague Peter J | Information distribution system |
US4888638A (en) | 1988-10-11 | 1989-12-19 | A. C. Nielsen Company | System for substituting television programs transmitted via telephone lines |
US4953209A (en) * | 1988-10-31 | 1990-08-28 | International Business Machines Corp. | Self-verifying receipt and acceptance system for electronically delivered data objects |
US4956863A (en) | 1989-04-17 | 1990-09-11 | Trw Inc. | Cryptographic method and apparatus for public key exchange with authentication |
US5129083A (en) * | 1989-06-29 | 1992-07-07 | Digital Equipment Corporation | Conditional object creating system having different object pointers for accessing a set of data structure objects |
JP2870027B2 (en) | 1989-07-31 | 1999-03-10 | 日本電気株式会社 | Batch processing method by selecting multiple icons |
US5138712A (en) * | 1989-10-02 | 1992-08-11 | Sun Microsystems, Inc. | Apparatus and method for licensing software on a network of computers |
GB9004901D0 (en) * | 1990-03-05 | 1990-05-02 | Space Communications Sat Tel L | Television scrambler |
EP0450841B1 (en) | 1990-03-29 | 1996-08-21 | Gte Laboratories Incorporated | Video control system |
US5174641A (en) | 1990-07-25 | 1992-12-29 | Massachusetts Institute Of Technology | Video encoding method for television applications |
CA2044404C (en) * | 1990-07-31 | 1998-06-23 | Dan S. Bloomberg | Self-clocking glyph shape codes |
US5058162A (en) | 1990-08-09 | 1991-10-15 | Hewlett-Packard Company | Method of distributing computer data files |
JPH05134957A (en) * | 1990-10-10 | 1993-06-01 | Fuji Xerox Co Ltd | Data management system |
JP3047116B2 (en) | 1990-11-15 | 2000-05-29 | 喜也 丸本 | Information distribution method |
WO1992020022A1 (en) | 1991-05-08 | 1992-11-12 | Digital Equipment Corporation | Management interface and format for license management system |
DE69228039T2 (en) * | 1991-05-08 | 1999-08-05 | Digital Equipment Corp., Maynard, Mass. | LICENSE MANAGEMENT SYSTEM |
JPH06507990A (en) * | 1991-05-24 | 1994-09-08 | ブリティッシュ・テクノロジー・グループ・ユーエスエイ・インコーポレーテッド | Optimizing compiler for computers |
US5260999A (en) | 1991-06-28 | 1993-11-09 | Digital Equipment Corporation | Filters in license management system |
US5204897A (en) * | 1991-06-28 | 1993-04-20 | Digital Equipment Corporation | Management interface for license management system |
US5940504A (en) | 1991-07-01 | 1999-08-17 | Infologic Software, Inc. | Licensing management system and method in which datagrams including an address of a licensee and indicative of use of a licensed product are sent from the licensee's site |
JPH05100939A (en) | 1991-07-31 | 1993-04-23 | Fuji Xerox Co Ltd | File system |
US5142578A (en) | 1991-08-22 | 1992-08-25 | International Business Machines Corporation | Hybrid public key algorithm/data encryption algorithm key distribution method based on control vectors |
US5276444A (en) * | 1991-09-23 | 1994-01-04 | At&T Bell Laboratories | Centralized security control system |
US5557518A (en) | 1994-04-28 | 1996-09-17 | Citibank, N.A. | Trusted agents for open electronic commerce |
US5453601A (en) | 1991-11-15 | 1995-09-26 | Citibank, N.A. | Electronic-monetary system |
WO1993011480A1 (en) | 1991-11-27 | 1993-06-10 | Intergraph Corporation | System and method for network license administration |
JP3185806B2 (en) | 1991-12-13 | 2001-07-11 | ソニー株式会社 | Hi-Vision signal recording encoding method |
JPH05334470A (en) | 1991-12-27 | 1993-12-17 | Xerox Corp | Self-clocking graphic mark code |
DE69330946D1 (en) * | 1992-01-08 | 2001-11-22 | Broadband Innovations Inc | MULTI-CHANNEL TELEVISION SIGNAL ENCRYPTION SYSTEM AND METHOD |
JP2659896B2 (en) | 1992-04-29 | 1997-09-30 | インターナショナル・ビジネス・マシーンズ・コーポレイション | Structured document copy management method and structured document copy management device |
US5412717A (en) | 1992-05-15 | 1995-05-02 | Fischer; Addison M. | Computer system security method and apparatus having program authorization information data structures |
US5237611A (en) | 1992-07-23 | 1993-08-17 | Crest Industries, Inc. | Encryption/decryption apparatus with non-accessible table of keys |
US5287408A (en) * | 1992-08-31 | 1994-02-15 | Autodesk, Inc. | Apparatus and method for serializing and validating copies of computer software |
US5293422A (en) * | 1992-09-23 | 1994-03-08 | Dynatek, Inc. | Usage control system for computer software |
JP3358627B2 (en) * | 1992-10-16 | 2002-12-24 | ソニー株式会社 | Information recording / reproducing device |
US5414852A (en) * | 1992-10-30 | 1995-05-09 | International Business Machines Corporation | Method for protecting data in a computer system |
GB9303595D0 (en) | 1993-02-23 | 1993-04-07 | Int Computers Ltd | Licence management mechanism for a computer system |
US5337357A (en) * | 1993-06-17 | 1994-08-09 | Software Security, Inc. | Method of software distribution protection |
US5386369A (en) * | 1993-07-12 | 1995-01-31 | Globetrotter Software Inc. | License metering system for software applications |
JPH0736768A (en) | 1993-07-15 | 1995-02-07 | Matsushita Electric Ind Co Ltd | Electronic filing device |
US6135646A (en) | 1993-10-22 | 2000-10-24 | Corporation For National Research Initiatives | System for uniquely and persistently identifying, managing, and tracking digital objects |
US5625690A (en) * | 1993-11-15 | 1997-04-29 | Lucent Technologies Inc. | Software pay per use system |
US6345104B1 (en) * | 1994-03-17 | 2002-02-05 | Digimarc Corporation | Digital watermarks and methods for security documents |
US6182901B1 (en) | 1993-12-22 | 2001-02-06 | Xerox Corporation | Orientational disambiguation for self-clocking glyph codes |
US5495411A (en) * | 1993-12-22 | 1996-02-27 | Ananda; Mohan | Secure software rental system using continuous asynchronous password verification |
US5504816A (en) * | 1994-02-02 | 1996-04-02 | Gi Corporation | Method and apparatus for controlling access to digital signals |
US5553143A (en) | 1994-02-04 | 1996-09-03 | Novell, Inc. | Method and apparatus for electronic licensing |
US5787172A (en) * | 1994-02-24 | 1998-07-28 | The Merdan Group, Inc. | Apparatus and method for establishing a cryptographic link between elements of a system |
US5563946A (en) | 1994-04-25 | 1996-10-08 | International Business Machines Corporation | Method and apparatus for enabling trial period use of software products: method and apparatus for passing encrypted files between data processing systems |
US5799087A (en) * | 1994-04-28 | 1998-08-25 | Citibank, N.A. | Electronic-monetary system |
US5636346A (en) * | 1994-05-09 | 1997-06-03 | The Electronic Address, Inc. | Method and system for selectively targeting advertisements and programming |
US5564038A (en) | 1994-05-20 | 1996-10-08 | International Business Machines Corporation | Method and apparatus for providing a trial period for a software license product using a date stamp and designated test period |
US5477263A (en) | 1994-05-26 | 1995-12-19 | Bell Atlantic Network Services, Inc. | Method and apparatus for video on demand with fast forward, reverse and channel pause |
US5694546A (en) * | 1994-05-31 | 1997-12-02 | Reisman; Richard R. | System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list |
EP0690399A3 (en) | 1994-06-30 | 1997-05-02 | Tandem Computers Inc | Remote financial transaction system |
US5535276A (en) * | 1994-11-09 | 1996-07-09 | Bell Atlantic Network Services, Inc. | Yaksha, an improved system and method for securing communications using split private key asymmetric cryptography |
US5838792A (en) | 1994-07-18 | 1998-11-17 | Bell Atlantic Network Services, Inc. | Computer system for centralized session key distribution, privacy enhanced messaging and information distribution using a split private key public cryptosystem |
US5557678A (en) | 1994-07-18 | 1996-09-17 | Bell Atlantic Network Services, Inc. | System and method for centralized session key distribution, privacy enhanced messaging and information distribution using a split private key public cryptosystem |
JPH0854951A (en) | 1994-08-10 | 1996-02-27 | Fujitsu Ltd | Software usage management device |
US5737420A (en) | 1994-09-07 | 1998-04-07 | Mytec Technologies Inc. | Method for secure data transmission between remote stations |
US5640592A (en) * | 1994-09-30 | 1997-06-17 | Mitsubishi Kasei America, Inc. | System for transferring utility algorithm stored within a peripheral device to a host computer in a format compatible with the type of the host computer |
US6189037B1 (en) * | 1994-09-30 | 2001-02-13 | Intel Corporation | Broadband data interface |
FI100137B (en) | 1994-10-28 | 1997-09-30 | Vazvan Simin | Real-time wireless telecom payment system |
US5727065A (en) * | 1994-11-14 | 1998-03-10 | Hughes Electronics | Deferred billing, broadcast, electronic document distribution system and method |
US5634012A (en) * | 1994-11-23 | 1997-05-27 | Xerox Corporation | System for controlling the distribution and use of digital works having a fee reporting mechanism |
US5629980A (en) | 1994-11-23 | 1997-05-13 | Xerox Corporation | System for controlling the distribution and use of digital works |
JPH08263438A (en) | 1994-11-23 | 1996-10-11 | Xerox Corp | Distribution and use control system of digital work and access control method to digital work |
US5715403A (en) | 1994-11-23 | 1998-02-03 | Xerox Corporation | System for controlling the distribution and use of digital works having attached usage rights where the usage rights are defined by a usage rights grammar |
US5638443A (en) | 1994-11-23 | 1997-06-10 | Xerox Corporation | System for controlling the distribution and use of composite digital works |
US6963859B2 (en) | 1994-11-23 | 2005-11-08 | Contentguard Holdings, Inc. | Content rendering repository |
JP4386898B2 (en) | 1994-12-13 | 2009-12-16 | インターシア ソフトウェア エルエルシー | Cryptographic key system |
US5485577A (en) * | 1994-12-16 | 1996-01-16 | General Instrument Corporation Of Delaware | Method and apparatus for incremental delivery of access rights |
US5745569A (en) * | 1996-01-17 | 1998-04-28 | The Dice Company | Method for stega-cipher protection of computer code |
SE504085C2 (en) | 1995-02-01 | 1996-11-04 | Greg Benson | Methods and systems for managing data objects in accordance with predetermined conditions for users |
CN100452072C (en) * | 1995-02-13 | 2009-01-14 | 英特特拉斯特技术公司 | Systems and methods for secure transaction management and electronic rights protection |
US5892900A (en) | 1996-08-30 | 1999-04-06 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
US5943422A (en) * | 1996-08-12 | 1999-08-24 | Intertrust Technologies Corp. | Steganographic techniques for securely delivering electronic digital rights management control information over insecure communication channels |
US5632681A (en) | 1995-03-07 | 1997-05-27 | International Business Machines Corporation | Universal electronic video game renting/distributing system |
US6246767B1 (en) * | 1995-04-03 | 2001-06-12 | Scientific-Atlanta, Inc. | Source authentication of download information in a conditional access system |
US6157719A (en) | 1995-04-03 | 2000-12-05 | Scientific-Atlanta, Inc. | Conditional access system |
US6424717B1 (en) * | 1995-04-03 | 2002-07-23 | Scientific-Atlanta, Inc. | Encryption devices for use in a conditional access system |
JPH08286927A (en) * | 1995-04-18 | 1996-11-01 | Hitachi Ltd | Assembler processing method |
US5717604A (en) | 1995-05-25 | 1998-02-10 | Wiggins; Christopher | Network monitoring system for tracking, billing and recovering licenses |
US5790677A (en) * | 1995-06-29 | 1998-08-04 | Microsoft Corporation | System and method for secure electronic commerce transactions |
FR2736783B1 (en) * | 1995-07-13 | 1997-08-14 | Thomson Multimedia Sa | METHOD AND APPARATUS FOR RECORDING AND PLAYBACK WITH LARGE CAPACITY RECORDING MEDIUM |
US5764807A (en) * | 1995-09-14 | 1998-06-09 | Primacomp, Inc. | Data compression using set partitioning in hierarchical trees |
KR0166923B1 (en) | 1995-09-18 | 1999-03-20 | 구자홍 | Method and apparatus of preventing an illegal watching and copying in a digital broadcasting system |
US5684885A (en) | 1995-09-27 | 1997-11-04 | Xerox Corporation | Binary glyph codes based on color relationships |
US5765152A (en) * | 1995-10-13 | 1998-06-09 | Trustees Of Dartmouth College | System and method for managing copyrighted electronic media |
US6279112B1 (en) | 1996-10-29 | 2001-08-21 | Open Market, Inc. | Controlled transfer of information in computer networks |
US5825876A (en) | 1995-12-04 | 1998-10-20 | Northern Telecom | Time based availability to content of a storage medium |
US5708709A (en) * | 1995-12-08 | 1998-01-13 | Sun Microsystems, Inc. | System and method for managing try-and-buy usage of application programs |
CA2242596C (en) * | 1996-01-11 | 2012-06-19 | Mrj, Inc. | System for controlling access and distribution of digital property |
US5870475A (en) | 1996-01-19 | 1999-02-09 | Northern Telecom Limited | Facilitating secure communications in a distribution network |
US5848378A (en) | 1996-02-07 | 1998-12-08 | The International Weather Network | System for collecting and presenting real-time weather information on multiple media |
US5987134A (en) | 1996-02-23 | 1999-11-16 | Fuji Xerox Co., Ltd. | Device and method for authenticating user's access rights to resources |
ATE196398T1 (en) * | 1996-03-18 | 2000-09-15 | News Datacom Ltd | CHIP CARD COUPLING FOR PAY-TV SYSTEMS |
US5673316A (en) | 1996-03-29 | 1997-09-30 | International Business Machines Corporation | Creation and distribution of cryptographic envelope |
JP3517672B2 (en) | 1996-04-01 | 2004-04-12 | マクロヴィジョン コーポレイション | Copy protection control method in digital video network |
US5751813A (en) | 1996-04-29 | 1998-05-12 | Motorola, Inc. | Use of an encryption server for encrypting messages |
US5850433A (en) | 1996-05-01 | 1998-12-15 | Sprint Communication Co. L.P. | System and method for providing an on-line directory service |
WO1997043761A2 (en) | 1996-05-15 | 1997-11-20 | Intertrust Technologies Corp. | Cryptographic methods, apparatus and systems for storage media electronic rights management in closed and connected appliances |
US5812398A (en) * | 1996-06-10 | 1998-09-22 | Sun Microsystems, Inc. | Method and system for escrowed backup of hotelled world wide web sites |
JP2810033B2 (en) | 1996-07-08 | 1998-10-15 | 村越 弘昌 | Operation management system and operation management method |
US5850443A (en) | 1996-08-15 | 1998-12-15 | Entrust Technologies, Ltd. | Key management system for mixed-trust environments |
FR2752655B1 (en) | 1996-08-20 | 1998-09-18 | France Telecom | METHOD AND EQUIPMENT FOR ALLOCATING A COMPLEMENTARY CONDITIONAL ACCESS TO A TELEVISION PROGRAM ALREADY WITH CONDITIONAL ACCESS |
GB2316503B (en) | 1996-08-22 | 2000-11-15 | Icl Personal Systems Oy | Software licence management |
US5812664A (en) | 1996-09-06 | 1998-09-22 | Pitney Bowes Inc. | Key distribution system |
US5850444A (en) | 1996-09-09 | 1998-12-15 | Telefonaktienbolaget L/M Ericsson (Publ) | Method and apparatus for encrypting radio traffic in a telecommunications network |
US6052780A (en) | 1996-09-12 | 2000-04-18 | Open Security Solutions, Llc | Computer system and process for accessing an encrypted and self-decrypting digital information product while restricting access to decrypted digital information |
US5825879A (en) | 1996-09-30 | 1998-10-20 | Intel Corporation | System and method for copy-protecting distributed video content |
US5864127A (en) * | 1996-10-10 | 1999-01-26 | Xerox Corporation | Analog glyph detector and detector arrays |
US6006332A (en) | 1996-10-21 | 1999-12-21 | Case Western Reserve University | Rights management system for digital media |
JPH10133955A (en) | 1996-10-29 | 1998-05-22 | Matsushita Electric Ind Co Ltd | Portable medium driving device, its method, cooperative device of portable medium and network, and its method |
US6108372A (en) | 1996-10-30 | 2000-08-22 | Qualcomm Inc. | Method and apparatus for decoding variable rate data using hypothesis testing to determine data rate |
US5937110A (en) | 1996-12-20 | 1999-08-10 | Xerox Corporation | Parallel propagating embedded binary sequences for characterizing objects in N-dimensional address space |
CN1482542A (en) * | 1997-01-27 | 2004-03-17 | �ʼҷ����ֵ�������˾ | Method and system for transferring content information and supplemental information relating thereto |
GB9703193D0 (en) * | 1997-02-15 | 1997-04-02 | Philips Electronics Nv | Television |
US5920861A (en) * | 1997-02-25 | 1999-07-06 | Intertrust Technologies Corp. | Techniques for defining using and manipulating rights management data structures |
US7062500B1 (en) * | 1997-02-25 | 2006-06-13 | Intertrust Technologies Corp. | Techniques for defining, using and manipulating rights management data structures |
US6233684B1 (en) * | 1997-02-28 | 2001-05-15 | Contenaguard Holdings, Inc. | System for controlling the distribution and use of rendered digital works through watermaking |
CA2284023C (en) | 1997-03-21 | 2007-07-03 | Canal + Societe Anonyme | Broadcast and reception system, and conditional access system therefor |
US6108420A (en) | 1997-04-10 | 2000-08-22 | Channelware Inc. | Method and system for networked installation of uniquely customized, authenticable, and traceable software application |
JP3613929B2 (en) * | 1997-05-07 | 2005-01-26 | 富士ゼロックス株式会社 | Access credential authentication apparatus and method |
EP0983664A1 (en) * | 1997-05-07 | 2000-03-08 | Neomedia Technologies, Inc | Scanner enhanced remote control unit and system for automatically linking to on-line resources |
US6112239A (en) * | 1997-06-18 | 2000-08-29 | Intervu, Inc | System and method for server-side optimization of data delivery on a distributed computer network |
GB9714227D0 (en) * | 1997-07-04 | 1997-09-10 | British Telecomm | A method of scheduling calls |
JP3613936B2 (en) * | 1997-07-07 | 2005-01-26 | 富士ゼロックス株式会社 | Access qualification authentication device |
JPH1131130A (en) | 1997-07-10 | 1999-02-02 | Fuji Xerox Co Ltd | Service providing device |
JP3641909B2 (en) | 1997-07-14 | 2005-04-27 | 富士ゼロックス株式会社 | Proof data generator |
US6584565B1 (en) | 1997-07-15 | 2003-06-24 | Hewlett-Packard Development Company, L.P. | Method and apparatus for long term verification of digital signatures |
EP1000509B1 (en) | 1997-08-01 | 2002-11-27 | Scientific-Atlanta, Inc. | Encryption device for use in a conditional access system |
JP2003521820A (en) | 1997-08-01 | 2003-07-15 | サイエンティフィック−アトランタ, インコーポレイテッド | Conditional access system |
EP0944011A4 (en) * | 1997-08-05 | 2000-08-23 | Enix Corp | COLLECTING FINGERPRINTS |
JP3671611B2 (en) * | 1997-08-05 | 2005-07-13 | 富士ゼロックス株式会社 | Access credential authentication apparatus and method |
JP3622433B2 (en) * | 1997-08-05 | 2005-02-23 | 富士ゼロックス株式会社 | Access credential authentication apparatus and method |
US6091777A (en) * | 1997-09-18 | 2000-07-18 | Cubic Video Technologies, Inc. | Continuously adaptive digital video compression system and method for a web streamer |
IL121862A (en) * | 1997-09-29 | 2005-07-25 | Nds Ltd West Drayton | Distributed ird system for pay television systems |
US6112181A (en) | 1997-11-06 | 2000-08-29 | Intertrust Technologies Corporation | Systems and methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information |
US6044466A (en) | 1997-11-25 | 2000-03-28 | International Business Machines Corp. | Flexible and dynamic derivation of permissions |
US6141754A (en) | 1997-11-28 | 2000-10-31 | International Business Machines Corporation | Integrated method and system for controlling information access and distribution |
US6084969A (en) | 1997-12-31 | 2000-07-04 | V-One Corporation | Key encryption system and method, pager unit, and pager proxy for a two-way alphanumeric pager network |
EP1050133B2 (en) | 1998-01-02 | 2009-05-27 | Cryptography Research Inc. | Leak-resistant cryptographic method and apparatus |
JPH11205306A (en) | 1998-01-16 | 1999-07-30 | Fuji Xerox Co Ltd | Authentication system and authentication method |
JP3791169B2 (en) | 1998-01-29 | 2006-06-28 | 富士ゼロックス株式会社 | Authentication apparatus and method |
JP4113274B2 (en) * | 1998-02-05 | 2008-07-09 | 富士ゼロックス株式会社 | Authentication apparatus and method |
EP0934765A1 (en) | 1998-02-09 | 1999-08-11 | CANAL+ Société Anonyme | Interactive gaming system |
JP3867388B2 (en) | 1998-02-12 | 2007-01-10 | 富士ゼロックス株式会社 | Conditional authentication apparatus and method |
JP4511029B2 (en) | 1998-03-16 | 2010-07-28 | インタートラスト テクノロジーズ コーポレイション | Method and apparatus for continuous control and protection of media content |
US6189146B1 (en) * | 1998-03-18 | 2001-02-13 | Microsoft Corporation | System and method for software licensing |
US7188358B1 (en) | 1998-03-26 | 2007-03-06 | Nippon Telegraph And Telephone Corporation | Email access control scheme for communication network using identification concealment mechanism |
US6282653B1 (en) | 1998-05-15 | 2001-08-28 | International Business Machines Corporation | Royalty collection method and system for use of copyrighted digital materials on the internet |
FI107984B (en) | 1998-05-20 | 2001-10-31 | Nokia Networks Oy | Prevention of illegal use of service |
US6216112B1 (en) * | 1998-05-27 | 2001-04-10 | William H. Fuller | Method for software distribution and compensation with replenishable advertisements |
US6219652B1 (en) * | 1998-06-01 | 2001-04-17 | Novell, Inc. | Network license authentication |
EP0964572A1 (en) | 1998-06-08 | 1999-12-15 | CANAL+ Société Anonyme | Decoder and security module for a digital transmission system |
US6169976B1 (en) * | 1998-07-02 | 2001-01-02 | Encommerce, Inc. | Method and apparatus for regulating the use of licensed products |
US6865675B1 (en) | 1998-07-14 | 2005-03-08 | Koninklijke Philips Electronics N.V. | Method and apparatus for use of a watermark and a unique time dependent reference for the purpose of copy protection |
US6275531B1 (en) | 1998-07-23 | 2001-08-14 | Optivision, Inc. | Scalable video coding method and apparatus |
US6226618B1 (en) | 1998-08-13 | 2001-05-01 | International Business Machines Corporation | Electronic content delivery system |
WO2000011871A1 (en) | 1998-08-23 | 2000-03-02 | Open Entertainment, Inc. | Transaction system for transporting media files from content provider sources to home entertainment devices |
US6397333B1 (en) * | 1998-10-07 | 2002-05-28 | Infineon Technologies Ag | Copy protection system and method |
US6327652B1 (en) | 1998-10-26 | 2001-12-04 | Microsoft Corporation | Loading and identifying a digital rights management operating system |
JP2000215165A (en) | 1999-01-26 | 2000-08-04 | Nippon Telegr & Teleph Corp <Ntt> | Method and device for information access control and record medium recording information access control program |
EP1026898A1 (en) | 1999-02-04 | 2000-08-09 | CANAL+ Société Anonyme | Method and apparatus for encrypted transmission |
US6973444B1 (en) | 1999-03-27 | 2005-12-06 | Microsoft Corporation | Method for interdependently validating a digital content package and a corresponding digital license |
US7073063B2 (en) * | 1999-03-27 | 2006-07-04 | Microsoft Corporation | Binding a digital license to a portable device or the like in a digital rights management (DRM) system and checking out/checking in the digital license to/from the portable device or the like |
US7024393B1 (en) * | 1999-03-27 | 2006-04-04 | Microsoft Corporation | Structural of digital rights management (DRM) system |
DE59906976D1 (en) | 1999-04-07 | 2003-10-16 | Swisscom Mobile Ag | METHOD AND SYSTEM FOR ORDERING, LOADING AND USING ACCESS TICKETS |
US6920567B1 (en) * | 1999-04-07 | 2005-07-19 | Viatech Technologies Inc. | System and embedded license control mechanism for the creation and distribution of digital content files and enforcement of licensed use of the digital content files |
EP1248988A2 (en) * | 1999-04-12 | 2002-10-16 | Reciprocal, Inc. | System and method for data rights management |
US6453305B1 (en) | 1999-05-21 | 2002-09-17 | Compaq Computer Corporation | Method and system for enforcing licenses on an open network |
US6536037B1 (en) * | 1999-05-27 | 2003-03-18 | Accenture Llp | Identification of redundancies and omissions among components of a web based architecture |
US6544294B1 (en) * | 1999-05-27 | 2003-04-08 | Write Brothers, Inc. | Method and apparatus for creating, editing, and displaying works containing presentation metric components utilizing temporal relationships and structural tracks |
WO2000073922A2 (en) | 1999-06-01 | 2000-12-07 | Cacheflow, Inc. | Content delivery system |
WO2001003044A1 (en) | 1999-07-06 | 2001-01-11 | Transcast International, Inc. | Enabling viewers of television systems to participate in auctions |
FR2796183B1 (en) | 1999-07-07 | 2001-09-28 | A S K | CONTACTLESS ACCESS TICKET AND MANUFACTURING METHOD THEREOF |
US6796555B1 (en) | 1999-07-19 | 2004-09-28 | Lucent Technologies Inc. | Centralized video controller for controlling distribution of video signals |
US20020056118A1 (en) * | 1999-08-27 | 2002-05-09 | Hunter Charles Eric | Video and music distribution system |
US6289455B1 (en) * | 1999-09-02 | 2001-09-11 | Crypotography Research, Inc. | Method and apparatus for preventing piracy of digital content |
GB2354102B (en) | 1999-09-08 | 2004-01-14 | Barron Mccann Ltd | Security system |
US6401211B1 (en) * | 1999-10-19 | 2002-06-04 | Microsoft Corporation | System and method of user logon in combination with user authentication for network access |
US6246797B1 (en) | 1999-11-12 | 2001-06-12 | Picsurf, Inc. | Picture and video storage management system and method |
JP2001142720A (en) * | 1999-11-12 | 2001-05-25 | Ricoh Co Ltd | Computer system |
DE19956359A1 (en) | 1999-11-24 | 2001-05-31 | Alcatel Sa | Ticket booking using a virtual admission ticket |
US6738901B1 (en) | 1999-12-15 | 2004-05-18 | 3M Innovative Properties Company | Smart card controlled internet access |
US6996720B1 (en) * | 1999-12-17 | 2006-02-07 | Microsoft Corporation | System and method for accessing protected content in a rights-management architecture |
KR100544177B1 (en) * | 2000-01-18 | 2006-01-23 | 삼성전자주식회사 | Method of controlling portable device having facilities of storing and playing digital contents by computer and portable device operation method thereby |
JP2001294557A (en) * | 2000-02-10 | 2001-10-23 | Nippon Shokubai Co Ltd | METHOD FOR PRODUCING alpha,beta-UNSATURATED CARBOXYLIC ESTER AND CATALYST TO BE USED THEREFOR |
EP1290610B1 (en) | 2000-06-02 | 2015-01-07 | Panasonic Corporation | Recording medium, license management apparatus, and recording and playback apparatus |
US7228427B2 (en) * | 2000-06-16 | 2007-06-05 | Entriq Inc. | Method and system to securely distribute content via a network |
US7017189B1 (en) | 2000-06-27 | 2006-03-21 | Microsoft Corporation | System and method for activating a rendering device in a multi-level rights-management architecture |
US7225231B2 (en) * | 2000-09-20 | 2007-05-29 | Visto Corporation | System and method for transmitting workspace elements across a network |
US6922670B2 (en) * | 2000-10-24 | 2005-07-26 | Sanyo Electric Co., Ltd. | User support apparatus and system using agents |
US7209893B2 (en) * | 2000-11-30 | 2007-04-24 | Nokia Corporation | Method of and a system for distributing electronic content |
US20020077984A1 (en) | 2000-12-19 | 2002-06-20 | Mark Ireton | Enabling protected digital media to be shared between playback devices |
US6912294B2 (en) * | 2000-12-29 | 2005-06-28 | Contentguard Holdings, Inc. | Multi-stage watermarking process and system |
US7580988B2 (en) * | 2001-04-05 | 2009-08-25 | Intertrust Technologies Corporation | System and methods for managing the distribution of electronic content |
US20020157002A1 (en) * | 2001-04-18 | 2002-10-24 | Messerges Thomas S. | System and method for secure and convenient management of digital electronic content |
US8001053B2 (en) | 2001-05-31 | 2011-08-16 | Contentguard Holdings, Inc. | System and method for rights offering and granting using shared state variables |
US7774280B2 (en) | 2001-06-07 | 2010-08-10 | Contentguard Holdings, Inc. | System and method for managing transfer of rights using shared state variables |
US7421411B2 (en) * | 2001-07-06 | 2008-09-02 | Nokia Corporation | Digital rights management in a mobile communications environment |
US8001054B1 (en) | 2001-07-10 | 2011-08-16 | American Express Travel Related Services Company, Inc. | System and method for generating an unpredictable number using a seeded algorithm |
US20030023427A1 (en) * | 2001-07-26 | 2003-01-30 | Lionel Cassin | Devices, methods and a system for implementing a media content delivery and playback scheme |
EP1419459A2 (en) | 2001-08-10 | 2004-05-19 | Cellectivity Limited | Web interaction system which enables a mobile telephone to interact with web resources |
US20030046274A1 (en) * | 2001-08-30 | 2003-03-06 | Erickson John S. | Software media container |
EP1485833A4 (en) * | 2001-11-20 | 2005-10-12 | Contentguard Holdings Inc | An extensible rights expression processing system |
US7840488B2 (en) * | 2001-11-20 | 2010-11-23 | Contentguard Holdings, Inc. | System and method for granting access to an item or permission to use an item based on configurable conditions |
US7974923B2 (en) * | 2001-11-20 | 2011-07-05 | Contentguard Holdings, Inc. | Extensible rights expression processing system |
JP4477822B2 (en) * | 2001-11-30 | 2010-06-09 | パナソニック株式会社 | Information converter |
US20030126086A1 (en) * | 2001-12-31 | 2003-07-03 | General Instrument Corporation | Methods and apparatus for digital rights management |
US20030158958A1 (en) * | 2002-02-20 | 2003-08-21 | Koninklijke Philips Electronics N.V. | Distributed storage network architecture using user devices |
US20040015426A1 (en) * | 2002-03-14 | 2004-01-22 | Bijan Tadayon | System and method for expressing usage rights with sound signals |
AU2003282576A1 (en) | 2002-10-09 | 2004-05-04 | Legal Igaming, Inc. | System and method for connecting gaming devices to a network for remote play |
FR2854870B1 (en) | 2003-05-16 | 2006-03-24 | S2F Flexico | IMPROVED METHOD AND DEVICE FOR PACKAGING, SACHETS OBTAINED AND THEIR APPLICATION |
JP5168039B2 (en) | 2008-09-12 | 2013-03-21 | 王子ホールディングス株式会社 | Thermal recording material |
-
2003
- 2003-03-14 US US10/388,167 patent/US20040015426A1/en not_active Abandoned
- 2003-03-14 JP JP2003577196A patent/JP4290565B2/en not_active Expired - Fee Related
- 2003-03-14 KR KR1020047014487A patent/KR100703521B1/en not_active Expired - Lifetime
- 2003-03-14 CN CN2013100202494A patent/CN103150492A/en active Pending
- 2003-03-14 US US10/388,162 patent/US8108313B2/en active Active
- 2003-03-14 CN CN038108852A patent/CN1653463B/en not_active Expired - Lifetime
- 2003-03-14 EP EP03723739A patent/EP1483717A4/en not_active Withdrawn
- 2003-03-14 EP EP03744684A patent/EP1490819A4/en not_active Withdrawn
- 2003-03-14 AU AU2003230651A patent/AU2003230651A1/en not_active Abandoned
- 2003-03-14 AU AU2003221995A patent/AU2003221995A1/en not_active Abandoned
- 2003-03-14 AU AU2003220269A patent/AU2003220269A1/en not_active Abandoned
- 2003-03-14 CN CNA038107198A patent/CN1653462A/en active Pending
- 2003-03-14 EP EP03717978A patent/EP1488302A4/en not_active Withdrawn
- 2003-03-14 CN CNA038110571A patent/CN1653465A/en active Pending
- 2003-03-14 US US10/388,226 patent/US7359884B2/en not_active Expired - Lifetime
- 2003-03-14 US US10/388,171 patent/US20030225700A1/en not_active Abandoned
- 2003-03-14 JP JP2003576008A patent/JP2005532610A/en active Pending
- 2003-03-14 WO PCT/US2003/007936 patent/WO2003077955A1/en not_active Application Discontinuation
- 2003-03-14 US US10/388,217 patent/US20030233169A1/en not_active Abandoned
- 2003-03-14 JP JP2003577197A patent/JP4740543B2/en not_active Expired - Lifetime
- 2003-03-14 KR KR1020047014430A patent/KR100960502B1/en not_active Expired - Fee Related
- 2003-03-14 KR KR10-2004-7014492A patent/KR20040101312A/en not_active Application Discontinuation
- 2003-03-14 WO PCT/US2003/007849 patent/WO2003079270A1/en active Application Filing
- 2003-03-14 EP EP03716567A patent/EP1483715A4/en not_active Ceased
- 2003-03-14 BR BR0308409-4A patent/BR0308409A/en not_active Application Discontinuation
- 2003-03-14 AU AU2003225804A patent/AU2003225804A1/en not_active Abandoned
- 2003-03-14 WO PCT/US2003/007847 patent/WO2003079269A1/en active Application Filing
- 2003-03-14 WO PCT/US2003/007848 patent/WO2003079156A2/en not_active Application Discontinuation
-
2008
- 2008-09-04 US US12/204,393 patent/US9626668B2/en not_active Expired - Lifetime
-
2011
- 2011-03-09 JP JP2011051399A patent/JP2011150717A/en active Pending
-
2013
- 2013-05-08 JP JP2013098415A patent/JP2013157031A/en active Pending
Patent Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5091966A (en) * | 1990-07-31 | 1992-02-25 | Xerox Corporation | Adaptive scaling for decoding spatially periodic self-clocking glyph shape codes |
US5128525A (en) * | 1990-07-31 | 1992-07-07 | Xerox Corporation | Convolution filtering for decoding self-clocking glyph shape codes |
US5168147A (en) * | 1990-07-31 | 1992-12-01 | Xerox Corporation | Binary image processing for decoding self-clocking glyph shape codes |
US5438508A (en) * | 1991-06-28 | 1995-08-01 | Digital Equipment Corporation | License document interchange format for license management system |
US5221833A (en) * | 1991-12-27 | 1993-06-22 | Xerox Corporation | Methods and means for reducing bit error rates in reading self-clocking glyph codes |
US5245165A (en) * | 1991-12-27 | 1993-09-14 | Xerox Corporation | Self-clocking glyph code for encoding dual bit digital values robustly |
US5444779A (en) * | 1993-10-18 | 1995-08-22 | Xerox Corporation | Electronic copyright royalty accounting system using glyphs |
US5521372A (en) * | 1993-12-22 | 1996-05-28 | Xerox Corporation | Framing codes for robust synchronization and addressing of self-clocking glyph codes |
US5449896A (en) * | 1993-12-22 | 1995-09-12 | Xerox Corporation | Random access techniques for use with self-clocking glyph codes |
US5453605A (en) * | 1993-12-22 | 1995-09-26 | Xerox Corporation | Global addressability for self-clocking glyph codes |
US5449895A (en) * | 1993-12-22 | 1995-09-12 | Xerox Corporation | Explicit synchronization for self-clocking glyph codes |
US5576532A (en) * | 1995-01-03 | 1996-11-19 | Xerox Corporation | Interleaved and interlaced sync codes and address codes for self-clocking glyph codes |
US5530235A (en) * | 1995-02-16 | 1996-06-25 | Xerox Corporation | Interactive contents revealing storage device |
US6311214B1 (en) * | 1995-07-27 | 2001-10-30 | Digimarc Corporation | Linking of computers based on optical sensing of digital data |
US6434525B1 (en) * | 1998-05-27 | 2002-08-13 | Nec Corporation | Human image dialogue device and a recording medium storing a human image dialogue device |
US20030157983A1 (en) * | 1998-10-08 | 2003-08-21 | Yasuhide Kobayashi | Portable toy, portable information terminal, entertainment system, and recording medium |
US6384829B1 (en) * | 1999-11-24 | 2002-05-07 | Fuji Xerox Co., Ltd. | Streamlined architecture for embodied conversational characters with reduced message traffic |
US20010042057A1 (en) * | 2000-01-25 | 2001-11-15 | Nec Corporation | Emotion expressing device |
US20020099545A1 (en) * | 2001-01-24 | 2002-07-25 | Levitt Benjamin J. | System, method and computer program product for damage control during large-scale address speech recognition |
US20020153409A1 (en) * | 2001-02-16 | 2002-10-24 | Chun Pong Yu | System with improved methodology for providing international address validation |
Cited By (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040268146A1 (en) * | 2003-06-25 | 2004-12-30 | Microsoft Corporation | Distributed expression-based access control |
US7653936B2 (en) * | 2003-06-25 | 2010-01-26 | Microsoft Corporation | Distributed expression-based access control |
US20060225055A1 (en) * | 2005-03-03 | 2006-10-05 | Contentguard Holdings, Inc. | Method, system, and device for indexing and processing of expressions |
DE102005033698A1 (en) * | 2005-07-19 | 2007-02-01 | Siemens Ag | Method for exporting usage rights to electronic data objects |
US20090158436A1 (en) * | 2005-07-19 | 2009-06-18 | Baese Gero | Method for Exporting Use Rights for Electronic Data Objects |
US8224826B2 (en) | 2005-08-08 | 2012-07-17 | Google Inc. | Agent rank |
US20070033168A1 (en) * | 2005-08-08 | 2007-02-08 | David Minogue | Agent rank |
US9002856B2 (en) | 2005-08-08 | 2015-04-07 | Google Inc. | Agent rank |
US7565358B2 (en) * | 2005-08-08 | 2009-07-21 | Google Inc. | Agent rank |
US8296293B2 (en) | 2005-08-08 | 2012-10-23 | Google Inc. | Agent rank |
US20110213770A1 (en) * | 2005-08-08 | 2011-09-01 | Google Inc. | Agent rank |
US20070156670A1 (en) * | 2005-12-29 | 2007-07-05 | Blue Jungle | Techniques of optimizing policies in an information management system |
US8150816B2 (en) * | 2005-12-29 | 2012-04-03 | Nextlabs, Inc. | Techniques of optimizing policies in an information management system |
US8661003B2 (en) | 2005-12-29 | 2014-02-25 | Nextlabs, Inc. | Policy performance in an information management system |
US20070156601A1 (en) * | 2006-01-03 | 2007-07-05 | International Business Machines Corporation | Method and system for providing interoperability between digital rights management systems |
US8352467B1 (en) | 2006-05-09 | 2013-01-08 | Google Inc. | Search result ranking based on trust |
US10268641B1 (en) | 2006-05-09 | 2019-04-23 | Google Llc | Search result ranking based on trust |
US8818995B1 (en) | 2006-05-09 | 2014-08-26 | Google Inc. | Search result ranking based on trust |
US20090249186A1 (en) * | 2008-03-25 | 2009-10-01 | International Business Machines Corporation | Multi-pass validation of extensible markup language (xml) documents |
US8875013B2 (en) * | 2008-03-25 | 2014-10-28 | International Business Machines Corporation | Multi-pass validation of extensible markup language (XML) documents |
US8655826B1 (en) | 2008-08-01 | 2014-02-18 | Motion Picture Laboratories, Inc. | Processing and acting on rules for content recognition systems |
US8819290B2 (en) | 2009-10-23 | 2014-08-26 | Zte Corporation | Method and system for transmitting compressed rights |
US8983974B1 (en) | 2010-02-08 | 2015-03-17 | Google Inc. | Scoring authors of posts |
US9442989B1 (en) | 2010-02-08 | 2016-09-13 | Google Inc. | Scoring authors of posts |
US9846728B1 (en) | 2010-02-08 | 2017-12-19 | Google Inc. | Scoring authors of posts |
US8606792B1 (en) | 2010-02-08 | 2013-12-10 | Google Inc. | Scoring authors of posts |
US10949429B1 (en) | 2010-02-08 | 2021-03-16 | Google Llc | Scoring authors of posts |
US20140229918A1 (en) * | 2013-02-08 | 2014-08-14 | Fujitsu Limited | Computer-readable recording medium storing therein test data generating program, test data generating method, test data generating apparatus and information processing system |
US9639454B2 (en) * | 2013-02-08 | 2017-05-02 | Fujitsu Limited | Computer-readable recording medium storing therein test data generating program, test data generating method, test data generating apparatus and information processing system |
US10523490B2 (en) * | 2013-08-06 | 2019-12-31 | Agilepq, Inc. | Authentication of a subscribed code table user utilizing optimized code table signaling |
US10361716B2 (en) | 2014-07-02 | 2019-07-23 | Agilepq, Inc. | Data recovery utilizing optimized code table signaling |
US10587399B2 (en) | 2016-06-06 | 2020-03-10 | Agilepq, Inc. | Data conversion systems and methods |
US11018854B2 (en) | 2016-06-06 | 2021-05-25 | Agilepq, Inc. | Data conversion systems and methods |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7359884B2 (en) | Method and apparatus for processing usage rights expressions | |
US7805371B2 (en) | Rights expression profile system and method | |
US20030229593A1 (en) | Rights expression profile system and method | |
US7558759B2 (en) | Systems and methods for creating, manipulating and processing rights and contract expressions using tokenized templates | |
JP5331920B2 (en) | Computer-readable storage medium | |
US6738906B1 (en) | Marking of electronic documents in order to expose unauthorized publication | |
KR20090112845A (en) | Method and system for managing contents copyright and recording medium therefor | |
CN1726449A (en) | Digital rights conversion system | |
JP4226949B2 (en) | License server and license issuing method | |
Torres Padrosa | Contribution to an Architecture for Multimedia Information Management and Protection Based on Open Standards |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: CONTENTGUARD HOLDINGS, INC., DELAWARE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:TA, THANH;LAO, GUILLERMO;WANG, XIN;AND OTHERS;REEL/FRAME:014247/0596;SIGNING DATES FROM 20030527 TO 20030610 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
IPR | Aia trial proceeding filed before the patent and appeal board: inter partes review |
Free format text: TRIAL NO: IPR2013-00136 Opponent name: ZTE CORPORATION ZTE (USA) INC. Effective date: 20130211 |
|
RF | Reissue application filed |
Effective date: 20131114 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 12 |