Skip to content

Commit c194bf3

Browse files
authored
feat(shapes): add sh:node constraints (#61)
* feat(shapes): add sh:node constraints * chore(data): pass sh:node validation * fix(shapes): add sh:class back but on node shapes * fix(shapes): restore IRI for ex:provider
1 parent 79d2063 commit c194bf3

File tree

2 files changed

+25
-21
lines changed

2 files changed

+25
-21
lines changed

catalog-data.ttl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -611,7 +611,7 @@ cdata:EDWADAproject a ex:Organization ;
611611
cdata:EmberSolid a ex:Software ;
612612
ex:landingPage <https://chuixuewan.github.io/solid-clinic/> ;
613613
ex:name "Ember Solid" ;
614-
ex:provider cdata:RedPencil ;
614+
ex:provider cdata:Redpencil ;
615615
ex:status con:Production ;
616616
ex:subType con:SoftwareLibrary .
617617

@@ -2096,7 +2096,7 @@ cdata:PASS a ex:Service ;
20962096
ex:repository <https://github.com/codeforpdx/PASS> ;
20972097
ex:serviceAudience "homeless people,housing services case workers"@en ;
20982098
ex:socialKeyword "access to public resources,housing"@en ;
2099-
ex:softwareStackIncludes cdata:CSS, cdata:PASSPlatform ;
2099+
ex:softwareStackIncludes cdata:CSS ;
21002100
ex:status con:Development ;
21012101
ex:subType con:SpecializedPodService .
21022102

@@ -3554,7 +3554,7 @@ cdata:StartinBloxCo a ex:Organization ;
35543554

35553555
cdata:StartinBloxDotCom a ex:Service ;
35563556
ex:name "Startin'Blox" ;
3557-
ex:provider cdata:StartinBlox ;
3557+
ex:provider cdata:StartinBloxCo ;
35583558
ex:serviceEndpoint <https://startinblox.com/> ;
35593559
ex:softwareStackIncludes cdata:CSS ;
35603560
ex:status con:Production ;

catalog-shacl.shce

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,14 @@ shape :CreativeWorkShape -> ex:CreativeWork ;
2828
sh:name "landing page"@en ;
2929
sh:description "URL(s) where the work is available, or described"
3030
% .
31-
ex:provider IRI %
31+
ex:provider IRI @:OrganizationShape %
3232
sh:name "provider"@en ;
3333
sh:description "Organization(s) responsible for creating the work"
3434
% .
35-
ex:author IRI ex:Person %
35+
ex:author IRI @:PersonShape %
3636
sh:name "author"@en
3737
% .
38-
ex:editor IRI ex:Person %
38+
ex:editor IRI @:PersonShape %
3939
sh:name "editor"@en
4040
% .
4141
ex:description xsd:string|rdf:langString [0..1] maxLength=2000 %
@@ -50,7 +50,7 @@ shape :EventShape -> ex:Event ;
5050
ex:description xsd:string|rdf:langString [0..1] maxLength=2000 %
5151
sh:name "description"@en
5252
% .
53-
ex:provider IRI %
53+
ex:provider IRI @:OrganizationShape %
5454
sh:name "provider"@en ;
5555
sh:description "organization(s) responsible for hosting the event"
5656
% .
@@ -94,11 +94,11 @@ shape :ServiceShape -> ex:Service ;
9494
sh:name "landing page"@en ;
9595
sh:description "URL where the service is described"
9696
% .
97-
ex:softwareStackIncludes IRI %
97+
ex:softwareStackIncludes @:SoftwareShape %
9898
sh:name "software stack includes"@en ;
9999
sh:description "software used by this service"
100100
% .
101-
ex:provider IRI %
101+
ex:provider IRI @:OrganizationShape %
102102
sh:name "provider"@en ;
103103
sh:description "Organization(s) responsible for providing the service"
104104
% .
@@ -112,7 +112,8 @@ shape :ServiceShape -> ex:Service ;
112112
% .
113113
}
114114
shape :SoftwareShape -> ex:Software ;
115-
sh:name "Software"@en {
115+
sh:name "Software"@en;
116+
sh:class ex:Software {
116117
ex:name xsd:string|rdf:langString [1..1] %
117118
sh:name "name"@en
118119
% .
@@ -148,15 +149,15 @@ shape :SoftwareShape -> ex:Software ;
148149
sh:name "showcase" ;
149150
sh:description "URL that can be opened in a web browser to use this app"
150151
% .
151-
ex:provider IRI %
152+
ex:provider IRI @:OrganizationShape %
152153
sh:name "provider"@en ;
153154
sh:description "organization(s) responsible for creating/maintaining the softare"
154155
% .
155-
ex:maintainer IRI ex:Person %
156+
ex:maintainer IRI @:PersonShape %
156157
sh:name "maintainer"@en ;
157158
sh:description "person responsible for maintaining the software"
158159
% .
159-
ex:developer IRI ex:Person %
160+
ex:developer IRI @:PersonShape %
160161
sh:name "developer"@en ;
161162
sh:description "person contributiong to the software"
162163
% .
@@ -168,11 +169,11 @@ shape :SoftwareShape -> ex:Software ;
168169
sh:name "technical keyword"@en ;
169170
sh:description "comma-separated list for product type e.g. game, calendar, contacts manager"
170171
% .
171-
ex:conformsTo IRI ex:ClassOfProduct %
172+
ex:conformsTo IRI @:ClassOfProductShape %
172173
sh:name "conforms to"@en ;
173174
sh:description "a class of product, from a specification, that this implementation conforms to"
174175
% .
175-
ex:hasDependencyOn IRI ex:Software %
176+
ex:hasDependencyOn IRI @:SoftwareShape %
176177
sh:name "has dependency on"@en ;
177178
sh:description "a library/module that this software depends on"
178179
% .
@@ -193,19 +194,20 @@ shape :SpecificationShape -> ex:Specification ;
193194
sh:name "landing page"@en ;
194195
sh:description "URL where the specification is described"
195196
% .
196-
ex:editor IRI ex:Person %
197+
ex:editor IRI @:PersonShape %
197198
sh:name "editor"@en
198199
% .
199-
ex:author IRI ex:Person %
200+
ex:author IRI @:PersonShape %
200201
sh:name "author"@en
201202
% .
202-
ex:definesConformanceFor IRI ex:ClassOfProduct %
203+
ex:definesConformanceFor IRI @:ClassOfProductShape %
203204
sh:name "defines conformance for"@en ;
204205
sh:description "a class of product which this specification defines"
205206
% .
206207
}
207208
shape :ClassOfProductShape -> ex:ClassOfProduct ;
208-
sh:name "Class of Product"@en {
209+
sh:name "Class of Product"@en;
210+
sh:class ex:ClassOfProduct {
209211
ex:name xsd:string|rdf:langString [1..1] %
210212
sh:name "name"@en
211213
% .
@@ -236,7 +238,8 @@ shape :OntologyShape -> ex:Ontology ;
236238
% .
237239
}
238240
shape :OrganizationShape -> ex:Organization ;
239-
sh:name "Organization"@en {
241+
sh:name "Organization"@en;
242+
sh:class ex:Organization {
240243
ex:name xsd:string|rdf:langString [1..1] %
241244
sh:name "name"@en
242245
% .
@@ -274,7 +277,8 @@ shape :OrganizationShape -> ex:Organization ;
274277
% .
275278
}
276279
shape :PersonShape -> ex:Person ;
277-
sh:name "Person"@en {
280+
sh:name "Person"@en;
281+
sh:class ex:Person {
278282
ex:name xsd:string|rdf:langString [1..1] %
279283
sh:name "name"@en
280284
% .

0 commit comments

Comments
 (0)