Skip to content

Commit

Permalink
Merge pull request #450 from International-Data-Spaces-Association/fe…
Browse files Browse the repository at this point in the history
…ature/FDST41_extension

Feature/fdst41 extension
  • Loading branch information
Haydar Akyürek authored Nov 18, 2021
2 parents b1b88d8 + 7cdce62 commit d9c8776
Show file tree
Hide file tree
Showing 9 changed files with 239 additions and 15 deletions.
47 changes: 47 additions & 0 deletions codes/Action.ttl
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,12 @@ idsc:AGGREGATE_BY_PROVIDER
skos:note "This action is always evaluated at the provider side."@en ;
.

idsc:ADD
a ids:Action ;
rdfs:comment "This action modifies a number by adding a given value to it."@en ;
rdfs:label "add"@en ;
skos:note "This action modifies a number by adding a given value to it. The field to be modified and the given value are specified in the policy as idsc:JSONPATH/idsc:XPATH and idsc:OPERAND, respectively."@en ;
.

idsc:COMPENSATE
a ids:Action;
Expand All @@ -48,6 +54,13 @@ idsc:COMPENSATE
skos:note "This action must be evaluated both at the consumer and provider side. A compensation might be required before access is granted (provider-side), or each time the usage action is performed (consumer-side)."@en ;
.

idsc:DIVIDE
a ids:Action ;
rdfs:comment "This action modifies dividing something by something else."@en ;
rdfs:label "divide"@en ;
skos:note "This action modifies dividing something by something else. The field to be modified and the given value are specified in the policy as idsc:JSONPATH/idsc:XPATH and idsc:OPERAND, respectively."@en ;
.

idsc:DELETE
a ids:Action;
rdfs:label "delete"@en ;
Expand Down Expand Up @@ -75,6 +88,19 @@ idsc:GRANT_USE
skos:note "This action is always evaluated at the consumer side, at the moment a third party intends to access the resource as received by the original consumer."@en ;
.

idsc:HASH
a ids:Action ;
rdfs:comment "This action modifies a value by replacing it with a hash of the value."@en ;
rdfs:label "hash"@en ;
skos:note "This action modifies a value by replacing it with a hash of the value. The field to be modified and the hash algorithm are specified in the policy as idsc:JSONPATH/idsc:XPATH and idsc:HASH_ALGORITHM (eg. SHA256), respectively."@en ;
.

idsc:INCREMENT_COUNTER
a ids:Action;
rdfs:label "increment counter"@en;
rdfs:comment "An action to be used in the count usage policy where the idsc:COUNT left operand is used."@en ;
.

idsc:ENCRYPT
a ids:Action ;
rdfs:comment "The data artifact or parts of it are encrypted and can not be read by neither the ids:DataConsumer nor any other third party. The encryption algorithm might be specified by a constraint."@en ;
Expand All @@ -100,6 +126,13 @@ idsc:MODIFY
skos:note "This action is always evaluated at the consumer side. It corresponds to 'allow changes of the copied resource'."@en ;
.

idsc:MULTIPLY
a ids:Action ;
rdfs:comment "This action modifies a number by multiplying it to a given value."@en ;
rdfs:label "multiply"@en ;
skos:note "This action modifies a number by multiplying it to a given value. The field to be modified and the given value are specified in the policy as idsc:JSONPATH/idsc:XPATH and idsc:OPERAND, respectively."@en ;
.

idsc:NEXT_POLICY
a ids:Action ;
rdfs:comment "To forward the resource under the same policy. Implies a permission to distribute."@en ;
Expand Down Expand Up @@ -127,6 +160,20 @@ idsc:READ
skos:note "This action is always evaluated at the provider side. It corresponds to 'give access to a resource'."@en ;
.

idsc:REPLACE
a ids:Action ;
rdfs:comment "To replace some value."@en ;
rdfs:label "replace"@en ;
skos:note "This action modifies a value by replacing it with a given value. The field to be modified and the given value are specified in the policy as idsc:JSONPATH/idsc:XPATH and idsc:REPLACE_WITH, respectively."@en ;
.

idsc:SHUFFLE
a ids:Action ;
rdfs:comment "This action modifies a value by replacing it with an anagram of the value."@en ;
rdfs:label "shuffle"@en ;
skos:note "This action modifies a value by replacing it with an anagram of the value. The field to be modified is specified in the policy as idsc:JSONPATH/idsc:XPATH."@en ;
.

idsc:TRACK_PROVENANCE
a ids:Action ;
#odrl:implies ids:acceptTracking;
Expand Down
73 changes: 73 additions & 0 deletions codes/LeftOperand.ttl
Original file line number Diff line number Diff line change
Expand Up @@ -47,20 +47,45 @@ idsc:DELAY a ids:LeftOperand ;
rdfs:comment "Delay the action. Use idsc:DURATION_EQ, idsc:LONGER, idsc:LONGER_EQ, idsc:SHORTER_EQ, or idsc:SHORTER with datatype xsd:duration."@en ;
.

idsc:DATE_TIME a ids:LeftOperand ;
rdfs:label "date time"@en ;
rdfs:comment "The date and time of exercising the action of the Rule. Right operand value must be an xsd:dateTimeStamp."@en ;
.

#
# -----------
idsc:EVENT a ids:LeftOperand;
rdfs:label "current event"@en ;
rdfs:comment "The feature dimension regarding whether current events are happening. Does NOT refer 'events' as in real-time data, sensor observations, or Complex Event Processing but rather as 'World Cup 2018' or 'Hannover Trade Fair'."@en ;
.

idsc:HASH_ALGORITHM a ids:LeftOperand;
rdfs:label "hash algorithm"@en;
rdfs:comment "Indicate the hash value to be used, eg.SHA256."@en;
.

#
idsc:STATE a ids:LeftOperand;
rdfs:label "state"@en ;
rdfs:comment "Specifies whether an (external) resource is true/false, active/inactive, has happened/not happened, etc. Operator must be idsc:EQUALS with RightOperands of datatype xsd:anyURI. The referenced URI should point to a (remote) resource which returns a xsd:boolean value."@en ;
.

#
idsc:JSON_PATH a ids:LeftOperand;
rdfs:label "json path"@en ;
rdfs:comment "An expression that refers to a part of a JSON structured data."@en ;
.

idsc:XPATH a ids:LeftOperand;
rdfs:label "xpath"@en ;
rdfs:comment "An expression that refers to specific elements of an XML document."@en ;
.

#
idsc:REPLACE_WITH a ids:LeftOperand;
rdfs:label "repace with"@en ;
rdfs:comment "Specifies a new value for a specific field. The action must be idsc:REPLACE and the operator must be idsc:EQUALS."@en ;
.

# space
# -----
Expand All @@ -70,6 +95,10 @@ idsc:ABSOLUTE_SPATIAL_POSITION a ids:LeftOperand ;
rdfs:comment "The current geospatial position of the *consuming connector*. In case the connector only appears as a virtual entity, the physical location of the hosting server is referenced. Allowed operators are idsc:in. No other spatial operators (close to, north of, etc.) are currently allowed."@en ;
.

idsc:OPERAND a ids:LeftOperand ;
rdfs:label "operand"@en ;
rdfs:comment "To indicate the second operand value for the Actions idsc:ADD, idsc:MULTIPLY and idsc:DIVIDE."@en ;
.

# role-based
# ----------
Expand All @@ -78,13 +107,34 @@ idsc:USER a ids:LeftOperand ;
rdfs:comment "The user of a system at the *consuming connector* requesting access to a resource. Recommended usage for checking whether the user's role is sufficient for his/her desired action. Allowed operators are idsc:MEMBER_OF, idsc:HAS_MEMBERSHIP, idsc:HAS_SITE with a RightOperand referencing a (set of) acceptable organisations (ids:Participant),memberships, sites. Preferred behaviour is that the RightOperand dereferences to an endpoint hosting the required role information."@en ;
.

idsc:ROLE a ids:LeftOperand ;
rdfs:label "role"@en ;
rdfs:comment "As end user role, not the IDS participant type."@en ;
.

idsc:RECIPIENT a ids:LeftOperand ;
rdfs:label "recipient"@en ;
rdfs:comment "For example, the recipient of the notify/inform action."@en ;
.

#
idsc:PURPOSE a ids:LeftOperand;
skos:broader odrl:purpose;
rdfs:label "purpose"@en ;
rdfs:comment "A defined purpose for exercising the action of the Rule. Use with idsc:IN or idsc:SAME_AS and RDF Resources."@en ;
.

#
idsc:TARGET_POLICY a ids:LeftOperand;
rdfs:label "target policy"@en ;
rdfs:comment "In order to attach/address a policy to a contract. "@en ;
.

#
idsc:ARTIFACT_STATE a ids:LeftOperand;
rdfs:label "artifact state"@en ;
rdfs:comment "Suggested values exist in the Information Model : idsc:ANONYMIZED, idsc:PSEUDONYMIZED, idsc:ENCRYPTED, idsc:COMBINED. "@en ;
.

# numeric
# -------
Expand Down Expand Up @@ -117,6 +167,10 @@ idsc:SYSTEM a ids:LeftOperand;
rdfs:comment "Execution system or execution environment that is used to access the asset under consideration, usually an IDS Connector. The regarded data object should correspond to the IDS Connector class and its attributes. Must be used together with idsc:SAME_AS, idsc:NOT, idsc:HAS_STATE, idsc:IN, idsc:COVERED_BY idsc:INSIDE, idsc:SPATIAL_EQUALS, idsc:DISJOINT, or idsc:INSIDE_NETWORK operators. RightOperandReference must be a URI identifying the target system(s)."@en ;
.

idsc:SYSTEM_DEVICE a ids:LeftOperand;
rdfs:label "system device" ;
rdfs:comment "The ODRL definitions is “An identified computing system or computing device used for exercising the action of the Rule.” "@en ;
.

# interaction
# -----------
Expand All @@ -125,6 +179,25 @@ idsc:ENDPOINT a ids:LeftOperand;
rdfs:comment "Remote target for an action or information provider (PIP). Must be used together with idsc:IS or idsc:IN operators. RightOperand must be a xsd:anyURI or an URL which should point to an actually deployed endpoint. An example is a refinement of idsc:NOTIFY where idsc:REMOTE points to a Clearing House."@en ;
.

idsc:APPLICATION a ids:LeftOperand;
rdfs:label "application" ;
rdfs:comment "An application is a program or piece of software designed to fulfill a particular purpose. For example, a certified IDS App."@en ;
.

idsc:CONNECTOR a ids:LeftOperand;
rdfs:label "connector" ;
rdfs:comment "Accepts an IDS connector URI."@en ;
.

idsc:LOG_LEVEL a ids:LeftOperand;
rdfs:label "log level" ;
rdfs:comment "Accepted values: ON_DENY, ON_ALLOW, ON_DUTY_EXERCISED, ON_ACTION_OPERATED."@en ;
.

idsc:NOTIFICATION_LEVEL a ids:LeftOperand;
rdfs:label "notification level" ;
rdfs:comment "Similar to the idsc:LOG_LEVEL."@en ;
.

# attribute
# ---------
Expand Down
9 changes: 9 additions & 0 deletions model/contract/Action.ttl
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ ids:Action rdfs:subClassOf odrl:Action;
rdfs:comment "A thing one might be permitted to do or prohibited from doing to something."@en;
.


# Properties
# ----------

Expand All @@ -35,3 +36,11 @@ ids:includedIn
rdfs:range ids:Action;
rdfs:comment "The subject transitively asserts the object Action."@en ;
.

ids:pxpEndpoint
a owl:ObjectProperty;
rdfs:label "has PXP endpoint"@en;
rdfs:domain ids:Action;
rdfs:range ids:PXP ;
rdfs:comment "The reference to the PXP which operates a specific action, URI or reference to an associated PXP interface."@en;
.
14 changes: 8 additions & 6 deletions model/contract/Constraint.ttl
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ ids:LogicalConstraint rdfs:subClassOf ids:AbstractConstraint ;
rdfs:comment "The class of Logical Constraints that restrict a Rule. A Logical Constraints is a collection of Constraints, related with each other through the ids:operand property."@en;
.


# Properties
# ----------

Expand Down Expand Up @@ -68,12 +69,6 @@ ids:unit rdfs:subPropertyOf odrl:unit;
rdfs:range xsd:anyURI ;
rdfs:comment "The unit of measurement of a Constraint."@en.

ids:pipEndpoint a owl:ObjectProperty;
rdfs:label "has PIP endpoint"@en;
rdfs:domain ids:Constraint;
rdfs:range xsd:anyURI ;
rdfs:comment "The reference to the endpoint which provides the current state of the feature of interest (as referrenced by the leftOperand) can be retrieved."@en
.

ids:and rdfs:subPropertyOf odrl:and;
a owl:ObjectProperty;
Expand Down Expand Up @@ -101,3 +96,10 @@ ids:xone rdfs:subPropertyOf odrl:xone;
rdfs:range ids:Constraint;
rdfs:comment "The 'xone' operand connects a rdf:List of Constraints. Only one Constraint, not more, of an 'xone' relation must be satisfied. Only one of ids:and, ids:or, or ids:xone can be used for a specific ids:LogicalConstraint!"@en ;
.

ids:pipEndpoint a owl:ObjectProperty;
rdfs:label "has PIP endpoint"@en;
rdfs:domain ids:Constraint;
rdfs:range ids:PIP ;
rdfs:comment "The reference to the PIP which provides the current state of the feature of interest (as referrenced by the leftOperand) can be retrieved."@en;
.
44 changes: 44 additions & 0 deletions model/contract/UsageControlComponent.ttl
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix ids: <https://w3id.org/idsa/core/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

# Classes
# -------

ids:UsageControlComponent
a owl:Class;
rdfs:label "Usage Control Component"@en ;
rdfs:comment "Defined usage control component (i.e. PIP, PXP, etc.) in the IDS."@en;
.

ids:PXP
a owl:Class;
rdfs:subClassOf ids:UsageControlComponent;
rdfs:label "policy execution point"@en;
rdfs:comment "The reference to the PXP that operates a specific action, URI or reference to an associated PXP interface."@en;
.

ids:PIP
a owl:Class;
rdfs:subClassOf ids:UsageControlComponent;
rdfs:label "policy information point"@en;
rdfs:comment "Refers to the PIP that provides a specific piece of information (URI/reference to an associated PIP interface). "@en;
.

# Properties
# ----------

ids:interfaceDescription a owl:ObjectProperty;
rdfs:label "interface description"@en;
rdfs:domain ids:UsageControlComponent;
rdfs:range xsd:anyURI;
rdfs:comment "The reference to a URI that provides the interface description of a usage control endpoint."@en;
.

ids:endpointURI a owl:ObjectProperty;
rdfs:label "endpoint URI"@en;
rdfs:domain ids:UsageControlComponent;
rdfs:range xsd:anyURI;
rdfs:comment "The reference to a URI that expresses an exact endpoint of that usage control endpoint."@en;
.
3 changes: 2 additions & 1 deletion model/infrastructure/Catalog.ttl
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,15 @@
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix ids: <https://w3id.org/idsa/core/> .
@prefix odrl: <http://www.w3.org/ns/odrl/2/> .


# Classes
# -------

ids:Catalog
a owl:Class;
rdfs:subClassOf dcat:Catalog;
rdfs:subClassOf dcat:Catalog, odrl:AssetCollection;

rdfs:label "Catalog"@en ;
rdfs:comment "Class that represents (distributable) Catalogs."@en ;
Expand Down
9 changes: 9 additions & 0 deletions testing/contract/ActionShape.ttl
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,13 @@ shapes:ActionShape
sh:message "<https://raw.githubusercontent.com/International-Data-Spaces-Association/InformationModel/master/testing/contract/ActionShape.ttl> (ActionShape): An ids:includedIn property must not have more than one point from an ids:Action to an ids:Action."@en ;
] ;

sh:property [
a sh:PropertyShape ;
sh:path ids:pxpEndpoint ;
sh:class ids:PXP ;
sh:minCount 0 ;
sh:maxCount 1 ;
sh:severity sh:Violation ;
sh:message "<https://raw.githubusercontent.com/International-Data-Spaces-Association/InformationModel/master/testing/contract/ActionShape.ttl> (ActionShape): An ids:pxpEndpoint property must have an ids:Action to an ids:PXP."@en ;
] ;
.
Loading

0 comments on commit d9c8776

Please sign in to comment.