Copyright © 2013 OSCAF® The ontologies are made available under the terms of OSCAF software license
These specifications introduce the DCON Ontology and its vocabulary.
This document arose from the work done in the di.me project.
The DRMO vocabulary allows users to express rules in terms of information elements or context/presence elements, and their attributes. Thus, both classes and instances defined by other ontologies, e.g., pimo:Person to denote any person, or a pimo:Person instance to denote a specific person; nfo:Document to denote any document, or a specific instance; any pimo:Person instance attached to the DCON Live Context through dcon:nearbyPeers, or a specific instance to denote that a specific person needs to be nearby. When wrapping a class within a DRMO rule, one can also places constraints on its attributes, e.g., any person who is a member of (pimo:memberOf) a group; any document including a term in its title (nie:title); any nearby person with a low trust level (nao:trustLevel).
In order to wrap Classes or Instances as DRMO rules, they are typed as drmo:Conditions. Multiple conditions can be expressed in an ordered or unordered way. Condition operators include 'and', 'or', or time ordering using the 'succeeded by' and 'preceded' by operators. Conditions can also be negated. Therefore DRMO rules can be classified as production rules with the added value of temporal constraints.
The Rule Management Ontology concepts are inspired by the Event-Condition-Action (ECA) pattern. The ECA pattern is used in event-driven architectures, where the event specifies what triggers the rule, what conditions to specify, and what actions are executed, unlike in our case where DRMO rules do not expect any transaction event signals (such as 'on update' or 'on delete') to invoke the rule. The DRMO is based on the following rule pattern: where R represents a rule that consists of a combination of conditions cm, triggering one or more resulting actions an. cm consists of a number of constraints cmn, possibly recursive. In theory, constraints can be applied recursively, thus allowing an infinite number of embedded conditions. For practical reasons, we expect applications of DRMO to set a limit on the amount of embedded conditions. More information can be found in a related publication by DEBATTISTA.
Superclasses | rdfs:Resource |
Subclasses | -- |
In domain of: | drmo:hasObject, drmo:hasResourceType, drmo:hasSubject |
In range of: | drmo:triggers |
Description | Defines the action(s) to be executed if a rule's conditions are satisfied. The Action class specifies an action instance (e.g. 'Notify'), whose semantics are understood by the system and result in specific actions being extracted. This corresponds to the consequent part of a production rule. |
Superclasses | rdfs:Resource |
Subclasses | drmo:ResourceCreated, drmo:ResourceDeleted, drmo:ResourceModified, drmo:SituationActivated |
In domain of: | drmo:and, drmo:hasConstraint, drmo:hasConstraintOnGraph, drmo:hasConstraintOnObject, drmo:hasConstraintOnProperty, drmo:hasConstraintOnSubject, drmo:hasNegation, drmo:hasPropertyOperator, drmo:or, drmo:precededBy, drmo:succeededBy |
In range of: | drmo:and, drmo:hasConstraint, drmo:isComposedOf, drmo:or, drmo:precededBy, drmo:succeededBy |
Description | Defines condition blocks for rules on which queries and logic tests are performed. Each condition can have constraints (also instances of drmo:Condition) recursively. Multiple conditions in a rule are combined together using a number of logical and event operators. This class can be extended to allow the representation of condition templates, specific to the system's needs. |
Superclasses | drmo:Condition, rdfs:Resource |
Subclasses | -- |
In domain of: | -- |
In range of: | -- |
Description | Describes a condition which is triggered by a newly created resource in the PIM. |
Superclasses | drmo:Condition, rdfs:Resource |
Subclasses | -- |
In domain of: | -- |
In range of: | -- |
Description | Describes a condition which is triggered by a deletion of a PIM resource. |
Superclasses | drmo:Condition, rdfs:Resource |
Subclasses | drmo:SituationActivated |
In domain of: | -- |
In range of: | -- |
Description | Describes a condition which is triggered by a modification to a PIM resource. |
Superclasses | rdfs:Resource |
Subclasses | -- |
In domain of: | drmo:isComposedOf, drmo:triggers |
In range of: | -- |
Description | Defines a declarative rule. A rule instance joins (drmo:isComposedOf) a number of antecedents (condition instances) with a number of consequent (actions) |
Superclasses | drmo:Condition, rdfs:Resource, drmo:ResourceModified |
Subclasses | -- |
In domain of: | -- |
In range of: | -- |
Description | Describes a condition which is activated by a change in the user's situation. |
Type | rdf:Property, rdfs:Resource |
Domain | drmo:Condition |
Range | drmo:Condition |
Superproperties | -- |
Subproperties | -- |
Description | Combine TWO condition blocks together with the AND operator. Both conditions have to occur independent of time and order for the actions to trigger. |
Type | rdf:Property, rdfs:Resource |
Domain | drmo:Condition |
Range | drmo:Condition |
Superproperties | -- |
Subproperties | -- |
Description | Defines the constraints (which are of type drmo:Condition) which make up a rule's condition. This property is a subproperty of drmo:hasConstraintOnSubject, such that its range is restricted to a drmo:Condition. What this `restriction' really means is that a drmo:Condition is expected both as the domain and the range for this property. This has the effect of creating nested constraints whereby the referred condition (range defined for this property) is itself another condition. Therefore, the condition at the range of this property needs to be resolved first, before being able to apply this constraint on the condition defined in the domain. Thus the difference between this property and its superproperty is that whereas the latter will look for triples (subject, predicate, object) having one specific item (which is simply the range of drmo:hasConstraintOnSubject) as its subject, this property might result in multiple queries each of which match a different item to its subject. The pattern to retrieve these item(s) is defined by the condition that is in the range of this property, i.e., it is defined by another set of drmo:hasConstraintOnSubject or drmo:hasConstraintOnObject and a corresponding drmo:hasConstraintOnProperty. |
Type | rdf:Property, rdfs:Resource |
Domain | drmo:Condition |
Range | x:rdfg-1Graph |
Superproperties | -- |
Subproperties | -- |
Description | This property allow a condition test to be conducted on a specified Graph. |
Type | rdf:Property, rdfs:Resource |
Domain | drmo:Condition |
Range | rdfs:Resource |
Superproperties | -- |
Subproperties | -- |
Description | Places a constraint on a condition (i.e., the domain defined for this property), such that a query can be constructed to look for an RDF triple having: i) the condition itself (i.e., the domain defined for this property) as its subject, ii) the associated constrained property (defined by drmo:hasConstraintOnProperty) as its property, iii) and the referred item (i.e. the range defined for this property) as its object. This property cannot coincide with the property hasConstraintOnSubject. |
Type | rdf:Property, rdfs:Resource |
Domain | drmo:Condition |
Range | rdf:Property |
Superproperties | -- |
Subproperties | -- |
Description | Places a constraint on a condition (i.e., the domain defined for this property), such that the referred property (i.e., the range defined for this property) must have a specific value. The restricted value is defined by the use of either drmo:hasConstraintOnSubject or drmo:hasConstraintOnObject, which therefore must always be used in conjunction with this property. The constrained property in combination with the constrained subject/object are then used to query triples matching this pattern. |
Type | rdf:Property, rdfs:Resource |
Domain | drmo:Condition |
Range | rdfs:Resource |
Superproperties | -- |
Subproperties | -- |
Description | Places a constraint on a condition (i.e., the domain defined for this property), such that a query can be constructed to look for an RDF triple having: i) the referred item (i.e., range defined for this property) as its subject, ii) the associated constrained property (defined by drmo:hasConstraintOnProperty) as its property, iii) and the condition (i.e., domain defined for this property) as its object. This property cannot coincide with the property hasConstraintOnObject. |
Type | rdf:Property, rdfs:Resource |
Domain | drmo:Condition |
Range | xsd:boolean |
Maximal cardinality | 1 |
Superproperties | -- |
Subproperties | -- |
Description | A condition block can be negated with this property. |
Type | rdf:Property, rdfs:Resource |
Domain | drmo:Action |
Range | rdfs:Resource |
Superproperties | -- |
Subproperties | -- |
Description | Specifies the parameters needed to be passed to the executed actions. |
Type | rdf:Property, rdfs:Resource |
Domain | drmo:Condition |
Range | xsd:string |
Maximal cardinality | 1 |
Superproperties | -- |
Subproperties | -- |
Description | Defines the relational operator for the condition value |
Type | rdf:Property, rdfs:Resource |
Domain | drmo:Action |
Range | rdfs:Resource |
Superproperties | -- |
Subproperties | -- |
Description | This property allows the user to define the resource type of the condition blocks. This is the RDF type that the triples look for when attempting to match conditions. For example, a rule triggered when a person is nearby, will have a condition of type pimo:Person. |
Type | rdf:Property, rdfs:Resource |
Domain | drmo:Action |
Range | rdfs:Resource |
Superproperties | -- |
Subproperties | -- |
Description | Specifies the received of the action. |
Type | rdf:Property, rdfs:Resource |
Domain | drmo:Rule |
Range | drmo:Condition |
Superproperties | -- |
Subproperties | -- |
Description | The isComposedOf property defines the condition blocks of a Rule |
Type | rdf:Property, rdfs:Resource |
Domain | drmo:Condition |
Range | drmo:Condition |
Superproperties | -- |
Subproperties | -- |
Description | Combine TWO condition blocks together with the OR operator. For the rule to trigger its actions, only one of the conditions have to be true at any given time. |
Type | rdf:Property, rdfs:Resource, nrl:TransitiveProperty |
Domain | drmo:Condition |
Range | drmo:Condition |
Inverse property | drmo:succeededBy |
Superproperties | -- |
Subproperties | -- |
Description | TWO conditions (A and B) may be composed together using the precededBy Property. If Condition B is preceded by Condition A, the actions are only triggered if Condition A happens at any time before Condition B. This is the inverse property of drmo:succeededBy. |
Type | rdf:Property, rdfs:Resource, nrl:TransitiveProperty |
Domain | drmo:Condition |
Range | drmo:Condition |
Inverse property | drmo:precededBy |
Superproperties | -- |
Subproperties | -- |
Description | TWO conditions (A and B) may be composed together using the succeededBy Property. If Condition A is succeeded by Condition B, the actions are only triggered if Condition B happens at any time after Condition A. This is the inverse property of drmo:precededBy. |
Type | rdf:Property, rdfs:Resource |
Domain | drmo:Rule |
Range | drmo:Action |
Minimal cardinality | 1 |
Superproperties | -- |
Subproperties | -- |
Description | The triggers property defines the action instances which will be triggered if rule's conditions are satisfied. |