Let op: dit is een oudere versie van deze publicatie. Ga naar de laatste versie
Code gekopieerd
...Kopieer naar klembord
1# Indicator: ODB Personele samenstelling 2.2.1 2# Parameters: - 3# Ontologie: versie 2.0.0 of nieuwer 4 5PREFIX onz-g: <http://purl.org/ozo/onz-g#> 6PREFIX onz-pers: <http://purl.org/ozo/onz-pers#> 7PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 8PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 9PREFIX time: <http://www.w3.org/2006/time#> 10 11SELECT 12 ?kwalificatie 13 ?teller 14 ?noemer 15 (?teller/?noemer * 100 AS ?indicator) 16WHERE 17{ 18 { 19 SELECT ?kwalificatie (SUM(?aantal) AS ?teller) 20 WHERE 21 { 22 SELECT DISTINCT 23 ?gewerkte_periode 24 ?kwalificatie 25 ?aantal 26 WHERE 27 { 28 BIND ("2023-01-01"^^xsd:date AS ?start_periode_datum) 29 BIND ("2023-12-31"^^xsd:date AS ?eind_periode_datum) 30 31 # selecteer aantal gewerkte uren binnen periode die gekoppeld zijn aan werkovereenkomst 32 ?gewerkte_periode 33 a onz-pers:GewerktePeriode ; 34 onz-g:hasBeginTimeStamp ?start_gewerktDT ; 35 onz-g:hasEndTimeStamp ?eind_gewerktDT . 36 FILTER(?start_gewerkt >= ?start_periode_datum && ?eind_gewerkt <= ?eind_periode_datum) 37 ?gewerkte_periode 38 onz-g:hasQuality / onz-g:hasQualityValue / onz-g:hasDataValue ?uren ; 39 onz-g:definedBy ?overeenkomst . 40 ?overeenkomst a onz-pers:ArbeidsOvereenkomst . 41 BIND(STRDT(SUBSTR(STR(?start_gewerktDT),1,10), xsd:date) AS ?start_gewerkt) 42 BIND(STRDT(SUBSTR(STR(?eind_gewerktDT),1,10), xsd:date) AS ?eind_gewerkt) 43 44 ?functie 45 a onz-pers:ZorgverlenerFunctie ; 46 ^onz-g:isAbout ?overeenkomst ; 47 onz-g:startDatum ?start_functie . 48 OPTIONAL {?functie onz-g:eindDatum ?eind_functie} 49 FILTER (?start_functie <= ?start_gewerkt && ((?eind_functie >= ?eind_gewerkt)||(!BOUND(?eind_functie)))) 50 ?functie 51 a/onz-g:hasQuality/onz-g:hasQualityValue ?functie_niveau . 52 ?functie_niveau 53 a onz-pers:ODBKwalificatieWaarde ; 54 rdfs:label ?kwalificatie . 55 56 # rapporteer in de eenheid fte_36 (1 fte = 36 uur/week) 57 onz-pers:fte_36 58 onz-g:hasDataValue ?corr_factor . 59 60 # bereken aantal dagen in de periode 61 ?start_periode_datum ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?start_periode . 62 ?eind_periode_datum ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?eind_periode . 63 BIND(?eind_periode - ?start_periode + 1 AS ?dagen_periode) 64 65 # bereken fte (1 fte is volledig als 47 weken per jaar is gewerkt) 66 BIND (?uren/(?dagen_periode/365*47)/?corr_factor AS ?aantal) 67 } 68 } GROUP BY ?kwalificatie 69 } 70 { 71 SELECT 72 (SUM(?aantal) AS ?noemer) 73 WHERE 74 { 75 { 76 SELECT DISTINCT 77 ?start_periode_datum 78 ?eind_periode_datum 79 ?gewerkte_periode 80 ?uren 81 WHERE 82 { 83 BIND ("2023-01-01"^^xsd:date AS ?start_periode_datum) 84 BIND ("2023-12-31"^^xsd:date AS ?eind_periode_datum) 85 86 # selecteer zorgverlenerfuncties die geldig zijn binnen de periode 87 ?functie a onz-pers:ZorgverlenerFunctie ; 88 onz-g:startDatum ?start_functie . 89 OPTIONAL { 90 ?functie onz-g:eindDatum ?eind_functie 91 } 92 FILTER (?start_functie <= ?eind_periode_datum && (?eind_functie >= ?eind_periode_datum || !BOUND(?eind_functie))) 93 94 # selecteer de arbeidsovereenkomst die hoort bij de functie 95 ?overeenkomst 96 onz-g:isAbout ?functie ; 97 a onz-pers:ArbeidsOvereenkomst ; 98 onz-g:isAbout ?gewerkte_periode . 99 100 # selecteer aantal gewerkte uren binnen periode die gekoppeld zijn aan werkovereenkomst 101 ?gewerkte_periode 102 a onz-pers:GewerktePeriode ; 103 onz-g:hasBeginTimeStamp ?start_gewerktDT ; 104 onz-g:hasEndTimeStamp ?eind_gewerktDT ; 105 onz-g:hasQuality / onz-g:hasQualityValue / onz-g:hasDataValue ?uren . 106 BIND(STRDT(SUBSTR(STR(?start_gewerktDT),1,10), xsd:date) AS ?start_gewerkt) 107 BIND(STRDT(SUBSTR(STR(?eind_gewerktDT),1,10), xsd:date) AS ?eind_gewerkt) 108 # selecteer gewerkte tijd in de gevraagde periode 109 FILTER(?start_gewerkt >= ?start_periode_datum && ?eind_gewerkt <= ?eind_periode_datum) 110 } 111 } 112 113 # rapporteer in de eenheid fte_36 (1 fte = 36 uur/week) 114 onz-pers:fte_36 115 onz-g:hasDataValue ?corr_factor . 116 117 # bereken aantal dagen in de periode 118 ?start_periode_datum ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?start_periode . 119 ?eind_periode_datum ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?eind_periode . 120 BIND(?eind_periode - ?start_periode + 1 AS ?dagen_periode) 121 122 # bereken fte (1 fte is volledig als 47 weken per jaar is gewerkt) 123 BIND (?uren/(?dagen_periode/365*47)/?corr_factor AS ?aantal) 124 } 125 } 126} 127GROUP BY ?kwalificatie ?teller ?noemer 128ORDER BY ?kwalificatie
Loopt u tegen een issue of vraag aan bij het KIK-V product? Neem dan contact met ons op!