eac

Extensible Access Control (EAC) Ontology Specification

The EAC ontology (see http://www.jeromedl.org/eac/1.1/ for more information) is used at the bottom layer in JeromeDL. It is used to describe access controls to a digital objects repository.

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 relations between them. Including structural concepts in ontologies and using these concepts in metadata descriptions provides a universal layer for metadata and content retrieval. The structure description can be extended 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 (221)

EAC Ontology Index

An alphabetical index of EAC terms, by class (categories or types) and by property:

Classes:

Properties:

EAC cross-reference: Classes and Properties

EAC ontology introduces the following classes and properties.

Class: eac:Action

The action concept defines 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:allowsFor

Class: eac:ActionAccess

Defines rules for accessing resources or invoking GET services.

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

sub-class-of:
eac:Action

Class: eac:ActionCreate

Defines rules for creating resources or invoking PUT services.

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

sub-class-of:
eac:Action

Class: eac:ActionModify

Defines rules for modifying resources or invoking POST services.

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

sub-class-of:
eac:Action

Class: eac:ActionRemove

Defines rules for deleting resources or invoking DELETE services.

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

sub-class-of:
eac:Action

Class: foaf:Agent

Defined in the FOAF ontology (http://xmlns.com/foaf/0.1/Agent)

Class: eac:Condition

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

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

Class: eac:ConditionType

Identifies type of a condition.

Class: eac: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:allowsFor
in-range-of:
eac:hasLicense

Class: eac:Licensee

Agent/person who obtained the license.

sub-class-of:
foaf:Agent, eac:TriggerListener
in-range-of:
eac:belongsTo

Class: eac:Licensor

Agent/person who provided the license.

sub-class-of:
foaf:Agent, eac:TriggerListener
in-range-of:
eac:issuedBy

Class: eac:LicensedEntity

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, support passing 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

Class: eac:LicensedResource

Represents all resources which can have licenses attached to them

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

Class: eac:LicensedService

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

Class: eac:PropagationState

Propagation State Identify how the license is applied to the Licensed Resources, and how it propagates to sub-components of the given resource. Possible 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

Class: eac: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

Class: eac:TriggerEvent

An event that is passed from the Triggering Source (e.g. Licensed Entity) through Triggering Bus (communication channel) and affects the Triggering Listener (e.g., License).

Class: eac:TriggerListener

An object that can accept Triggering Event.

super-class-of:
eac:License, eac:Licensee, eac:Licensor

Class: eac:TriggerSource

Source that is capable of emitting Triggering Events.

super-class-of:
eac:Condition, eac:LicensedEntity

Property: eac:allowsFor

Binds positive rules for accessing, modifying, creating or removing resources (or services).

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

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

Property: eac:belongsTo

To whom the license belongs (Licensee)

OWL Type:
ObjectProperty
OWL Type:
FunctionalProperty
Domain:
eac:License
Range:
eac:Licensee

Property: eac:deniesForAction

Binds negative rules for accessing, modifying, creating or removing resources (or services).

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

OWL Type:
ObjectProperty

Property: eac:atPosition

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:int

Property: eac:hasCondition

Binds atomic specifications of rules to action access control definitions.

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

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

Property: eac:hasConditionType

Identifies types of conditions (recognized and supported by plugins of EAC module)

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

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

Property: eac: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

Property: eac:hasLicense

Binds licensed entity to the license

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

Property: eac:hasPropagationState

Defines how the license specification is propagated through the aggregation of resources (book → chapters → pages)

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

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

Property: eac: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

Property: eac:isActive

Determines if the EAC condition is currently active or not

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

Property: eac:isConjunctive

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

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

Property: eac:isDeniedFirst

Defines if the negative conditions should be evaluated before the positive conditions

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

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

Property: eac:issuedBy

By whom the licenses was issued (Licensor)

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

OWL Type:
ObjectProperty
OWL Type:
FunctionalProperty
Domain:
eac:License
Range:
eac:Licensor

Property: eac:sameAs

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

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