-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathcatalog-shacl.shce
More file actions
260 lines (256 loc) · 8.28 KB
/
catalog-shacl.shce
File metadata and controls
260 lines (256 loc) · 8.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX con: <https://solidproject.solidcommunity.net/catalog/taxonomy#>
PREFIX ex: <http://example.org#>
PREFIX : <https://solidproject.solidcommunity.net/catalog/shapes#>
shape :SolidResourceShape {
targetSubjectsOf=rdf:type .
rdf:type in=[ex:CreativeWork ex:Event ex:Software ex:Service ex:Person ex:Organization] .
}
shape :CreativeWorkShape -> ex:CreativeWork ;
sh:name "Creative Work"@en;
sh:nodeKind sh:IRI;
sh:class ex:CreativeWork {
ex:name xsd:string [1..1] %
sh:name "name"@en
% .
ex:subType [1..*] in=[con:AboutSolid con:AboutSolidApps con:OtherLearningResource] %
sh:name "subtype"@en
% .
ex:about IRI %
sh:name "references" ;
sh:description "if specific to a product, the name of the product"
% .
ex:technicalKeyword xsd:string %
sh:name "keyword"@en
% .
ex:landingPage IRI %
sh:name "landing page"@en ;
sh:description "URL(s) where the work is available, or described"
% .
ex:provider IRI @:OrganizationShape %
sh:name "provider"@en ;
sh:description "Organization(s) responsible for creating the work"
% .
ex:author IRI @:PersonShape %
sh:name "author"@en
% .
ex:editor IRI @:PersonShape %
sh:name "editor"@en
% .
ex:description xsd:string [0..1] maxLength=2000 %
sh:name "description"@en
% .
}
shape :EventShape -> ex:Event ;
sh:name "Event"@en;
sh:nodeKind sh:IRI;
sh:class ex:Event {
ex:name xsd:string [1..1] %
sh:name "name"@en
% .
ex:description xsd:string [0..1] maxLength=2000 %
sh:name "description"@en
% .
ex:provider IRI @:OrganizationShape %
sh:name "provider"@en ;
sh:description "organization(s) responsible for hosting the event"
% .
ex:schedule xsd:string [0..1] %
sh:name "schedule"
% .
ex:videoCallPage IRI [0..1] %
sh:name "video call URL"
% .
ex:landingPage IRI %
sh:name "landing page"@en ;
sh:description "URL where the event is described"
% .
}
shape :ServiceShape -> ex:Service ;
sh:name "Service"@en;
sh:nodeKind sh:IRI;
sh:class ex:Service {
ex:name xsd:string [1..1] %
sh:name "name"@en
% .
ex:subType [1..*] in=[con:GeneralPurposePodService con:SpecializedPodService con:CommunicationService con:OtherApp] %
sh:name "subtype"@en
% .
ex:status [1..1] in=[con:Exploration con:Development con:Production con:Archived] %
sh:name "status"@en
% .
ex:description xsd:string [0..1] maxLength=2000 %
sh:name "description"@en
% .
ex:contactEmail IRI [0..1] pattern="^mailto:[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$" %
sh:name "contact email"@en ;
sh:description "if you wish to share the email privately to ODI, leave this blank & contact solid@theodi.org"
% .
ex:logo IRI [0..1] %
sh:name "logo"@en
% .
ex:serviceEndpoint IRI [0..1] %
sh:name "service endpoint"@en ;
sh:description "URL where the service can be accessed"
% .
ex:landingPage IRI %
sh:name "landing page"@en ;
sh:description "URL where the service is described"
% .
ex:softwareStackIncludes @:SoftwareShape %
sh:name "software stack includes"@en ;
sh:description "software used by this service"
% .
ex:provider IRI @:OrganizationShape %
sh:name "provider"@en ;
sh:description "Organization(s) responsible for providing the service"
% .
ex:socialKeyword xsd:string %
sh:name "social keyword"@en ;
sh:description "for targeted Pod Services only: social domain of service e.g. housing, transportation, name of an industry"
% .
ex:serviceAudience xsd:string [0..1] %
sh:name "service audience"@en ;
sh:description "for targeted Pod Services only; e.g. 'citizens of Belgium' or 'Yarrabah community'"
% .
}
shape :SoftwareShape -> ex:Software ;
sh:name "Software"@en;
sh:nodeKind sh:IRI;
sh:class ex:Software {
ex:name xsd:string [1..1] %
sh:name "name"@en
% .
ex:subType [1..*] in=[con:ProductivityApp con:LeisureApp con:PodApp con:PodServer con:SpecializedPodService con:OtherApp con:AuthenticatedFetch con:RdfParsing con:Framework con:Search con:OtherLibrary ] %
sh:name "subtype"
% .
ex:status [1..1] in=[con:Exploration con:Development con:Production con:Archived] %
sh:name "status"@en
% .
ex:contactEmail IRI [0..1] pattern="^mailto:[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$" %
sh:name "contact email"@en ;
sh:description "if you wish to share the email privately to ODI, leave this blank & contact solid@theodi.org"
% .
ex:description xsd:string [0..1] maxLength=2000 %
sh:name "description"@en
% .
ex:programmingLanguage xsd:string [0..1] %
sh:name "programming language"@en
% .
ex:clientID IRI [0..1] %
sh:name "ClientID" ;
sh:description "an OIDC ClientID, if available"
% .
ex:logo IRI [0..1] %
sh:name "logo"@en
% .
ex:landingPage IRI %
sh:name "landing page"@en ;
sh:description "URL where the resource is described"
% .
ex:repository IRI [0..1] %
sh:name "repository"@en ;
sh:description "URL where code for the resource is available"
% .
ex:showcase IRI [0..1] %
sh:name "showcase" ;
sh:description "URL that can be opened in a web browser to use this app"
% .
ex:provider IRI @:OrganizationShape %
sh:name "provider"@en ;
sh:description "organization(s) responsible for creating/maintaining the softare"
% .
ex:maintainer IRI @:PersonShape %
sh:name "maintainer"@en ;
sh:description "person responsible for maintaining the software"
% .
ex:socialKeyword xsd:string %
sh:name "social keyword"@en ;
sh:description "social domain addressed by the software e.g. housing, transportation, name of an industry"
% .
ex:technicalKeyword xsd:string %
sh:name "technical keyword"@en ;
sh:description "comma-separated list for product type e.g. game, calendar, contacts manager"
% .
}
shape :OrganizationShape -> ex:Organization ;
sh:name "Organization"@en;
sh:nodeKind sh:IRI;
sh:class ex:Organization {
ex:name xsd:string [1..1] %
sh:name "name"@en
% .
ex:subType [1..*] in=[con:Company con:GovernmentalOrganization con:UniversityProject con:OpenSourceProject con:FundingOrganization con:OtherNGO] %
sh:name "subtype"
% .
ex:contactEmail IRI [0..1] pattern="^mailto:[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$" %
sh:name "contact email"@en ;
sh:description "if you wish to share the email privately to ODI, leave this blank & contact solid@theodi.org"
% .
ex:description xsd:string [0..1] maxLength=2000 %
sh:name "description"@en
% .
ex:logo IRI [0..1] %
sh:name "logo"@en
% .
ex:webid IRI [0..1] %
sh:name "WebID"
% .
ex:landingPage IRI %
sh:name "landing page"@en ;
sh:description "URL where the organization is described"
% .
ex:socialKeyword xsd:string %
sh:name "social keyword"@en ;
sh:description "social domain of organization's activies e.g. housing, transportation, name of an industry"
% .
ex:resourcesWanted xsd:string maxLength=2000 %
sh:name "resources wanted"@en ;
sh:description "funding, employees, interns, partners, separate multiple with a blank line"
% .
ex:resourcesOffered xsd:string maxLength=2000 %
sh:name "resources offered"@en ;
sh:description "funding, mentorship, collaboration, offered; separate multiple with a blank line"
% .
}
shape :PersonShape -> ex:Person ;
sh:name "Person"@en;
sh:nodeKind sh:IRI;
sh:class ex:Person {
ex:name xsd:string [1..1] %
sh:name "name"@en
% .
ex:contactEmail IRI [0..1] pattern="^mailto:[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$" %
sh:name "contact email"@en ;
sh:description "if you wish to share the email privately to ODI, leave this blank & contact solid@theodi.org"
% .
ex:webid IRI [0..1] %
sh:name "WebID"
% .
ex:forumHandle xsd:string [0..1] %
sh:name "forum handle" ;
sh:description "your handle/nick on the Solid Forum"
% .
ex:matrixHandle xsd:string [0..1] %
sh:name "matrix handle" ;
sh:description "your handle/nick in the Matrix chatrooms"
% .
ex:description xsd:string [0..1] maxLength=2000 %
sh:name "description"@en
% .
ex:logo IRI [0..1] %
sh:name "logo"@en
% .
ex:landingPage IRI %
sh:name "landing page"@en ;
sh:description "URL where the person is described and/or links to their resources are available"
% .
ex:resourcesWanted xsd:string maxLength=2000 %
sh:name "resources wanted"@en ;
sh:description "funding, employees, interns, partners, separate multiple with a blank line"
% .
ex:resourcesOffered xsd:string maxLength=2000 %
sh:name "resources offered"@en ;
sh:description "funding, mentorship, collaboration, offered; separate multiple with a blank line"
% .
}