├── Makefile ├── README.md ├── acl.n3 ├── posix-stat.rdf ├── solid-acp.ttl ├── solid-app.ttl ├── solid-notifications-context.jsonld ├── solid-notifications.ttl ├── solid-oidc-context.jsonld ├── solid-oidc.ttl ├── solid-terms.ttl ├── space.n3 └── spec.ttl /Makefile: -------------------------------------------------------------------------------- 1 | 2 | publish2: solid-notifications.ttl 3 | cp solid-notifications.ttl ~/src/www.w3.org/ns/solid/notifications.ttl 4 | (cd ~/src/www.w3.org/ns/solid/ 5 | ; cvs commit -m "from git" notifications.ttl) 6 | 7 | publish1: 8 | cp spec.ttl ~/src/www.w3.org/ns/spec.ttl 9 | (cd ~/src/www.w3.org/ns/; cvs commit -m "from git" spec.ttl) 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Solid Vocabularies 2 | 3 | [![](https://img.shields.io/badge/project-Solid-7C4DFF.svg?style=flat-square)](https://github.com/solid/solid) 4 | 5 | This is a directory of ontologies and vocabularies used by the [Solid 6 | project](https://github.com/solid/solid). 7 | 8 | ## Table of Contents 9 | 10 | * [Created for Solid](#created-for-solid) 11 | * [Used in Core Solid Spec](#used-in-core-solid-spec) 12 | * [Recommended by Solid](#recommended-by-solid) 13 | 14 | ## Created for Solid 15 | 16 | These vocabularies are created for the Solid project, and are contained in this 17 | repo. 18 | 19 | ##### `solid/app` 20 | Contains a snapshot of the previous App Configuration vocabulary for Solid apps. 21 | Warning: *do not use*, the app configuration spec is currently in flux. 22 | 23 | Source code: [solid-app.ttl](solid-app.ttl) 24 | 25 | ##### `solid/terms` 26 | Contains core Solid terms, such as links from a [Solid WebID 27 | Profile](https://github.com/solid/solid-spec#webid-profile-documents) to user 28 | account resources, [WAC](https://github.com/solid/solid-spec#web-access-control) 29 | related predicates, and so on. 30 | 31 | Canonical prefix URL: `http://www.w3.org/ns/solid/terms#` 32 | 33 | Source code: [solid-terms.ttl](solid-terms.ttl) 34 | 35 | ##### `solid/oidc` 36 | Contains OpenID Connect terms as used in the [Solid-OIDC](https://solid.github.io/authentication-panel/solid-oidc/) 37 | specification. 38 | 39 | Canonical prefix URL: `http://www.w3.org/ns/solid/oidc#` 40 | 41 | Source code: [solid-oidc.ttl](solid-oidc.ttl) 42 | 43 | ##### `solid/oidc-context` 44 | Contains a JSON-LD context document as used in the [Solid-OIDC](https://solid.github.io/authentication-panel/solid-oidc/) 45 | specification. 46 | 47 | Canonical URL: `https://www.w3.org/ns/solid/oidc-context.jsonld` 48 | 49 | Source code: [solid-oidc-context.jsonld](solid-oidc-context.jsonld) 50 | 51 | ## Used in Core Solid Spec 52 | 53 | These vocabularies are used in required/normative sections of the [Solid 54 | Spec](https://github.com/solid/solid-spec). 55 | 56 | ##### `auth/acl` 57 | Used for Authorization/[Web Access 58 | Control](https://github.com/solid/solid-spec#web-access-control) of Solid 59 | resources. 60 | 61 | Canonical prefix URL: `http://www.w3.org/ns/auth/acl#` 62 | 63 | ##### `auth/cert` 64 | Used in the Public Key Certificates portion of the Solid WebID Profile document. 65 | 66 | Canonical prefix URL: `http://www.w3.org/ns/auth/cert#` 67 | 68 | ##### `dc/terms` 69 | Solid uses the [Dublin Core Terms](http://dublincore.org/documents/dcmi-terms/) 70 | vocabulary in several apps, but specifically in the Certificates section of the 71 | WebID Profile document. 72 | 73 | Canonical prefix URL: `http://purl.org/dc/terms/` 74 | 75 | ##### `foaf` 76 | The [FOAF](http://xmlns.com/foaf/spec/) ontology is used in [WebID 77 | Profile](https://github.com/solid/solid-spec#webid-profile-documents) 78 | documents and [Web Access 79 | Control](https://github.com/solid/solid-spec#web-access-control) `.acl` 80 | resources. 81 | 82 | Canonical prefix URL: `http://xmlns.com/foaf/0.1/` 83 | 84 | ##### `ldp` 85 | Describes [Linked Data Platform](https://www.w3.org/TR/ldp/) terms. 86 | Used in the [Content 87 | Representation](https://github.com/solid/solid-spec#content-representation) and 88 | [REST API](https://github.com/solid/solid-spec#https-rest-api) sections of the 89 | Solid spec. 90 | 91 | Canonical prefix URL: `http://www.w3.org/ns/ldp#` 92 | 93 | ##### `owl` 94 | The Solid spec uses the [Web Ontology 95 | Language](https://www.w3.org/standards/techs/owl#w3c_all) vocab for specifying 96 | [Extended 97 | Profiles](https://github.com/solid/solid-spec/blob/master/solid-webid-profiles.md#extended-profile), 98 | via `owl:sameAs` links from the WebID Profile document. 99 | 100 | Canonical prefix URL: `http://www.w3.org/2002/07/owl#` 101 | 102 | ##### `pim/space` 103 | Used in the [Solid WebID 104 | Profile](https://github.com/solid/solid-spec#webid-profile-documents) spec 105 | for discovery of user account resources (to link to Root Storage and Preferences 106 | resources). 107 | 108 | Canonical prefix URL: `http://www.w3.org/ns/pim/space#` 109 | 110 | ##### `posix/stat` 111 | Describes terms for POSIX-like files and directory listings. 112 | Used in the [Solid REST API](https://github.com/solid/solid-spec#https-rest-api) 113 | when listing Containers. 114 | 115 | Canonical prefix URL: `http://www.w3.org/ns/posix/stat#` 116 | 117 | Source code: [posix-stat.rdf](posix-stat.rdf) 118 | 119 | ##### `rdf-schema` 120 | The Solid spec uses the [RDF Schema](https://www.w3.org/TR/rdf-schema/) vocab 121 | for specifying [Extended 122 | Profiles](https://github.com/solid/solid-spec/blob/master/solid-webid-profiles.md#extended-profile), 123 | via `rdfs:seeAlso` links from the WebID Profile document. 124 | 125 | Canonical prefix URL: `http://www.w3.org/2000/01/rdf-schema#` 126 | 127 | ## Recommended by Solid 128 | 129 | These vocabularies and ontologies are recommended by the Solid project for 130 | maximum interoperability between apps. 131 | 132 | ##### `vcard` 133 | The [vCard Ontology](https://www.w3.org/TR/vcard-rdf/) is recommended for 134 | Contact Management like applications for use with the Solid ecosystem. 135 | 136 | Canonical prefix URL: `http://www.w3.org/2006/vcard/ns#` 137 | 138 | Solid Extensions: 139 | 140 | * `AddressBook` - an RDF class for representing address books that contain 141 | contacts. 142 | -------------------------------------------------------------------------------- /acl.n3: -------------------------------------------------------------------------------- 1 | @prefix dct: . 2 | @prefix rdf: . 3 | @prefix gen: . 4 | @prefix foaf: . 5 | @prefix rdfs: . 6 | @prefix vcard: . 7 | 8 | @prefix : . 9 | 10 | 11 | <> dct:title "Basic Access Control ontology"; 12 | rdfs:comment """Defines the class Authorization and its essential properties, 13 | and also some classes of access such as read and write. """. 14 | 15 | foaf:topic <>. 16 | foaf:topic <>. 17 | 18 | :Authorization a rdfs:Class; 19 | rdfs:label "authorization"; 20 | rdfs:comment """An element of access control, 21 | allowing agent to agents access of some kind to resources or classes of resources""". 22 | 23 | :agent a rdf:Property; 24 | rdfs:label "agent"; 25 | rdfs:comment "A person or social entity to being given the right"; 26 | rdfs:domain :Authorization; 27 | rdfs:range foaf:Agent. 28 | 29 | :origin a rdf:Property; 30 | rdfs:label "origin"; 31 | rdfs:comment """A web application, identified by its Origin, such as 32 | , being given the right. 33 | When a user of the web application at a certain origin accesses the server, 34 | then the browser sets the Origin: header to warn that a possibly untrusted webapp 35 | is being used. 36 | Then, BOTH the user AND the origin must have the required access."""; 37 | rdfs:seeAlso ; 38 | rdfs:domain :Authorization; 39 | rdfs:range :Origin. 40 | 41 | :agentClass a rdf:Property; 42 | rdfs:label "agent class"; 43 | rdfs:comment "A class of persons or social entities to being given the right"; 44 | rdfs:domain :Authorization; 45 | rdfs:range rdfs:Class. # Typically be subclass of foaf:Agent. 46 | # For public access, use foaf:Agent. 47 | 48 | :AuthenticatedAgent a rdfs:Class; 49 | rdfs:subClassOf foaf:Agent; 50 | rdfs:label "Anyone authenticated"; 51 | rdfs:comment """A class of agents who have been authenticated. 52 | In other words, anyone can access this resource, but not anonymously. 53 | The social expectation is that the authentication process will provide an 54 | identify and a name, or pseudonym. 55 | (A new ID should not be minted for every access: the intent is that the user 56 | is able to continue to use the ID for continues interactions with peers, 57 | and for example to develop a reputation) 58 | """ . 59 | 60 | :agentGroup a rdf:Property; 61 | rdfs:label "agent group"; 62 | rdfs:comment """A group of persons or social entities to being given the right. 63 | The right is given to any entity which is a vcard:member of the group, 64 | as defined by the document received when the Group is dereferenced."""; 65 | rdfs:domain :Authorization; 66 | rdfs:range vcard:Group. # Must be subclass of foaf:Agent. 67 | # For public access, use foaf:Agent. 68 | 69 | :accessTo 70 | a rdf:Property; 71 | rdfs:label "to"; 72 | rdfs:comment "The information resource to which access is being granted."; 73 | rdfs:domain :Authorization; 74 | rdfs:range gen:InformationResource. 75 | 76 | :accessToClass 77 | a rdf:Property; 78 | rdfs:label "to all in"; 79 | rdfs:comment "A class of information resources to which access is being granted."; 80 | rdfs:domain :Authorization; 81 | rdfs:range rdfs:Class. 82 | 83 | :default 84 | a rdf:Property; 85 | rdfs:label "default access for things in this"; 86 | rdfs:comment """If a resource has no ACL file (it is 404), 87 | then access to the resource is given by the ACL of the immediately 88 | containing directory, or failing that (404) the ACL of the recursively next 89 | containing directory which has an ACL file. 90 | Within that ACL file, 91 | any Authorization which has that directory as its acl:default applies to the 92 | resource. (The highest directory must have an ACL file.) 93 | """; 94 | rdfs:domain :Authorization. 95 | 96 | :defaultForNew 97 | a rdf:Property; 98 | rdfs:label "default access for new things in the object"; 99 | rdfs:comment """THIS IS OBSOLETE AS OF 2017-08-01. See 'default'. 100 | Was: A directory for which this authorization is used for new files in the directory."""; 101 | rdfs:domain :Authorization. 102 | 103 | :mode 104 | a rdf:Property; 105 | rdfs:label "access mode"; 106 | rdfs:comment "A mode of access such as read or write."; 107 | rdfs:domain :Authorization; 108 | rdfs:range rdfs:Class. 109 | 110 | #################################### Origins 111 | 112 | :Origin a rdfs:Class; 113 | rdfs:label "Origin"; 114 | rdfs:seeAlso ; 115 | rdfs:comment """An Origin is basically a web site 116 | (Note WITHOUT the trailing slash after the domain name and port in its URI) 117 | and is the basis for controlling access to data by web apps 118 | in the Same Origin Model of web security. 119 | All scripts from the same origin are given the same right.""". 120 | 121 | #################################### Access modes 122 | 123 | :Access a rdfs:Class; 124 | rdfs:label "access"@en; 125 | rdfs:comment """Any kind of access to a resource. Don't use this, use R W and RW""". 126 | 127 | :Read a rdfs:Class; 128 | rdfs:label "read"@en; 129 | rdfs:subClassOf :Access; 130 | rdfs:comment """The class of read operations""". 131 | 132 | :Write a rdfs:Class; 133 | rdfs:subClassOf :Access; 134 | rdfs:label "write"@en. 135 | 136 | :Append a rdfs:Class; 137 | rdfs:subClassOf :Access, :Write; 138 | rdfs:label "append"@en; 139 | rdfs:comment """Append accesses are specific write access which only add information, and do not remove information. 140 | For text files, for example, append access allows bytes to be added onto the end of the file. 141 | For RDF graphs, Append access allows adds triples to the graph but does not remove any. 142 | Append access is useful for dropbox functionality. 143 | Dropbox can be used for link notification, which the information added is a notification 144 | that a some link has been made elsewhere relevant to the given resource. 145 | """. 146 | 147 | :Control a rdfs:Class; 148 | rdfs:subClassOf :Access; 149 | rdfs:label "control"@en; 150 | rdfs:comment """Allows read/write access to the ACL for the resource(s)""". 151 | 152 | 153 | # Linking a resource to its access control information 154 | :accessControl 155 | a rdf:Property; 156 | rdfs:label "access control"; 157 | rdfs:subPropertyOf rdfs:seeAlso; 158 | rdfs:comment """The Access Control file for this information resource. 159 | This may of course be a virtual resource implemented by the access control system. 160 | Note that HTTP header `Link: ; rel="acl"` can also be used for this."""; 161 | rdfs:seeAlso ; 162 | rdfs:domain gen:InformationResource; 163 | rdfs:range gen:InformationResource. 164 | 165 | ######################## Ownership 166 | 167 | :owner a rdf:Property; 168 | rdfs:label "owner"@en; 169 | rdfs:range foaf:Agent; 170 | rdfs:comment """The person or other agent which owns this. 171 | For example, the owner of a file in a filesystem. 172 | There is a sense of "right to control". Typically defaults to the agent who created 173 | something, but can be changed.""". 174 | 175 | :delegates a rdf:Property; 176 | rdfs:label "delegates"@en; 177 | rdfs:range foaf:Agent; 178 | rdfs:comment """Delegates a person or another agent to act on behalf of the agent. 179 | For example, Alice delegates Bob to act on behalf of Alice for ACL purposes.""". 180 | 181 | # ENDS 182 | -------------------------------------------------------------------------------- /posix-stat.rdf: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | time of last access 7 | 8 | 9 | blocksize for file system I/O 10 | 11 | 12 | number of 512B blocks allocated 13 | 14 | 15 | time of last status change 16 | 17 | 18 | ID of device containing file 19 | 20 | 21 | group ID of owner 22 | 23 | 24 | inode number 25 | 26 | 27 | protection 28 | 29 | 30 | time of last modification 31 | 32 | 33 | number of hard links 34 | 35 | 36 | device ID (if special file) 37 | 38 | 39 | total size, in bytes 40 | 41 | 42 | user ID of owner 43 | 44 | 45 | -------------------------------------------------------------------------------- /solid-acp.ttl: -------------------------------------------------------------------------------- 1 | prefix acp: 2 | prefix rdf: 3 | prefix rdfs: 4 | prefix owl: 5 | prefix xsd: 6 | prefix dc: 7 | prefix vann: 8 | prefix cito: 9 | 10 | 11 | a owl:Ontology ; 12 | rdfs:label "Access Control Policy Language (ACP)"@en ; 13 | dc:description "The Access Control Policy Language (ACP) is a language for describing, controlling, and granting access to resources."@en ; 14 | rdfs:isDefinedBy acp: ; 15 | rdfs:seeAlso ; 16 | cito:citesAsAuthority 17 | , 18 | , 19 | , 20 | , 21 | ; 22 | dc:issued "2022-05-18"^^xsd:date ; 23 | vann:preferredNamespacePrefix "acp" ; 24 | vann:preferredNamespaceUri "http://www.w3.org/ns/solid/acp#"^^xsd:anyURI . 25 | 26 | 27 | ################# 28 | # Classes 29 | ################# 30 | acp:Context 31 | a rdfs:Class ; 32 | rdfs:label "Context"@en ; 33 | dc:description "Instances of the Context class describe instances of resource access."@en ; 34 | rdfs:isDefinedBy acp: . 35 | 36 | acp:AccessControlResource 37 | a rdfs:Class ; 38 | rdfs:label "Access Control Resource"@en ; 39 | dc:description "Instances of the Access Control Resource (ACR) class connect resources to their Access Controls."@en ; 40 | rdfs:comment "Both the acp:resource property and its inverse acp:accessControlResource MUST be taken into account in determining the Access Control Resources controlling access to resources."@en ; 41 | rdfs:isDefinedBy acp: . 42 | 43 | acp:AccessControl 44 | a rdfs:Class ; 45 | rdfs:label "Access Control"@en ; 46 | dc:description "Instances of the Access Control class connect Access Control Resources to their Policies."@en ; 47 | rdfs:comment "All Access Controls controlling member resources access via the acp:memberAccessControl property MUST be included in the set of Access Controls linked as acp:accessControl in the effective authorization graph of a resource."@en ; 48 | rdfs:isDefinedBy acp: . 49 | 50 | acp:Policy 51 | a rdfs:Class ; 52 | rdfs:label "Access Policy"@en ; 53 | dc:description "Instances of the Policy class connect Access Controls to allowed and denied Access Modes as well as sets of Matchers describing instances of resource access."@en ; 54 | rdfs:comment "An ACP engine MUST grant exactly those Access Modes allowed by Effective Policies. Effective Policies are the Policies controlling access to a resource. A Policy MUST control access to a resource if: it is applied by an Access Control of an ACR of the resource; or, it is applied by a member Access Control of an ACR of an ancestor of the resource.\n\nAn Access Mode MUST be granted if and only if in the set of Effective Policies controlling access to it: a satisfied policy allows the Access Mode; and, no satisfied policy denies it.\n\nA Policy MUST be satisfied if and only if: it references at least one Matcher via an acp:allOf or acp:anyOf property; and, all of its acp:allOf Matchers are satisfied; and, at least one of its acp:anyOf Matchers is satisfied; and, none of its acp:noneOf Matchers are satisfied."@en ; 55 | rdfs:seeAlso ; 56 | rdfs:isDefinedBy acp: . 57 | 58 | acp:Matcher 59 | a rdfs:Class ; 60 | rdfs:label "Matcher"@en ; 61 | dc:description "Instances of the Matcher class are descriptions of matching resource access Contexts."@en ; 62 | rdfs:comment "A Matcher MUST be satisfied if and only if: it defines at least one attribute; and, at least one value of each defined attribute matches the Context. ACP engines MUST match the context attributes defined by this specification according to IRI equality and literal term equality.\n\nACP implementations supporting sub-properties of acp:attribute other than the ones defined by ACP SHOULD also define and implement corresponding matching algorithms."@en ; 63 | rdfs:seeAlso ; 64 | rdfs:isDefinedBy acp: . 65 | 66 | acp:AlwaysSatisfiedRestriction 67 | a rdfs:Class ; 68 | rdfs:label "Always Satisfied Restriction"@en ; 69 | dc:description "Defined instances of the Always Satisfied Restriction class are used in Matcher restrictions to indicate that the restriction is always satisfied. The default behaviour of a Matcher is to not be satisfied, so this is the only way to make a Matcher always satisfied."@en ; 70 | rdfs:isDefinedBy acp: . 71 | 72 | acp:AccessMode 73 | a rdfs:Class ; 74 | rdfs:label "Access Mode"@en ; 75 | dc:description "The ACP specification does not define specific Access Modes. Instead, any Access Mode granted is an instance of the Access Mode class. Access Modes and their granularity can be tailored to the needs of an application and Access Modes defined in other vocabularies can also be used (for example, instances of ACL Access)."@en ; 76 | rdfs:isDefinedBy acp: ; 77 | rdfs:seeAlso . 78 | 79 | acp:AccessGrant 80 | a rdfs:Class ; 81 | rdfs:label "Access Grant"@en ; 82 | dc:description "Instances of the Access Grant class define sets of Access Modes granted in particular Contexts."@en ; 83 | rdfs:isDefinedBy acp: . 84 | 85 | 86 | #################### 87 | # Properties 88 | #################### 89 | acp:resource 90 | a rdf:Property ; 91 | owl:inverseOf acp:accessControlResource ; 92 | rdfs:label "resource"@en ; 93 | dc:description "The resource property connects ACRs to resources they control. It is the inverse of acp:accessControlResource."@en ; 94 | rdfs:isDefinedBy acp: ; 95 | rdfs:domain acp:AccessControlResource . 96 | 97 | acp:accessControlResource 98 | a rdf:Property ; 99 | owl:inverseOf acp:resource ; 100 | rdfs:label "access control resource"@en ; 101 | dc:description "The access control resource property connects resources to ACRs controlling access to them. It is the inverse of acp:resource."@en ; 102 | rdfs:isDefinedBy acp: ; 103 | rdfs:range acp:AccessControlResource . 104 | 105 | acp:accessControl 106 | a rdf:Property ; 107 | rdfs:label "access control"@en ; 108 | dc:description "The access control property connects ACRs to Access Controls."@en ; 109 | rdfs:isDefinedBy acp: ; 110 | rdfs:domain acp:AccessControlResource ; 111 | rdfs:range acp:AccessControl . 112 | 113 | acp:memberAccessControl 114 | rdfs:label "member access control"@en ; 115 | dc:description "The member access control property transitively connects ACRs of member resources to Access Controls."@en ; 116 | rdfs:isDefinedBy acp: ; 117 | rdfs:domain acp:AccessControlResource ; 118 | rdfs:range acp:AccessControl . 119 | 120 | acp:apply 121 | a rdf:Property ; 122 | rdfs:label "apply"@en ; 123 | dc:description "The apply property connects Access Controls to the Policies they apply to resources."@en ; 124 | rdfs:isDefinedBy acp: ; 125 | rdfs:domain acp:AccessControl ; 126 | rdfs:range acp:Policy . 127 | 128 | acp:allow 129 | a rdf:Property ; 130 | rdfs:label "allow"@en ; 131 | dc:description "The allow property connects Policies to the Access Modes they allow if satisfied."@en ; 132 | rdfs:isDefinedBy acp: ; 133 | rdfs:domain acp:Policy ; 134 | rdfs:range acp:AccessMode . 135 | 136 | acp:deny 137 | a rdf:Property ; 138 | rdfs:label "deny"@en ; 139 | dc:description "The deny property connects Policies to the Access Modes they deny if satisfied."@en ; 140 | rdfs:isDefinedBy acp: ; 141 | rdfs:domain acp:Policy ; 142 | rdfs:range acp:AccessMode . 143 | 144 | acp:allOf 145 | a rdf:Property ; 146 | rdfs:label "all of"@en ; 147 | dc:description """The "all of" property connects Policies to a set of Matchers, all of which MUST be satisfied for the Policy to be satisfied."""@en ; 148 | rdfs:isDefinedBy acp: ; 149 | rdfs:domain acp:Policy ; 150 | rdfs:range acp:Matcher . 151 | 152 | acp:anyOf 153 | a rdf:Property ; 154 | rdfs:label "any of"@en ; 155 | dc:description """The "any of" property connects Policies to a set of Matchers, at least one of which MUST be satisfied for the Policy to be satisfied."""@en ; 156 | rdfs:isDefinedBy acp: ; 157 | rdfs:domain acp:Policy ; 158 | rdfs:range acp:Matcher . 159 | 160 | acp:noneOf 161 | a rdf:Property ; 162 | rdfs:label "none of"@en ; 163 | dc:description """The "none of" property connects Policies to a set of Matchers, all of which MUST NOT be satisfied for the Policy to be satisfied."""@en ; 164 | rdfs:isDefinedBy acp: ; 165 | rdfs:domain acp:Policy ; 166 | rdfs:range acp:Matcher . 167 | 168 | acp:attribute 169 | a rdf:Property ; 170 | rdfs:label "attribute"@en ; 171 | dc:description "Sub-properties of ACP attribute are used to describe instances of resource access."@en ; 172 | rdfs:comment "Sub-properties of acp:attribute can be created to fit the specific access control requirements of applications."@en ; 173 | rdfs:isDefinedBy acp: ; 174 | rdfs:domain acp:Context . 175 | 176 | acp:target 177 | rdfs:label "target"@en ; 178 | dc:description "The target attribute describes requested resources."@en ; 179 | rdfs:isDefinedBy acp: ; 180 | rdfs:subPropertyOf acp:attribute . 181 | 182 | acp:mode 183 | rdfs:label "mode"@en ; 184 | dc:description "The mode attribute describes requested modes of access."@en ; 185 | rdfs:isDefinedBy acp: ; 186 | rdfs:subPropertyOf acp:attribute . 187 | 188 | acp:agent 189 | rdfs:label "agent"@en ; 190 | dc:description "The agent attribute describes agents initiating requests."@en ; 191 | rdfs:comment "In a Matcher, agent attributes define a set of agents, at least one of which MUST match the Context for the Matcher to be satisfied."@en ; 192 | rdfs:isDefinedBy acp: ; 193 | rdfs:subPropertyOf acp:attribute . 194 | 195 | acp:creator 196 | rdfs:label "creator"@en ; 197 | dc:description "The creator attribute describes creators of requested resources."@en ; 198 | rdfs:isDefinedBy acp: ; 199 | rdfs:subPropertyOf acp:attribute . 200 | 201 | acp:owner 202 | rdfs:label "owner"@en ; 203 | dc:description "The owner attribute describes owners of requested resources."@en ; 204 | rdfs:isDefinedBy acp: ; 205 | rdfs:subPropertyOf acp:attribute . 206 | 207 | acp:client 208 | rdfs:label "client"@en ; 209 | dc:description "The client attribute describes client applications used to request resources."@en ; 210 | rdfs:comment "In a Matcher, client attributes define a set of clients, at least one of which MUST match the Context for the Matcher to be satisfied. "@en ; 211 | rdfs:isDefinedBy acp: ; 212 | rdfs:subPropertyOf acp:attribute . 213 | 214 | acp:issuer 215 | rdfs:label "issuer"@en ; 216 | dc:description "The issuer attribute describes identity providers used to assert the identity of agents requesting resources."@en ; 217 | rdfs:comment "In a Matcher, issuer attributes define a set of issuers, at least one of which MUST match the Context for the Matcher to be satisfied."@en ; 218 | rdfs:isDefinedBy acp: ; 219 | rdfs:subPropertyOf acp:attribute . 220 | 221 | acp:vc 222 | rdfs:label "vc"@en ; 223 | dc:description "The vc attribute describes types of Verifiable Credentials (VC) presented as part of resource access requests."@en ; 224 | rdfs:comment "In a Matcher, vc attributes define a set of types of Verifiable Credentials (VC), at least one of which MUST match the Context for the Matcher to be satisfied. A VC type present in the Context MUST be a valid VC presented as part of the resource access request."@en ; 225 | rdfs:isDefinedBy acp: ; 226 | rdfs:subPropertyOf acp:attribute ; 227 | cito:citesAsAuthority , ; 228 | rdfs:seeAlso . 229 | 230 | acp:context 231 | rdfs:label "context"@en ; 232 | dc:description "The context property connects Access Grants to the Contexts in which they're given."@en ; 233 | rdfs:isDefinedBy acp: ; 234 | rdfs:domain acp:AccessGrant ; 235 | rdfs:range acp:Context . 236 | 237 | acp:grant 238 | rdfs:label "grant"@en ; 239 | dc:description "The grant property connects Access Grants to the Access Modes they grant."@en ; 240 | rdfs:isDefinedBy acp: ; 241 | rdfs:domain acp:AccessGrant ; 242 | rdfs:range acp:AccessMode . 243 | 244 | 245 | ######################## 246 | # Named Individuals 247 | ######################## 248 | acp:PublicAgent 249 | a owl:NamedIndividual, acp:AlwaysSatisfiedRestriction ; 250 | dc:description "In a Matcher, agent attributes using the Public Agent named individual MUST match all Contexts."@en ; 251 | rdfs:isDefinedBy acp: ; 252 | rdfs:label "Public Agent"@en . 253 | 254 | acp:AuthenticatedAgent 255 | a owl:NamedIndividual ; 256 | dc:description "In a Matcher, agent attributes using the Authenticated Agent named individual MUST match Contexts that contain an agent."@en ; 257 | rdfs:isDefinedBy acp: ; 258 | rdfs:label "Authenticated Agent"@en . 259 | 260 | acp:CreatorAgent 261 | a owl:NamedIndividual ; 262 | dc:description "In a Matcher, agent attributes using the Creator Agent named individual MUST match Contexts where a defined creator matches the defined agent."@en ; 263 | rdfs:isDefinedBy acp: ; 264 | rdfs:label "Creator Agent"@en . 265 | 266 | acp:OwnerAgent 267 | a owl:NamedIndividual ; 268 | dc:description "In a Matcher, agent attributes using the Owner Agent named individual MUST match Contexts where a defined owner matches the defined agent."@en ; 269 | rdfs:isDefinedBy acp: ; 270 | rdfs:label "Owner Agent"@en . 271 | 272 | acp:PublicClient 273 | a owl:NamedIndividual, acp:AlwaysSatisfiedRestriction ; 274 | dc:description "In a Matcher, client attributes using the Public Client named individual MUST match all Contexts."@en ; 275 | rdfs:isDefinedBy acp: ; 276 | rdfs:label "Public Client"@en . 277 | 278 | acp:PublicIssuer 279 | a owl:NamedIndividual, acp:AlwaysSatisfiedRestriction ; 280 | dc:description "In a Matcher, issuer attributes using the Public Issuer named individual MUST match all Contexts."@en ; 281 | rdfs:isDefinedBy acp: ; 282 | rdfs:label "Public Issuer"@en . 283 | -------------------------------------------------------------------------------- /solid-app.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdf: . 2 | 3 | <> 4 | "Andrei Sambra" ; 5 | <> ; 6 | ; 7 | "2015-06-19"^^ ; 8 | a ; 9 | "Solid Web Application"@en ; 10 | . 11 | 12 | <#Application> 13 | a ; 14 | "A Solid Web application."@en ; 15 | <> ; 16 | "Application"@en . 17 | 18 | <#Configuration> 19 | a ; 20 | "A set of configuration data for a Solid Web application."@en ; 21 | <> ; 22 | "Configuration data"@en . 23 | 24 | <#PreferencesWorkspace> 25 | a ; 26 | "A special workspace that contains configuration resources for Solid Web application."@en ; 27 | <> ; 28 | "Configuration Workspace"@en ; 29 | . 30 | 31 | <#configuration> 32 | a rdf:Property ; 33 | "The configuration data for a given app."@en ; 34 | <#Application> ; 35 | <> ; 36 | "Configuration"@en . 37 | 38 | <#dataSource> 39 | a rdf:Property ; 40 | "A container (workspace) in which the app stores data."@en ; 41 | <#Configuration> ; 42 | <> ; 43 | "Data source"@en ; 44 | . 45 | 46 | <#index> 47 | a rdf:Property ; 48 | "An index resource that contains references to resources managed by the app."@en ; 49 | <#Application> ; 50 | <> ; 51 | "Data index"@en . 52 | 53 | <#commonType> 54 | a rdf:Property ; 55 | "A common type of data that the app uses. An app can publish a list of common types that can be used by other apps."@en ; 56 | <#Application> ; 57 | <> ; 58 | "Common type"@en ; 59 | . 60 | 61 | -------------------------------------------------------------------------------- /solid-notifications-context.jsonld: -------------------------------------------------------------------------------- 1 | { 2 | "@context": { 3 | "@version": 1.1, 4 | "@protected": true, 5 | "id": "@id", 6 | "type": "@type", 7 | "notify": "http://www.w3.org/ns/solid/notifications#", 8 | "xsd": "http://www.w3.org/2001/XMLSchema#", 9 | 10 | "EventSourceChannel2023": "notify:EventSourceChannel2023", 11 | "LDNChannel2023": "notify:LDNChannel2023", 12 | "StreamingHTTPChannel2023": "notify:StreamingHTTPChannel2023", 13 | "WebhookChannel2023": "notify:WebhookChannel2023", 14 | "WebSocketChannel2023": "notify:WebSocketChannel2023", 15 | 16 | "accept": "notify:accept", 17 | 18 | "channel": { 19 | "@id": "notify:channel", 20 | "@type": "@id" }, 21 | 22 | "channelType": { 23 | "@id": "notify:channelType", 24 | "@type": "@vocab" }, 25 | 26 | "endAt": { 27 | "@id": "notify:endAt", 28 | "@type": "xsd:dateTime" }, 29 | 30 | "feature": { 31 | "@id": "notify:feature", 32 | "@type": "@vocab" }, 33 | 34 | "rate": { 35 | "@id": "notify:rate", 36 | "@type": "xsd:duration" }, 37 | 38 | "receiveFrom": { 39 | "@id": "notify:receiveFrom", 40 | "@type": "@id" }, 41 | 42 | "sender": { 43 | "@id": "notify:sender", 44 | "@type": "@id" }, 45 | 46 | "sendTo": { 47 | "@id": "notify:sendTo", 48 | "@type": "@id" }, 49 | 50 | "state": "notify:state", 51 | 52 | "startAt": { 53 | "@id": "notify:startAt", 54 | "@type": "xsd:dateTime" }, 55 | 56 | "subscription": { 57 | "@id": "notify:subscription", 58 | "@type": "@id" }, 59 | 60 | "topic": { 61 | "@id": "notify:topic", 62 | "@type": "@id" } 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /solid-notifications.ttl: -------------------------------------------------------------------------------- 1 | @prefix notify: . 2 | @prefix rdf: . 3 | @prefix rdfs: . 4 | @prefix owl: . 5 | @prefix xsd: . 6 | @prefix dc: . 7 | @prefix vs: . 8 | @prefix vann: . 9 | 10 | 11 | a owl:Ontology ; 12 | dc:license ; 13 | rdfs:label "Solid Notifications"@en ; 14 | rdfs:comment "The vocabulary used by the Solid Notifications Protocol specification."@en ; 15 | rdfs:isDefinedBy ; 16 | rdfs:seeAlso ; 17 | dc:issued "2022-12-31"^^xsd:date ; 18 | vann:preferredNamespacePrefix "notify" ; 19 | vann:preferredNamespaceUri "http://www.w3.org/ns/solid/notifications#"^^xsd:anyURI . 20 | 21 | # --------- 22 | # Classes 23 | # --------- 24 | notify:EventSourceChannel2023 25 | a rdf:Class ; 26 | rdfs:label "EventSourceChannel2023" ; 27 | rdfs:comment "A notification channel type that uses the EventSource Web API."@en ; 28 | rdfs:isDefinedBy ; 29 | vs:term_status "testing" . 30 | 31 | notify:LDNChannel2023 32 | a rdf:Class ; 33 | rdfs:label "LDNChannel2023" ; 34 | rdfs:comment "A notification channel type that uses the Linked Data Notifications protocol."@en ; 35 | rdfs:isDefinedBy ; 36 | vs:term_status "testing" . 37 | 38 | notify:StreamingHTTPChannel2023 39 | a rdf:Class ; 40 | rdfs:label "StreamingHTTPChannel2023" ; 41 | rdfs:comment "A notification channel type that uses the Fetch API."@en ; 42 | rdfs:isDefinedBy ; 43 | vs:term_status "testing" . 44 | 45 | notify:WebhookChannel2023 46 | a rdf:Class ; 47 | rdfs:label "WebhookChannel2023" ; 48 | rdfs:comment "A notification channel type that uses Webhooks."@en ; 49 | rdfs:isDefinedBy ; 50 | vs:term_status "testing" . 51 | 52 | notify:WebSocketChannel2023 53 | a rdf:Class ; 54 | rdfs:label "WebSocketChannel2023" ; 55 | rdfs:comment "A notification channel type that uses the WebSocket API."@en ; 56 | rdfs:isDefinedBy ; 57 | vs:term_status "testing" . 58 | 59 | # ------------ 60 | # Properties 61 | # ------------ 62 | notify:accept 63 | a rdf:Property ; 64 | rdfs:label "accept"@en ; 65 | rdfs:comment "The media types that are acceptable by the recipient of a notification with value corresponding to the HTTP Accept header value [RFC7231]."@en ; 66 | rdfs:isDefinedBy ; 67 | vs:term_status "testing" . 68 | 69 | notify:channel 70 | a rdf:Property ; 71 | rdfs:label "notification channel"@en ; 72 | rdfs:comment "A property used to indicate an available notification channel."@en ; 73 | rdfs:isDefinedBy ; 74 | vs:term_status "testing" . 75 | 76 | notify:channelType 77 | a rdf:Property ; 78 | rdfs:label "notification channel type"@en ; 79 | rdfs:comment "A property used to indicate the notification channel type."@en ; 80 | rdfs:isDefinedBy ; 81 | vs:term_status "testing" . 82 | 83 | notify:endAt 84 | a rdf:Property ; 85 | rdfs:label "end at"@en ; 86 | rdfs:comment "The proposed or actual ending date and time of a notification channel with value represented in the xsd:dateTime datatype."@en ; 87 | rdfs:isDefinedBy ; 88 | vs:term_status "testing" . 89 | 90 | notify:feature 91 | a rdf:Property ; 92 | rdfs:label "feature"@en ; 93 | rdfs:comment "A property used to describe the features supported by a particular notification channel."@en ; 94 | rdfs:isDefinedBy ; 95 | vs:term_status "testing" . 96 | 97 | notify:rate 98 | a rdf:Property ; 99 | rdfs:label "rate"@en ; 100 | rdfs:comment "The minimum amount of time to elapse between notifications sent to receiver with value represented in the xsd:duration datatype."@en ; 101 | rdfs:isDefinedBy ; 102 | vs:term_status "testing" . 103 | 104 | notify:receiveFrom 105 | a rdf:Property ; 106 | rdfs:label "receive from"@en ; 107 | rdfs:comment "The property used to identify the resource that can be used to establish a connection to receive notifications."@en ; 108 | rdfs:isDefinedBy ; 109 | vs:term_status "testing" . 110 | 111 | notify:sender 112 | a rdf:Property ; 113 | rdfs:label "sender"@en ; 114 | rdfs:comment "The property used to identify the party that sends notifications."@en ; 115 | rdfs:isDefinedBy ; 116 | vs:term_status "testing" . 117 | 118 | notify:sendTo 119 | a rdf:Property ; 120 | rdfs:label "send to"@en ; 121 | rdfs:comment "The property used to identify the resource that can accept notifications."@en ; 122 | rdfs:isDefinedBy ; 123 | vs:term_status "testing" . 124 | 125 | notify:startAt 126 | a rdf:Property ; 127 | rdfs:label "start at"@en ; 128 | rdfs:comment "The proposed or actual starting date and time of a notification channel with value represented in the xsd:dateTime datatype."@en ; 129 | rdfs:isDefinedBy ; 130 | vs:term_status "testing" . 131 | 132 | notify:state 133 | a rdf:Property ; 134 | rdfs:label "state"@en ; 135 | rdfs:comment "The last known state of a resource (topic) with value represented in the xsd:string datatype."@en ; 136 | rdfs:isDefinedBy ; 137 | vs:term_status "testing" . 138 | 139 | notify:subscription 140 | a rdf:Property ; 141 | rdfs:label "subscription"@en ; 142 | rdfs:comment "A property used to indicate an available subscription service."@en ; 143 | rdfs:isDefinedBy ; 144 | vs:term_status "testing" . 145 | 146 | notify:topic 147 | a rdf:Property ; 148 | rdfs:label "topic"@en ; 149 | rdfs:comment "The IRI of a resource about which a client would like to receive notifications."@en ; 150 | rdfs:isDefinedBy ; 151 | vs:term_status "testing" . 152 | -------------------------------------------------------------------------------- /solid-oidc-context.jsonld: -------------------------------------------------------------------------------- 1 | { 2 | "@context": { 3 | "@version": 1.1, 4 | "@protected": true, 5 | "oidc": "http://www.w3.org/ns/solid/oidc#", 6 | "xsd": "http://www.w3.org/2001/XMLSchema#", 7 | "client_id": { 8 | "@id": "@id", 9 | "@type": "@id" 10 | }, 11 | "client_uri": { 12 | "@id": "oidc:client_uri", 13 | "@type": "@id" 14 | }, 15 | "logo_uri": { 16 | "@id": "oidc:logo_uri", 17 | "@type": "@id" 18 | }, 19 | "policy_uri": { 20 | "@id": "oidc:policy_uri", 21 | "@type": "@id" 22 | }, 23 | "tos_uri": { 24 | "@id": "oidc:tos_uri", 25 | "@type": "@id" 26 | }, 27 | "redirect_uris": { 28 | "@id": "oidc:redirect_uris", 29 | "@type": "@id", 30 | "@container": [ 31 | "@id", 32 | "@set" 33 | ] 34 | }, 35 | "require_auth_time": { 36 | "@id": "oidc:require_auth_time", 37 | "@type": "xsd:boolean" 38 | }, 39 | "default_max_age": { 40 | "@id": "oidc:default_max_age", 41 | "@type": "xsd:integer" 42 | }, 43 | "application_type": { 44 | "@id": "oidc:application_type" 45 | }, 46 | "client_name": { 47 | "@id": "oidc:client_name" 48 | }, 49 | "contacts": { 50 | "@id": "oidc:contacts" 51 | }, 52 | "grant_types": { 53 | "@id": "oidc:grant_types" 54 | }, 55 | "response_types": { 56 | "@id": "oidc:response_types" 57 | }, 58 | "scope": { 59 | "@id": "oidc:scope" 60 | }, 61 | "token_endpoint_auth_method": { 62 | "@id": "oidc:token_endpoint_auth_method" 63 | } 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /solid-oidc.ttl: -------------------------------------------------------------------------------- 1 | @prefix oidc: . 2 | @prefix rdf: . 3 | @prefix rdfs: . 4 | @prefix owl: . 5 | @prefix xsd: . 6 | @prefix dc: . 7 | @prefix vs: . 8 | @prefix vann: . 9 | 10 | 11 | a owl:Ontology ; 12 | dc:license ; 13 | rdfs:label "Solid OIDC"@en ; 14 | rdfs:comment "The OpenID Connect vocabulary used by the Solid-OIDC authentication specification."@en ; 15 | rdfs:isDefinedBy ; 16 | rdfs:seeAlso ; 17 | dc:issued "2021-06-07"^^xsd:date ; 18 | vann:preferredNamespacePrefix "oidc" ; 19 | vann:preferredNamespaceUri "http://www.w3.org/ns/solid/oidc#"^^xsd:anyURI . 20 | 21 | oidc:application_type 22 | a rdf:Property ; 23 | rdfs:label "application type"@en ; 24 | rdfs:comment "TODO"@en ; 25 | rdfs:isDefinedBy ; 26 | vs:term_status "testing" . 27 | 28 | oidc:client_name 29 | a rdf:Property ; 30 | rdfs:label "client name"@en ; 31 | rdfs:comment "A name for this client that can be presented to an End-User"@en ; 32 | rdfs:isDefinedBy ; 33 | vs:term_status "testing" . 34 | 35 | oidc:client_uri 36 | a rdf:Property ; 37 | rdfs:label "client URI"@en ; 38 | rdfs:comment "A URI for this client's home page"@en ; 39 | rdfs:isDefinedBy ; 40 | vs:term_status "testing" . 41 | 42 | oidc:contacts 43 | a rdf:Property ; 44 | rdfs:label "contacts"@en ; 45 | rdfs:comment "A collection of URIs where individuals or entities responsible for this client can be contacted."@en ; 46 | rdfs:isDefinedBy ; 47 | vs:term_status "testing" . 48 | 49 | oidc:default_max_age 50 | a rdf:Property ; 51 | rdfs:label "default max age"@en ; 52 | rdfs:comment "TODO"@en ; 53 | rdfs:isDefinedBy ; 54 | vs:term_status "testing" . 55 | 56 | oidc:grant_types 57 | a rdf:Property ; 58 | rdfs:label "grant types"@en ; 59 | rdfs:comment "A collection of OAuth 2.0 Grant Types that the client will restrict itself to using."@en ; 60 | rdfs:isDefinedBy ; 61 | vs:term_status "testing" . 62 | 63 | oidc:logo_uri 64 | a rdf:Property ; 65 | rdfs:label "logo URI"@en ; 66 | rdfs:comment "A URI for this client's logo"@en ; 67 | rdfs:isDefinedBy ; 68 | vs:term_status "testing" . 69 | 70 | oidc:policy_uri 71 | a rdf:Property ; 72 | rdfs:label "policy URI"@en ; 73 | rdfs:comment "A URI for this client's policy document"@en ; 74 | rdfs:isDefinedBy ; 75 | vs:term_status "testing" . 76 | 77 | oidc:redirect_uris 78 | a rdf:Property ; 79 | rdfs:label "redirect URIs"@en ; 80 | rdfs:comment "A collection of registered URIs used by the client for redirection"@en ; 81 | rdfs:isDefinedBy ; 82 | vs:term_status "testing" . 83 | 84 | oidc:require_auth_time 85 | a rdf:Property ; 86 | rdfs:label "require auth time"@en ; 87 | rdfs:comment "TODO"@en ; 88 | rdfs:isDefinedBy ; 89 | vs:term_status "testing" . 90 | 91 | oidc:response_types 92 | a rdf:Property ; 93 | rdfs:label "response types"@en ; 94 | rdfs:comment "A collection of OAuth 2.0 Response Types that the client will restrict itself to using."@en ; 95 | rdfs:isDefinedBy ; 96 | vs:term_status "testing" . 97 | 98 | oidc:scope 99 | a rdf:Property ; 100 | rdfs:label "scope"@en ; 101 | rdfs:comment "An OAuth2 scope for the requested access token."@en ; 102 | rdfs:isDefinedBy ; 103 | vs:term_status "testing" . 104 | 105 | oidc:token_endpoint_auth_method 106 | a rdf:Property ; 107 | rdfs:label "token endpoint auth method"@en ; 108 | rdfs:comment "The requested client authentication method for the Token Endpoint"@en ; 109 | rdfs:isDefinedBy ; 110 | vs:term_status "testing" . 111 | 112 | oidc:tos_uri 113 | a rdf:Property ; 114 | rdfs:label "ToS URI"@en ; 115 | rdfs:comment "A URI for this client's terms of service document"@en ; 116 | rdfs:isDefinedBy ; 117 | vs:term_status "testing" . 118 | 119 | -------------------------------------------------------------------------------- /solid-terms.ttl: -------------------------------------------------------------------------------- 1 | prefix solid: 2 | prefix rdf: 3 | prefix rdfs: 4 | prefix owl: 5 | prefix xsd: 6 | prefix dc: 7 | prefix foaf: 8 | prefix ldp: 9 | prefix log: 10 | prefix vann: 11 | prefix ws: 12 | 13 | 14 | a owl:Ontology ; 15 | dc:license ; 16 | rdfs:label "Solid Terms"@en ; 17 | rdfs:comment "The Solid Terms vocabulary defines terms referenced in Solid specifications."@en ; 18 | rdfs:isDefinedBy ; 19 | dc:issued "2015-11-16"^^xsd:date ; 20 | owl:versionInfo [ 21 | dc:date "2020-12-22"^^xsd:date ; 22 | dc:replaces ; 23 | rdfs:seeAlso ; 24 | ] ; 25 | vann:preferredNamespacePrefix "solid" ; 26 | vann:preferredNamespaceUri "http://www.w3.org/ns/solid/terms#"^^xsd:anyURI . 27 | 28 | ### Classes 29 | solid:Account 30 | a rdfs:Class ; 31 | dc:issued "2016-05-17"^^xsd:date ; 32 | rdfs:comment "A Solid account."@en ; 33 | rdfs:isDefinedBy ; 34 | rdfs:label "Account"@en . 35 | 36 | solid:Inbox 37 | a rdfs:Class ; 38 | dc:issued "2015-11-16"^^xsd:date ; 39 | dc:modified "2018-10-24"^^xsd:date ; 40 | rdfs:comment "A resource containing notifications."@en ; 41 | rdfs:isDefinedBy ; 42 | rdfs:label "Inbox"@en . 43 | 44 | solid:InsertDeletePatch 45 | a rdfs:Class ; 46 | dc:issued "2022-05-03"^^xsd:date ; 47 | rdfs:subClassOf solid:Patch ; 48 | rdfs:comment "A class of patch expressing insertions, deletions, and conditional modifications to a resource that has an RDF-based representation."@en ; 49 | rdfs:seeAlso ; 50 | rdfs:isDefinedBy ; 51 | rdfs:label "Insert/delete patch"@en . 52 | 53 | solid:ListedDocument 54 | a rdfs:Class ; 55 | dc:issued "2015-11-16"^^xsd:date ; 56 | dc:modified "2018-01-24"^^xsd:date ; 57 | rdfs:comment "Listed Type Index is a registry of resources that are publicly discoverable by outside users and applications."@en ; 58 | rdfs:isDefinedBy ; 59 | rdfs:label "Listed Type Index"@en . 60 | 61 | solid:Notification 62 | a rdfs:Class ; 63 | dc:issued "2015-12-18"^^xsd:date ; 64 | dc:modified "2015-12-20"^^xsd:date ; 65 | dc:modified "2018-10-25"^^xsd:date ; 66 | rdfs:comment "A notification resource."@en ; 67 | rdfs:isDefinedBy ; 68 | rdfs:label "Notification"@en . 69 | 70 | solid:Patch 71 | a rdfs:Class ; 72 | dc:issued "2017-08-17"^^xsd:date ; 73 | rdfs:comment "A patch expresses conditional modifications to a resource that has an RDF-based representation."@en ; 74 | rdfs:isDefinedBy ; 75 | rdfs:label "Patch"@en . 76 | 77 | solid:Timeline 78 | a rdfs:Class ; 79 | dc:issued "2016-01-04"^^xsd:date ; 80 | rdfs:comment "A resource containing time ordered items and sub-containers. Sub-containers may be desirable in file based systems to split the timeline into logical components e.g. /yyyy-mm-dd/ as used in ISO 8061."@en ; 81 | rdfs:isDefinedBy ; 82 | rdfs:label "Timeline"@en . 83 | 84 | solid:TypeIndex 85 | a rdfs:Class ; 86 | dc:issued "2016-02-05"^^xsd:date ; 87 | rdfs:comment "A index of type registries for resources. Applications can register the RDF type they use and list them in the index resource."@en ; 88 | rdfs:isDefinedBy ; 89 | rdfs:label "Type index"@en . 90 | 91 | solid:TypeRegistration 92 | a rdfs:Class ; 93 | dc:issued "2018-01-24"^^xsd:date ; 94 | rdfs:comment "The registered types that map a RDF classes/types to their locations using either `instance` or `instanceContainer` property."@en ; 95 | rdfs:isDefinedBy ; 96 | rdfs:label "Type Registration"@en . 97 | 98 | solid:UnlistedDocument 99 | a rdfs:Class ; 100 | dc:issued "2018-01-24"^^xsd:date ; 101 | rdfs:comment "Unlisted Type Index is a registry of resources that are private to the user and their apps, for types that are not publicly discoverable."@en ; 102 | rdfs:isDefinedBy ; 103 | rdfs:label "Unlisted Type Index"@en . 104 | 105 | ### Properties 106 | solid:account 107 | a rdf:Property ; 108 | dc:issued "2016-05-17"^^xsd:date ; 109 | dc:modified "2018-01-24"^^xsd:date ; 110 | rdfs:comment "A solid account belonging to an Agent."@en ; 111 | rdfs:isDefinedBy ; 112 | rdfs:label "account"@en . 113 | 114 | solid:deletes 115 | a rdf:Property, owl:ObjectProperty, owl:FunctionalProperty ; 116 | dc:issued "2017-08-17"^^xsd:date ; 117 | rdfs:comment "The triple patterns this patch removes from the document."@en ; 118 | rdfs:isDefinedBy ; 119 | rdfs:label "deletes"@en ; 120 | rdfs:domain solid:Patch ; 121 | rdfs:range log:Formula . 122 | 123 | solid:forClass 124 | a rdf:Property ; 125 | dc:issued "2018-01-24"^^xsd:date ; 126 | rdfs:comment "A class that is used to map an listed or unlisted type index."@en ; 127 | rdfs:isDefinedBy ; 128 | rdfs:label "registry class"@en . 129 | 130 | solid:inbox 131 | owl:deprecated true ; 132 | a rdf:Property ; 133 | dc:issued "2015-11-16"^^xsd:date ; 134 | dc:modified "2016-02-05"^^xsd:date ; 135 | dc:modified "2018-10-25"^^xsd:date ; 136 | owl:equivalentProperty ldp:inbox ; 137 | rdfs:subPropertyOf ldp:inbox ; 138 | rdfs:comment "Deprecated pointer to a Linked Data Notifications inbox; please use http://www.w3.org/ns/ldp#inbox instead."@en ; 139 | rdfs:isDefinedBy ; 140 | rdfs:label "inbox (deprecated)"@en . 141 | 142 | solid:inserts 143 | a rdf:Property, owl:ObjectProperty, owl:FunctionalProperty ; 144 | dc:issued "2017-08-17"^^xsd:date ; 145 | rdfs:comment "The triple patterns this patch adds to the document."@en ; 146 | rdfs:isDefinedBy ; 147 | rdfs:label "inserts"@en ; 148 | rdfs:domain solid:Patch ; 149 | rdfs:range log:Formula . 150 | 151 | solid:instance 152 | a rdf:Property ; 153 | dc:issued "2018-01-24"^^xsd:date ; 154 | rdfs:comment "Maps a type to an individual resource, typically an index or a directory listing resource."@en ; 155 | rdfs:isDefinedBy ; 156 | rdfs:label "instance"@en . 157 | 158 | solid:instanceContainer 159 | a rdf:Property ; 160 | dc:issued "2018-01-24"^^xsd:date ; 161 | rdfs:comment "Maps a type to a container which the client would have to list to get the instances of that type."@en ; 162 | rdfs:isDefinedBy ; 163 | rdfs:label "instance container"@en . 164 | 165 | solid:loginEndpoint 166 | a rdf:Property ; 167 | dc:issued "2015-11-16"^^xsd:date ; 168 | rdfs:comment "The login URI of a given server."@en ; 169 | rdfs:isDefinedBy ; 170 | rdfs:label "loginEndpoint"@en . 171 | 172 | solid:logoutEndpoint 173 | a rdf:Property ; 174 | dc:issued "2015-11-16"^^xsd:date ; 175 | rdfs:comment "The logout URI of a given server."@en ; 176 | rdfs:isDefinedBy ; 177 | rdfs:label "logoutEndpoint"@en . 178 | 179 | solid:notification 180 | a rdf:Property ; 181 | dc:issued "2016-03-11"^^xsd:date ; 182 | dc:modified "2018-10-25"^^xsd:date ; 183 | rdfs:comment "Notification resource for an inbox."@en ; 184 | rdfs:isDefinedBy ; 185 | rdfs:label "notification"@en . 186 | 187 | solid:oidcIssuer 188 | a rdf:Property ; 189 | dc:issued "2017-08-15"^^xsd:date ; 190 | dc:modified "2017-08-16"^^xsd:date ; 191 | rdfs:comment "The preferred OpenID Connect issuer URI for a given WebID."@en ; 192 | rdfs:isDefinedBy ; 193 | rdfs:label "OIDC issuer"@en ; 194 | rdfs:subPropertyOf . 195 | 196 | solid:owner 197 | a rdf:Property ; 198 | dc:issued "2021-05-19"^^xsd:date ; 199 | rdfs:comment "A person or social entity that is considered to have control, rights, and responsibilities over a data storage."@en ; 200 | rdfs:isDefinedBy ; 201 | rdfs:range foaf:Agent ; 202 | rdfs:label "owner"@en . 203 | 204 | solid:patches 205 | a rdf:Property, owl:ObjectProperty ; 206 | dc:issued "2017-08-17"^^xsd:date ; 207 | rdfs:comment "The document to which this patch applies."@en ; 208 | rdfs:isDefinedBy ; 209 | rdfs:label "patches"@en ; 210 | rdfs:domain solid:Patch ; 211 | rdfs:range rdfs:Resource . 212 | 213 | solid:privateTypeIndex 214 | a rdf:Property ; 215 | dc:issued "2018-01-24"^^xsd:date ; 216 | rdfs:comment "Points to an unlisted type index resource."@en ; 217 | rdfs:range solid:UnlistedDocument ; 218 | rdfs:isDefinedBy ; 219 | rdfs:label "private type index"@en . 220 | 221 | solid:publicTypeIndex 222 | a rdf:Property ; 223 | dc:issued "2018-01-24"^^xsd:date ; 224 | rdfs:subPropertyOf solid:typeIndex ; 225 | rdfs:comment "Points to a listed type index resource."@en ; 226 | rdfs:range solid:ListedDocument ; 227 | rdfs:isDefinedBy ; 228 | rdfs:label "public type index"@en . 229 | 230 | solid:privateLabelIndex 231 | a rdf:Property ; 232 | dc:issued "2023-10-04"^^xsd:date ; 233 | rdfs:comment "Points to an unlisted label index resource."@en ; 234 | rdfs:range solid:UnlistedDocument ; 235 | rdfs:isDefinedBy ; 236 | rdfs:label "private label index"@en . 237 | 238 | solid:read 239 | a rdf:Property ; 240 | dc:issued "2015-12-18"^^xsd:date ; 241 | rdfs:comment "Indicates if a message has been read or not. This property should have a boolean datatype."@en ; 242 | rdfs:isDefinedBy ; 243 | rdfs:domain ; 244 | rdfs:label "read"@en . 245 | 246 | solid:storageDescription 247 | a rdf:Property , owl:ObjectProperty ; 248 | dc:issued "2024-12-28"^^xsd:date ; 249 | rdfs:comment "Refers to the resource that provides a description of the storage containing this resource."@en ; 250 | rdfs:seeAlso ; 251 | rdfs:isDefinedBy ; 252 | rdfs:label "storage description"@en . 253 | 254 | solid:storageQuota 255 | a rdf:Property, owl:DatatypeProperty ; 256 | dc:issued "2018-10-26"^^xsd:date ; 257 | dc:modified "2018-11-07"^^xsd:date ; 258 | dc:modified "2019-01-22"^^xsd:date ; 259 | rdfs:comment "The quota of non-volatile memory that is available for the account (in bytes)"@en ; 260 | rdfs:isDefinedBy ; 261 | rdfs:domain solid:Account ; 262 | rdfs:label "Non-volatile memory quota"@en . 263 | 264 | solid:storageUsage 265 | a rdf:Property, owl:DatatypeProperty ; 266 | dc:issued "2019-01-22"^^xsd:date ; 267 | rdfs:comment "The amount of non-volatile memory that the account have used (in bytes)"@en ; 268 | rdfs:isDefinedBy ; 269 | rdfs:domain solid:Account ; 270 | rdfs:label "Non-volatile memory usage"@en . 271 | 272 | solid:typeIndex 273 | a rdf:Property ; 274 | dc:issued "2016-02-05"^^xsd:date ; 275 | rdfs:comment "Points to a TypeIndex resource."@en ; 276 | rdfs:range solid:TypeIndex ; 277 | rdfs:isDefinedBy ; 278 | rdfs:label "type index"@en . 279 | 280 | solid:timeline 281 | a rdf:Property ; 282 | dc:issued "2016-01-04"^^xsd:date ; 283 | rdfs:comment "Timeline for a given resource."@en ; 284 | rdfs:isDefinedBy ; 285 | rdfs:label "timeline"@en . 286 | 287 | solid:where 288 | a rdf:Property, owl:ObjectProperty, owl:FunctionalProperty ; 289 | dc:issued "2017-08-17"^^xsd:date ; 290 | rdfs:comment "The conditions the document and the inserted and deleted triple patterns need to satisfy in order for the patch to be applied."@en ; 291 | rdfs:isDefinedBy ; 292 | rdfs:label "where"@en ; 293 | rdfs:domain solid:Patch ; 294 | rdfs:range log:Formula . 295 | -------------------------------------------------------------------------------- /space.n3: -------------------------------------------------------------------------------- 1 | @prefix rdf: . 2 | @prefix s: . 3 | @prefix owl: . 4 | @prefix xsd: . 5 | 6 | @prefix dc: . 7 | @prefix doc: . 8 | @prefix foaf: . 9 | @prefix gen: . 10 | @prefix ui: . 11 | @prefix : . 12 | @prefix ws: . 13 | 14 | # @prefix dbp: . 15 | # @prefix cal: . 16 | # @prefix foaf: . 17 | # @prefix q: . 18 | 19 | 20 | 21 | <> dc:title "Workspace Ontology"; 22 | 23 | doc:version "$Id: space.n3,v 1.18 2020/12/06 10:08:07 eric Exp $"; 24 | s:comment """This ontology is for use in describing 25 | Workspaces. Workspaces are places where data is stored and associated policies of privacy. 26 | A given application typically stores information in several different 27 | workspaces, some being user private, some shared, and some public. 28 | it is crucial that the user has easy control over the destiny of information. 29 | 30 | Goals then are that the user can 31 | 32 | - create workspaces 33 | - easily understand which workspace data is going into 34 | - understand what the implications of that are 35 | - (later) set ACLS on them 36 | - publish apropriate use policies for them 37 | 38 | """. 39 | 40 | 41 | :Workspace a s:Class; s:label "workspace"; 42 | s:comment """Workspaces are place where data is stored, and associated polices of privacy. 43 | A given application typically stores information in several different 44 | workspaces, some being user private, some shared, and some public. 45 | """. 46 | 47 | :Workspace owl:disjointUnionOf (:PrivateWorkspace :SharedWorkspace :PublicWorkspace). 48 | 49 | :uriPrefix a rdf:Property, owl:DatatypeProperty; 50 | s:label "URI prefix"; 51 | ui:prompt "Give the first part of the URis in this workspace"; 52 | s:comment """URIs which start with this string are in this workspace or storage. 53 | This may be used for constructing URIs for new storage resources. 54 | """. 55 | 56 | :MasterWorkspace s:subClassOf :PrivateWorkspace; 57 | s:label "Master Workspace"@en; 58 | s:comment """This is a workspace for storing the 59 | information about the other workspaces. 60 | As a user, you normally don't have to worry about it.""". 61 | 62 | :masterWorkspace a rdf:Property; 63 | s:label "master workspace"@en; 64 | s:domain foaf:Agent; 65 | s:range :MasterWorkspace. 66 | 67 | :workspace a rdf:Property; 68 | s:label "workspace"@en; 69 | # s:domain foaf:Agent; 70 | s:range :Workspace. 71 | 72 | :PrivateWorkspace s:subClassOf :Workspace; 73 | s:label "Private workspace"; 74 | s:comment """Access only by the you, the user.""". 75 | 76 | :SharedWorkspace s:subClassOf :Workspace; 77 | s:label "Shared workspace"; 78 | s:comment """Access is to some but not all people.""". 79 | 80 | :PublicWorkspace s:subClassOf :Workspace; 81 | s:label "Public workspace"; 82 | s:comment """Aceess is open to the public. Anything in a public workspace 83 | can be accesed by anyone.""". 84 | 85 | :PreferencesWorkspace s:subClassOf :Workspace; 86 | s:label "Preferences workspace"; 87 | s:comment """Aceess may not be open to the public. Contains preferences resources.""". 88 | 89 | :storage a rdf:Property; s:label "storage"; 90 | s:range :Storage; 91 | s:comment """The storage in which this workspace is, or the storage which 92 | contains this resource, or a storage available to this agent to use.""". 93 | 94 | ########################################## 95 | # 96 | # Storage is a lump out of which workspaces may be carved 97 | # 98 | 99 | :Storage a s:Class; s:label "storage"; 100 | s:comment """A storage is a space of URIs in which you have access to data. 101 | """. 102 | 103 | :PublicStorage a s:Class; s:subClassOf :Storage; s:label "public storage"; 104 | s:comment """A public storage is a space of URIs in which you have access to data, 105 | and all data is accessible to anyone without control. 106 | """. 107 | 108 | :PersonalStorage a s:Class; s:subClassOf :Storage; s:label "personal storage"; 109 | s:comment """A personal storage is a space of URIs in which you and only you have access to data, 110 | you cannot give access to anyone else. 111 | """. 112 | 113 | :ControlledStorage a s:Class; s:subClassOf :Storage; s:label "access controlled storage"; 114 | s:comment """A storage is a space of URIs in which you can individually control for each resource 115 | who has access to it. 116 | """. 117 | 118 | ######################## 119 | # 120 | # Registration 121 | # 122 | # Which apps I am using where 123 | # 124 | # TBD 125 | 126 | 127 | ######################### 128 | # 129 | # Configuration files 130 | # 131 | 132 | :ConfigurationFile s:subClassOf gen:InformationResource. 133 | 134 | :preferencesFile a rdf:Property; 135 | s:label "preferences file"; 136 | s:domain foaf:Agent; 137 | s:range :ConfigurationFile. 138 | 139 | 140 | # ends 141 | -------------------------------------------------------------------------------- /spec.ttl: -------------------------------------------------------------------------------- 1 | @prefix dcterms: . 2 | @prefix doap: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix skos: . 7 | @prefix spec: . 8 | @prefix test-description: . 9 | @prefix vann: . 10 | @prefix vs: . 11 | @prefix xsd: . 12 | 13 | 14 | spec: 15 | a owl:Ontology ; 16 | rdfs:label "Spec Terms"@en ; 17 | dcterms:description "Spec Terms provides classes and properties that can be used to describe any significant unit of information in technical reports."@en ; 18 | dcterms:issued "2021-06-04"^^xsd:date ; 19 | dcterms:license ; 20 | owl:versionInfo [ 21 | dcterms:date "2024-07-09"^^xsd:date ; 22 | # dcterms:replaces <> ; 23 | # rdfs:seeAlso <> ; 24 | ] ; 25 | doap:repository ; 26 | vann:preferredNamespacePrefix "spec" ; 27 | vann:preferredNamespaceUri "http://www.w3.org/ns/spec#"^^xsd:anyURI ; 28 | vann:usageNote "Work in Progress!"@en ; 29 | vs:term_status "testing"@en ; 30 | dcterms:creator . 31 | 32 | spec:Specification 33 | a rdfs:Class ; 34 | rdfs:label "Specification"@en ; 35 | rdfs:isDefinedBy spec: . 36 | 37 | spec:requirement 38 | a rdf:Property, owl:ObjectProperty ; 39 | rdfs:label "requirement"@en ; 40 | rdfs:range spec:Requirement . 41 | 42 | spec:Requirement 43 | a rdfs:Class ; 44 | rdfs:label "Requirement"@en . 45 | 46 | spec:requirementLevel 47 | a rdf:Property, owl:ObjectProperty ; 48 | rdfs:label "requirement level"@en ; 49 | rdfs:domain spec:Requirement . 50 | 51 | spec:requirementSubject 52 | a rdf:Property, owl:ObjectProperty ; 53 | rdfs:label "requirement subject"@en ; 54 | rdfs:domain spec:Requirement . 55 | 56 | spec:requirementReference 57 | a rdf:Property, owl:ObjectProperty ; 58 | rdfs:subPropertyOf rdfs:isDefinedBy ; 59 | rdfs:label "requirement reference"@en ; 60 | rdfs:domain test-description:SpecificationTestCase ; 61 | rdfs:range spec:Requirement . 62 | 63 | spec:advisement 64 | a rdf:Property, owl:ObjectProperty ; 65 | rdfs:label "advisement"@en ; 66 | rdfs:range spec:Advisement . 67 | 68 | spec:Advisement 69 | a rdfs:Class ; 70 | rdfs:label "Advisement"@en . 71 | 72 | spec:advisementLevel 73 | a rdf:Property, owl:ObjectProperty ; 74 | rdfs:label "advisement level"@en ; 75 | rdfs:domain spec:Advisement . 76 | 77 | spec:testScript 78 | a rdf:Property, owl:ObjectProperty ; 79 | rdfs:label "test script"@en ; 80 | rdfs:domain test-description:TestCase . 81 | 82 | spec:testSuite 83 | a rdf:Property, owl:ObjectProperty ; 84 | rdfs:label "test suite"@en . 85 | 86 | spec:testCase 87 | a rdf:Property, owl:ObjectProperty ; 88 | rdfs:label "test case"@en ; 89 | rdfs:range test-description:TestCase . 90 | 91 | spec:implementationReport 92 | a rdf:Property, owl:ObjectProperty ; 93 | rdfs:label "implementation report"@en . 94 | 95 | spec:statement 96 | a rdf:Property, owl:DatatypeProperty ; 97 | rdfs:label "statement"@en ; 98 | rdfs:range rdfs:Literal . 99 | 100 | spec:violatesAdvice 101 | a rdf:Property, owl:DatatypeProperty ; 102 | rdfs:label "violates advice"@en ; 103 | rdfs:range rdfs:Literal . 104 | 105 | spec:basedOnConsensus 106 | a rdf:Property, owl:ObjectProperty ; 107 | rdfs:label "based on consensus"@en . 108 | 109 | spec:reviewProcess 110 | a rdf:Property, owl:ObjectProperty ; 111 | rdfs:label "review process"@en . 112 | 113 | spec:publicationRules 114 | a rdf:Property, owl:ObjectProperty ; 115 | rdfs:label "publication rules"@en . 116 | 117 | spec:operativeProcess 118 | a rdf:Property, owl:ObjectProperty ; 119 | rdfs:label "operative process"@en . 120 | 121 | spec:scope 122 | a rdf:Property, owl:ObjectProperty ; 123 | rdfs:label "scope"@en . 124 | 125 | spec:intellectualPropertyRights 126 | a rdf:Property, owl:ObjectProperty ; 127 | rdfs:label "intellectual property rights"@en . 128 | 129 | spec:acknowledgements 130 | a rdf:Property, owl:ObjectProperty ; 131 | rdfs:label "acknowledgements"@en . 132 | 133 | 134 | # Requirement Level 135 | spec:RequirementLevel 136 | a skos:ConceptScheme ; 137 | skos:prefLabel "Requirement Level"@en ; 138 | skos:hasTopConcept spec:MUST, spec:MUSTNOT, spec:REQUIRED, spec:SHALL, spec:SHALLNOT, spec:SHOULD, spec:SHOULDNOT, spec:RECOMMENDED, spec:NOTRECOMMENDED, spec:MAY, spec:OPTIONAL ; 139 | rdfs:isDefinedBy 140 | , 141 | , 142 | . 143 | 144 | spec:MUST 145 | a skos:Concept ; 146 | skos:topConceptOf spec:RequirementLevel ; 147 | skos:prefLabel "MUST"@en ; 148 | skos:exactMatch spec:REQUIRED, spec:SHALL . 149 | 150 | spec:MUSTNOT 151 | a skos:Concept ; 152 | skos:topConceptOf spec:RequirementLevel ; 153 | skos:prefLabel "MUST NOT"@en ; 154 | skos:exactMatch spec:SHALLNOT . 155 | 156 | spec:REQUIRED 157 | a skos:Concept ; 158 | skos:topConceptOf spec:RequirementLevel ; 159 | skos:prefLabel "REQUIRED"@en ; 160 | skos:exactMatch spec:MUST, spec:SHALL . 161 | 162 | spec:SHALL 163 | a skos:Concept ; 164 | skos:topConceptOf spec:RequirementLevel ; 165 | skos:prefLabel "SHALL"@en ; 166 | skos:exactMatch spec:MUST, spec:REQUIRED . 167 | 168 | spec:SHALLNOT 169 | a skos:Concept ; 170 | skos:topConceptOf spec:RequirementLevel ; 171 | skos:prefLabel "SHALL NOT"@en ; 172 | skos:exactMatch spec:MUSTNOT . 173 | 174 | spec:SHOULD 175 | a skos:Concept ; 176 | skos:topConceptOf spec:RequirementLevel ; 177 | skos:prefLabel "SHOULD"@en ; 178 | skos:exactMatch spec:RECOMMENDED . 179 | 180 | spec:SHOULDNOT 181 | a skos:Concept ; 182 | skos:topConceptOf spec:RequirementLevel ; 183 | skos:prefLabel "SHOULD NOT"@en ; 184 | skos:exactMatch spec:NOTRECOMMENDED . 185 | 186 | spec:RECOMMENDED 187 | a skos:Concept ; 188 | skos:topConceptOf spec:RequirementLevel ; 189 | skos:prefLabel "RECOMMENDED"@en ; 190 | skos:exactMatch spec:SHOULD . 191 | 192 | spec:NOTRECOMMENDED 193 | a skos:Concept ; 194 | skos:topConceptOf spec:RequirementLevel ; 195 | skos:prefLabel "NOT RECOMMENDED"@en ; 196 | skos:exactMatch spec:SHOULDNOT . 197 | 198 | spec:MAY 199 | a skos:Concept ; 200 | skos:topConceptOf spec:RequirementLevel ; 201 | skos:prefLabel "MAY"@en ; 202 | skos:exactMatch spec:OPTIONAL . 203 | 204 | spec:OPTIONAL 205 | a skos:Concept ; 206 | skos:topConceptOf spec:RequirementLevel ; 207 | skos:prefLabel "OPTIONAL"@en ; 208 | skos:exactMatch spec:MAY . 209 | 210 | 211 | ## Advisement Level 212 | spec:AdvisementLevel 213 | a skos:ConceptScheme ; 214 | skos:prefLabel "Advisement Level"@en . 215 | 216 | spec:StronglyEncouraged 217 | a skos:Concept ; 218 | skos:topConceptOf spec:AdvisementLevel ; 219 | skos:prefLabel "strongly encouraged"@en . 220 | 221 | spec:StronglyDiscouraged 222 | a skos:Concept ; 223 | skos:topConceptOf spec:AdvisementLevel ; 224 | skos:prefLabel "strongly discouraged"@en . 225 | 226 | spec:Encouraged 227 | a skos:Concept ; 228 | skos:topConceptOf spec:AdvisementLevel ; 229 | skos:prefLabel "encouraged"@en . 230 | 231 | spec:Discouraged 232 | a skos:Concept ; 233 | skos:topConceptOf spec:AdvisementLevel ; 234 | skos:prefLabel "discouraged"@en . 235 | 236 | spec:Can 237 | a skos:Concept ; 238 | skos:topConceptOf spec:AdvisementLevel ; 239 | skos:prefLabel "can"@en . 240 | 241 | spec:Cannot 242 | a skos:Concept ; 243 | skos:topConceptOf spec:AdvisementLevel ; 244 | skos:prefLabel "cannot"@en . 245 | 246 | spec:Could 247 | a skos:Concept ; 248 | skos:topConceptOf spec:AdvisementLevel ; 249 | skos:prefLabel "could"@en . 250 | 251 | spec:CouldNot 252 | a skos:Concept ; 253 | skos:topConceptOf spec:AdvisementLevel ; 254 | skos:prefLabel "could not"@en . 255 | 256 | spec:Might 257 | a skos:Concept ; 258 | skos:topConceptOf spec:AdvisementLevel ; 259 | skos:prefLabel "might"@en . 260 | 261 | spec:MightNot 262 | a skos:Concept ; 263 | skos:topConceptOf spec:AdvisementLevel ; 264 | skos:prefLabel "might not"@en . 265 | 266 | 267 | 268 | spec:documentStatus 269 | a rdf:Property, owl:ObjectProperty ; 270 | rdfs:label "document status"@en . 271 | 272 | spec:terminology 273 | a rdf:Property, owl:ObjectProperty ; 274 | rdfs:label "terminology"@en ; 275 | rdfs:range skos:ConceptScheme . 276 | 277 | spec:conventions 278 | a rdf:Property, owl:ObjectProperty ; 279 | rdfs:label "conventions"@en . 280 | 281 | spec:complianceWithOtherSpecifications 282 | a rdf:Property, owl:ObjectProperty ; 283 | rdfs:label "compliance with other specifications"@en . 284 | 285 | spec:example 286 | a rdf:Property, owl:ObjectProperty ; 287 | rdfs:label "example"@en . 288 | 289 | spec:note 290 | a rdf:Property, owl:ObjectProperty ; 291 | rdfs:label "note"@en . 292 | 293 | spec:issue 294 | a rdf:Property, owl:ObjectProperty ; 295 | rdfs:label "issue"@en . 296 | 297 | spec:exitCriteria 298 | a rdf:Property, owl:ObjectProperty ; 299 | rdfs:label "exit criteria"@en . 300 | 301 | spec:successCriteria 302 | a rdf:Property, owl:ObjectProperty ; 303 | rdfs:label "success criteria"@en . 304 | 305 | 306 | # Considerations 307 | spec:consideration 308 | a rdf:Property, owl:ObjectProperty ; 309 | rdfs:label "consideration"@en ; 310 | rdfs:range spec:Considerations . 311 | 312 | spec:Considerations 313 | a rdfs:Class ; 314 | rdfs:label "Considerations"@en . 315 | 316 | spec:SecurityConsiderations 317 | a rdfs:Class ; 318 | rdfs:subClassOf spec:Considerations ; 319 | rdfs:label "Security Considerations"@en . 320 | 321 | spec:PrivacyConsiderations 322 | a rdfs:Class ; 323 | rdfs:subClassOf spec:Considerations ; 324 | rdfs:label "Privacy Considerations"@en . 325 | 326 | spec:AccessibilityConsiderations 327 | a rdfs:Class ; 328 | rdfs:subClassOf spec:Considerations ; 329 | rdfs:label "Accessibility Considerations"@en . 330 | 331 | spec:InternationalizationConsiderations 332 | a rdfs:Class ; 333 | rdfs:subClassOf spec:Considerations ; 334 | rdfs:label "Internationalization Considerations"@en . 335 | 336 | spec:RegistrationConsiderations 337 | a rdfs:Class ; 338 | rdfs:subClassOf spec:Considerations ; 339 | rdfs:label "Registration Considerations"@en ; 340 | rdfs:comment "Registration considerations for collection of values or data at standards organisations, e.g., IANA, W3C."@en . 341 | 342 | spec:SelfReviewQuestionnaire 343 | a rdfs:Class ; 344 | rdfs:subClassOf spec:Considerations ; 345 | rdfs:label "Self-Review Questionnaire"@en . 346 | 347 | spec:SelfReviewQuestionnaireSecurityPrivacy 348 | a rdfs:Class ; 349 | rdfs:subClassOf spec:SelfReviewQuestionnaire ; 350 | rdfs:label "Self-Review Questionnaire: Security and Privacy"@en ; 351 | rdfs:seeAlso . 352 | 353 | 354 | # Changelog 355 | spec:Changelog 356 | a rdfs:Class ; 357 | rdfs:label "Changelog"@en . 358 | 359 | spec:Change 360 | a rdfs:Class ; 361 | rdfs:label "Change"@en . 362 | 363 | spec:change 364 | a rdf:Property, owl:ObjectProperty ; 365 | rdfs:label "change"@en . 366 | 367 | spec:changelog 368 | a rdf:Property, owl:ObjectProperty ; 369 | rdfs:label "changelog"@en . 370 | 371 | spec:changeClass 372 | a rdf:Property, owl:ObjectProperty ; 373 | rdfs:label "change class"@en . 374 | 375 | spec:changeSubject 376 | a rdf:Property, owl:ObjectProperty ; 377 | rdfs:label "change subject"@en . 378 | 379 | 380 | # Variability in Specifications 381 | spec:Variability 382 | a rdfs:Class ; 383 | rdfs:seeAlso . 384 | 385 | spec:classesOfProducts 386 | a rdf:Property . 387 | spec:specificationCategory 388 | a rdf:Property . 389 | spec:profile 390 | a rdf:Property . 391 | spec:module 392 | a rdf:Property . 393 | spec:level 394 | a rdf:Property . 395 | spec:discretionaryItem 396 | a rdf:Property . 397 | spec:deprecation 398 | a rdf:Property . 399 | spec:extensibility 400 | a rdf:Property, owl:ObjectProperty ; 401 | rdfs:label "extensibility"@en ; 402 | rdfs:range spec:Extensibility . 403 | spec:errorHandling 404 | a rdf:Property, owl:ObjectProperty ; 405 | rdfs:label "error handling"@en . 406 | 407 | spec:Extensibility 408 | a rdfs:Class ; 409 | rdfs:label "Extensibility"@en . 410 | 411 | spec:defines 412 | a rdf:Property, owl:ObjectProperty ; 413 | rdfs:label "defines"@en . 414 | 415 | 416 | #Conformance 417 | spec:conformance 418 | a rdf:Property, owl:ObjectProperty ; 419 | rdfs:label "conformance"@en . 420 | 421 | spec:Conformance 422 | a rdfs:Class ; 423 | rdfs:label "Conformance"@en . 424 | 425 | 426 | #Classes of products 427 | spec:ClassesOfProducts 428 | a skos:ConceptScheme ; 429 | skos:prefLabel "Classes of Products"@en ; 430 | skos:hasTopConcept spec:Content, spec:ProducerOfContent, spec:Player, spec:Consumer, spec:RespondingAgent, spec:Processor, spec:Module, spec:ProducerOfInstructions, spec:Profile, spec:SpecificationGuidelines ; 431 | rdfs:isDefinedBy . 432 | 433 | spec:Content 434 | a skos:Concept ; 435 | skos:prefLabel "Content"@en ; 436 | skos:definition "Content (of type, meaning, and format as defined in the specification)."@en . 437 | 438 | spec:ProducerOfContent 439 | a skos:Concept ; 440 | skos:prefLabel "Producer of content"@en ; 441 | skos:definition "Producer of content (may be divided into initiators and modifiers)."@en . 442 | 443 | spec:Player 444 | a skos:Concept ; 445 | skos:prefLabel "Player"@en ; 446 | skos:definition "Player (read-only consumer, conveys content in non- XML way)."@en . 447 | 448 | spec:Consumer 449 | a skos:Concept ; 450 | skos:prefLabel "Consumer"@en ; 451 | skos:definition "Consumer in a one-way pipeline."@en . 452 | 453 | spec:RespondingAgent 454 | a skos:Concept ; 455 | skos:prefLabel "Responding agent"@en ; 456 | skos:definition "Responding agent (e.g., server) of API (consumer and producer)."@en . 457 | 458 | spec:Processor 459 | a skos:Concept ; 460 | skos:prefLabel "Processor"@en ; 461 | skos:definition "Processor (consumer of its vocabulary/instructions)."@en . 462 | 463 | spec:Module 464 | a skos:Concept ; 465 | skos:prefLabel "Module"@en ; 466 | skos:definition "Module that hosts the processor."@en . 467 | 468 | spec:ProducerOfInstructions 469 | a skos:Concept ; 470 | skos:prefLabel "Producer of instructions"@en ; 471 | skos:definition "Producer of instructions/commands to processor."@en . 472 | 473 | spec:Profile 474 | a skos:Concept ; 475 | skos:prefLabel "Profile"@en ; 476 | skos:definition "Profile derived from the specification's Rules for Profiles."@en . 477 | 478 | spec:SpecificationGuidelines 479 | a skos:Concept ; 480 | skos:prefLabel "Specification guidelines"@en ; 481 | skos:definition "Specification (guidelines)."@en . 482 | 483 | 484 | spec:Server 485 | a skos:Concept ; 486 | skos:prefLabel "Server"@en . 487 | 488 | spec:Client 489 | a skos:Concept ; 490 | skos:prefLabel "Client"@en . 491 | 492 | 493 | #Specification category 494 | spec:SpecificationCategory 495 | a skos:ConceptScheme ; 496 | skos:prefLabel "Specification Categories"@en ; 497 | skos:hasTopConcept spec:SetOfGuidelines, spec:FoundationOrAbstract, spec:NotationSyntax, spec:ContentData, spec:SetOfEvents, spec:Protocol, spec:ProcessorBehavior, spec:API, spec:RulesForDerivingProfiles ; 498 | rdfs:isDefinedBy . 499 | 500 | spec:SetOfGuidelines 501 | a skos:Concept ; 502 | skos:prefLabel "Set of guidelines"@en ; 503 | skos:definition "Describes desirable attributes of content intended for human consumption. Examples: QA Specification Guidelines, Web Content Accessibility Guidelines."@en . 504 | 505 | spec:FoundationOrAbstract 506 | a skos:Concept ; 507 | skos:prefLabel "Foundation or abstract"@en ; 508 | skos:definition """Describes an abstraction around which several other specs will synchronize, but which is not implemented in code. Example: XML InfoSet is a foundation for various specs that have a "data model" of the usable content of an XML document. However, there is no "InfoSet API" or "InfoSet Parser" specified."""@en . 509 | 510 | spec:NotationSyntax 511 | a skos:Concept ; 512 | skos:prefLabel "Notation/syntax"@en ; 513 | skos:definition "Describes a language that will be expressed as an actual character stream in XML or Web content and whose semantics will be understood by other W3C-specified technologies. Example: XPath is a non-XML-based notation for expressions that is used as the W3C-standard expression language for XSLT, XPointer, and XForms. The specifications of those other technologies do not treat XPath as a black box, but rather impose limits, add extensions, and/or recognize the range of potential values of an XPath expression. By doing so, the other technologies require a certain level of precision in the XPath specification, including precision about its variability, to use the hooks and impose their limits."@en . 514 | 515 | spec:ContentData 516 | a skos:Concept ; 517 | skos:prefLabel "Content/data"@en ; 518 | skos:definition "Describes a markup language whose downstream usage is to express meaning to an end user or to applications specific to a discipline other than the Web itself. Example: MathML is a markup language for the math discipline, and may be used to express mathematical ideas to a person or to math software. SVG is a language for expressing graphical ideas."@en . 519 | 520 | spec:SetOfEvents 521 | a skos:Concept ; 522 | skos:prefLabel "Set of events"@en ; 523 | skos:definition "Describes a coherent set of events that software may need to raise or listen for. Example: one part of XForms is a set of form-related events."@en . 524 | 525 | spec:Protocol 526 | a skos:Concept ; 527 | skos:prefLabel "Protocol"@en ; 528 | skos:definition "Describes the interaction between two parties. Example: SOAP."@en . 529 | 530 | spec:ProcessorBehavior 531 | a skos:Concept ; 532 | skos:prefLabel "Processor behavior"@en ; 533 | skos:definition "Describes the behavior of a piece of software that takes well-defined inputs and operates on them to produce specified output. Example: the XSL Transformations language specifies the behavior of an XSLT processor. The specification describes an XML-based style sheet language that directs the operations of a processor, but it clearly states that conformance determinations apply to the processor, not the style sheets. Example: XML Query specifies the behavior of a processor that takes the query language and fetches data, typically arranging that data in a convenient form for XML/Web use. It allows flexibility of the storage system from which data is fetched."@en . 534 | 535 | spec:API 536 | a skos:Concept ; 537 | skos:prefLabel "API"@en ; 538 | skos:definition "APIs - describes a programmatic interface, allowing independent implementation of software that occupies the roles on either side of the interface. Example: DOM specifies an interface that can be implemented by a parser or other processor that intends to offer an XML document in navigable form. Other software that wishes to navigate an XML document (e.g., an XSLT processor) can be written to use the DOM interface."@en . 539 | 540 | spec:RulesForDerivingProfiles 541 | a skos:Concept ; 542 | skos:prefLabel "Rules for deriving profiles"@en ; 543 | skos:definition "Describes how implementers, or any parties other than the WG itself, may produce a profile for a particular situation that cannot be anticipated in complete detail at the time the WG is writing its specification. Example: part of SMIL."@en . 544 | 545 | 546 | #Subdivisions by profiles 547 | spec:suitedFor 548 | a rdf:Property, owl:ObjectProperty ; 549 | rdfs:label "suited for"@en . 550 | 551 | spec:profile 552 | a rdf:Property, owl:ObjectProperty ; 553 | rdfs:label "profile"@en ; 554 | rdfs:subPropertyOf spec:defines . 555 | # rdfs:range spec:ConformanceProfile ; 556 | 557 | spec:ConformanceProfile 558 | a rdfs:Class ; 559 | rdfs:label "Profile"@en ; 560 | rdfs:comment "A profile is a subset of the technology that supports a particular functional objective or a subset of a set of technologies defining how they are required to operate together (e.g., XHTML plus MathML plus SVG)."@en ; 561 | rdfs:isDefinedBy . 562 | 563 | 564 | #Subdivision by modules 565 | spec:composedOf 566 | a rdf:Property, owl:ObjectProperty ; 567 | rdfs:label "composed of"@en ; 568 | rdfs:subPropertyOf spec:defines . 569 | 570 | spec:module 571 | a rdf:Property, owl:ObjectProperty ; 572 | rdfs:label "module"@en ; 573 | rdfs:subPropertyOf spec:composedOf . 574 | # rdfs:range spec:ConformanceModule ; 575 | 576 | spec:ConformanceModule 577 | a rdfs:Class ; 578 | rdfs:label "Module"@en ; 579 | rdfs:comment "Modules are discrete divisions or functional groupings of the technology and do not necessarily fit in a simple hierarchical structure."@en ; 580 | rdfs:isDefinedBy . 581 | 582 | 583 | #Subdivision by levels 584 | spec:functionalLevel 585 | a rdf:Property, owl:ObjectProperty ; 586 | rdfs:label "functional level"@en ; 587 | rdfs:subPropertyOf spec:defines . 588 | # rdfs:range spec:ConformanceFunctionalLevel ; 589 | 590 | spec:buildUpon 591 | a rdf:Property, owl:ObjectProperty ; 592 | rdfs:label "build upon"@en ; 593 | rdfs:subPropertyOf spec:defines . 594 | 595 | spec:ConformanceFunctionalLevel 596 | a rdfs:Class ; 597 | rdfs:label "Functional level"@en ; 598 | rdfs:comment "Functional levels — or in common usage simply levels — are used to group functionality into nested subsets, ranging from minimal or core functionality to full or complete functionally. Level 1 is the minimum or core of the technology. Level 2 includes all of level 1 plus additional functionality. This nesting continues until level n, which consists of the entire technology."@en ; 599 | rdfs:isDefinedBy . 600 | 601 | 602 | # XXX: Already covered by other vocabs. Reuse existing or check for subProperty/equivalentProperty possibility. 603 | spec:thisVersion 604 | a rdf:Property . 605 | spec:latestVersion 606 | a rdf:Property . 607 | spec:previousVersion 608 | a rdf:Property . 609 | # or editorList authorList contributorList 610 | spec:editor 611 | a rdf:Property . 612 | spec:author 613 | a rdf:Property . 614 | spec:contributor 615 | a rdf:Property . 616 | # doap-ish. 617 | spec:repository 618 | a rdf:Property . 619 | spec:issueTracker 620 | a rdf:Property . 621 | spec:implementation 622 | a rdf:Property . 623 | # Citations / References. Use CiTO 624 | spec:citation 625 | a rdf:Property . 626 | #Social 627 | #as:inReplyTo 628 | #ldp:inbox 629 | #oa:annotationService 630 | --------------------------------------------------------------------------------