JeromeDL Logo

Extensible Access Control (EAC) Ontology Specification

Specification Document - 01 July 2008

Last update:
$Date: 30/04/2008 11:45:41 $
Revision:
TODO: current implementation points to a literal not a resource. It should be changed to stay aligned with the ontology in the future
Authors:
Sebastian Ryszard Kruk - DERI

Creative Commons LicenseThis work is licensed under a Creative Commons License. This copyright applies to the Extensible Access Control (EAC) Ontology Speecification and accompanying documentation and does not apply to JeromeDL data formats, ontology terms, or technology.


Abstract

The EAC ontology is used at the bottom layer in JeromeDL. It is used to describe access controls to a digital objects repository.


Status of This Document

NOTE: This section describes the status of this document at the time of its publication. Other documents may supersede this document.

Authors welcome suggestions on the EAC ontology and this document. Please send comments to the JeromeDL developers list; public archives are available. This document may be updated or added to based on implementation experience, but no commitment is made by the authors regarding future updates.


Table of Contents


Introduction

Modern digital library systems not only store bibliographic metadata but also an electronic representation of the content itself. Depending on its type, content typically follows some structure, e.g. we can decompose a book into chapters and provide individual descriptions for each chapter with information about re- lations between them. Including structural concepts in ontologies and using these concepts in metadata descriptions provides a universal layer for metadata and content retrieval. It allows to extend the structure description with new concepts, without violating the integrity of existing data. The application of ontologies for structural descriptions enables uniform access to structural and bibliographical information, and delivers new search and discovery possibilities, as described in Kruk et al.

For more information about JeromeDL, see the project website

The XML Namespace URI that MUST be used by implementations of this specification is:

EAC Ontology Index

An alphabetical index of EAC terms, by class (categories or types) and by property. All the terms are hyperlinked to their detailed description for quick reference.

Classes: Action, ActionAccess, ActionCreate, ActionModify, ActionRemove, Condition, ConditionType, License, LicensedEntity, LicensedResource, LicensedService, PropagationState, Rule,

Properties: allowsForAction, deniesForAction, hasCollectionOrder, hasCondition, hasConditionType, hasInheritedLicense, hasLicense, hasPropagationState, hasRule, isActive, isConjunctive, isDeniedFirst, sameAs,

EAC Ontology Overview

The EAC ontology can describe individual library resources in terms of their physical and logical structure. It allows for expressing how the electronic representation of a resource is organized, what logical parts it consists of, what individual digital objects it is composed of and how these objects are related to each other (see Picture 1.1).
Structure ontology
Picture 1.1 - JeromeDL structure ontology overview

Standards

It is important to understand that the EAC ontology as specified in this document is not a standard in the sense of ISO Standardisation, or that associated with W3C Process.

JeromeDL ontology depends heavily on W3C's standards work, specifically on XML, XML Namespaces, RDF, and OWL.

This specification contributes an ontology, "EAC Ontology", to the Semantic Web, specifying it using W3C's Resource Description Framework (RDF). As such, JeromeDL adopts by reference both a syntax (using XML), a data model (RDF graphs) and a mathematically grounded definition for the rules that underpin the RDF design.

EAC cross-reference: Classes and Properties

EAC ontology introduces the following classes and properties.

Class: eac:Action

URI: http://www.jeromedl.org/eac/0.1/Action

- Action is an abstract concept which allows to define basic actions identified within certain applications. In the case of REST services these would be the basic HTTP methods: access (GET), modification (POST), creation (PUT), and removal (DELETE). Each Action is computed as a conjunction or sum (depending on the value of the is conjunction property) of Condition s.

in-domain-of:
eac:hasCondition
eac:isConjunctive
in-range-of:
eac:allowsForAction

[back to top]

Class: eac:ActionAccess

URI: http://www.jeromedl.org/eac/0.1/ActionAccess

- FORMER: http://www.jeromedl.org/structure#ActionAccess

sub-class-of:
eac:Action

[back to top]

Class: eac:ActionCreate

URI: http://www.jeromedl.org/eac/0.1/ActionCreate

- FORMER: http://www.jeromedl.org/structure#ActionCreate

sub-class-of:
eac:Action

[back to top]

Class: eac:ActionModify

URI: http://www.jeromedl.org/eac/0.1/ActionModify

- FORMER: http://www.jeromedl.org/structure#ActionModify

sub-class-of:
eac:Action

[back to top]

Class: eac:ActionRemove

URI: http://www.jeromedl.org/eac/0.1/ActionRemove

- FORMER: http://www.jeromedl.org/structure#ActionRemove

sub-class-of:
eac:Action

[back to top]

Class: eac:Condition

URI: http://www.jeromedl.org/eac/0.1/Condition

- Condition allows to define an atomic policy condition, which aggregates a number of Rule s. The result of computing the policy condition is a conjunc- tion of results of atomic rules. EAC Condition can be organized in hierarchical structures. It allows to define abstract policies which are conjunction of other policies.

in-domain-of:
eac:isActive
eac:hasConditionType
eac:hasCollectionOrder
eac:hasRule
eac:isConjunctive
in-range-of:
eac:hasCondition

[back to top]

Class: eac:ConditionType

URI: http://www.jeromedl.org/eac/0.1/ConditionType

-

[back to top]

Class: eac:License

URI: http://www.jeromedl.org/eac/0.1/License

- License is the most important concept in the EAC model. It aggregates positive (al lows for performing certain actions) and negative (denies for per- forming certain actions) conditions for each type of action. A single license can be assigned to many Licensed Entities. It is validated by the EAC engine (see Sec. 5) against conditions defined in the licenses for the actions to be performed on the given entity. The license can define whether the negative (deny first = true) or positive (deny first = false) constraints should be computed first.

in-domain-of:
eac:isDeniedFirst
eac:allowsForAction
in-range-of:
eac:hasLicense

[back to top]

Class: eac:LicensedEntity

URI: http://www.jeromedl.org/eac/0.1/LicensedEntity

Licensed Entity - Licensed Entity is an abstract concept of a resource (Licensed Resource ) or a service (Licensed Service ) to which a license can be applied. The Licensed Resources, following the aggregation capabilities of semantic digital libraries [5], allows to pass the license down to the sub-components of the given resource. The way in which the license is applied to sub-components, and in which it is computed for the resources and its sub-components, is defined by the Propagation State of the license.

in-domain-of:
eac:hasPropagationState
eac:hasLicense

[back to top]

Class: eac:LicensedResource

URI: http://www.jeromedl.org/eac/0.1/LicensedResource

Licensed Resource - Represents all resources which can have licenses attached to them

sub-class-of:
eac:LicensedEntity
in-domain-of:
eac:hasInheritedLicense
eac:sameAs

[back to top]

Class: eac:LicensedService

URI: http://www.jeromedl.org/eac/0.1/LicensedService

Licensed Service - Represents services which can have a license attached to them. It is preferable that we use REST services for that matter.

sub-class-of:
eac:LicensedEntity

[back to top]

Class: eac:PropagationState

URI: http://www.jeromedl.org/eac/0.1/PropagationState

Propagation State - Propagation State Identify how the license is applied to the Licensed Re- sources, and how it propagates to sub-components of the given resource. Pos- sible states include: applying to the give resource only (Resource Only ), to the resource and only direct sub-components (With Children ), or to the resource and any sub-components (With Descendants ); it is also possible to apply the license to the direct (Only Children ) or all (Only Descendants ) sub-components, but not the the resource itself.

in-range-of:
eac:hasPropagationState

[back to top]

Class: eac:Rule

URI: http://www.jeromedl.org/eac/0.1/Rule

- Rule defines an atomic rule, which computed against give resource and within certain context returns boolean value, e.g., IP network address range, a part of a social network, maximum usage count.

in-range-of:
eac:hasRule

[back to top]

Property: eac:allowsForAction

URI: http://www.jeromedl.org/eac/0.1/allowsForAction

- FORMER: http://www.jeromedl.org/structure#allowAction

OWL Type:
ObjectProperty
OWL Type:
InverseFunctionalProperty (uniquely identifying property)
Domain:
eac:License
Range:
eac:Action

[back to top]

Property: eac:deniesForAction

URI: http://www.jeromedl.org/eac/0.1/deniesForAction

- FORMER: http://www.jeromedl.org/structure#denyAction

OWL Type:
ObjectProperty

[back to top]

Property: eac:hasCollectionOrder

URI: http://www.jeromedl.org/eac/0.1/hasCollectionOrder

- Defines the position at which the EAC Condition is hold in the hierarchy of conditions tree (in fact it tells the ordering number between peer EAC conditions)

OWL Type:
DatatypeProperty
Domain:
eac:Condition
Range:
xsd:string

[back to top]

Property: eac:hasCondition

URI: http://www.jeromedl.org/eac/0.1/hasCondition

- FORMER: http://www.jeromedl.org/structure#hasProtectionDefinition

OWL Type:
ObjectProperty
Domain:
eac:Action
Range:
eac:Condition

[back to top]

Property: eac:hasConditionType

URI: http://www.jeromedl.org/eac/0.1/hasConditionType

- FORMER: http://www.jeromedl.org/structure#drmType

OWL Type:
DatatypeProperty
Domain:
eac:Condition
Range:
xsd:string

[back to top]

Property: eac:hasInheritedLicense

URI: http://www.jeromedl.org/eac/0.1/hasInheritedLicense

- Binds sub-resource in aggregation view to the license inherited from the upper resource

OWL Type:
ObjectProperty
sub-property-of:
eac:hasLicense
Domain:
eac:LicensedResource

[back to top]

Property: eac:hasLicense

URI: http://www.jeromedl.org/eac/0.1/hasLicense

- Binds licensed entity to the license

OWL Type:
ObjectProperty
Domain:
eac:LicensedEntity
Range:
eac:License

[back to top]

Property: eac:hasPropagationState

URI: http://www.jeromedl.org/eac/0.1/hasPropagationState

- FORMER: http://www.jeromedl.org/structure#licensePropagation

OWL Type:
ObjectProperty
Domain:
eac:LicensedEntity
Range:
eac:PropagationState

[back to top]

Property: eac:hasRule

URI: http://www.jeromedl.org/eac/0.1/hasRule

- Defines one of many rules that create a condition.

OWL Type:
ObjectProperty
OWL Type:
InverseFunctionalProperty (uniquely identifying property)
Domain:
eac:Condition
Range:
eac:Rule

[back to top]

Property: eac:isActive

URI: http://www.jeromedl.org/eac/0.1/isActive

- Determines if the eac condition is currently active or not

OWL Type:
DatatypeProperty
Domain:
eac:Condition
Range:
xsd:boolean

[back to top]

Property: eac:isConjunctive

URI: http://www.jeromedl.org/eac/0.1/isConjunctive

- Tells whether the Action specification should fulfill all conditions or just some

OWL Type:
DatatypeProperty
Domain:
eac:Action
eac:Condition
Range:
xsd:boolean

[back to top]

Property: eac:isDeniedFirst

URI: http://www.jeromedl.org/eac/0.1/isDeniedFirst

- FORMER: http://www.jeromedl.org/structure#isDenyFirst

OWL Type:
DatatypeProperty
Domain:
eac:License
Range:
xsd:boolean

[back to top]

Property: eac:sameAs

URI: http://www.jeromedl.org/eac/0.1/sameAs

- deprecated property; used to indicate relations between real chapters (as handled in JeromeDL prior-2.1) and licence entities of chapters (as handled in JeromeDL 2.1+). It will probably become absolute once we will remove bNodes from the aggregation model in JeromeDL.

OWL Type:
DatatypeProperty
Domain:
eac:LicensedResource
Range:
xsd:string

[back to top]

References

Change Log