Warning:
This wiki has been archived and is now read-only.

Constraints

From Permissions and Obligations Expression Working Group
Jump to: navigation, search

Discussion of current Constraints

See also the discussion of constraints in the Information Model

Legend:

Definition of the Left Operands/Names of Constraints

Note: The following list has been edited for collaboratively commenting the constraints.


Proposal regarding the Constraint class: A Constraint includes 9 optional properties provided as reference to a resource for retrieving a data value. They are named leftOpResource1 ... leftOpResource9. One to all of them may be used by the free-text definition of the left operand as references to variable resources used by the left operand. Any leftOpResource property not included by the definition MUST NOT be used. (POE internal note: the design of the leftOpResource could include indicators of a data type and units like the rightOperand.)

Examples regarding this proposal:

  • UC: An assigner using a constraint with a left operand like meteredTime or count wants to define a web resource delivering an offical meteredTime or count. Open issue: where to put the URL of this resource which could be different for different products/services or customers? Solution: leftOpResource1 could be used. The definition of the Left Operand should be "Numeric count of exercising the Action. Optionally the leftOpResource1 may be used to define an API URL for retrieving the count value." Advantage: a single left operand can be used with many different products/services or customers, only the leftOpResource1 URL has to be adapted in the different policies.
  • UC: an action can be exercised after an event has closed. Open issue: how does the Assignee know, when the event has closed. Solution: The organiser of the event could provide a web resource delivering a timestamp of the closing time (or no value before that time). The Left Operand definition could be: "The date and time of closing the event as provided by the resource in leftOpResource1 triggers a period of time after which the Action can or cannot be exercised." Advantage: an event organiser could use this Left Operand for all events, only the value of the leftOpResource1 changes in the different Policies for different events. Else he would have to define a different LeftOperand including the URL of this resource for each event.


Terminology and display style:

  • Uppercase terms like Action, Permission, Prohibition, Duty, Policy, Right Operand represent the closest ODRL entity of that type wrapping the constraint or being a property of a closest wrapping entity
  • NT of ... in the Term column: this term is a term with narrower semantics as the term ...
  • A row without a value in the Term or Label column: all populated columns of this row provide a refined definition or comment of the term in the row above.


Left Operands in constraints
Term Label Definition Comments etc
absolutePosition Absolute Position A point defined with absolute coordinates. For example, JPEG image must be positioned at 100×100 pixel location. This may be used to express [plus] semantics.
Absolute Position Asset A point in space or time defined with absolute coordinates the positioning of the Asset has to comply with for excersing the Action.. Example: May be used with a natural language contract saying the the upper left corner of a picture may be constrainted to a specific position of the canvas rendiering it.
NT of absolutePosition
absoluteSpatialPositionAsset
Absolute Spatial Position Asset The absolute spatial positions of four corners of a rectangle on a 2D-canvas or the eight corners of a cubiod in a 3D-space the Asset has to fit in after the Action. Example: The JPEG image must be positioned in a rectangle with its corners at ... .
Note: See the Left Operand realativeSpatialPosition.
(? should we show an example in detail).
Victor:This precludes using other media types; cf. an audio synchronized in a video. Michael: you are right, then we need an Absolute Spatial Positions and an Absolution Temporal Positions left operand - see below the temporal variant.
NT of absolutePosition
absoluteTemporalPositionAsset
Absolute Temporal Position Asset The absolute temporal positions in a media stream the Asset has to fit in after the Action. Note: Use with Actions including the Asset in a larger media stream. The fragement part of a Media Fragement URI (https://www.w3.org/TR/media-frags/) may be used for the right operand. See the Left Operand realativeSpatialPosition.
Example: The MP3 music file must be positioned between second 192 and 250 of the temporal length of a stream.
absoluteSize Absolut Size The absolute dimension that the Asset may be resized to. For example, JPEG image must be reproduced onto an area no larger than A0. This may be used to express [plus] semantics.
Absolute Size Asset Measure(s) of one or two axes for 2D-objects or measure(s) of one to tree axes for 3D-objects of the Asset after the Action. Development note: the major change is including Asset as measured entity.

Example: The image can be resized in width to a maximum of 1000px.
Note: This may be used to express [plus] semantics. See also the Left Operand relativeSize.

count Count The numeric count indicating the number of times the corresponding entity may be exercised Should be a positive integer
Numeric count of exercising the Action. Optionally the leftOpResource1 may be used to define an API URL for retrieving the count value. (POE-internal note: see proposal above this table.) Note: A more specific variant of this Left Operand may include an identified API which must be used for retrieving the count value.
dateTime Datetime The date (and optional time and timezone) representing a point in time or period. Value must conform to [iso8601] as represented in [xmlschema11-2]. The use of Timezone information is strongly recommended.
Action Datetime or Period The date (and optional time and timezone) to be compared to the time when the Action is exercised or a period to be compared with the duration of exercising the Action. Note: The value of the Right Operand must conform to [iso8601] as represented in [xmlschema11-2]. For timestamps the use of Timezone information is strongly recommended.
eventEndPeriod Event End Period The date and time of closing the event as provided by the resource in leftOpResource1 triggers a period of time after which the Action can or cannot be exercised.
(POE-internal note: see proposal above this table.)
deliveryChannel Delivery Channel The delivery channel used for storing or communicating the asset. For example, the asset may be distributed only on mobile networks.
The delivery channel used for exercising the Action. Example: The asset may be distributed only on mobile networks.
elapsedTime Elapsed Time A period of time in which the policy action can be exercised. The start of the period is when the action is first exercised. Value must conform to [iso8601] as represented in [xmlschema11-2].
A period of time for exercising the Action. The start of the period is trigged by exercising the Action for the first time. Note: The value of the Right Operand must conform to [iso8601] as represented in [xmlschema11-2].
event Event Specification of a defined event applicable to the asset usage. For example, asset may be used at the “FIFA World Cup” only. To express events related to undertaking Duties, specific event values may be defined (eg see policyUsage).
Action Event An identified event at which the Action may be exercised. Development note: action was added to the term to open the vocabulary to other event-related constrints.
Example: Action may be taken at the “FIFA World Cup” only.
fileFormat File Format The file format applicable to the Asset. For example only JPEG image may be distributed. This may be used to express [plus] semantics.
The file format of the Asset while the Action is exercised. Example: Only JPEG files may be taken for an Action.
NT of fileFormat
fileFormatAfter
File Format After The file format of the Asset after exercising the Action. Example: The asset may be transformed only to PDF.
industry The defined industry sector applicable to the asset usage For example, publishing, financial.
Michael: It is not clear to me how a use related to an industry could be measured. Example: if the use “print” is constrained by “must be equal to the bank business sector” what does that mean in practice? Printed only in products published by a company of the bank business sector? Or printed only on a paper/poster shown in a bank?
language Language The natural language applicable to the asset usage For example, JPEG image may only be reproduced with Spanish text. May be used to express [[plus] semantics. Must use [bcp47] codes for language values.
The main natural language of the Asset while the Action is exercised. Example: only with Assets in Swedish the Action can be exercised.
Note: The Right Operand should should use [bcp47] language tags. This may be used to express [[plus] semantics.
NT of language
languageAfter
Language After The main natural language of the Asset after exercising the Action. Example: the asset can only be translated into Greek.
Note: The Right Operand should should use [bcp47] language tags. This may be used to express [[plus] semantics.
media Media The media type in which the asset may be used. For example, electronic, print, advertising, marketing. This may be used to express [plus] semantics.
Media Context High level type of media setting the context for exercising the Action. Examples of right operands: the media types electronic, print, advertising, marketing.
Note: The used type should not be an IANA Media Type as they are focused on technical characteristica. This Left Operand may be used to express [plus] semantics.
meteredTime Metered Time The maximum period of metered usage time. For example “P30H” indicates a 30 hour period. Value must conform to [iso8601] as represented in [xmlschema11-2].
The period of metered time for exercising the Action.
Optionally the leftOpResource1 may be used to define an API URL for retrieving the metered time value. (POE-internal note: see proposal above this table.)
Examples: The asset must be displayed only for max 30 minutes; the asset must be displayed for at least 3 weeks.
Note: A more specific variant of this Left Operand may include an identified API which must be used for retrieving the metered time value. The retrieved value and the value of the Right Operand must conform to [iso8601] as represented in [xmlschema11-2].
payAmount Payment Amount The value of the financial payment Maybe used for compensation duties. The dataType attribute may be used to indicate the type of the value (eg decimal) and the unit attribute to indicate the currency.
The amount of a payment related to the Action of a Duty. Note: Can be used for compensation duties. The dataType attribute of the Right Operand may be used to indicate the type of the value (eg decimal) and the unit attribute to indicate the currency.
percentage Percentage The amount (as a percentage) of the action applicable to the asset. A numeric value from 0 to 100. For example, extract a maximum of 50% of the asset
Asset Percentage The amount of an Asset - as a percentage - used for exercising the Action.

Note: The value is a numeric value from 0 to 100.
Example: Extract less than or equal to of 50% of the asset.
product Product The specified Product or Service name. For example, images may only be reproduced in the XYZ Magazine. This may be used to express [plus] semantics;
Product or service for exercising the Action. Example: The Asset images may only be reproduced in the XYZ Magazine.
Note: This may be used to express [plus] semantics.
purpose Purpose Specification of a defined purpose applicable to the asset usage. For example, educational use. Purpose values from [p3p] may also be used.
Purpose for exercising the Action. Example: Educational use.
Note: Purpose values from [p3p] may be used.
recipient Receipient The party that receives the result of the Action on the Asset. The right operand must identify one or more specific parties or categories of party Victor: the ending point in the sentences (see it here) is irregular: sometimes missing, sometimes a period, sometimes a semicolon;
The party receiving the result of an exercised Action. Note: The Right Operand must identify one or more specific parties or category/ies of the party.
relativePosition Relative Position A point defined with reference to another position. For example, JPEG image must be positioned at the Top of the Page. This may be used to express [plus] semantics;
A point in space or time defined with coordinates relative to full measures the positioning of the Asset has to comply with for excersing the Action.. Example: May be used with a natural language contract saying the the upper left corner of a picture may be constrainted to a specific position of the canvas rendiering it.
NT of relativePosition
relativeSpatialPositionAsset
Relative Spatial Position Asset The relative spatial positions - expressed as percentages of full values - of four corners of a rectangle on a 2D-canvas or the eight corners of a cubiod in a 3D-space the Asset has to fit in after the Action.

Note: See the Left Operand absoluteSpatialPosition. This may be used to express [plus] semantics.
NT of relativePosition
relativeTemporalPositionAsset
Relative Temporal Position Asset The relative temporal positions - expressed as percentages of full values - in a media stream the Asset has to fit in after the Action. Example: The MP3 music file must be positioned between 45% and 50% of the temporal length of the stream Asset.
Note: See the Left Operand absoluteTemporalPosition.
relativeSize Relative Size The relative dimension that the Asset may be resized. For example, JPEG image resized to maximum of 200%. This may be used to express [plus] semantics;
Relative Size Asset Measure(s) of one or two axes for 2D-objects or measure(s) of one to tree axes for 3D-objects - expressed as percentages of full values - of the Asset after the Action. Example: The image can be resized in width to a maximum of 200%.
Note: See the Left Operand absoluteSize. This may be used to express [plus] semantics.
resolution Resolution The resolution at which the asset may be used. For example, may be printed at 1200dpi.
Rendition Resolution Resolution of the rendition of the Asset after exercising the Action. Example: the image can be printed at 1200dpi or less.
spatial Spatial A code representing a geospatial area. The code value and code source must be represented. For example, the [iso3166] Country Codes or the Getty Thesaurus of Geographic Names. A URI should be used to represent this value.
Geospatial A set of coordinates setting the borders of a geospatial area for exercising the Action. Note: The coordinates MUST include longitude and lattitue, they MAY include altitude and the geodatic datum. If the latter are ommitted the default values are the altitude of earth's surface at this location and the WGS 84 datum.
NT of spatial
namedGeoArea
Named Geospatial Area A named and identified geospatial area with defined borders for exercising the Action. Note: A code value for the area and source of the code must be presented in the Right Operand. For example, the [iso3166] Country Codes or the Getty Thesaurus of Geographic Names. A URI should be used to represent this value.
systemDevice System Device An identifiable computing system. For example, identifiable via the CPU or unique hardware address.
An identified computing system for exercising the Action. Example: The system device can be identified by a unique code created from the used hardware.
timeInterval Time Interval Recurring period of time in which the usage may be exercised. For example, “P7D” indicates a 7 day period. Value must conform to [iso8601] as represented in [xmlschema11-2].
Recurring Time Interval A recurring period of time after which the Action can or cannot be exercised again. Example: “P7D” indicates a 7 day period.
Note: The value of the Right Operand must conform to [iso8601] as represented in [xmlschema11-2].

Michael: definition still not perfect - what exactly should be the constraint: first the Action is taken (how many times?), this triggers the period. After the period the Action can be taken again (how many times?), does the first or last action trigger the period again?
version Version The scope of versions for the asset. For example, Single Paperback, or Multiple Issues. This may be used to express [plus] semantics.
The range of versions of the Asset which can or cannot be used for exercising the Action. Example: Single Paperback or Multiple Issues or version 2.0 or higher.
Note: This may be used to express [plus] semantics.
virtualLocation Virtual Location Specification of a digital locale. For example, an Internet domain or IP address range.
Virtual IT Communication Location An identified location of the IT communication space where the Action can or cannot be exercised. Example: An Internet domain or an IP address range.
Michael: this is a quite strong reinterpretation of the original term.

Comments

Comments made by Victor

1. Single specification of constraints Constraint is both defined in model and vocab. Víctor recommends defining Constraint only once (in the model).

2. Extended relations used for constraints Currently, Constraints express mathematical terms with two operands and one operator. One of these operands is currently implicit (supposed to be a context property from the real life). I propose: (a) Creating a property called leftOperand which can be specified (or omitted) and (b) Adding the following individuals of Operation: AND, OR, NOT. If we want to declare before 2017 in Italy...:

:c1 a odrl:Constraint ;
	odrl:operator odrl:lteq ;
	odrl:dateTime "2016-12-31"^^xsd:date.
:c2 a odrl:Constraint ;
	odrl:operator odrl:eq ;
	odrl:spatial <http://www.geonames.org/countries/IT/>

We could now combine them:

:c3 a odrl:Constraint ;
	odrl:operator odrl:AND ;
	odrl:rightOperand :c1;
	odrl:leftOperand :c2;

Or:

:c3 a odrl:Constraint ;
	odrl:operator odrl:OR ;
	odrl:rightOperand :c1;
	odrl:leftOperand :c2;

Operators do not need to be binary, if we define a property called “operand” instead of “leftOperand” and “rightOperand”.

3. One example of implementation that gets dynamically a value for evaluating a constraint Please remember the document describing how to use SPARQL for this purpose.

4. Why don't we explicitly define the domain/range of constraint names? This is actually the role of an ontology... Example:

absolutePosition: domain={target}, range={datetime | integer | URI#fragment}. Domains: ebook, audio, video 
purpose: domain={assignee}, range={string|URI}. Domains: all
...etc. the same for each of the terms

Comments made by Michael

  • Please see the document here.

Also, recall the RightsML processing model

  • Open issue: how to express multiple right operands. Examples: the multiple corners of an Absolute (Spatial) Position and similar Left Operands, a time frame for "may be used between 1 February 2017 and 28 February 2017".