After having compared ODRL to the "License Document Interchange Format (LDIF)" Rights Expression Language that I created, and patented, and in the late 1980's and early 1990's as part of the "Digital Distributed Licensing Architecture," I can see that ODRL, with an appropriate profile, would probably be able to express many of the same licenses that I designed LDIF to express. However, an important feature of LDIF seems to be missing, and I'm wondering if I simply haven't read the specs correctly or if I've missed one.
LDIF not only provides an ASN.1-based, machine-readable Rights Expression Language to describe licenses, it also provides language to be used by a licensed object to state requirements for those licenses which might authorize the object's use. For instance, in my patents, I describe how a digital object, or a tool displaying the object, could require the presence of a license having specific elements. My patents offer the example of a copy of Digital's "Amazing Graphic System" whose use is authorized if the user's licenses include at least one license from the set of:
"All Product Use Authorizations issued by Digital for the Product 'Amazing Graphics System' which contains a calling authorization for Digital's 'Amazing Database' Product." [The LDIF expression can be seen in Figure 46 of any of the patents listed below.]
What this means is that a license for some specific use of the "Amazing Graphics System" is insufficient unless it also contains a "Calling Authorization" (permission to invoke as a component) for the "Amazing Database" as a means for storing graphical objects. I assumed that there might be alternative methods for storing objects (e.g. simple files on disk, etc.) whose use might be authorized with different licenses or might not require an explicit license. Also, I was trying to deal with the problem of something like a Calling Authorization only being allowed when the calls were made by "Amazing Graphics System" and not when made from user-written or other products. (i.e. Authorization of use by one caller neither required nor implied authorization of calling by others.)
LDIF filters would also be useful for enabling a BookReader application to determine if it was authorized to display, or otherwise process, a specific digital version of Shakespeare's "Macbeth." The copy of "Macbeth" might have an embedded filter that required either a license for just that one book or for "Any works by Shakespeare" provided by the same publisher. In the absence of a specification embedded within the copy of Macbeth, a license allowing "Any work by Shakespeare" would have to include a listing of all such works, including Macbeth, and would be of limited utility if the set of "all works" had grown to include Macbeth after the license was initially issued. Another example, perhaps a better one, of the "growing set" problem, would be a copy of a weekly magazine that could be purchased either in isolation or as part of "all issues published in the year."
Does ODRL provide a means for an object, whose use is subject to licensing, to state that a license is expected and/or to define the set of licenses which are effective? If not, is this something that could be reasonably added via a Profile?
Note: The now long-expired DDSLA patents contain more detail on the LDIF Rights Expression Language, etc. They were: 5,745,879: Method and system for managing execution of licensed programs, 5,438,508: License document interchange format for license management system, 5,260,999: https://patents.google.com/patent/US5260999, and 5,204,897: Management interface for license management system.