@forwardimpact/schema 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +58 -0
- package/bin/fit-schema.js +48 -21
- package/examples/behaviours/outcome_ownership.yaml +1 -1
- package/examples/behaviours/polymathic_knowledge.yaml +1 -1
- package/examples/behaviours/precise_communication.yaml +1 -1
- package/examples/behaviours/relentless_curiosity.yaml +1 -1
- package/examples/behaviours/systems_thinking.yaml +1 -1
- package/examples/capabilities/business.yaml +1 -1
- package/examples/capabilities/delivery.yaml +1 -1
- package/examples/capabilities/people.yaml +1 -1
- package/examples/capabilities/reliability.yaml +1 -1
- package/examples/capabilities/scale.yaml +1 -1
- package/examples/disciplines/data_engineering.yaml +1 -1
- package/examples/disciplines/engineering_management.yaml +1 -1
- package/examples/disciplines/software_engineering.yaml +1 -1
- package/examples/drivers.yaml +1 -1
- package/examples/framework.yaml +1 -1
- package/examples/grades.yaml +1 -1
- package/examples/questions/behaviours/outcome_ownership.yaml +1 -1
- package/examples/questions/behaviours/polymathic_knowledge.yaml +1 -1
- package/examples/questions/behaviours/precise_communication.yaml +1 -1
- package/examples/questions/behaviours/relentless_curiosity.yaml +1 -1
- package/examples/questions/behaviours/systems_thinking.yaml +1 -1
- package/examples/questions/skills/architecture_design.yaml +1 -1
- package/examples/questions/skills/cloud_platforms.yaml +1 -1
- package/examples/questions/skills/code_quality.yaml +1 -1
- package/examples/questions/skills/data_modeling.yaml +1 -1
- package/examples/questions/skills/devops.yaml +1 -1
- package/examples/questions/skills/full_stack_development.yaml +1 -1
- package/examples/questions/skills/sre_practices.yaml +1 -1
- package/examples/questions/skills/stakeholder_management.yaml +1 -1
- package/examples/questions/skills/team_collaboration.yaml +1 -1
- package/examples/questions/skills/technical_writing.yaml +1 -1
- package/examples/self-assessments.yaml +1 -1
- package/examples/stages.yaml +1 -1
- package/examples/tracks/platform.yaml +1 -1
- package/examples/tracks/sre.yaml +1 -1
- package/lib/schema-validation.js +1 -1
- package/package.json +5 -5
- package/schema/json/behaviour-questions.schema.json +1 -1
- package/schema/json/behaviour.schema.json +1 -1
- package/schema/json/capability.schema.json +1 -1
- package/schema/json/defs.schema.json +1 -1
- package/schema/json/discipline.schema.json +1 -1
- package/schema/json/drivers.schema.json +1 -1
- package/schema/json/framework.schema.json +1 -1
- package/schema/json/grades.schema.json +1 -1
- package/schema/json/self-assessments.schema.json +1 -1
- package/schema/json/skill-questions.schema.json +1 -1
- package/schema/json/stages.schema.json +1 -1
- package/schema/json/track.schema.json +1 -1
- package/schema/rdf/behaviour-questions.ttl +96 -0
- package/schema/rdf/behaviour.ttl +130 -0
- package/schema/rdf/capability.ttl +440 -0
- package/schema/rdf/defs.ttl +396 -0
- package/schema/rdf/discipline.ttl +336 -0
- package/schema/rdf/drivers.ttl +84 -0
- package/schema/rdf/framework.ttl +128 -0
- package/schema/rdf/grades.ttl +357 -0
- package/schema/rdf/self-assessments.ttl +147 -0
- package/schema/rdf/skill-questions.ttl +128 -0
- package/schema/rdf/stages.ttl +142 -0
- package/schema/rdf/track.ttl +231 -0
- package/schema/json/index.schema.json +0 -18
- package/schema/rdf/pathway.ttl +0 -2362
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
@prefix fit: <https://www.forwardimpact.team/schema/rdf/> .
|
|
2
|
+
@prefix sh: <http://www.w3.org/ns/shacl#> .
|
|
3
|
+
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
|
|
4
|
+
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
|
|
5
|
+
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
|
|
6
|
+
|
|
7
|
+
# =============================================================================
|
|
8
|
+
# Grades Schema
|
|
9
|
+
# =============================================================================
|
|
10
|
+
# Career level defining expectations for skill proficiency, behaviour maturity,
|
|
11
|
+
# and scope of impact.
|
|
12
|
+
# =============================================================================
|
|
13
|
+
|
|
14
|
+
# -----------------------------------------------------------------------------
|
|
15
|
+
# Classes
|
|
16
|
+
# -----------------------------------------------------------------------------
|
|
17
|
+
|
|
18
|
+
fit:Grade a rdfs:Class ;
|
|
19
|
+
rdfs:label "Grade"@en ;
|
|
20
|
+
rdfs:comment "Career level defining expectations for skill proficiency, behaviour maturity, and scope of impact"@en .
|
|
21
|
+
|
|
22
|
+
fit:BaseSkillLevels a rdfs:Class ;
|
|
23
|
+
rdfs:label "Base Skill Levels"@en ;
|
|
24
|
+
rdfs:comment "Base skill levels by skill tier for a grade"@en .
|
|
25
|
+
|
|
26
|
+
fit:GradeExpectations a rdfs:Class ;
|
|
27
|
+
rdfs:label "Grade Expectations"@en ;
|
|
28
|
+
rdfs:comment "Expectations for impact, autonomy, influence, and complexity at a grade level"@en .
|
|
29
|
+
|
|
30
|
+
fit:BreadthCriteria a rdfs:Class ;
|
|
31
|
+
rdfs:label "Breadth Criteria"@en ;
|
|
32
|
+
rdfs:comment "Minimum number of skills at each level for breadth (senior grades only)"@en .
|
|
33
|
+
|
|
34
|
+
# -----------------------------------------------------------------------------
|
|
35
|
+
# Properties
|
|
36
|
+
# -----------------------------------------------------------------------------
|
|
37
|
+
|
|
38
|
+
fit:professionalTitle a rdf:Property ;
|
|
39
|
+
rdfs:label "professionalTitle"@en ;
|
|
40
|
+
rdfs:comment "Title for professional/IC track"@en ;
|
|
41
|
+
rdfs:domain fit:Grade ;
|
|
42
|
+
rdfs:range xsd:string .
|
|
43
|
+
|
|
44
|
+
fit:managementTitle a rdf:Property ;
|
|
45
|
+
rdfs:label "managementTitle"@en ;
|
|
46
|
+
rdfs:comment "Title for management track"@en ;
|
|
47
|
+
rdfs:domain fit:Grade ;
|
|
48
|
+
rdfs:range xsd:string .
|
|
49
|
+
|
|
50
|
+
fit:typicalExperienceRange a rdf:Property ;
|
|
51
|
+
rdfs:label "typicalExperienceRange"@en ;
|
|
52
|
+
rdfs:comment "Expected years of experience range"@en ;
|
|
53
|
+
rdfs:domain fit:Grade ;
|
|
54
|
+
rdfs:range xsd:string .
|
|
55
|
+
|
|
56
|
+
fit:ordinalRank a rdf:Property ;
|
|
57
|
+
rdfs:label "ordinalRank"@en ;
|
|
58
|
+
rdfs:comment "Numeric rank for ordering grades (1 = lowest)"@en ;
|
|
59
|
+
rdfs:domain fit:Grade ;
|
|
60
|
+
rdfs:range xsd:integer .
|
|
61
|
+
|
|
62
|
+
fit:qualificationSummary a rdf:Property ;
|
|
63
|
+
rdfs:label "qualificationSummary"@en ;
|
|
64
|
+
rdfs:comment "Summary of qualifications expected at this grade"@en ;
|
|
65
|
+
rdfs:domain fit:Grade ;
|
|
66
|
+
rdfs:range xsd:string .
|
|
67
|
+
|
|
68
|
+
fit:baseSkillLevels a rdf:Property ;
|
|
69
|
+
rdfs:label "baseSkillLevels"@en ;
|
|
70
|
+
rdfs:comment "Base skill levels by skill tier for this grade"@en ;
|
|
71
|
+
rdfs:domain fit:Grade ;
|
|
72
|
+
rdfs:range fit:BaseSkillLevels .
|
|
73
|
+
|
|
74
|
+
fit:baseBehaviourMaturity a rdf:Property ;
|
|
75
|
+
rdfs:label "baseBehaviourMaturity"@en ;
|
|
76
|
+
rdfs:comment "Base behaviour maturity for this grade"@en ;
|
|
77
|
+
rdfs:domain fit:Grade ;
|
|
78
|
+
rdfs:range fit:BehaviourMaturity .
|
|
79
|
+
|
|
80
|
+
fit:breadthCriteria a rdf:Property ;
|
|
81
|
+
rdfs:label "breadthCriteria"@en ;
|
|
82
|
+
rdfs:comment "Minimum number of skills at each level for breadth"@en ;
|
|
83
|
+
rdfs:domain fit:Grade ;
|
|
84
|
+
rdfs:range fit:BreadthCriteria .
|
|
85
|
+
|
|
86
|
+
fit:expectations a rdf:Property ;
|
|
87
|
+
rdfs:label "expectations"@en ;
|
|
88
|
+
rdfs:comment "Expectations for impact, autonomy, influence, and complexity"@en ;
|
|
89
|
+
rdfs:domain fit:Grade ;
|
|
90
|
+
rdfs:range fit:GradeExpectations .
|
|
91
|
+
|
|
92
|
+
# Base Skill Level Properties
|
|
93
|
+
fit:primary a rdf:Property ;
|
|
94
|
+
rdfs:label "primary"@en ;
|
|
95
|
+
rdfs:comment "Level for core/primary skills"@en ;
|
|
96
|
+
rdfs:domain fit:BaseSkillLevels ;
|
|
97
|
+
rdfs:range fit:SkillLevel .
|
|
98
|
+
|
|
99
|
+
fit:secondary a rdf:Property ;
|
|
100
|
+
rdfs:label "secondary"@en ;
|
|
101
|
+
rdfs:comment "Level for supporting/secondary skills"@en ;
|
|
102
|
+
rdfs:domain fit:BaseSkillLevels ;
|
|
103
|
+
rdfs:range fit:SkillLevel .
|
|
104
|
+
|
|
105
|
+
fit:broad a rdf:Property ;
|
|
106
|
+
rdfs:label "broad"@en ;
|
|
107
|
+
rdfs:comment "Level for broad skills"@en ;
|
|
108
|
+
rdfs:domain fit:BaseSkillLevels ;
|
|
109
|
+
rdfs:range fit:SkillLevel .
|
|
110
|
+
|
|
111
|
+
# Grade Expectation Properties
|
|
112
|
+
fit:impactScope a rdf:Property ;
|
|
113
|
+
rdfs:label "impactScope"@en ;
|
|
114
|
+
rdfs:comment "Scope of impact expected at this grade"@en ;
|
|
115
|
+
rdfs:domain fit:GradeExpectations ;
|
|
116
|
+
rdfs:range xsd:string .
|
|
117
|
+
|
|
118
|
+
fit:autonomyExpectation a rdf:Property ;
|
|
119
|
+
rdfs:label "autonomyExpectation"@en ;
|
|
120
|
+
rdfs:comment "Level of autonomy expected"@en ;
|
|
121
|
+
rdfs:domain fit:GradeExpectations ;
|
|
122
|
+
rdfs:range xsd:string .
|
|
123
|
+
|
|
124
|
+
fit:influenceScope a rdf:Property ;
|
|
125
|
+
rdfs:label "influenceScope"@en ;
|
|
126
|
+
rdfs:comment "Scope of influence"@en ;
|
|
127
|
+
rdfs:domain fit:GradeExpectations ;
|
|
128
|
+
rdfs:range xsd:string .
|
|
129
|
+
|
|
130
|
+
fit:complexityHandled a rdf:Property ;
|
|
131
|
+
rdfs:label "complexityHandled"@en ;
|
|
132
|
+
rdfs:comment "Complexity level the grade should handle"@en ;
|
|
133
|
+
rdfs:domain fit:GradeExpectations ;
|
|
134
|
+
rdfs:range xsd:string .
|
|
135
|
+
|
|
136
|
+
# Breadth Criteria Properties
|
|
137
|
+
fit:awarenessCount a rdf:Property ;
|
|
138
|
+
rdfs:label "awarenessCount"@en ;
|
|
139
|
+
rdfs:domain fit:BreadthCriteria ;
|
|
140
|
+
rdfs:range xsd:integer .
|
|
141
|
+
|
|
142
|
+
fit:foundationalCount a rdf:Property ;
|
|
143
|
+
rdfs:label "foundationalCount"@en ;
|
|
144
|
+
rdfs:domain fit:BreadthCriteria ;
|
|
145
|
+
rdfs:range xsd:integer .
|
|
146
|
+
|
|
147
|
+
fit:workingCount a rdf:Property ;
|
|
148
|
+
rdfs:label "workingCount"@en ;
|
|
149
|
+
rdfs:domain fit:BreadthCriteria ;
|
|
150
|
+
rdfs:range xsd:integer .
|
|
151
|
+
|
|
152
|
+
fit:practitionerCount a rdf:Property ;
|
|
153
|
+
rdfs:label "practitionerCount"@en ;
|
|
154
|
+
rdfs:domain fit:BreadthCriteria ;
|
|
155
|
+
rdfs:range xsd:integer .
|
|
156
|
+
|
|
157
|
+
fit:expertCount a rdf:Property ;
|
|
158
|
+
rdfs:label "expertCount"@en ;
|
|
159
|
+
rdfs:domain fit:BreadthCriteria ;
|
|
160
|
+
rdfs:range xsd:integer .
|
|
161
|
+
|
|
162
|
+
# =============================================================================
|
|
163
|
+
# SHACL SHAPES
|
|
164
|
+
# =============================================================================
|
|
165
|
+
|
|
166
|
+
# -----------------------------------------------------------------------------
|
|
167
|
+
# Grade Shape
|
|
168
|
+
# -----------------------------------------------------------------------------
|
|
169
|
+
|
|
170
|
+
fit:GradeShape a sh:NodeShape ;
|
|
171
|
+
sh:targetClass fit:Grade ;
|
|
172
|
+
sh:property [
|
|
173
|
+
sh:path fit:id ;
|
|
174
|
+
sh:datatype xsd:string ;
|
|
175
|
+
sh:pattern "^[A-Z][A-Z0-9]*$" ;
|
|
176
|
+
sh:minCount 1 ;
|
|
177
|
+
sh:maxCount 1 ;
|
|
178
|
+
sh:name "id" ;
|
|
179
|
+
sh:description "Unique grade identifier (e.g., L1, L2, L3)" ;
|
|
180
|
+
] ;
|
|
181
|
+
sh:property [
|
|
182
|
+
sh:path fit:professionalTitle ;
|
|
183
|
+
sh:datatype xsd:string ;
|
|
184
|
+
sh:minCount 1 ;
|
|
185
|
+
sh:maxCount 1 ;
|
|
186
|
+
sh:name "professionalTitle" ;
|
|
187
|
+
sh:description "Title for professional/IC track" ;
|
|
188
|
+
] ;
|
|
189
|
+
sh:property [
|
|
190
|
+
sh:path fit:managementTitle ;
|
|
191
|
+
sh:datatype xsd:string ;
|
|
192
|
+
sh:minCount 1 ;
|
|
193
|
+
sh:maxCount 1 ;
|
|
194
|
+
sh:name "managementTitle" ;
|
|
195
|
+
sh:description "Title for management track" ;
|
|
196
|
+
] ;
|
|
197
|
+
sh:property [
|
|
198
|
+
sh:path fit:typicalExperienceRange ;
|
|
199
|
+
sh:datatype xsd:string ;
|
|
200
|
+
sh:maxCount 1 ;
|
|
201
|
+
sh:name "typicalExperienceRange" ;
|
|
202
|
+
sh:description "Expected years of experience range" ;
|
|
203
|
+
] ;
|
|
204
|
+
sh:property [
|
|
205
|
+
sh:path fit:ordinalRank ;
|
|
206
|
+
sh:datatype xsd:integer ;
|
|
207
|
+
sh:minInclusive 1 ;
|
|
208
|
+
sh:minCount 1 ;
|
|
209
|
+
sh:maxCount 1 ;
|
|
210
|
+
sh:name "ordinalRank" ;
|
|
211
|
+
sh:description "Numeric rank for ordering grades (1 = lowest)" ;
|
|
212
|
+
] ;
|
|
213
|
+
sh:property [
|
|
214
|
+
sh:path fit:qualificationSummary ;
|
|
215
|
+
sh:datatype xsd:string ;
|
|
216
|
+
sh:maxCount 1 ;
|
|
217
|
+
sh:name "qualificationSummary" ;
|
|
218
|
+
sh:description "Summary of qualifications expected at this grade" ;
|
|
219
|
+
] ;
|
|
220
|
+
sh:property [
|
|
221
|
+
sh:path fit:baseSkillLevels ;
|
|
222
|
+
sh:node fit:BaseSkillLevelsShape ;
|
|
223
|
+
sh:minCount 1 ;
|
|
224
|
+
sh:maxCount 1 ;
|
|
225
|
+
sh:name "baseSkillLevels" ;
|
|
226
|
+
sh:description "Base skill levels by skill tier for this grade" ;
|
|
227
|
+
] ;
|
|
228
|
+
sh:property [
|
|
229
|
+
sh:path fit:baseBehaviourMaturity ;
|
|
230
|
+
sh:in ( fit:emerging fit:developing fit:practicing fit:role_modeling fit:exemplifying ) ;
|
|
231
|
+
sh:minCount 1 ;
|
|
232
|
+
sh:maxCount 1 ;
|
|
233
|
+
sh:name "baseBehaviourMaturity" ;
|
|
234
|
+
sh:description "Base behaviour maturity for this grade" ;
|
|
235
|
+
] ;
|
|
236
|
+
sh:property [
|
|
237
|
+
sh:path fit:breadthCriteria ;
|
|
238
|
+
sh:node fit:BreadthCriteriaShape ;
|
|
239
|
+
sh:maxCount 1 ;
|
|
240
|
+
sh:name "breadthCriteria" ;
|
|
241
|
+
sh:description "Minimum number of skills at each level for breadth" ;
|
|
242
|
+
] ;
|
|
243
|
+
sh:property [
|
|
244
|
+
sh:path fit:expectations ;
|
|
245
|
+
sh:node fit:GradeExpectationsShape ;
|
|
246
|
+
sh:maxCount 1 ;
|
|
247
|
+
sh:name "expectations" ;
|
|
248
|
+
sh:description "Expectations for impact, autonomy, influence, and complexity" ;
|
|
249
|
+
] .
|
|
250
|
+
|
|
251
|
+
# -----------------------------------------------------------------------------
|
|
252
|
+
# Base Skill Levels Shape
|
|
253
|
+
# -----------------------------------------------------------------------------
|
|
254
|
+
|
|
255
|
+
fit:BaseSkillLevelsShape a sh:NodeShape ;
|
|
256
|
+
sh:targetClass fit:BaseSkillLevels ;
|
|
257
|
+
sh:property [
|
|
258
|
+
sh:path fit:primary ;
|
|
259
|
+
sh:in ( fit:awareness fit:foundational fit:working fit:practitioner fit:expert ) ;
|
|
260
|
+
sh:minCount 1 ;
|
|
261
|
+
sh:maxCount 1 ;
|
|
262
|
+
sh:name "primary" ;
|
|
263
|
+
sh:description "Level for core/primary skills" ;
|
|
264
|
+
] ;
|
|
265
|
+
sh:property [
|
|
266
|
+
sh:path fit:secondary ;
|
|
267
|
+
sh:in ( fit:awareness fit:foundational fit:working fit:practitioner fit:expert ) ;
|
|
268
|
+
sh:minCount 1 ;
|
|
269
|
+
sh:maxCount 1 ;
|
|
270
|
+
sh:name "secondary" ;
|
|
271
|
+
sh:description "Level for supporting/secondary skills" ;
|
|
272
|
+
] ;
|
|
273
|
+
sh:property [
|
|
274
|
+
sh:path fit:broad ;
|
|
275
|
+
sh:in ( fit:awareness fit:foundational fit:working fit:practitioner fit:expert ) ;
|
|
276
|
+
sh:minCount 1 ;
|
|
277
|
+
sh:maxCount 1 ;
|
|
278
|
+
sh:name "broad" ;
|
|
279
|
+
sh:description "Level for broad skills" ;
|
|
280
|
+
] .
|
|
281
|
+
|
|
282
|
+
# -----------------------------------------------------------------------------
|
|
283
|
+
# Breadth Criteria Shape
|
|
284
|
+
# -----------------------------------------------------------------------------
|
|
285
|
+
|
|
286
|
+
fit:BreadthCriteriaShape a sh:NodeShape ;
|
|
287
|
+
sh:targetClass fit:BreadthCriteria ;
|
|
288
|
+
sh:property [
|
|
289
|
+
sh:path fit:awarenessCount ;
|
|
290
|
+
sh:datatype xsd:integer ;
|
|
291
|
+
sh:minInclusive 1 ;
|
|
292
|
+
sh:maxCount 1 ;
|
|
293
|
+
sh:name "awareness" ;
|
|
294
|
+
] ;
|
|
295
|
+
sh:property [
|
|
296
|
+
sh:path fit:foundationalCount ;
|
|
297
|
+
sh:datatype xsd:integer ;
|
|
298
|
+
sh:minInclusive 1 ;
|
|
299
|
+
sh:maxCount 1 ;
|
|
300
|
+
sh:name "foundational" ;
|
|
301
|
+
] ;
|
|
302
|
+
sh:property [
|
|
303
|
+
sh:path fit:workingCount ;
|
|
304
|
+
sh:datatype xsd:integer ;
|
|
305
|
+
sh:minInclusive 1 ;
|
|
306
|
+
sh:maxCount 1 ;
|
|
307
|
+
sh:name "working" ;
|
|
308
|
+
] ;
|
|
309
|
+
sh:property [
|
|
310
|
+
sh:path fit:practitionerCount ;
|
|
311
|
+
sh:datatype xsd:integer ;
|
|
312
|
+
sh:minInclusive 1 ;
|
|
313
|
+
sh:maxCount 1 ;
|
|
314
|
+
sh:name "practitioner" ;
|
|
315
|
+
] ;
|
|
316
|
+
sh:property [
|
|
317
|
+
sh:path fit:expertCount ;
|
|
318
|
+
sh:datatype xsd:integer ;
|
|
319
|
+
sh:minInclusive 1 ;
|
|
320
|
+
sh:maxCount 1 ;
|
|
321
|
+
sh:name "expert" ;
|
|
322
|
+
] .
|
|
323
|
+
|
|
324
|
+
# -----------------------------------------------------------------------------
|
|
325
|
+
# Grade Expectations Shape
|
|
326
|
+
# -----------------------------------------------------------------------------
|
|
327
|
+
|
|
328
|
+
fit:GradeExpectationsShape a sh:NodeShape ;
|
|
329
|
+
sh:targetClass fit:GradeExpectations ;
|
|
330
|
+
sh:property [
|
|
331
|
+
sh:path fit:impactScope ;
|
|
332
|
+
sh:datatype xsd:string ;
|
|
333
|
+
sh:maxCount 1 ;
|
|
334
|
+
sh:name "impactScope" ;
|
|
335
|
+
sh:description "Scope of impact expected at this grade" ;
|
|
336
|
+
] ;
|
|
337
|
+
sh:property [
|
|
338
|
+
sh:path fit:autonomyExpectation ;
|
|
339
|
+
sh:datatype xsd:string ;
|
|
340
|
+
sh:maxCount 1 ;
|
|
341
|
+
sh:name "autonomyExpectation" ;
|
|
342
|
+
sh:description "Level of autonomy expected" ;
|
|
343
|
+
] ;
|
|
344
|
+
sh:property [
|
|
345
|
+
sh:path fit:influenceScope ;
|
|
346
|
+
sh:datatype xsd:string ;
|
|
347
|
+
sh:maxCount 1 ;
|
|
348
|
+
sh:name "influenceScope" ;
|
|
349
|
+
sh:description "Scope of influence" ;
|
|
350
|
+
] ;
|
|
351
|
+
sh:property [
|
|
352
|
+
sh:path fit:complexityHandled ;
|
|
353
|
+
sh:datatype xsd:string ;
|
|
354
|
+
sh:maxCount 1 ;
|
|
355
|
+
sh:name "complexityHandled" ;
|
|
356
|
+
sh:description "Complexity level the grade should handle" ;
|
|
357
|
+
] .
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
@prefix fit: <https://www.forwardimpact.team/schema/rdf/> .
|
|
2
|
+
@prefix sh: <http://www.w3.org/ns/shacl#> .
|
|
3
|
+
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
|
|
4
|
+
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
|
|
5
|
+
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
|
|
6
|
+
|
|
7
|
+
# =============================================================================
|
|
8
|
+
# Self Assessments Schema
|
|
9
|
+
# =============================================================================
|
|
10
|
+
# Example candidate profiles for testing candidate matching.
|
|
11
|
+
# =============================================================================
|
|
12
|
+
|
|
13
|
+
# -----------------------------------------------------------------------------
|
|
14
|
+
# Classes
|
|
15
|
+
# -----------------------------------------------------------------------------
|
|
16
|
+
|
|
17
|
+
fit:SelfAssessment a rdfs:Class ;
|
|
18
|
+
rdfs:label "Self Assessment"@en ;
|
|
19
|
+
rdfs:comment "Example candidate profile for testing candidate matching"@en .
|
|
20
|
+
|
|
21
|
+
fit:SkillAssessment a rdfs:Class ;
|
|
22
|
+
rdfs:label "Skill Assessment"@en ;
|
|
23
|
+
rdfs:comment "Assessment of a skill at a particular level"@en .
|
|
24
|
+
|
|
25
|
+
fit:BehaviourAssessment a rdfs:Class ;
|
|
26
|
+
rdfs:label "Behaviour Assessment"@en ;
|
|
27
|
+
rdfs:comment "Assessment of a behaviour at a particular maturity"@en .
|
|
28
|
+
|
|
29
|
+
# -----------------------------------------------------------------------------
|
|
30
|
+
# Properties
|
|
31
|
+
# -----------------------------------------------------------------------------
|
|
32
|
+
|
|
33
|
+
fit:skillLevels a rdf:Property ;
|
|
34
|
+
rdfs:label "skillLevels"@en ;
|
|
35
|
+
rdfs:comment "Skill assessments"@en ;
|
|
36
|
+
rdfs:domain fit:SelfAssessment ;
|
|
37
|
+
rdfs:range fit:SkillAssessment .
|
|
38
|
+
|
|
39
|
+
fit:behaviourMaturities a rdf:Property ;
|
|
40
|
+
rdfs:label "behaviourMaturities"@en ;
|
|
41
|
+
rdfs:comment "Behaviour assessments"@en ;
|
|
42
|
+
rdfs:domain fit:SelfAssessment ;
|
|
43
|
+
rdfs:range fit:BehaviourAssessment .
|
|
44
|
+
|
|
45
|
+
fit:assessedSkill a rdf:Property ;
|
|
46
|
+
rdfs:label "assessedSkill"@en ;
|
|
47
|
+
rdfs:comment "The skill being assessed"@en ;
|
|
48
|
+
rdfs:domain fit:SkillAssessment ;
|
|
49
|
+
rdfs:range fit:Skill .
|
|
50
|
+
|
|
51
|
+
fit:assessedLevel a rdf:Property ;
|
|
52
|
+
rdfs:label "assessedLevel"@en ;
|
|
53
|
+
rdfs:comment "The assessed level for the skill"@en ;
|
|
54
|
+
rdfs:domain fit:SkillAssessment ;
|
|
55
|
+
rdfs:range fit:SkillLevel .
|
|
56
|
+
|
|
57
|
+
fit:assessedBehaviour a rdf:Property ;
|
|
58
|
+
rdfs:label "assessedBehaviour"@en ;
|
|
59
|
+
rdfs:comment "The behaviour being assessed"@en ;
|
|
60
|
+
rdfs:domain fit:BehaviourAssessment ;
|
|
61
|
+
rdfs:range fit:Behaviour .
|
|
62
|
+
|
|
63
|
+
fit:assessedMaturity a rdf:Property ;
|
|
64
|
+
rdfs:label "assessedMaturity"@en ;
|
|
65
|
+
rdfs:comment "The assessed maturity for the behaviour"@en ;
|
|
66
|
+
rdfs:domain fit:BehaviourAssessment ;
|
|
67
|
+
rdfs:range fit:BehaviourMaturity .
|
|
68
|
+
|
|
69
|
+
# =============================================================================
|
|
70
|
+
# SHACL SHAPES
|
|
71
|
+
# =============================================================================
|
|
72
|
+
|
|
73
|
+
# -----------------------------------------------------------------------------
|
|
74
|
+
# Self Assessment Shape
|
|
75
|
+
# -----------------------------------------------------------------------------
|
|
76
|
+
|
|
77
|
+
fit:SelfAssessmentShape a sh:NodeShape ;
|
|
78
|
+
sh:targetClass fit:SelfAssessment ;
|
|
79
|
+
sh:property [
|
|
80
|
+
sh:path fit:id ;
|
|
81
|
+
sh:datatype xsd:string ;
|
|
82
|
+
sh:pattern "^[a-z][a-z0-9_]*$" ;
|
|
83
|
+
sh:minCount 1 ;
|
|
84
|
+
sh:maxCount 1 ;
|
|
85
|
+
sh:name "id" ;
|
|
86
|
+
sh:description "Unique assessment identifier" ;
|
|
87
|
+
] ;
|
|
88
|
+
sh:property [
|
|
89
|
+
sh:path fit:skillLevels ;
|
|
90
|
+
sh:node fit:SkillAssessmentShape ;
|
|
91
|
+
sh:name "skillLevels" ;
|
|
92
|
+
sh:description "Skill assessments" ;
|
|
93
|
+
] ;
|
|
94
|
+
sh:property [
|
|
95
|
+
sh:path fit:behaviourMaturities ;
|
|
96
|
+
sh:node fit:BehaviourAssessmentShape ;
|
|
97
|
+
sh:name "behaviourMaturities" ;
|
|
98
|
+
sh:description "Behaviour assessments" ;
|
|
99
|
+
] .
|
|
100
|
+
|
|
101
|
+
# -----------------------------------------------------------------------------
|
|
102
|
+
# Skill Assessment Shape
|
|
103
|
+
# -----------------------------------------------------------------------------
|
|
104
|
+
|
|
105
|
+
fit:SkillAssessmentShape a sh:NodeShape ;
|
|
106
|
+
sh:targetClass fit:SkillAssessment ;
|
|
107
|
+
sh:property [
|
|
108
|
+
sh:path fit:assessedSkill ;
|
|
109
|
+
sh:datatype xsd:string ;
|
|
110
|
+
sh:pattern "^[a-z][a-z0-9_]*$" ;
|
|
111
|
+
sh:minCount 1 ;
|
|
112
|
+
sh:maxCount 1 ;
|
|
113
|
+
sh:name "assessedSkill" ;
|
|
114
|
+
sh:description "The skill being assessed (skill ID)" ;
|
|
115
|
+
] ;
|
|
116
|
+
sh:property [
|
|
117
|
+
sh:path fit:assessedLevel ;
|
|
118
|
+
sh:in ( fit:awareness fit:foundational fit:working fit:practitioner fit:expert ) ;
|
|
119
|
+
sh:minCount 1 ;
|
|
120
|
+
sh:maxCount 1 ;
|
|
121
|
+
sh:name "assessedLevel" ;
|
|
122
|
+
sh:description "The assessed level for the skill" ;
|
|
123
|
+
] .
|
|
124
|
+
|
|
125
|
+
# -----------------------------------------------------------------------------
|
|
126
|
+
# Behaviour Assessment Shape
|
|
127
|
+
# -----------------------------------------------------------------------------
|
|
128
|
+
|
|
129
|
+
fit:BehaviourAssessmentShape a sh:NodeShape ;
|
|
130
|
+
sh:targetClass fit:BehaviourAssessment ;
|
|
131
|
+
sh:property [
|
|
132
|
+
sh:path fit:assessedBehaviour ;
|
|
133
|
+
sh:datatype xsd:string ;
|
|
134
|
+
sh:pattern "^[a-z][a-z0-9_]*$" ;
|
|
135
|
+
sh:minCount 1 ;
|
|
136
|
+
sh:maxCount 1 ;
|
|
137
|
+
sh:name "assessedBehaviour" ;
|
|
138
|
+
sh:description "The behaviour being assessed (behaviour ID)" ;
|
|
139
|
+
] ;
|
|
140
|
+
sh:property [
|
|
141
|
+
sh:path fit:assessedMaturity ;
|
|
142
|
+
sh:in ( fit:emerging fit:developing fit:practicing fit:role_modeling fit:exemplifying ) ;
|
|
143
|
+
sh:minCount 1 ;
|
|
144
|
+
sh:maxCount 1 ;
|
|
145
|
+
sh:name "assessedMaturity" ;
|
|
146
|
+
sh:description "The assessed maturity for the behaviour" ;
|
|
147
|
+
] .
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
@prefix fit: <https://www.forwardimpact.team/schema/rdf/> .
|
|
2
|
+
@prefix sh: <http://www.w3.org/ns/shacl#> .
|
|
3
|
+
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
|
|
4
|
+
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
|
|
5
|
+
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
|
|
6
|
+
|
|
7
|
+
# =============================================================================
|
|
8
|
+
# Skill Questions Schema
|
|
9
|
+
# =============================================================================
|
|
10
|
+
# Interview questions for assessing skills.
|
|
11
|
+
# =============================================================================
|
|
12
|
+
|
|
13
|
+
# -----------------------------------------------------------------------------
|
|
14
|
+
# Classes
|
|
15
|
+
# -----------------------------------------------------------------------------
|
|
16
|
+
|
|
17
|
+
fit:Question a rdfs:Class ;
|
|
18
|
+
rdfs:label "Question"@en ;
|
|
19
|
+
rdfs:comment "Interview question for assessing skills or behaviours"@en .
|
|
20
|
+
|
|
21
|
+
# -----------------------------------------------------------------------------
|
|
22
|
+
# Properties
|
|
23
|
+
# -----------------------------------------------------------------------------
|
|
24
|
+
|
|
25
|
+
fit:text a rdf:Property ;
|
|
26
|
+
rdfs:label "text"@en ;
|
|
27
|
+
rdfs:comment "The question text"@en ;
|
|
28
|
+
rdfs:domain fit:Question ;
|
|
29
|
+
rdfs:range xsd:string .
|
|
30
|
+
|
|
31
|
+
fit:lookingFor a rdf:Property ;
|
|
32
|
+
rdfs:label "lookingFor"@en ;
|
|
33
|
+
rdfs:comment "Bullet points of good answer indicators"@en ;
|
|
34
|
+
rdfs:domain fit:Question ;
|
|
35
|
+
rdfs:range xsd:string .
|
|
36
|
+
|
|
37
|
+
fit:expectedDurationMinutes a rdf:Property ;
|
|
38
|
+
rdfs:label "expectedDurationMinutes"@en ;
|
|
39
|
+
rdfs:comment "Expected duration in minutes"@en ;
|
|
40
|
+
rdfs:domain fit:Question ;
|
|
41
|
+
rdfs:range xsd:integer .
|
|
42
|
+
|
|
43
|
+
fit:followUps a rdf:Property ;
|
|
44
|
+
rdfs:label "followUps"@en ;
|
|
45
|
+
rdfs:comment "Probing questions for deeper exploration"@en ;
|
|
46
|
+
rdfs:domain fit:Question ;
|
|
47
|
+
rdfs:range xsd:string .
|
|
48
|
+
|
|
49
|
+
fit:forSkill a rdf:Property ;
|
|
50
|
+
rdfs:label "forSkill"@en ;
|
|
51
|
+
rdfs:comment "The skill this question assesses"@en ;
|
|
52
|
+
rdfs:domain fit:Question ;
|
|
53
|
+
rdfs:range fit:Skill .
|
|
54
|
+
|
|
55
|
+
fit:atLevel a rdf:Property ;
|
|
56
|
+
rdfs:label "atLevel"@en ;
|
|
57
|
+
rdfs:comment "The skill level this question is for"@en ;
|
|
58
|
+
rdfs:domain fit:Question ;
|
|
59
|
+
rdfs:range fit:SkillLevel .
|
|
60
|
+
|
|
61
|
+
# =============================================================================
|
|
62
|
+
# SHACL SHAPES
|
|
63
|
+
# =============================================================================
|
|
64
|
+
|
|
65
|
+
# -----------------------------------------------------------------------------
|
|
66
|
+
# Skill Question Shape
|
|
67
|
+
# -----------------------------------------------------------------------------
|
|
68
|
+
|
|
69
|
+
fit:SkillQuestionShape a sh:NodeShape ;
|
|
70
|
+
sh:targetClass fit:Question ;
|
|
71
|
+
sh:property [
|
|
72
|
+
sh:path fit:id ;
|
|
73
|
+
sh:datatype xsd:string ;
|
|
74
|
+
sh:pattern "^[a-z][a-z0-9_]*$" ;
|
|
75
|
+
sh:minCount 1 ;
|
|
76
|
+
sh:maxCount 1 ;
|
|
77
|
+
sh:name "id" ;
|
|
78
|
+
sh:description "Unique question identifier" ;
|
|
79
|
+
] ;
|
|
80
|
+
sh:property [
|
|
81
|
+
sh:path fit:text ;
|
|
82
|
+
sh:datatype xsd:string ;
|
|
83
|
+
sh:maxLength 150 ;
|
|
84
|
+
sh:minCount 1 ;
|
|
85
|
+
sh:maxCount 1 ;
|
|
86
|
+
sh:name "text" ;
|
|
87
|
+
sh:description "The question text (under 150 characters)" ;
|
|
88
|
+
] ;
|
|
89
|
+
sh:property [
|
|
90
|
+
sh:path fit:lookingFor ;
|
|
91
|
+
sh:datatype xsd:string ;
|
|
92
|
+
sh:minCount 1 ;
|
|
93
|
+
sh:maxCount 4 ;
|
|
94
|
+
sh:name "lookingFor" ;
|
|
95
|
+
sh:description "2-4 bullet points of good answer indicators" ;
|
|
96
|
+
] ;
|
|
97
|
+
sh:property [
|
|
98
|
+
sh:path fit:expectedDurationMinutes ;
|
|
99
|
+
sh:datatype xsd:integer ;
|
|
100
|
+
sh:minInclusive 1 ;
|
|
101
|
+
sh:maxCount 1 ;
|
|
102
|
+
sh:name "expectedDurationMinutes" ;
|
|
103
|
+
sh:description "Expected duration in minutes" ;
|
|
104
|
+
] ;
|
|
105
|
+
sh:property [
|
|
106
|
+
sh:path fit:followUps ;
|
|
107
|
+
sh:datatype xsd:string ;
|
|
108
|
+
sh:maxCount 3 ;
|
|
109
|
+
sh:name "followUps" ;
|
|
110
|
+
sh:description "1-3 probing questions for deeper exploration" ;
|
|
111
|
+
] ;
|
|
112
|
+
sh:property [
|
|
113
|
+
sh:path fit:forSkill ;
|
|
114
|
+
sh:datatype xsd:string ;
|
|
115
|
+
sh:pattern "^[a-z][a-z0-9_]*$" ;
|
|
116
|
+
sh:minCount 1 ;
|
|
117
|
+
sh:maxCount 1 ;
|
|
118
|
+
sh:name "forSkill" ;
|
|
119
|
+
sh:description "The skill this question assesses (skill ID)" ;
|
|
120
|
+
] ;
|
|
121
|
+
sh:property [
|
|
122
|
+
sh:path fit:atLevel ;
|
|
123
|
+
sh:in ( fit:awareness fit:foundational fit:working fit:practitioner fit:expert ) ;
|
|
124
|
+
sh:minCount 1 ;
|
|
125
|
+
sh:maxCount 1 ;
|
|
126
|
+
sh:name "atLevel" ;
|
|
127
|
+
sh:description "The skill level this question is for" ;
|
|
128
|
+
] .
|