Datamodel
This page tries to answer all OPH's data-related questions. What data is used/created? Where does data come from? When is data created/consumed?
he data Open Proces Huis relies on, can broadly be divided into two categories:
A. OPH-specific data: generated by and unique to the application
B. Data that's imported into the application: mainly covers all user-related data
More information on each category is provided in the following information.
A. Process Data
What?
In essence, OPH is a large database of processes. Each process has a title, a description, an email and a status. It also contains multiple files.
The process itself has the dpv:Process class. We used to have https://data.vlaanderen.be/ns/proces# This was a URI that was based on the OSLO standard, but this class didn't exist yet. For this reason we went looking for an appropriate class. We chose for https://w3id.org/dpv#Process because this ontology fits our use case the best. From the DPV page: "The motivation of DPV is to provide a 'data model' or an 'ontology' of concepts for interoperable representation and exchange of information about processing of (personal) data and the use of technologies. For this, the DPV specification defines concepts and relationships using the [RDF] standard, and which can additionally be implemented and applied using technologies appropriate to a use-case's specific requirements."
The process status can be empty or http://lblod.data.gift/concepts/concept-status/gearchiveerd. The latter is set when a user removes a process, in fact archiving it.
Each file has a name, format, size, extension and status.
The file status can be empty or http://lblod.data.gift/concepts/concept-status/gearchiveerd. The latter is set when a user removes a file, in fact archiving it.
Based on the file extension, a distinction is made between diagrams and attachments. All files with a bpmn extension are considered diagrams, while all others are considered attachments.
Each BPMN file is kept as is, but its content is also stored as linked data. A BPMN file contains one or more BPMN processes, with each BPMN process containing multiple BPMN elements. The BPMN Based Ontology (BBO) is used to represent all these BPMN processes and BPMN elements as linked data.
A process always belongs to a group/bestuur (i.e. administrative organization). The User Data paragraph goes into more detail on this.
The following image visualizes the model used by OPH to store all process-related data:

Where?
Open Proces Huis is the sole point of origin for the above discussed process data (except for group records, see User Data - Where?).
The application relies on the openproceshuis-bpmn-service for the creation of process-related records. For a given BPMN file, it runs through all its elements and for each of those, creates the necessary BBO triples.
When?
Process-related data is always created through the actions of a user.
To create a process, a user should upload a BPMN file. By default, the process's title is set to the file's title, but without the .bpmn extension. The title of the process can be changed in Open Proces Huis if wanted. The file's title will remain as it was when uploaded. The process's description can be set afterwards.
Each time a BPMN file is uploaded (either on creation of a new process, or when updating an existing one), the openproceshuis-bpmn-service is kicked into action. This generates and stores the BBO triples, as well as the links to the original BPMN file and the user's group.
Statistics
Whenever a process is created, a statistics object will be created for the process as well. In this object we will keep track of the following data:
Total process views
Total downloads
Downloads of type
.bpmnDownloads of type
.vsdxDownloads of type
.svgDownloads of type
.pngDownloads of type
.pdf
ICR metadata
Every uploaded process has the option to be designated as a blueprint. A blueprint is a standardized process that can only be approved by ABB or Digitaal Vlaanderen admins. To qualify as a blueprint, a process undergoes a rigorous evaluation based on a custom cybersecurity framework. Once a process is officially marked as a blueprint, additional metadata is assigned, capturing the results of this assessment.
The additional metadata includes values that describe:
Confidentiality score
Integrity score
Availability score
If process contains personal data
If process contains professional data
If process contains sensitive personal data
Additional information
Has control measure (A URL linking to a confluence page)
If process is marked as blueprint

Inventory data
OPH's inventory holds a series of processes that have no implementation, so-called conceptual processes. They only hold a title, and are assigned to a category, domain and group. The inventory is available to all users but is managed solely by admins. Users that are part of a local government can mark a regular processes as being an instance of a conceptual process found in the inventory.

B. User Data
What?
All process-related data originates from users. Therefore, OPH needs the necessary data for users to log in, as well as organizational data to provide the link between users and processes.
A user has a first name, a family name, one or more accounts and one or more groups/besturen.
An account contains the necessary data to log a user in. In OPH this can happen either through ACM/IDM.
A group/bestuur (i.e. administrative organization) has a name, a classification and a primary site.
The classification indicates the type of a group/bestuur (e.g. gemeente or OCMW).
The primary site describes the location a group/bestuur operates from.
Notice the difference between the group/bestuur's email (present in its primary-site contact information) and the process's email. The first is fixed and might be too broad of a contact point for questions/remarks about a single process, while the latter can be set manually and more directly lead to the person in charge of the process.
The following image visualizes the model used by OPH to store all user-related data:

Where?
Open Proces Huis gets its data from Organisatie Portaal (OP). The application uses the LBLOD delta consumer to import user data. Custom configurations indicate which parts of that original data should be stored in the OPH triplestore. One configuration is used for initial ingest (on first startup of the application), another is used for delta messages (these describe deletions, additions or updates to the initial data).
When?
The initial ingestion of OP data happens on the first startup of the application, with 'first' indicating the triplestore does not yet contain any of that data.
Throughout the application's lifespan, the delta consumer fetches the latest delta messages (if they exist) on regular intervals. OPH is configured to do this every minute.
Application profile
Class: Proces
Bereik
rdfs:Class skos:Concept
Definitie
Een actie, activiteit of methodologie (cfr. definitie process https://w3c.github.io/dpv/2.1/dpv/#Process)
Property: titel
Bereik
xsd:string
Definitie
De titel van het proces.
Property: beschrijving
Bereik
xsd:string
Definitie
De beschrijving van het proces. Een beknopte omschrijving van het doel, de stappen en de context van het proces.
Property: email
Bereik
xsd:string
Definitie
Een contactemailadres bedoeld voor vragen of opmerkingen met betrekking tot dit proces, los van het emailadres van het publicerende bestuur.
Property: gecreëerd
Bereik
xsd:dateTime
Definitie
Datum waarop het proces is aangemaakt.
Property: aangepast
Bereik
xsd:dateTime
Definitie
Datum waarop het proces is gewijzigd.
Property: status
Definitie
De status van de Asset in de context van een specifiek workflowproces.
Gebruiksnota
Bij het verwijderen van een proces in OPH wordt het proces niet echt verwijderd, maar gemarkeerd als gearchiveerd. Dit gebeurt door het toekennen van de status http://lblod.data.gift/concepts/concept-status/gearchiveerd. Zodra een proces deze status heeft, wordt het als gearchiveerd beschouwd en zal het niet langer weergegeven worden in de OPH-gebruikersinterface.
Property: vertrouwelijkheidsscore
Bereik
xsd:integer
Definitie
Het niveau dat de informatie van het proces alleen gebruikt wordt door diegene die hiervoor geautoriseerd is.
Gebruiksnota
Met vertrouwelijkheid bedoelen we dat informatie alleen te gebruiken is door diegene die hiervoor geautoriseerd is. De eigenaar van de informatie stelt dit recht en de motivatie tot verwerking vast.
We moeten de vertrouwelijkheid van de informatie beschermen tegen verwerking door een niet-geautoriseerde derde. Dit kan gaan om personen, overheden of organisaties. Het niveau van vertrouwelijkheid van de informatie wordt uitgedrukt in een score van 1 tot en met 5. Waarbij 1 het minst vertrouwelijk is en 5 het meest, confer het informatieclassificatieraamwerk van de Vlaamse overheid.
Property: integriteitsscore
Bereik
xsd:integer
Definitie
Niveau dat de informatie van het proces betrouwbaar is, zowel vanuit technisch als functioneel oogpunt.
Gebruiksnota
Met integriteit bedoelen we dat informatie betrouwbaar moet zijn, zowel vanuit technisch als functioneel oogpunt. Het niveau van integriteit van de informatie wordt uitgedrukt in een score van 1 tot en met 5. Waarbij 1 het laagste niveau van integriteit is en 5 het hoogste, confer het informatieclassificatieraamwerk van de Vlaamse overheid.
Property: beschikbaarheidsscore
Bereik
xsd:integer
Definitie
Niveau dat de informatie van het proces toegankelijk is voor de geautoriseerde gebruikers tijdens normale omstandigheden.
Gebruiksnota
Beschikbaarheid geeft aan in hoeverre informatie toegankelijk is voor de geautoriseerde gebruikers tijdens normale omstandigheden. Het niveau van beschikbaarheid van de informatie wordt uitgedrukt in een score van 1 tot en met 5. Waarbij 1 het laagste niveau van vereiste beschikbaarheid is en 5 het hoogste, confer het informatieclassificatieraamwerk van de Vlaamse overheid.
Property: bevat persoonsgegevens
Bereik
xsd:boolean
Definitie
Geeft aan of de informatie van het proces persoonsgegevens bevat.
Gebruiksnota
Deze definitie van persoonsgegevens omvat de concepten die worden gebruikt in AVG Art.4-1 voor 'persoonsgegevens' en ISO/IEC 2700 voor 'persoonlijk identificeerbare informatie (PII)'.
Property: bevat professionele gegevens
Bereik
xsd:boolean
Definitie
Geeft aan of de informatie van het proces toelaat contact op te nemen met een individu in een professionele context.
Gebruiksnota
Professionele contactgegevens omvatten informatie die toelaat contact te nemen met een individu in een professionele context. Onder deze categorie vallen de volgende persoonsgegevens: naam en voornaam, professionele adresgegevens (gebouw, straat, nummer, bus, postcode en gemeente), de organisatie waarvoor het individu zijn professionele opdracht uitvoert, de functie binnen de organisatie, telefoonnummer vaste lijn (inclusief SoIP/VoIP/ToIP/mobiele telefonie/fax), emailadres, contactfoto en professionele sociale media contactreferenties (Facebook, Google+, LinkedIn)
Property: bevat bijzondere persoonsgegevens
Bereik
xsd:boolean
Definitie
Geeft aan of de informatie van het proces bijzondere persoonsgegevens bevat waarvan het gebruik specifieke aanvullende wettelijke toestemming of rechtvaardiging vereist.
Gebruiksnota
We baseren ons op de definitie zoals vermeld in https://w3c.github.io/dpv/2.1/dpv/#SpecialCategoryPersonalData
Property: bijkomende informatie
Bereik
`xsd:string
Specialisatie van
rdfs:comment
Definitie
Bijkomende informatie gerelateerd aan de informatieclassificatie van het proces.
Property: heeft beheersmaatregel
Specialisatie van
rdfs:seeAlso
Definitie
Online locatie waar extra info staat over een maatregel die wordt geïmplementeerd om risico's voor informatiebeveiliging te beheersen of te verminderen confer ISO 27001:2022
Property: is blauwdruk
Bereik
xsd:boolean
Definitie
Duidt aan of het proces generiek is opgebouwd voor specifiekere invulling lokaal.
Relationship: uitgever
Definitie
Een entiteit die verantwoordelijk is voor het beschikbaar stellen van de bron.
Kardinaliteit
1
Relationship: is relevant voor bestuurseenheid
Bereik
skos:Concept
Definitie
Classificatie van bestuurseenheid waarvoor de informatie relevant is.
Gebruiksnota
Gebruik classificatie uit de codelijst "BestuurseenheidClassificatieCode", zie:
De codelijst is in beheer van Agentschap Binnenlands Bestuur van de Vlaamse overheid.
Kardinaliteit
1..*
Relationship: heeft informatie asset
Bereik
skos:Concept
Definitie
Informatieassets die het proces bevat.
Gebruiksnota
Een informatieasset is een set informatie (bijvoorbeeld een businessproces, dienst of product) die waarde heeft voor de organisatie of het individu welke gedeeld of vastgelegd kan worden in elke vorm, zoals fysiek of digitaal. Definitie confer het informatieclassificatieraamwerk van de Vlaamse overheid.
Kardinaliteit
0..*
Relationship: bestand
Definitie
Generieke eigenschap die wordt gebruikt om containmentrelaties tussen DataObjects uit te drukken. NIE-extensies worden aangemoedigd om specifiekere subeigenschappen hiervan te bieden. Het is raadzaam om voor daadwerkelijke instanties van DataObjects deze specifieke subeigenschappen te gebruiken. Opmerking voor ontwikkelaars: houd rekening met het onderscheid tussen containmentrelatie en herkomst. De isPartOf-relatie modelleert fysieke containment; een nie:DataObject (bijv. een nfo:Attachment) is een 'fysiek' onderdeel van een nie:InformationElement (een nmo:Message). Let ook op het verschil tussen fysieke containment (isPartOf) en logische containment (isLogicalPartOf); de eerste heeft een striktere betekenis. Ze kunnen onafhankelijk van elkaar voorkomen.
Kardinaliteit
1..*
Relationship: IPDC-product
Bereik
Definitie
(in te vullen door Stefanie)
Kardinaliteit
0..*
Relationship: gelinkte blauwdruk
Definitie
(in te vullen door Stefanie)
Kardinaliteit
0..*
Relationship: gebruikt door
Definitie
(in te vullen door Stefanie)
Kardinaliteit
0..*
Translations
Proces
Titel
process.title
Beschrijving
process.description
Contact proces
process.email
Aangemaakt op
process.created
Laatst aangepast op
process.modified
BPMN-bestand / Versie / Bijlage
Bestandsnaam
file.name
Grootte
file.size
Formaat
file.format
Extensie
file.extension
Toegevoegd op
file.created
Processtap
Naam
bpmn-element.name
Type
bpmn-element.type.label
Gebruiker
Voornaam
user.first-name
Familienaam
user.family-name
Bestuur
user.group.name
Contact
user.group.primary-site.contact.email
Laatst bijgewerkt

