diff --git a/README.md b/README.md index 0fc1f49..9f2ac0a 100644 --- a/README.md +++ b/README.md @@ -126,6 +126,39 @@ ACL resource by appending the suffix `.acl`, another server could place the ACL resources into a sub-container (locating it at `/docs/.acl/file1.acl` for the example above). +## ACL Schemas + +The following schema excerpts use these namespace prefixes: +``` turtle +PREFIX acl: +PREFIX dc: +PREFIX vcard: +PREFIX xsd: +``` +### Authorization Schema +``` turtle +<#authShape> { + a [acl:Authorization] ; + acl:accessTo IRI ; + acl:mode [acl:Read acl:Write acl:Control]+ ; + ( acl:agent IRI ; + | acl:agentGroup @<#groupShape> + + ) ; +} +``` + +### Group Schema + +``` turtle +<#groupShape> { + a [vcard:Group] ; + vcard:hasUID IRI /^urn:uuid:/ ; + dc:created xsd:dateTime ? ; + dc:modified xsd:dateTime ? ; + vcard:hasMember IRI + ; +} +``` + ## ACL Inheritance Algorithm The following algorithm is used by servers to determine which ACL resources @@ -272,8 +305,8 @@ Corresponding `work-groups` Group Listing document: <#Accounting> a vcard:Group; vcard:hasUID ; - dc:created "2013-09-11T07:18:19+0000"^^xsd:dateTime; - dc:modified "2015-08-08T14:45:15+0000"^^xsd:dateTime; + dc:created "2013-09-11T07:18:19+00:00"^^xsd:dateTime; + dc:modified "2015-08-08T14:45:15+00:00"^^xsd:dateTime; # Accounting group members: vcard:hasMember ; @@ -286,6 +319,7 @@ Corresponding `work-groups` Group Listing document: # Management group members: vcard:hasMember . ``` +[[test against schema](https://tinyurl.com/whcrhlo)] #### Group Listings - Implementation Notes