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 >= ?start_periode_datum || !BOUND(?eind_functie))) 93 BIND(IF(?start_functie < ?start_periode_datum, ?start_periode_datum, ?start_functie) AS ?start_functie_corr) 94 BIND(IF(?eind_functie > ?eind_periode_datum || !BOUND(?eind_functie), ?eind_periode_datum, ?eind_functie) AS ?eind_functie_corr) 95 # selecteer de arbeidsovereenkomst die hoort bij de functie 96 ?overeenkomst 97 onz-g:isAbout ?functie ; 98 a onz-pers:ArbeidsOvereenkomst ; 99 onz-g:isAbout ?gewerkte_periode . 100 101 # selecteer aantal gewerkte uren binnen periode die gekoppeld zijn aan werkovereenkomst 102 ?gewerkte_periode 103 a onz-pers:GewerktePeriode ; 104 onz-g:hasBeginTimeStamp ?start_gewerktDT ; 105 onz-g:hasEndTimeStamp ?eind_gewerktDT ; 106 onz-g:hasQuality / onz-g:hasQualityValue / onz-g:hasDataValue ?uren . 107 BIND(STRDT(SUBSTR(STR(?start_gewerktDT),1,10), xsd:date) AS ?start_gewerkt) 108 BIND(STRDT(SUBSTR(STR(?eind_gewerktDT),1,10), xsd:date) AS ?eind_gewerkt) 109 # selecteer gewerkte tijd in de gevraagde periode 110 FILTER(?start_gewerkt >= ?start_functie_corr && ?eind_gewerkt <= ?eind_functie_corr) 111 } 112 } 113 114 # rapporteer in de eenheid fte_36 (1 fte = 36 uur/week) 115 onz-pers:fte_36 116 onz-g:hasDataValue ?corr_factor . 117 118 # bereken aantal dagen in de periode 119 ?start_periode_datum ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?start_periode . 120 ?eind_periode_datum ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?eind_periode . 121 BIND(?eind_periode - ?start_periode + 1 AS ?dagen_periode) 122 123 # bereken fte (1 fte is volledig als 47 weken per jaar is gewerkt) 124 BIND (?uren/(?dagen_periode/365*47)/?corr_factor AS ?aantal) 125 } 126 } 127} 128GROUP BY ?kwalificatie ?teller ?noemer 129ORDER BY ?kwalificatie 130
Loopt u tegen een issue of vraag aan bij het KIK-V product? Neem dan contact met ons op!