De status van dit document is voorlopig en zou nog kunnen wijzigen.
Overdracht eigendom en/of beperkt recht
Casusbeschrijving
Deze casus betreft het afhandelen van een StUF-bericht dat door het kadaster aangeboden wordt aan de gemeente. Het betreft in dit geval de Overdracht (eigendom en/of beperkt recht) van een Kadastraal Object. Om deze afhandeling voor deze casus behapbaar te houden zijn er enkele uitgangspunten gehanteerd :
- De anticorruption-layer wordt in deze beschrijving buiten beschouwing gelaten.
- Dit betreft de verkoop van Perceel met kadstrale identificatie “20990634170000” in Vlaardingen aan Joraraduy de Disqg en Cotivao Aawvgp.
- Er is aan dit perceel 1
WozObject
, met wozObjectNummer “12345678”, gekoppeld. - Het betreffende
WozObject
is al geregistreerd. - Er heeft 1 persoon een geldig
Belang
van het type eigenaar in ditWozObject
- Persoon Joraraduynog de DisqgCotivao is niet geregistreerd als
Partij
- Persoon Aawvgp Cotivao is geregistreerd als
Partij
StUF-bericht
Het binnenkomende StUF-bericht ziet er als volgt uit :
<Mutatie:aardStukdeel>
<Typen:code>606</Typen:code>
<Typen:waarde>Overdracht (eigendom en/of beperkt recht)</Typen:waarde>
</Mutatie:aardStukdeel>
<Mutatie:brkDatum>2024-10-30</Mutatie:brkDatum>
<Mutatie:volgnummerKadastraalObjectDatum>1</Mutatie:volgnummerKadastraalObjectDatum>
<Mutatie:ingeschrevenStuk>
<Mutatie:AanduidingTerInschrijvingAangebodenStuk>
<Mutatie:stuk>
<Stuk-ref:TerInschrijvingAangebodenStukRef domein="NL.IMKAD.TIAStuk">20241030000102</Stuk-ref:TerInschrijvingAangebodenStukRef>
</Mutatie:stuk>
<Mutatie:deelEnNummer>
<Stuk:deel>13709</Stuk:deel>
<Stuk:nummer>815</Stuk:nummer>
<Stuk:registercode>
<Typen:code>2</Typen:code>
<Typen:waarde>Hyp4</Typen:waarde>
</Stuk:registercode>
<Stuk:soortRegister>
<Typen:code>2</Typen:code>
<Typen:waarde>Onroerende Zaken</Typen:waarde>
</Stuk:soortRegister>
</Mutatie:deelEnNummer>
<Mutatie:tijdstipOndertekening>
<Typen:datum>2024-10-29</Typen:datum>
<Typen:tijd>11:05:00</Typen:tijd>
</Mutatie:tijdstipOndertekening>
</Mutatie:AanduidingTerInschrijvingAangebodenStuk>
</Mutatie:ingeschrevenStuk>
<Mutatie:kadastraalObject>
<Mutatie:AanduidingKadastraalObject>
<Mutatie:kadastraleAanduiding>
<OnroerendeZaak:akrKadastraleGemeenteCode>
<Typen:code>1135</Typen:code>
<Typen:waarde>VDG00</Typen:waarde>
</OnroerendeZaak:akrKadastraleGemeenteCode>
<OnroerendeZaak:kadastraleGemeente>
<Typen:code>1026</Typen:code>
<Typen:waarde>Vlaardingen</Typen:waarde>
</OnroerendeZaak:kadastraleGemeente>
<OnroerendeZaak:sectie>E</OnroerendeZaak:sectie>
<OnroerendeZaak:perceelnummer>1184</OnroerendeZaak:perceelnummer>
</Mutatie:kadastraleAanduiding>
<Mutatie:kadastraalObject>
<OnroerendeZaak-ref:PerceelRef domein="NL.IMKAD.KadastraalObject">20990634170000</OnroerendeZaak-ref:PerceelRef>
</Mutatie:kadastraalObject>
</Mutatie:AanduidingKadastraalObject>
</Mutatie:kadastraalObject>
...
Het volledige bericht is in te zien op Casus-3972-MUTPX02-VDG00E1184-20241030-1.xml
De verwerking van een bericht tot commando’s, effecten (verwerkingsstappen? , gevolgen?) en claims is uitgewerkt in onderstaand overzicht. Dit bericht betreft een informatierijke notificatie.
Van notificatiebericht naar commando (in de context van de BRK)
Van het binnenkomende notificatiebericht moet worden vastgesteld dat het een valide notificatiebericht zou kunnen zijn en geen onderdeel is van een DDOS-aanval of input bevat die onmogelijk verwerkbaar zou kunnen zijn.
Als het bericht ontvangen is vinden de volgende bewerkingstappen plaats.
Notificatieverwerker ontvangt notificatiebericht voert de volgende stappen uit:
- Controleert op verwerkbaarheid
- Registreert ontvangstmoment, type en inhoud
- Valideert of bericht voldoet aan schema
- Valideert of het bericht semantisch interpreteerbaar is.
- Produceren en registreren van commando
Volledige overdracht eigendom WozObject BRK-context
.- Registreert inhoud van
Overdracht eigendom en/of beperkt recht BRK-context
. - Legt relatie naar notificatie die context van dit commando vormt.
- Verzendt commando
Overdracht eigendom en/of beperkt recht BRK-context
naar commandohandlerVolledige overdracht eigendom WozObject BRK-context
- Registreert inhoud van
Noot: De Notificatieverwerker is niet geïmplementeerd in het prototype. Het omzetten van XML naar Json is niet nieuw en er is voor gekozen om deze stap over te slaan. De werkende casus begint dus vanaf het commando
verwerk_wijziging_tennaamstelling_BRK_context
Command verwerk_wijziging_tennaamstelling_BRK_context
command_str = """
{
"command": {
"commandId": "ce3cb94b-6400-4882-aecb-d664eb8394a2",
"commandType": "verwerk_wijziging_tennaamstelling_BRK_context"
},
"data": {
"aardStukdeel": {
"code": "606",
"waarde": "Overdracht (eigendom en/of beperkt recht)"
},
"ingeschrevenStuk": {
"tijdstipOndertekening": {
"datum": "2025-03-09",
"tijd": "11:05:00"
}
},
"kadastraalObject": {
"perceel": {
"identificatie": "20950118470000"
},
"zakelijkRecht": {
"aard": {
"code": "2",
"waarde": "Eigendom (recht van)"
}
},
"tenaamstelling": [
{
"aandeel": {
"teller": "1",
"noemer": "2"
},
"tenNameVan": {
"natuurlijkPersoon": {
"identificatie": "9896266146",
"woonlocatie": {
"identificatie": "207343",
"nummeraanduiding": {
"identificatie": "0622200000022350",
"huisnummer": "14",
"postcode": "3135KN",
"openbareRuimtenaam": "Merellaan",
"woonplaatsNaam": "Vlaardingen"
}
},
"betreft": {
"geregistreerdPersoon": {
"bsn": "000000012",
"aanduidingNaamgebruik": {
"code": "E",
"waarde": "Eigen geslachtsnaam"
},
"naam": {
"geslachtsnaam": "DisqgCotivao",
"voornamen": "Joraraduy",
"voorvoegselgeslachtsnaam": "de"
},
"indicatieGeheim": "true"
}
}
}
}
},
{
"aandeel": {
"teller": "1",
"noemer": "2"
},
"tenNameVan": {
"natuurlijkPersoon": {
"identificatie": "1474250665",
"woonlocatie": {
"nummeraanduiding": {
"identificatie": "",
"huisnummer": "149",
"postcode": "1841AQ",
"openbareRuimtenaam": "Ueöorii gg akutetec",
"woonplaatsNaam": "Teuooidut"
}
},
"betreft": {
"geregistreerdPersoon": {
"bsn": "000000024",
"aanduidingNaamgebruik": {
"code": "E",
"waarde": "Eigen geslachtsnaam"
},
"naam": {
"geslachtsnaam": "Cotivao",
"voornamen": "Aawvgp Jopie"
},
"indicatieGeheim": "false"
}
}
}
}
}
]
}
}
}
"""
Commando Registreer volledige overdracht eigendom BRK-context
wordt gepersisteerd door claims voor het objecttype “Commando” vast te leggen in het commando-register.
In deze weergave is er voor gekozen om de waarde van de rol content
in te korten, anders zou er geen goede weergave te tonen zijn. Daarnaast is het belangrijk te weten dat de waarde van de rol content
als Base64 is vastgelegd en die inhoud wordt hier onbewerkt getoond (en is dus niet interpreteerbaar door mensen)
Van commando in de BRK-context naar commando in de WOZ-context.
Het commando wordt door de notificatieverwerker aangeboden aan het systeem. Op basis van de naam van het commando wordt de bijbehorende commandohandler aangeroepen. In dit geval is dat verwerk_wijziging_tennaamstelling_BRK_context
.
Deze command-handler verzorgt de context transitie. De door het kadaster aangeboden gegevens zijn in context van de BRK (Basisregistratie Kadaster) opgesteld. Van deze gegevens is het van belang dat deze getransformeerd worden naar de context van de WOZ. Hierbij kan het zijn dat er een andere semantische betekenis aan deze gegevens worden toegekend. Juist dit besluit wordt gedocumenteerd door alle transities te registreren.
Om dit te bewerkstelliggen vinden de volgende bewerkingsstappen plaats:
- Commandohandler
verwerk_wijziging_tennaamstelling_BRK_context
ontvangt en verwerkt het commandoRegistreer volledige overdracht eigendom BRK-context
Registreert ontvangstmoment, type en inhoud
Valideert of bericht voldoet aan schema
Interpreteert inhoud van commando
Registreer volledige overdracht eigendom BRK-context
zet de gegevens om van een BRK-context naar een WOZ-context.
controleert en verifieert of de aangeleverde objecten te vinden zijn in het WOZ-register. Per object wordt de vervolgactie bepaald.
controleert of er een koppeling tussen het aangeleverde
Perceel
en eenWozObject
voorkomt (WOZKOZ)WOZKOZ
voorkomt.In de primaire view wordt gecontroleerd de personen voorkomen als partij. Deze controle vindt plaats door te zoeken in de partij-identificator of het bsn voorkomt (geregistreerdPersoon) danwel of de kadaster-identificatie (door kadaster geregistreerde personen) danwel of het vestifgingsnummer voorkomt (organisaties).
Als een partij voorkomt wordt de bijbehorende partijId opgehaald en opgenomen in commando
Registreer volledige overdracht eigendom WOZ-context
, zo niet dan wordt er een lege property partijId opgenomen.Alle persoonsgegevens opgenomen in de het commando.
Alle overige gegevens worden als volgt omgezet:
- tijdstipOndertekening –> overgenomen in geldigVanaf
- aandeel -> breuk wordt getransformeerd naar percentage
- NatuurlijkPersoon.identificatie –> overgenomen in partijIdentificator.objectId
- Overige eigenschappen van PartijIdentificator gevuld op basis van de context van het bericht
- GeregistreerdPersoon.bsn –> overgenomen in partijIdentificator.objectId
- Overige eigenschappen van PartijIdentificator gevuld op basis van de context van het bericht
- woonlocatie –> overgenomen in bezoekadres
- huisnummer en openbareRuimtenaam –> getransformeerd naar adresregel1
- postcode en woonplaats –> getransformeerd naar adresregel2
- geslachtsnaam –> getransformeerd naar achternaam (mede op basis van aanduidingNaamgebruik)
- voorvoegselgeslachtsnaam –> overgenomen in voorvoegselAchternaam
- voornamen –> overgenomen in voornaam
- voorletters –> afgeleid van de voornamen
- indicatieGeheim –> overgenomen in indicatieGeheimhouding
De transitieregels (de vastlegging van de context-transitie van BRK- naar WOZ-context) zien er als onderstaand uit. Er is van drie transities verslag gedaan hier. In een compleet verslag zullen er uiteraard veel meer transitieregels vastgelegd worden.
Commando
Registreer volledige overdracht eigendom WOZ-context
wordt vastgelegd.- Het inhoud van het commando wordt vastgelegd.
- De relatie naar commando
Registreer volledige overdracht eigendom BRK-context
wordt vastgelegd middels een context-annotatie op het commandoRegistreer volledige overdracht eigendom WOZ-context
.
Bij het Commando
Registreer volledige overdracht eigendom BRK-context
wordt vastgelegd dat verwerking plaats heeft gevonden.Het aangemaakte commando wordt vastgelegd en aangeboden aan de commandhandler
verwerk_overdracht_eigendom_WOZ_context
.
{
"commandoId": "65d4cca1-c304-4adb-846a-627e6c6abf35",
"commandoType": "Volledige overdracht eigendom WozObject WOZ-context",
"geldigVanaf": "2024-10-29T11:05:00.000+00:00",
"wozObject": [
{
"wozObjectnummer": "12345678",
"belang": [
{
"zakelijkRechtEigenaar": {
"aardZakelijkRecht": {
"code": "2",
"waarde": "Eigendom (recht van)"
},
"aandeel": "50"
},
"partij": {
"partijId": "4bec755e-d9de-43fd-8c6b-cca75fd1a41d",
"persoon": {
"partijIdentificator": [
{
"id": "adb44aef-145b-406d-bb81-7dd9cd08597d",
"identificator": {
"objecttype": "NatuurlijkPersoon",
"soortObjectId": "identificatie",
"objectId": "9896266146",
"register": "Basisregistratie Kadaster"
}
},
{
"id": "78fe04d9-97b0-4a33-bfc3-bf7fe15f316b",
"identificator": {
"objecttype": "GeregistreerdPersoon",
"soortObjectId": "burgerservicenummer",
"objectId": "000000012",
"register": "Basisregistratie Kadaster"
}
}
],
"bezoekadres": {
"identificatie": "207343",
"nummeraanduidingId": "0622200000022350",
"adresregel1": "Merellaan 14",
"adresregel2": "3135KN Vlaardingen"
},
"naam": {
"achternaam": "DisqgCotivao",
"voornaam": "Joraraduy",
"voorletters": "J",
"voorvoegselAchternaam": "de"
},
"indicatieGeheimhouding": true
}
}
},
{
"zakelijkRechtEigenaar": {
"aardZakelijkRecht": {
"code": "2",
"waarde": "Eigendom (recht van)"
},
"aandeel": "50"
},
"partij": {
"partijId": "",
"persoon": {
"partijIdentificator": [
{
"id": "adb44aef-145b-406d-bb81-7dd9cd08597d",
"identificator": {
"objecttype": "NatuurlijkPersoon",
"soortObjectId": "identificatie",
"objectId": "1474250665",
"register": "Basisregistratie Kadaster"
}
},
{
"id": "78fe04d9-97b0-4a33-bfc3-bf7fe15f316b",
"identificator": {
"objecttype": "GeregistreerdPersoon",
"soortObjectId": "burgerservicenummer",
"objectId": "000000024",
"register": "Basisregistratie Kadaster"
}
}
],
"bezoekadres": {
"identificatie": "207343",
"nummeraanduidingId": "",
"huisnummer": "149",
"postcode": "1841AQ",
"openbareRuimtenaam": "Ueöorii gg akutetec",
"woonplaatsNaam": "Teuooidut"
},
"naam": {
"achternaam": "Cotivao",
"voornaam": "Aawvgp",
"voorletters": "A"
},
"indicatieGeheim": false
}
}
}
]
}
]
}
Van commando in de WOZ-context naar effecten binnen het WOZ-register.
Comandohandler verwerk_overdracht_eigendom_WOZ_context
heeft als doel het commando dat in de WOZ-context is opgesteld te transformeren naar effecten (gevolgen?) die op het WOZ-register impact hebben.
Om deze effecten (gevolgen?) samen stellen vinden de volgende bewerkingsstappen plaats:
Commandhandler
verwerk_wijziging_tennaamstelling_WOZ_context
ontvangt commandoRegistreer volledige overdracht eigendom WOZ-context
Commandohandler
verwerk_wijziging_tennaamstelling_WOZ_context
interpreteert inhoud van commandoRegistreer volledige overdracht eigendom WOZ-context
- Inhoud is (semantisch) niet interpreteerbaar -> registreert semantische error (“Commando is niet interpreteerbaar”)
- Inhoud is (semantisch) interpreteerbaar -> registreert resultaat (“is wel interpreteerbaar”) en verder naar productie commando in de WOZ-context.
CommandoHandler
verwerk_wijziging_tennaamstelling_WOZ_context
maakt effecten aan die als verwerkingsstappen die aangeboden kunnen worden aan de register-engine.De volgende effecten (gevolgen) worden samengesteld op basis van het commando
Registreer volledige overdracht eigendom WOZ-context
.- Bestaande belangen worden opgezocht op basis van de aangeboden belangen en de geldigheid van deze belenagen wordt beëindigd.
- Indien een Partij nog niet bekend is in het WOZ-Register wordt deze partij geregistreerd (inclusief Partij-identificator indien aangeboden).
- De nieuwe belangen worden geregistreerd.
De effecten (gevolgen) worden vastgelegd. - Het inhoud van ieder effect wordt vastgelegd. - De relatie naar commando
Registreer volledige overdracht eigendom WOZ-context
wordt vastgelegd.
Lineage van de verwerking
Het weergeven van de lineage kan worden wordt met de lineage -code gerealiseerd. Hiermee worden alle commands, gevolgen en claims in beeld gebracht die als gevolg van het uitvoeren van een command zijn uitgevoerd. (Zie de Readme van de poc-python repository hoe deze moet worden uitgevoerd).
Pre-condities: Het command-id van het command “verwerk_wijziging_tennaamstelling_BRK_context” (ce3cb94b-6400-4882-aecb-d664eb8394a2) moet opgenomen zijn bij de command-ids in regel 33 van lineage.py en de test test_woz moet succesvol uitgevoerd zijn.
Bij de lineage zijn er drie typen weergave beschikbaar:
- Alleen de rollen en hun waarden.
- Volledige claimexpressies in state-vorm –> Deze weergave is alleen mogelijk als vul_partijen is verwerkt met schema_variant=“structure_state.gql” (regel 27)
- Volledige claimexpressies in event-vorm –> Deze weergave is alleen mogelijk als vul_partijen is verwerkt met schema_variant=“structure_event.gql” (regel 27)
De lineage geeft de context weer tussen command, gevolgen en claims per objecttype. Het is niet mogelijk een leesbare image te presenteren dus het is mogelijk om via de link een weergave op mermaid.live te krijgen. Hier kan overgeschakeld worden naar een full-screen view en er kan ingezoomd worden.
Lineage-roles
In deze weergave worden alleen de claimroles met hun waarden getoond. (Klik op de afbeelding voor grotere weergave op mermaid.live. Daar wordt ook de mogelijkheid geboden om full-screen weer te geven en in te zoomen. )
Lineage-state
In deze weergave worden de volledige claim-expressies in de “state”- variant getoond. (Klik op de afbeelding voor grotere weergave op mermaid.live. Daar wordt ook de mogelijkheid geboden om full-screen weer te geven en in te zoomen. )
Lineage-event
In deze weergave worden de volledige claim-expressies in de “event”- variant getoond. (Klik op de afbeelding voor grotere weergave op mermaid.live. Daar wordt ook de mogelijkheid geboden om full-screen weer te geven en in te zoomen. )
De relevante objecten voordat het commando is verwerkt
Belangen
Beeindigde Belangen en nieuwe Belangen
Let hierbij op dat de reeds bestaande Belangen een validUntil
annotatie hebben om het einde van de geldigheid van deze Belangen te registreren.
Er is voor gekozen om niet alle claims individueel van een valdUntil
-annotatie te voorzien, maar alleen op de ExistentiePostulerende claim deze annotatie toe te voegen.