# Rights Expression Language

A Rights Expression Language or REL is a machine-processable language used to express intellectual property rights (such as copyright) and other terms and conditions for use over content. RELs can be used as standalone expressions (i.e. metadata usable for search, compatibility tracking) or within a DRM system.
RELs are expressible in a machine-language (such as XML, RDF, RDF Schema, and JSON). Although RELs may be processed directly, they can also be encountered when embedded as metadata within other documents, such as eBooks, image, audio or video files.

## Notable RELs

Notable RELs include:

### ccREL

    An RDF Schema used by the Creative Commons project to express their licences.
    This same vocabulary has also been adopted by the GNU Project to express their General Public License (GPL) in machine-readable form.

### W3C Open Digital Rights Language ODRL

    The W3C Permissions and Obligations Expression (POE) Working Group has developed the ODRL recommendations for expressing permissions and obligations statements for digital content.
    The W3C ODRL Information Model offers a framework for the underlying concepts, entities, and relationships that form the foundational basis for the semantics of ODRL expressions. The aim of the ODRL Information Model is to support flexible Policy expressions by allowing the author to include as much, or as little, expressive detail about the terms and conditions for Asset usage, the Parties involved, and obligations.
    The W3C ODRL Vocabulary & Expression describes the potential terms used in ODRL Policy expressions and how to serialise them. The terms form part of the ODRL Ontology and formalise the semantics. The wide set of terms in the vocabulary provides the support for communities to use ODRL as the primary language to express common use cases.

### XrML

    XrML began with work at Xerox in the 1990s. After passing through several versions and separate projects, it later formed the basis of the REL for MPEG-21.

### MPEG-21

    Part 5 of this MPEG standard includes a REL.

### METSRights

    METSRights is an extension schema to the METS packaging metadata standard.

## Use of a REL

The function of a REL is to define licences, and to describe these licences in terms of the permissions or restrictions they imply for how the related content may then be used.
"Licence" here may mean either:
* A "well-known licence", such as GFDL, Apache License or a Creative Commons CC-by-sa-3.0 etc.
* A pre-defined licence that is like these, but not so well known. Examples would be proprietary "shrinkwrap" licences.
* A specific licence that is created with individual terms and conditions, for content licensed from one party to another.

### Well-known licences

Use of a well-known licence is often chosen for its unambiguous simplicity: GFDL means the same no matter who is using it. Using an existing licences also avoids the problems of licence proliferation. It is also practical to use such a licence, and to check that a project is complying with it, without understanding too much about what detail it entails. Merely knowing that "GFDL is acceptable to this project" and "All resources within this project use GFDL" is sufficient. In that sense, well-known licences are a way to avoid needing to use a REL to model the details of a licence, its name alone is enough.
Despite this, a REL may still be useful with these licences. It provides a machine-processable way to identify the licence in use, avoiding naming issues and potential ambiguities between "Apache License" or "Apache 2.0 Licence". The authors of these licences also require a means to describe their internal details.
Some software bill of materials (SBOM) products, such as Software Package Data Exchange (SPDX) do not use a REL but instead limit potential licences to a set of well-known licences, expressed through their local controlled vocabulary of SPDX ID. Each license is identified by a full name, such as "Mozilla Public License 2.0" and a short identifier, here "MPL-2.0". Licenses can be combined by simple Boolean operators AND, OR, and grouping ( ... ). However this still requires human intervention to check these licences for acceptability and for their effects when combined: the non-REL SBOM product cannot do this itself.

### Pre-defined licence

These are similar to the well-known licences, in that they're defined before their use and can be applied to many instances of licensing. Their difference is that as they're not well known, it's also necessary to explain what each of them entails, as the user is always likely to be encountering each of them for the first time. A REL provides the means to do this.
Using licensed content within a project now requires evaluation of the statement, "Are there any resources within this project whose licence forbids a condition that the project requires, or requires a condition that the project cannot permit?". These might include a necessary ability to distribute copies of the project afterwards, or a condition for accreditation on a splash screen that might be unacceptable to some projects.
In open source software development, it's also common for projects to create their own licence under their own project name, but for the details of this licence to be a boilerplate copy from a well-known licence, or even a reference to this licence. A REL should support this, providing a means for licences to be defined by sub-classing existing licences and possibly changing their behaviour. Many of these licences are little more than vanity licences, although other dependent projects must still be able to work with them.

### Specific licences

These are licences that are created as needed, for specific pieces of content, or specific end users. This is usually so that they may have use-specific conditions attached to them, such as expiry dates. Although these licences might be based on a standard boilerplate, each one is thus unique. Referring to them by name could not work as there's no single, stable name. It's thus necessary to use a REL to express each one in terms of its individual properties.
Examples might include a time-limited contract to watch TV sport for a month, as paid for by an ongoing contract, and to watch this within the home but not to show it within a public bar.

## Structure of a REL

A REL may conveniently use an Entity–attribute–value model, as for RDF, to structure its description of a rights model. Such a model expresses itself as lists of:

### Entities

    Concrete "things" or "classes", e.g.:
* Work/Asset
    The item being licensed.
* Licence
    The licence, particularly when this is either a "well-known" licence (where many Works will use a comparable abstract licence, such as GFDL)
    or else an instance of a specific licence, such as content playback rights purchased by one user.
* End-user/Parties
    A means to identify the end-user, when the licensing is a specific contract with one person or body, as well as the licensing party.
* Jurisdiction
    Rarely stated explicitly, but an important qualifier when there are local legal variations in IP law.

### Attributes

    "Properties", or aspects of each of these Entities, e.g. for a Licence:
* constraints
    Actions that are either permitted, or forbidden
    Some RELs separate these constraints into groups, as the likely values for each are generally disjoint sets (actions that may be sometimes prohibited are rarely compulsory)
* permissions
* prohibitions
* requirements/obligations (or duties)

### Values

    Values for these properties, from a pre-defined vocabulary, e.g. the Four Freedoms:
* Using the Work
* Studying and modifying the Work
* Redistributing copies
* Redistributing modified copies
* Print the asset
The REL defines sets of members for each of these three groups, and the permitted relations between them. In the example above there may be concepts of Licences, permissions and redistributing copies. Also there may be the relations, A Licence may express prohibitions, and separately Permission may be given to redistribute copies.
Statements may then be made using the REL (these would be outside of the REL itself) such as:
This defines a new abstract licence, one that permits re-distribution of copies. Works may then use this Licence by referring to it,
Note that although this hypothetical "Distribution permitted" licence has been expressed using the Creative Commons REL, it is not a Creative Commons licence. It merely uses the concepts "License", "permission" and "Distribution". Although it's not one of the Creative Commons licences defined by that project, it does share exact commonality for these terms: "Distribution" has exactly the same meaning and legal definition between them.
The below W3C ODRL example shows an Agreement (License) from the Assigner party for an Asset that can be Displayed by one assignee (user), and another to Print the Asset.

## Interworking between licences

Increasing interest in mashups and collaborative projects creates a demand for combining content, and in licensing technologies that can support this.
The simplest approach is to only combine content under the same well-known licence. This is over-restrictive though, and many compatible licences may permit their content to be combined. It is however difficult to judge this, whether it is permitted and how the resultant content should be licensed. There may still be subtleties when there are overlapping requirements or Copyleft issues. Notably the Creative Commons 'attribution-sharealike' and 'attribution-noncommercial-sharealike' are incompatible.
Combining licences is simpler if all of the licences involved may be expressed through the same REL. In that case it's easier to see when a permission or a prohibition applies if they do at least apply to an identical definition of "Distribution". An obvious example of this are the Creative Commons licenses, where a family of licences are all defined in terms of the same REL.
Even if different licences were originally defined through different REL, it may be possible to re-encode a licence simultaneously in another shared REL, making them comparable. GPL has recently been expressed in ccREL, giving this advantage.

### Difficulties in interworking between licences

Apart from the issues of conflicting requirements (above), there are also technical issues in comparing licences. Many of these are alleviated if the same REL can be used, even if the licences are different.

#### Semantics

A regular problem with semantic translation between schemas (such as RELs) is in making sure that the meanings of terms are identical. Although the semantic web is beginning to use ontology tools such as OWL to describe meaning, the current state of the art for REL is less advanced than this. Simpler processing, and the potential for expensive litigation otherwise, means that the semantics of RELs must be clearly identical, not just inferred to be so through a reasoner.
The regular problems are in demonstrating the equivalence of classes, properties and instances. For RELs the major problem is for the instances, i.e. the precise definitions of "Distribution", "Share-alike" etc. The classes and properties are usually simple concepts and very similar. Not all RELs support all classes though: some ignore Jurisdiction or even End-user, according to the needs of the market they were developed for.

#### Implicit pre-conditions

A less-obvious problem in comparing RELs is when they have a differing baseline. The baseline defines the conditions implied by the licence when there are no explicit statements included. Some RELs take the "Everything not permitted is forbidden" approach, others (such as ccREL) use the Berne Convention as their baseline.