Skip to content

Commit 246cf53

Browse files
committed
chore: cleanup & align n3 rules a bit
Signed-off-by: Wouter Termont <wouter.termont@ugent.be>
1 parent ba3defa commit 246cf53

2 files changed

Lines changed: 63 additions & 51 deletions

File tree

packages/uma/config/rules/n3/crud.n3

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
@prefix string: <http://www.w3.org/2000/10/swap/string#> .
77
@prefix list: <http://www.w3.org/2000/10/swap/list#> .
88

9-
109
# Read ODRL rule
1110
{
1211
?permission a odrl:Permission;
@@ -15,9 +14,8 @@
1514
# odrl:assigner ?resourceOwner ;
1615
odrl:assignee ?requestedParty.
1716

18-
?action list:in (odrl:use odrl:read) . # multiple options
17+
?action list:in (odrl:use odrl:read) . # multiple options
1918

20-
?SCOPE log:notIncludes { ?permission odrl:constraint ?anything }. # No odrl:constraints may be present
2119

2220
# context of a request
2321
?context
@@ -29,6 +27,10 @@
2927
:uuid5 log:uuid ?uuidStringdataUsagePolicyExecution.
3028
( "urn:uuid:" ?uuidStringdataUsagePolicyExecution) string:concatenation ?urnUuidStringdataUsagePolicyExecution.
3129
?dataUsagePolicyExecution log:uri ?urnUuidStringdataUsagePolicyExecution .
30+
31+
# Constraint checking
32+
# No odrl:constraints may be present
33+
?SCOPE log:notIncludes { ?permission odrl:constraint ?anything }.
3234
} =>
3335
{
3436
?dataUsagePolicyExecution a fno:Execution;
@@ -46,8 +48,6 @@
4648

4749
?action list:in (odrl:use odrl:modify). # multiple options
4850

49-
?SCOPE log:notIncludes { ?permission odrl:constraint ?anything }. # No odrl:constraints may be present
50-
5151
# context of a request
5252
?context
5353
# :resourceOwner ?resourceOwner;
@@ -58,14 +58,17 @@
5858
:uuid6 log:uuid ?uuidStringdataUsagePolicyExecution.
5959
( "urn:uuid:" ?uuidStringdataUsagePolicyExecution) string:concatenation ?urnUuidStringdataUsagePolicyExecution.
6060
?dataUsagePolicyExecution log:uri ?urnUuidStringdataUsagePolicyExecution .
61+
62+
# Constraint checking
63+
# No odrl:constraints may be present
64+
?SCOPE log:notIncludes { ?permission odrl:constraint ?anything }.
6165
} =>
6266
{
6367
?dataUsagePolicyExecution a fno:Execution;
6468
fno:executes <http://example.org/dataUsage> ;
6569
:accessModesAllowed <urn:example:css:modes:append>.
6670
}.
6771

68-
6972
# Write ODRL Rule
7073
{
7174
?permission a odrl:Permission;
@@ -74,9 +77,7 @@
7477
# odrl:assigner ?resourceOwner ;
7578
odrl:assignee ?requestedParty.
7679

77-
?action list:in (odrl:use odrl:modify). # multiple options
78-
79-
?SCOPE log:notIncludes { ?permission odrl:constraint ?anything }. # No odrl:constraints may be present
80+
?action list:in (odrl:use odrl:modify). # multiple options
8081

8182
# context of a request
8283
?context
@@ -88,15 +89,17 @@
8889
:uuid6 log:uuid ?uuidStringdataUsagePolicyExecution.
8990
( "urn:uuid:" ?uuidStringdataUsagePolicyExecution) string:concatenation ?urnUuidStringdataUsagePolicyExecution.
9091
?dataUsagePolicyExecution log:uri ?urnUuidStringdataUsagePolicyExecution .
92+
93+
# Constraint checking
94+
# No odrl:constraints may be present
95+
?SCOPE log:notIncludes { ?permission odrl:constraint ?anything }.
9196
} =>
9297
{
9398
?dataUsagePolicyExecution a fno:Execution;
9499
fno:executes <http://example.org/dataUsage> ;
95100
:accessModesAllowed <urn:example:css:modes:write>.
96101
}.
97102

98-
99-
100103
# Create ODRL Rule
101104
{
102105
?permission a odrl:Permission;
@@ -105,9 +108,7 @@
105108
# odrl:assigner ?resourceOwner ;
106109
odrl:assignee ?requestedParty .
107110

108-
?action list:in (odrl:use odrl:modify). # multiple options
109-
110-
?SCOPE log:notIncludes { ?permission odrl:constraint ?anything }. # No odrl:constraints may be present
111+
?action list:in (odrl:use odrl:modify). # multiple options
111112

112113
# context of a request
113114
?context
@@ -119,14 +120,17 @@
119120
:uuid6 log:uuid ?uuidStringdataUsagePolicyExecution.
120121
( "urn:uuid:" ?uuidStringdataUsagePolicyExecution) string:concatenation ?urnUuidStringdataUsagePolicyExecution.
121122
?dataUsagePolicyExecution log:uri ?urnUuidStringdataUsagePolicyExecution .
123+
124+
# Constraint checking
125+
# No odrl:constraints may be present
126+
?SCOPE log:notIncludes { ?permission odrl:constraint ?anything }.
122127
} =>
123128
{
124129
?dataUsagePolicyExecution a fno:Execution;
125130
fno:executes <http://example.org/dataUsage> ;
126131
:accessModesAllowed <urn:example:css:modes:create>.
127132
}.
128133

129-
130134
# Delete ODRL Rule
131135
{
132136
?permission a odrl:Permission;
@@ -135,9 +139,7 @@
135139
# odrl:assigner ?resourceOwner ;
136140
odrl:assignee ?requestedParty.
137141

138-
?action list:in (odrl:use odrl:delete). # multiple options
139-
140-
?SCOPE log:notIncludes { ?permission odrl:constraint ?anything }. # No odrl:constraints may be present
142+
?action list:in (odrl:use odrl:delete). # multiple options
141143

142144
# context of a request
143145
?context
@@ -149,6 +151,10 @@
149151
:uuid6 log:uuid ?uuidStringdataUsagePolicyExecution.
150152
( "urn:uuid:" ?uuidStringdataUsagePolicyExecution) string:concatenation ?urnUuidStringdataUsagePolicyExecution.
151153
?dataUsagePolicyExecution log:uri ?urnUuidStringdataUsagePolicyExecution .
154+
155+
# Constraint checking
156+
# No odrl:constraints may be present
157+
?SCOPE log:notIncludes { ?permission odrl:constraint ?anything }.
152158
} =>
153159
{
154160
?dataUsagePolicyExecution a fno:Execution;

packages/uma/config/rules/n3/purpose-time.n3

Lines changed: 39 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -8,65 +8,71 @@
88
@prefix list: <http://www.w3.org/2000/10/swap/list#> .
99
@prefix time: <http://www.w3.org/2000/10/swap/time#> .
1010
@prefix math: <http://www.w3.org/2000/10/swap/math#> .
11-
# Create ODRL Rule: doesn't exist (`odrl:write` and `odrl:append` are deprecated)
11+
12+
# ...
1213
{ :currentTime :is ?currentTime } <= { "" time:localTime ?currentTime }.
1314

1415
# Read ODRL rule
1516
{
1617
?permission a odrl:Permission;
1718
odrl:action ?action ;
1819
odrl:target ?targetResource ;
19-
odrl:assignee ?requestedParty;
20-
odrl:assigner ?resourceOwner .
20+
# odrl:assigner ?resourceOwner ;
21+
odrl:assignee ?requestedParty.
2122

22-
?action list:in (odrl:use odrl:read) . # multiple options
23+
?action list:in (odrl:use odrl:read) . # multiple options
2324

2425
# context of a request
2526
?context
26-
:resourceOwner ?resourceOwner;
27+
# :resourceOwner ?resourceOwner;
2728
:requestingParty ?requestedParty;
2829
:target ?targetResource;
29-
:requestPermission acl:Read.
30+
:requestPermission <urn:example:css:modes:read>.
3031

3132
:uuid5 log:uuid ?uuidStringdataUsagePolicyExecution.
3233
( "urn:uuid:" ?uuidStringdataUsagePolicyExecution) string:concatenation ?urnUuidStringdataUsagePolicyExecution.
3334
?dataUsagePolicyExecution log:uri ?urnUuidStringdataUsagePolicyExecution .
3435

35-
# Constraint checking
36-
# number of constraints must be two (temporal needs lower and upper bound)
37-
(?template {?permission odrl:constraint _:s} ?L) log:collectAllIn ?SCOPE.
38-
?L list:length 3 .
39-
40-
:currentTime :is ?currentTime .
36+
# Constraint checking
37+
38+
# number of constraints must be two (temporal needs lower and upper bound)
39+
(?template {?permission odrl:constraint _:s} ?L) log:collectAllIn ?SCOPE.
40+
?L list:length 3 .
41+
42+
:currentTime :is ?currentTime .
4143

42-
# lower bound
43-
?permission odrl:constraint ?lowerBoundIRI .
44-
?lowerBoundIRI odrl:leftOperand odrl:dateTime ;
45-
odrl:operator odrl:gt ;
46-
odrl:rightOperand ?lowerBound .
44+
# lower bound
45+
?permission odrl:constraint ?lowerBoundIRI .
46+
?lowerBoundIRI
47+
odrl:leftOperand odrl:dateTime ;
48+
odrl:operator odrl:gt ;
49+
odrl:rightOperand ?lowerBound .
4750

48-
# greater bound
49-
?permission odrl:constraint ?upperBoundIRI .
50-
?upperBoundIRI odrl:leftOperand odrl:dateTime ;
51-
odrl:operator odrl:lt ;
52-
odrl:rightOperand ?upperBound .
51+
# greater bound
52+
?permission odrl:constraint ?upperBoundIRI .
53+
?upperBoundIRI
54+
odrl:leftOperand odrl:dateTime ;
55+
odrl:operator odrl:lt ;
56+
odrl:rightOperand ?upperBound .
5357

54-
# ?lowerBound < ?currentTime < ?upperBound
55-
?currentTime math:greaterThan ?lowerBound .
56-
?currentTime math:lessThan ?upperBound .
58+
# ?lowerBound < ?currentTime < ?upperBound
59+
?currentTime math:greaterThan ?lowerBound .
60+
?currentTime math:lessThan ?upperBound .
5761

58-
# purpose constraint
59-
?permission odrl:constraint ?purposeConstraint .
60-
?purposeConstraint odrl:leftOperand odrl:purpose ;
61-
odrl:operator odrl:eq ;
62-
odrl:rightOperand ?purposeValue
63-
# Note: nothing is done with the purpose right now TODO: needs checking
62+
# purpose constraint
63+
?permission odrl:constraint ?purposeConstraint .
64+
?purposeConstraint
65+
odrl:leftOperand odrl:purpose ;
66+
odrl:operator odrl:eq ;
67+
odrl:rightOperand ?purposeValue .
68+
# Note: nothing is done with the purpose right now TODO: needs checking
6469
} =>
6570
{
6671
?dataUsagePolicyExecution a fno:Execution;
6772
fno:executes <http://example.org/dataUsage> ;
68-
:accessModesAllowed acl:Read.
69-
?dataUsagePolicyExecution <http://purl.org/dc/terms/issued> ?currentTime .
73+
:accessModesAllowed <urn:example:css:modes:read> ;
74+
<http://purl.org/dc/terms/issued> ?currentTime .
7075

7176
}.
7277

78+
# No ODRL rules for other access modes (`odrl:write` and `odrl:append` are deprecated)

0 commit comments

Comments
 (0)