@forwardimpact/schema 0.1.0 → 0.3.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 -13
- package/examples/disciplines/engineering_management.yaml +1 -5
- package/examples/disciplines/software_engineering.yaml +1 -13
- 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 -6
- package/examples/tracks/sre.yaml +1 -6
- package/lib/schema-validation.js +1 -1
- package/lib/validation.js +2 -71
- 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 -10
- 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 -6
- 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 +313 -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 +225 -0
- package/schema/json/index.schema.json +0 -18
- package/schema/rdf/pathway.ttl +0 -2362
|
@@ -0,0 +1,84 @@
|
|
|
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
|
+
# Drivers Schema
|
|
9
|
+
# =============================================================================
|
|
10
|
+
# Organizational outcomes that productive teams achieve.
|
|
11
|
+
# =============================================================================
|
|
12
|
+
|
|
13
|
+
# -----------------------------------------------------------------------------
|
|
14
|
+
# Classes
|
|
15
|
+
# -----------------------------------------------------------------------------
|
|
16
|
+
|
|
17
|
+
fit:Driver a rdfs:Class ;
|
|
18
|
+
rdfs:label "Driver"@en ;
|
|
19
|
+
rdfs:comment "Organizational outcome that productive teams achieve"@en .
|
|
20
|
+
|
|
21
|
+
# -----------------------------------------------------------------------------
|
|
22
|
+
# Properties
|
|
23
|
+
# -----------------------------------------------------------------------------
|
|
24
|
+
|
|
25
|
+
fit:contributingSkills a rdf:Property ;
|
|
26
|
+
rdfs:label "contributingSkills"@en ;
|
|
27
|
+
rdfs:comment "Skills that contribute to this driver"@en ;
|
|
28
|
+
rdfs:domain fit:Driver ;
|
|
29
|
+
rdfs:range fit:Skill .
|
|
30
|
+
|
|
31
|
+
fit:contributingBehaviours a rdf:Property ;
|
|
32
|
+
rdfs:label "contributingBehaviours"@en ;
|
|
33
|
+
rdfs:comment "Behaviours that contribute to this driver"@en ;
|
|
34
|
+
rdfs:domain fit:Driver ;
|
|
35
|
+
rdfs:range fit:Behaviour .
|
|
36
|
+
|
|
37
|
+
# =============================================================================
|
|
38
|
+
# SHACL SHAPES
|
|
39
|
+
# =============================================================================
|
|
40
|
+
|
|
41
|
+
# -----------------------------------------------------------------------------
|
|
42
|
+
# Driver Shape
|
|
43
|
+
# -----------------------------------------------------------------------------
|
|
44
|
+
|
|
45
|
+
fit:DriverShape a sh:NodeShape ;
|
|
46
|
+
sh:targetClass fit:Driver ;
|
|
47
|
+
sh:property [
|
|
48
|
+
sh:path fit:id ;
|
|
49
|
+
sh:datatype xsd:string ;
|
|
50
|
+
sh:pattern "^[a-z][a-z0-9_]*$" ;
|
|
51
|
+
sh:minCount 1 ;
|
|
52
|
+
sh:maxCount 1 ;
|
|
53
|
+
sh:name "id" ;
|
|
54
|
+
sh:description "Unique driver identifier (snake_case)" ;
|
|
55
|
+
] ;
|
|
56
|
+
sh:property [
|
|
57
|
+
sh:path fit:name ;
|
|
58
|
+
sh:datatype xsd:string ;
|
|
59
|
+
sh:minCount 1 ;
|
|
60
|
+
sh:maxCount 1 ;
|
|
61
|
+
sh:name "name" ;
|
|
62
|
+
sh:description "Human-readable driver name" ;
|
|
63
|
+
] ;
|
|
64
|
+
sh:property [
|
|
65
|
+
sh:path fit:description ;
|
|
66
|
+
sh:datatype xsd:string ;
|
|
67
|
+
sh:maxCount 1 ;
|
|
68
|
+
sh:name "description" ;
|
|
69
|
+
sh:description "Description of the business outcome" ;
|
|
70
|
+
] ;
|
|
71
|
+
sh:property [
|
|
72
|
+
sh:path fit:contributingSkills ;
|
|
73
|
+
sh:datatype xsd:string ;
|
|
74
|
+
sh:pattern "^[a-z][a-z0-9_]*$" ;
|
|
75
|
+
sh:name "contributingSkills" ;
|
|
76
|
+
sh:description "Skills that contribute to this driver (skill IDs)" ;
|
|
77
|
+
] ;
|
|
78
|
+
sh:property [
|
|
79
|
+
sh:path fit:contributingBehaviours ;
|
|
80
|
+
sh:datatype xsd:string ;
|
|
81
|
+
sh:pattern "^[a-z][a-z0-9_]*$" ;
|
|
82
|
+
sh:name "contributingBehaviours" ;
|
|
83
|
+
sh:description "Behaviours that contribute to this driver (behaviour IDs)" ;
|
|
84
|
+
] .
|
|
@@ -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
|
+
# Framework Schema
|
|
9
|
+
# =============================================================================
|
|
10
|
+
# High-level framework configuration.
|
|
11
|
+
# =============================================================================
|
|
12
|
+
|
|
13
|
+
# -----------------------------------------------------------------------------
|
|
14
|
+
# Classes
|
|
15
|
+
# -----------------------------------------------------------------------------
|
|
16
|
+
|
|
17
|
+
fit:Framework a rdfs:Class ;
|
|
18
|
+
rdfs:label "Framework"@en ;
|
|
19
|
+
rdfs:comment "High-level framework configuration"@en .
|
|
20
|
+
|
|
21
|
+
fit:EntityDefinition a rdfs:Class ;
|
|
22
|
+
rdfs:label "Entity Definition"@en ;
|
|
23
|
+
rdfs:comment "Definition for an entity type used in pages and chapters"@en .
|
|
24
|
+
|
|
25
|
+
# -----------------------------------------------------------------------------
|
|
26
|
+
# Properties
|
|
27
|
+
# -----------------------------------------------------------------------------
|
|
28
|
+
|
|
29
|
+
fit:tag a rdf:Property ;
|
|
30
|
+
rdfs:label "tag"@en ;
|
|
31
|
+
rdfs:comment "Organization tag or identifier"@en ;
|
|
32
|
+
rdfs:domain fit:Framework ;
|
|
33
|
+
rdfs:range xsd:string .
|
|
34
|
+
|
|
35
|
+
fit:entityDefinitions a rdf:Property ;
|
|
36
|
+
rdfs:label "entityDefinitions"@en ;
|
|
37
|
+
rdfs:comment "Definitions for each entity type"@en ;
|
|
38
|
+
rdfs:domain fit:Framework ;
|
|
39
|
+
rdfs:range fit:EntityDefinition .
|
|
40
|
+
|
|
41
|
+
fit:entityType a rdf:Property ;
|
|
42
|
+
rdfs:label "entityType"@en ;
|
|
43
|
+
rdfs:comment "The type of entity this definition describes"@en ;
|
|
44
|
+
rdfs:domain fit:EntityDefinition ;
|
|
45
|
+
rdfs:range xsd:string .
|
|
46
|
+
|
|
47
|
+
# =============================================================================
|
|
48
|
+
# SHACL SHAPES
|
|
49
|
+
# =============================================================================
|
|
50
|
+
|
|
51
|
+
# -----------------------------------------------------------------------------
|
|
52
|
+
# Framework Shape
|
|
53
|
+
# -----------------------------------------------------------------------------
|
|
54
|
+
|
|
55
|
+
fit:FrameworkShape a sh:NodeShape ;
|
|
56
|
+
sh:targetClass fit:Framework ;
|
|
57
|
+
sh:property [
|
|
58
|
+
sh:path fit:title ;
|
|
59
|
+
sh:datatype xsd:string ;
|
|
60
|
+
sh:minCount 1 ;
|
|
61
|
+
sh:maxCount 1 ;
|
|
62
|
+
sh:name "title" ;
|
|
63
|
+
sh:description "Title of the engineering pathway" ;
|
|
64
|
+
] ;
|
|
65
|
+
sh:property [
|
|
66
|
+
sh:path fit:emojiIcon ;
|
|
67
|
+
sh:datatype xsd:string ;
|
|
68
|
+
sh:maxCount 1 ;
|
|
69
|
+
sh:name "emojiIcon" ;
|
|
70
|
+
sh:description "Emoji for visual representation" ;
|
|
71
|
+
] ;
|
|
72
|
+
sh:property [
|
|
73
|
+
sh:path fit:tag ;
|
|
74
|
+
sh:datatype xsd:string ;
|
|
75
|
+
sh:maxCount 1 ;
|
|
76
|
+
sh:name "tag" ;
|
|
77
|
+
sh:description "Organization tag or identifier" ;
|
|
78
|
+
] ;
|
|
79
|
+
sh:property [
|
|
80
|
+
sh:path fit:description ;
|
|
81
|
+
sh:datatype xsd:string ;
|
|
82
|
+
sh:maxCount 1 ;
|
|
83
|
+
sh:name "description" ;
|
|
84
|
+
sh:description "Description of the framework's purpose" ;
|
|
85
|
+
] ;
|
|
86
|
+
sh:property [
|
|
87
|
+
sh:path fit:entityDefinitions ;
|
|
88
|
+
sh:node fit:EntityDefinitionShape ;
|
|
89
|
+
sh:name "entityDefinitions" ;
|
|
90
|
+
sh:description "Definitions for each entity type" ;
|
|
91
|
+
] .
|
|
92
|
+
|
|
93
|
+
# -----------------------------------------------------------------------------
|
|
94
|
+
# Entity Definition Shape
|
|
95
|
+
# -----------------------------------------------------------------------------
|
|
96
|
+
|
|
97
|
+
fit:EntityDefinitionShape a sh:NodeShape ;
|
|
98
|
+
sh:targetClass fit:EntityDefinition ;
|
|
99
|
+
sh:property [
|
|
100
|
+
sh:path fit:entityType ;
|
|
101
|
+
sh:datatype xsd:string ;
|
|
102
|
+
sh:minCount 1 ;
|
|
103
|
+
sh:maxCount 1 ;
|
|
104
|
+
sh:name "entityType" ;
|
|
105
|
+
sh:description "The type of entity this definition describes" ;
|
|
106
|
+
] ;
|
|
107
|
+
sh:property [
|
|
108
|
+
sh:path fit:title ;
|
|
109
|
+
sh:datatype xsd:string ;
|
|
110
|
+
sh:minCount 1 ;
|
|
111
|
+
sh:maxCount 1 ;
|
|
112
|
+
sh:name "title" ;
|
|
113
|
+
sh:description "Display title for the entity" ;
|
|
114
|
+
] ;
|
|
115
|
+
sh:property [
|
|
116
|
+
sh:path fit:emojiIcon ;
|
|
117
|
+
sh:datatype xsd:string ;
|
|
118
|
+
sh:maxCount 1 ;
|
|
119
|
+
sh:name "emojiIcon" ;
|
|
120
|
+
sh:description "Emoji for visual representation" ;
|
|
121
|
+
] ;
|
|
122
|
+
sh:property [
|
|
123
|
+
sh:path fit:description ;
|
|
124
|
+
sh:datatype xsd:string ;
|
|
125
|
+
sh:maxCount 1 ;
|
|
126
|
+
sh:name "description" ;
|
|
127
|
+
sh:description "Description of the entity type" ;
|
|
128
|
+
] .
|
|
@@ -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
|
+
] .
|