Skip to content

Commit e57ce85

Browse files
authored
Merge pull request #77 from ericprud/master
add ShEx schemas (and validate examples)
2 parents 3ba1d20 + 2027404 commit e57ce85

File tree

1 file changed

+36
-2
lines changed

1 file changed

+36
-2
lines changed

README.md

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,39 @@ ACL resource by appending the suffix `.acl`, another server could place the ACL
126126
resources into a sub-container (locating it at `/docs/.acl/file1.acl` for the
127127
example above).
128128

129+
## ACL Schemas
130+
131+
The following schema excerpts use these namespace prefixes:
132+
``` turtle
133+
PREFIX acl: <http://www.w3.org/ns/auth/acl#>
134+
PREFIX dc: <http://purl.org/dc/elements/1.1/>
135+
PREFIX vcard: <http://www.w3.org/2006/vcard/ns#>
136+
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
137+
```
138+
### Authorization Schema
139+
``` turtle
140+
<#authShape> {
141+
a [acl:Authorization] ;
142+
acl:accessTo IRI ;
143+
acl:mode [acl:Read acl:Write acl:Control]+ ;
144+
( acl:agent IRI ;
145+
| acl:agentGroup @<#groupShape> +
146+
) ;
147+
}
148+
```
149+
150+
### Group Schema
151+
152+
``` turtle
153+
<#groupShape> {
154+
a [vcard:Group] ;
155+
vcard:hasUID IRI /^urn:uuid:/ ;
156+
dc:created xsd:dateTime ? ;
157+
dc:modified xsd:dateTime ? ;
158+
vcard:hasMember IRI + ;
159+
}
160+
```
161+
129162
## ACL Inheritance Algorithm
130163

131164
The following algorithm is used by servers to determine which ACL resources
@@ -272,8 +305,8 @@ Corresponding `work-groups` Group Listing document:
272305
<#Accounting>
273306
a vcard:Group;
274307
vcard:hasUID <urn:uuid:8831CBAD-1111-2222-8563-F0F4787E5398:ABGroup>;
275-
dc:created "2013-09-11T07:18:19+0000"^^xsd:dateTime;
276-
dc:modified "2015-08-08T14:45:15+0000"^^xsd:dateTime;
308+
dc:created "2013-09-11T07:18:19+00:00"^^xsd:dateTime;
309+
dc:modified "2015-08-08T14:45:15+00:00"^^xsd:dateTime;
277310
278311
# Accounting group members:
279312
vcard:hasMember <https://bob.example.com/profile/card#me>;
@@ -286,6 +319,7 @@ Corresponding `work-groups` Group Listing document:
286319
# Management group members:
287320
vcard:hasMember <https://deb.example.com/profile/card#me>.
288321
```
322+
[[test against schema](https://tinyurl.com/whcrhlo)]
289323

290324
#### Group Listings - Implementation Notes
291325

0 commit comments

Comments
 (0)