- HET HUURRECHT GEFORMALISEERD -
Doctoraalscriptie Nederlands Recht Jeroen Moorman Faculteit Rechtsgeleerdheid Universiteit Utrecht Januari 2003
Inhoudsopgave Inleiding ....................................................................................................................................... 2 1
De extractie van de domeinkennis...................................................................................... 3 1.1
Inleiding..................................................................................................................................... 3
1.2
Het model .................................................................................................................................. 3
1.3 Juridisch kader ......................................................................................................................... 4 1.3.1 Slecht huurderschap............................................................................................................ 5 1.3.2 Dringend eigen gebruik ...................................................................................................... 5 1.3.3 Weigering redelijk aanbod.................................................................................................. 6 1.3.4 Verwezenlijken bestemmingsplan ...................................................................................... 6 1.4 De beslisboom............................................................................................................................ 6 1.4.1 Slecht huurderschap............................................................................................................ 7 1.4.2 Dringend eigen gebruik ...................................................................................................... 7 1.4.3 Weigering redelijk aanbod.................................................................................................. 8 1.4.4 Verwezenlijken bestemmingsplan ...................................................................................... 9 1.4.5 Tussentijdse opzegbaarheid................................................................................................ 9 1.5
2
Argumenten opvragen............................................................................................................ 10
Het expertsysteem.............................................................................................................. 12 2.1 De kwaliteitseisen.................................................................................................................... 12 2.1.1 Correctheid ....................................................................................................................... 12 2.1.2 Gebruiksvriendelijkheid ................................................................................................... 12 2.1.3 Onderhoudbaarheid .......................................................................................................... 12 2.2 Inferentietechnieken............................................................................................................... 13 2.2.1 Top-down.......................................................................................................................... 13 2.2.2 Bottom-up......................................................................................................................... 13 2.3 Programmeertalen.................................................................................................................. 14 2.3.1 CLIPS functies.................................................................................................................. 14 2.3.2 JESS functies .................................................................................................................... 15 2.3.3 JEDI functies .................................................................................................................... 16 2.3.4 JEDI programma’s............................................................................................................ 16 2.4 De implementatie .................................................................................................................... 17 2.4.1 De noodzakelijke argumenten .......................................................................................... 17 2.4.2 De voldoende argumenten ................................................................................................ 18 2.4.3 De implementatie van de entiteiten .................................................................................. 19 2.4.4 Gedeeltelijke uitwerking................................................................................................... 19 2.5
Onderhoudbaarheid en de overige kwaliteitseisen.............................................................. 21
Conclusie.................................................................................................................................... 22 Referenties ................................................................................................................................. 23 Appendix A: De beslisboom ..................................................................................................... 24 Appendix B: De vragen ............................................................................................................ 25 Appendix C: Uitwerking .......................................................................................................... 27
1
Inleiding Expertsysteem (o.) [<Eng. Expert system], computerprogramma waarin menselijke denkprocessen (zoals redeneren en waarnemen) zijn verwerkt: specialistische kennis van medici of geologen kan vrij eenvoudig in een expertsysteem worden opgenomen.
Deze definitie uit van Dale roept de vraag op of de laatste zinsnede tevens betrekking heeft op de specialistische kennis van de jurist. Is juridische kennis ook vrij eenvoudig om te zetten in een expertsysteem? Deze vraag is de aanleiding voor een onderzoek naar juridische expertsystemen waarin een antwoord wordt gezocht op de vraag of juridische kennis zich leent voor (eenvoudige) omzetting in een computerprogramma. Het onderzoek is toegespitst op het ontwikkelen van een expertsysteem op een van te voren bepaald juridisch terrein, namelijk de mogelijkheid tot tussentijdse opzegging door de verhuurder van zelfstandige woonruimte. Dit onderzoeksverslag is een beschrijving van het ontwikkelingsproces van dit expertsysteem, waarbij onder andere wordt ingegaan op de theoretische grondslag en de keuzes die moeten worden gemaakt. In dit onderzoeksverslag is een onderscheid aangebracht tussen twee verschillende fasen van het onderzoek, namelijk de extractiefase en de ontwikkelingsfase. In hoofdstuk 1 wordt de extractiefase besproken. Hierbij komt aan de orde op welke wijze de kennis van de juridische expert kan worden vastgelegd. Er wordt eerst een domeinspecifiek model opgesteld waarna het juridische kader wordt uitgewerkt. Ten slotte wordt de juridische kennis aan de hand van het model omgezet in een beslisboom In hoofdstuk 2 wordt de ontwikkelingsfase onder de loep genomen, waarbij wordt besproken op welke wijze de verkregen beslisboom kan worden gebruikt om een expertsysteem te ontwikkelen. Hierbij komt onder andere aan de orde welke eisen er gesteld kunnen worden aan juridische expertsystemen, welke programmeertalen en technieken gebruikt kunnen worden voor de ontwikkeling van expertsystemen en op welke wijze het juridische expertsysteem vervolgens kan worden geïmplementeerd. Aan het slot van dit onderzoeksverslag zal worden besproken in hoeverre het onderzoek geslaagd is. Kan de kennis van juristen aan bovenstaande definitie uit van Dale worden toegevoegd?
2
1 De Extractie van de Domeinkennis 1.1
Inleiding
Een belangrijk onderdeel van het ontwikkelen van een expertsysteem is de kenniselicitatie. Met behulp van een domeindeskundigen wordt bepaald hoe de domeinkennis kan worden omgezet in een abstract model. Aan de hand van dit model kan vervolgens het expertsysteem worden geïmplementeerd. Een beproefde methode voor het abstraheren van het domein is het ontwikkelen van een zogenaamde beslisboom. In een dergelijke beslisboom kunnen de belangrijke entiteiten van het domein en de onderlinge relaties ertussen worden aangegeven. In de volgende paragrafen wordt uiteengezet hoe de beslisboom voor het onderliggende domein, de mogelijkheid tot tussentijdse opzegging door de verhuurder, kan worden opgebouwd. Daarbij wordt eerst ingegaan op de constructie van een model voor juridische beslisbomen, vervolgens op het juridisch kader en tenslotte op het omzetten van de verkregen kennis in een beslisboom. Tenslotte komt aan de orde wie de doelgroep van de gecreëerde beslisboom is en hoe deze kan worden uitgebreid.
1.2
Het model
Juridische kennis is voor een groot deel opgeslagen in wetsartikelen. Kenmerkend voor een wetsartikel is dat het is opgebouwd uit verschillende elementen welke gezamenlijk of juist afzonderlijk naar een bepaalde conclusie leiden. De waarden van deze elementen zijn veelal weer afhankelijk van andere wetartikelen die zelf wederom vaak weer opgebouwd zijn uit verschillende elementen. Op deze recursieve manier ontstaat er een boomstructuur van entiteiten die een afhankelijkheidsrelatie ten opzichte van elkaar hebben. Het model voor de juridische beslisboom is gebaseerd op deze manier van ordening van de elementen in de wet. In het model wordt een onderscheid gemaakt tussen drie verschillende entiteiten: Het vraagbaar argument Het vraagbaar argument is een entiteit die niet direct afhankelijk is van andere entiteiten en meteen kan worden opgevraagd. Na het opvragen van de entiteit is de waarde ervan bekend. Het tussenargument Het tussenargument is een entiteit die afhankelijk is van verschillende andere entiteiten maar die geen zelfstandige betekenis heeft. Het tussenargument is zelf weer element van een ander tussenargument of een eindconclusie. Het tussenargument is afhankelijk van vraagbare argumenten en/of andere tussenargumenten. De eindconclusie De eindconclusie is het eindpunt van de beslisboom. De eindconclusie kan worden getrokken op grond van vraagbare en tussenargumenten. Om in de beslisboom onderscheid te kunnen maken tussen deze verschillende entiteiten wordt elke entiteit binnen een kader geplaatst, waarbij de kleur van het kader aangeeft tot welke soort de entiteit behoord. De entiteiten van het model worden als volgt vormgegeven:
Naast de entiteiten zelf zal ook de verhouding tussen de verschillende entiteiten worden aangegeven in het model. Voor de verhouding tussen de entiteiten zijn drie verschillende relatie-mogelijkheden1:
1
De voorwaarden aan de noodzakelijke en voldoende argumenten uit deze relaties komen overeen met de termen AND en OR uit de Booleaanse rekenkunde.
3
Geen relatie Er is geen directe relatie tussen de verschillende entiteiten Het noodzakelijke argument De ene entiteit is een noodzakelijk argument voor de andere entiteit. Dat wil zeggen: de entiteit kan niet geldig zijn als zijn noodzakelijke argument niet geldig is. Het voldoende argument De ene entiteit is een voldoende argument voor de andere entiteit. Dat wil zeggen: als het argument geldig is dan is ook de entiteit geldig waarvan het een voldoende argument is. Deze relaties worden in de beslisboom als volgt weergegeven:
Indien er geen pijl tussen twee verschillende entiteiten is geplaatst, betekent dit dat er geen directe relatie is.
1.3
Juridisch kader
Het onderliggende kennisdomein is het domein van de huurovereenkomst met betrekking tot zelfstandige woonruimte. Hierbij zal enkel worden beschouwd of de noodzakelijk elementen voor opzegging aanwezig zijn en wordt verder niet ingegaan op de formaliteiten of de termijn waartegen kan worden opgezegd. Het juridisch domein dat hieronder wordt uitgewerkt is derhalve het domein van de opzeggronden voor tussentijdse opzegging door de verhuurder van woonruimte. Artikel 7A:1623e lid 1 biedt zes limitatieve opzeggronden voor de verhuurder van de woonruimte:
! "
"
# $ % &
& ! '
De tweede opzegmogelijkheid heeft geen betrekking op tussentijdse opzegging en zal dus verder niet behandeld worden. De zesde mogelijkheid heeft betrekking op de kamerhuurder welke niet een zelfstandige woonruimte huurt. Aangezien enkel de huurovereenkomst met betrekking tot zelfstandige woonruimte wordt beschouwd wordt ook op deze opzegmogelijkheid niet verder ingegaan. In de volgende paragrafen zullen de overige opzeggronden afzonderlijk behandeld worden. Een eerste vereiste is echter het vereiste van de tussentijds opzegbare overeenkomst. Een huurovereenkomst kan enkel tussentijds worden opgezegd indien de overeenkomst is aangegaan voor onbepaalde tijd of indien de overeenkomst is gesloten voor bepaalde tijd en er een beding is opgenomen
4
in de overeenkomst welke tussentijdse opzegging toestaat. Is een dergelijk beding niet opgenomen in de huurovereenkomst voor bepaalde tijd dan kan de overeenkomst niet tussentijds worden opgezegd. 2 1.3.1 Slecht huurderschap Artikel 7A:1623e, lid 1, 1º geeft aan dat de huurovereenkomst kan worden opgezegd indien de huurder zich niet als goed huurder gedragen heeft. Dit nogal vage begrip heeft in de jurisprudentie zijn betekenis gekregen en valt uiteen in een aantal algemene categorieën: overlast, wanbetaling en onbehoorlijk gebruik. Van overlast is sprake als door toedoen van de huurder of een persoon die onder zijn verantwoording valt ernstige en structurele overlast wordt veroorzaakt aan omwonenden. Het moet hierbij gaan om laakbaar gedrag van de huurder ten opzichte van zijn buren. Wanbetaling doet zich voor indien de huurder niet op tijd zijn huurpenningen betaalt. In de jurisprudentie wordt een termijn van 2 à 3 maanden gehanteerd als grens van goed huurderschap. Wordt deze grens overschreden, dan gedraagt de huurder zich als een slecht huurder. De laatste categorie, onbehoorlijk gebruik, is wederom een niet al te duidelijke term. In de jurisprudentie wordt in elk geval als onbehoorlijk gebruik aangemerkt het met (veel) te veel mensen bewonen van de woonruimte (overbewoning) en het geheel verlaten van de woonruimte. Naast deze algemene categorieën kan er tevens sprake van slecht huurderschap indien de huurder een contractueel of wettelijk beding overtreedt. De ernst van de wanprestatie speelt mee bij het bepalen of de overeenkomst wel of niet kan worden opgezegd vanwege slecht huurderschap. 1.3.2 Dringend eigen gebruik Artikel 7A:1623e, lid 1, 3º is bekend onder de benaming ‘dringend eigen gebruik’. Indien de verhuurder de woonruimte dringend nodig heeft voor eigen gebruik, kan hij de huurovereenkomst in beginsel opzeggen. Een eerste vereiste voor deze opzeggrond is de dringendheid van de opzegging. Dringende omstandigheden kunnen onder andere zijn: lastenverlichting door het zelf gaan bewonen van de woonruimte en beroepsuitoefening in de woonruimte. Een exacte afbakening van het begrip dringend is echter niet te geven en zal afhangen van het geval. Het tweede vereiste is die van het eigen gebruik. Hieronder wordt verstaan dat de verhuurder zijn eigen belangen dient met het gebruik van de woonruimte. Ook andere belangen mogen meespelen als deze direct de belangen van de verhuurder beïnvloeden. Het laatste element van het begrip dringend eigen gebruik is de term gebruik. Onder gebruik wordt niet enkel verstaan gebruik ter bewoning; Er kan tevens sprake zijn van gebruik indien de woning wordt gerenoveerd of uitgebreid ten behoeve van dezelfde huurder of indien er sprake is van krotopruiming ten behoeve van nieuwbouw of verkoop van de grond. Het volgende vereiste van 7A:1623e, lid 1, 3º is dat de huurder een nieuwe passende woonruimte kan verkrijgen. In de praktijk blijkt dit begrip nogal rekbaar te zijn. Een koopwoning of een woning in een minder goede buurt kan bijvoorbeeld in exceptionele gevallen als passende woonruimte gelden. Verder is een concreet aanbod van een woonruimte niet noodzakelijk, de aanwezigheid van een passende woonruimte kan ook blijken uit een verklaring van een makelaar of een woningbouwvereniging. Lid 4 van 7A:1623e bepaalt vervolgens dat de verhuurder een huisvestingsvergunning moet kunnen overleggen met betrekking tot de woonruimte. Kan hij deze niet verkrijgen dan is opzegging wegens dringend eigen gebruik niet mogelijk. Het laatste formele vereiste voor dringend eigen gebruik wordt gegeven in lid 5 van 7A:1623e. De huurovereenkomst kan niet eerder dan na 3 jaar na een wisseling van eigenaar voor eigen gebruik worden opgeëist. Is de woonruimte van eigenaar gewisseld dan gaat deze termijn pas lopen op het moment dat de huurder van de overgang van eigenaar op de hoogte is gesteld. Indien aan de bovenstaande formele vereisten is voldaan dient er nog een materiële belangenafweging plaats te vinden tussen de belangen van huurder en verhuurder. Indien de belangen van de verhuurder 2
N.B. De overeenkomst kan in dat geval wellicht wel worden ontbonden door de rechter indien een van de opzeggronden aanwezig is. Ontbindingsgronden vallen echter buiten het behandelde domein
5
om de woning te gaan bewonen niet opwegen tegen de belangen van de huurder om de woning te blijven huren kan de overeenkomst niet worden opgezegd op grond van dringend eigen gebruik. 1.3.3 Weigering redelijk aanbod Artikel 7A:1623e, lid 1, 4º behandelt het redelijk aanbod van de verhuurder tot het aangaan van een nieuwe huurovereenkomst. Indien de huurder een redelijk aanbod van de verhuurder weigert kan de overeenkomst op grond van de weigering van een redelijk aanbod worden opgezegd. Deze opzeggrond wordt door de verhuurder veelal gebruikt indien hij de woning wil renoveren en de huurder weigert in te gaan op een aanbod tot het aangaan van een nieuwe huurovereenkomst betreffende de gerenoveerde woning. Het eerste vereiste voor deze opzeggrond is dat het aanbod niet enkel de huurprijs mag betreffen, dat wil zeggen, het verhogen van de huurprijs mag niet de beweegreden zijn voor de verhuurder om een nieuwe overeenkomst te sluiten. Hiervoor zou in beginsel de weg van de huurprijzenwet bewandeld moeten worden. Dit betekent echter niet dat de huurprijsverhoging niet als onderdeel van het aanbod mag worden opgenomen als het aanbod niet enkel tot doel heeft de huurprijs te verhogen. De vraag of deze huurprijsverhoging geoorloofd is komt aan dan de orde bij de toetsing van de redelijkheid van het aanbod. Het tweede vereiste is de eis dat het aanbod dezelfde woonruimte moet betreffen. De term dezelfde woonruimte moet zo worden opgevat dat ook een aanbod met betrekking tot een redelijk deel van dezelfde woonruimte dient te gelden als een redelijk aanbod. Ook de vraag of de aangeboden woonruimte redelijk is komt dus aan de orde bij de redelijkheidstoets. Naast de bovengenoemde elementen van de toetsing van de redelijkheid van het aanbod moet het aanbod ook voor het overige een redelijk aanbod zijn. Hierbij zullen alle elementen van het aanbod worden getoetst op redelijkheid. 1.3.4 Verwezenlijken bestemmingsplan De laatste van de limitatieve opzeggronden voor de tussentijdse opzegging van de huurovereenkomst betreffende woonruimte is die van artikel 7A:1623e, lid 1, 5º. Deze opzeggrond behandelt de opzegging wegens de verwezenlijking van een geldend bestemmingsplan. De vereisten voor deze opzeggrond zijn eenvoudig: Er moet sprake zijn van een dwingend bestemmingsplan met betrekking tot de woonruimte welke de opzegging van de huurovereenkomst rechtvaardigt. Het bestemmingsplan rechtvaardigt de opzegging indien de verhuurder in de gegeven omstandigheden met de afweging van alle betrokken belangen genoodzaakt is de huurovereenkomst te beëindigen. Concreet komt dit neer op een belangenafweging tussen de realisering van het bestemmingsplan en de belangen van de huurder om de woonruimte te blijven bewonen.
1.4
De beslisboom
De laatste stap in het extractieproces is het omzetten van de zojuist verkregen domeinkennis in een beslisboom aan de hand van het juridische beslisboom-model. De verkregen kennis met betrekking tot de opzeggingronden van de huurovereenkomst zal dus moeten worden omgezet in verschillende argumenten met onderlinge relaties. Een eerste beslissing moet genomen worden met betrekking tot de entiteiten die als conclusie bestempeld zullen moeten worden. Enerzijds hoeft het expertsysteem enkel te bepalen óf de huurovereenkomst kan worden opgezegd door de verhuurder, anderzijds is het voor de gebruiker nuttig om te weten op welke grond er eventueel kan worden omgezegd. Hierom is gekozen voor een beslisboom met een conclusie-entiteit voor elke mogelijke opzeggrond. De overige entiteiten zullen dienen als ondersteuning van deze conclusies in de vorm van vraagbare –en tussenargumenten. De vraagbare argumenten spelen hierbij nog een aparte rol. Bij het ontwikkelen van de beslisboom is ervoor gekozen om het argument vraagbaar te maken indien er geen verdere domeinkennis omtrent het argument aanwezig. Op de status van de vraagbare argumenten en het bepalen van de waarde ervan wordt uitgebreid ingegaan in paragraaf 1.4.
6
In de volgende paragrafen zal de ontwikkeling van de beslisboom aan de hand van de verschillende opzeggronden worden besproken. 1.4.1 Slecht huurderschap De eerste opzeggrond, slecht huurderschap, is aanwezig indien sprake is van overlast, wanbetaling, onbehoorlijk gebruik of een andere schending van huurovereenkomst of wet. Elk van deze gronden is een voldoende voorwaarde om tot slecht huurderschap te kunnen concluderen. Voor elk van deze gronden kan derhalve een argument gemaakt worden die onafhankelijk van elkaar leiden tot slecht huurderschap. De relatie tussen elk van deze entiteiten en de conclusie slecht huurderschap zal dus in de beslisboom worden geïmplementeerd als een voldoende voorwaarde. De entiteiten overlast, wanbetaling en schending van huurovereenkomst of wet zijn op grond van de domeinkennis niet afhankelijk van andere argumenten en krijgen de kwalificatie vraagbaar argument. De waarde van de entiteit onbehoorlijk gebruik is op grond van de domeinkennis aanwezig indien sprake is van overbewoning van de woonruimte of indien de huurder de woonruimte heeft verlaten. De entiteit onbehoorlijk gebruik krijgt daarmee de status tussenargument waarbij de argumenten overbewoning en huurder heeft woonruimte verlaten een voldoende voorwaarde zijn voor deze tussenargument. Met de bovenstaande gegevens kan de volgende deelboom worden opgebouwd:
Figuur 1: De deelboom voor het opzeggen van de overeenkomst op grond van slecht huurderschap
1.4.2 Dringend eigen gebruik De volgende opzeggrond uit het kennisdomein is die van het dringend eigen gebruik. Deze opzeggrond vormt dan ook de tweede conclusie van de beslisboom. De opzegbaarheid van de overeenkomst voor dringend eigen gebruik is op grond van de domeinkennis afhankelijk van vijf cumulatieve argumenten. Er moet sprake zijn van dringend eigen gebruik, de huurder moet een passende woonruimte kunnen verkrijgen, de verhuurder moet een huisvestingvergunning hebben, de verhuurder moet minstens drie jaar eigenaar zijn en er dient een belangenafweging plaats te vinden tussen de belangen van de huurder en die van de verhuurder. Aangezien deze argumenten cumulatief zijn voor de opzeggrond, krijgen deze argumenten de status van noodzakelijk voorwaarde voor de conclusie.
7
De argumenten huurder kan passende woonruimte verkrijgen, verhuurder heeft huisvestingsvergunning en belangenafweging huurder/verhuurder zijn in het domein niet verder afhankelijk gesteld van andere argumenten. Deze argumenten krijgen derhalve de status vraagbaar argument. Het argument dringend eigen gebruik is wel afhankelijk van andere argumenten. Dit argument is namelijk aanwezig indien er sprake is van dringendheid, indien de verhuurder zijn eigen belang dient bij het gebruik en indien het gebruik van de verhuurder op het begrip dringend eigen gebruik valt. Het argument dringend eigen gebruik zal derhalve de status tussenargument krijgen, waarbij de genoemde argumenten als noodzakelijk voorwaarden gelden. De argumenten zijn zelf niet verder afhankelijk gesteld van andere argument en zijn dus vraagbaar. Het laatste argument voor de conclusie, verhuurder is oorspronkelijke verhuurder of drie jaar eigenaar is afhankelijk van de voldoende voorwaarden verhuurder is oorspronkelijke eigenaar en verhuurder is minstens drie jaar eigenaar. Het eerste argument is vraagbaar, het tweede argument is een tussenargument met de argumenten verhuurder is niet oorspronkelijk eigenaar en verhuurder is minstens drie jaar eigenaar. De verzamelde gegevens kunnen wederom worden omgezet in een deelboom met één conclusie:
Figuur 2: De deelboom voor het opzeggen van de overeenkomst op grond van dringend eigen gebruik
1.4.3 Weigering redelijk aanbod De derde opzeggrond is gebaseerd op de weigering van de huurder om in te gaan op een redelijk aanbod van de verhuurder tot het aangaan van een nieuwe huurovereenkomst. Deze conclusie is gerechtvaardigd indien voldaan is aan de volgende cumulatieve argumenten: De huurder weigert een aanbod tot het aangaan van een nieuwe huurovereenkomst, het aanbod betreft niet enkel de huurprijs, het aanbod betreft dezelfde woonruimte (of een redelijk deel ervan) en het aanbod is voor het overige ook een redelijk aanbod.
8
Deze vier argumenten zijn niet verder afhankelijk gesteld van andere argumenten en zijn derhalve allen vraagbare argumenten. Aangezien de argumenten cumulatief zijn, wordt de relatie tussen de argumenten en de conclusie gemodelleerd als noodzakelijke voorwaarden. De deelboom voor de opzeggrond weigering redelijk aanbod ziet er als volgt uit:
Figuur 2: De deelboom voor het opzeggen van de overeenkomst op grond van de weigering van een redelijk aanbod
1.4.4 Verwezenlijken bestemmingsplan De laatste opzeggrond die in het domein gedefinieerd is, is de opzeggrond die gebaseerd is op het verwezenlijken van een dwingend bestemmingsplan. Hierbij zijn er wederom een aantal cumulatieve vereisten welke een noodzakelijke voorwaarde zijn voor deze conclusie. De argumenten zijn: Er is een bestemmingsplan met betrekking tot de woonruimte, de verhuurder is verplicht mee te werken aan de realisering van het bestemmingsplan en de belangenafweging tussen de belangen van de huurder en het bestemmingsplan valt uit in het voordeel van het bestemmingsplan. Deze argumenten worden allen gemodelleerd als vraagbare argumenten, waardoor de deelboom als volgt is opgebouwd:
Figuur 2: De deelboom voor het opzeggen van de overeenkomst op grond van een geldend bestemmingsplan
1.4.5 Tussentijdse opzegbaarheid In de voorgaande paragrafen zijn de afzonderlijke deelbomen besproken voor de vier verschillende opzeggronden. Hierbij is echter steeds één noodzakelijke voorwaarde niet besproken, namelijk de tussentijdse opzegbaarheid. Zoals beschreven in paragraaf 1.2 is een huurovereenkomst slechts opzegbaar indien de overeenkomst is gesloten voor onbepaalde tijd of indien in een overeenkomst voor bepaalde tijd een beding is opgenomen dat deze tussentijds mag worden opgezegd. In de beslisboom is dit te modelleren door een tussenargument tussentijds opzegbaar op te nemen, welke afhankelijk is van de voldoende voorwaarden overeenkomst voor onbepaalde tijd en opzegbare overeenkomst voor bepaalde tijd. In de deelboom voor tussentijdse opzegbaarheid is dit als volgt gemodelleerd:
9
Figuur 2: De deelboom voor de opzegbare huurovereenkomst
Elke opzeggrond is afhankelijk van dit tussenargument. Dit wordt in de beslisboom gemodelleerd door het toevoegen van het noodzakelijke argument tussentijds opzegbaar aan de deelbomen van de opzeggronden. Dit resulteert is de beslisboom die is opgenomen in Appendix A.
1.5
Argumenten opvragen
Zoals aangegeven in paragraaf 1.4, krijgt een argument de status vraagbaar argument indien in de domeinkennis geen directe afhankelijkheden voor het argument zijn vastgesteld. Voor het ontbreken van verdere afhankelijkheden kunnen een aantal redenen zijn: Er zijn daadwerkelijk geen afhankelijkheden Er zijn wel afhankelijkheden maar deze zijn gering van aard Er zijn wel afhankelijkheden maar deze vallen buiten het behandelde domein De eerste variant doet zich zelden voor. Zo zou bijvoorbeeld van het argument verhuurder is oorspronkelijke verhuurder gezegd kunnen worden dat het argument daadwerkelijk niet afhankelijk is van andere argumenten: de huidige verhuurder is immers wel of niet de oorspronkelijke huurder. Deze redenering faalt echter als men het geval zou bekijken waarbij niet duidelijk is wie de oorspronkelijke verhuurder is. Het argument zal dan afhangen van andere argumenten die bepalen wie de oorspronkelijke huurder is. Het voorgaande voorbeeld valt derhalve onder de tweede variant: de afhankelijkheid is gering van aard. Indien dit soort afhankelijkheden wel zouden worden opgenomen in de beslisboom dan zou al snel het overzicht zoek zijn. De belangrijke argumenten raken verward met argumenten welke de kern van de zaak niet raken en de beslisboom zal exponentieel groeien. Om de beslisboom tegen dit soort wildgroei te beschermen moet een beroep worden gedaan op het gezonde verstand van de gebruiker ervan. Deze zal zelf moeten kunnen bepalen of het argument waarom wordt gevraagd in een bepaalde casus wel of niet aanwezig is. De vraag is echter wanneer het gezonde verstand ophoudt en de kennis zo juridisch van aard wordt dat de gewone gebruiker er geen raad meer mee weet.. Deze grens is moeilijk te trekken en hangt gedeeltelijk samen met de derde variant: de afhankelijkheden van het argument vallen buiten het domein. Indien dit geval zich voordoet zal de normale gebruiker niet snel een antwoord kunnen geven op de juridische vraag of het argument zich voordoet. Enkel een juridisch specialist op het gebied van het onderhavige domein zal deze vraag met zekerheid kunnen beantwoorden. In de beslisboom zijn een aantal van dit soort argumenten aanwezig. Een juridische leek zal bijvoorbeeld niet met zekerheid kunnen bepalen of een bepaalde woonruimte al dan niet passend is voor een bepaalde persoon in een bepaalde situatie. Een juridisch expert op het huurrecht gebied, of een juridische ingewijde die beschikking heeft over literatuur en jurisprudentie zal deze de vraag of dit argument geldt echter wel kunnen beantwoorden.
10
De aanwezigheid van dit soort argumenten zal derhalve een directe invloed hebben op de bruikbaarheid van het expertsysteem. Voor het gebruik ervan moet de gebruiker bepaalde juridische vragen op het gebied van het behandelde domein kunnen beantwoorden of op zijn minst weten hoe hij de juridische kwestie kan opzoeken. De doelgroep van het onderhavige systeem zal derhalve enige juridische kennis moeten bezitten. Deze doelgroep kan echter worden opgerekt als men bedenkt dat ook voor de argumenten die buiten het domein vallen een domeinspecificatie kan worden opgesteld, waarna hiermee een eigen beslisboom kan worden gecreëerd. Indien op deze manier elk juridische argument wordt uitgewerkt kan de doelgroep worden uitgebreid tot een doelgroep met een lager kennisniveau. Afhankelijk van de gewenste doelgroep kan de beslisboom naar eigen keuze worden uitgebreid tot een gewenst niveau is bereikt. Men moet zich hierbij echter wel bedenken dat het domein exponentieel zal groeien. Indien bijvoorbeeld onderzocht moet worden in welke gevallen het eigen gebruik van de verhuurder als dringend aangemerkt kan worden, zal de bijbehorende jurisprudentie moeten worden uitgeplozen om na te gaan in welke gevallen in het verleden eigen gebruik als dringend is aangemerkt. Ook dan nog zal enkel slechts een historische interpretatie van een onderliggende casus kunnen worden gegeven en kan niet worden geanticipeerd op gevallen die niet eerder aan de orde zijn geweest in de rechtspraak. Binnen het kader van deze scriptie zijn enkele juridische argumenten om deze reden niet verder uitgewerkt, waardoor zij de status hebben van een vraagbaar argument en de doelgroep beperkt blijft tot de juridisch ingewijden. Het overgrote deel van de vraagbare argumenten zal echter ook door de juridische leek op waarde kunnen worden geschat. Het bepalen of een bepaald argument geldt, zal gebeuren aan de hand van een doelgerichte vraag. De verschillende vragen voor de afzonderlijke argumenten zijn opgenomen in Appendix B.
11
2 Het Expertsysteem 2.1
Inleiding
De ontwikkelde beslisboom uit het vorige hoofdstuk vormt de basis voor het te ontwikkelen expertsysteem. In dit hoofdstuk wordt besproken hoe het expertsysteem vanuit de verkregen beslisboom kan worden opgebouwd. Hierbij zal eerst worden ingegaan op de kwaliteitseisen aan het expertsysteem, dat wil zeggen: Over welke kwalitatieve eisen dient een expertsysteem te beschikken en op welke manier zijn deze vorm te geven. In het vervolg van het hoofdstuk zal de daadwerkelijke uitwerking plaatsvinden waarbij de gestelde kwaliteitseisen een belangrijke rol spelen. Hierbij wordt onder andere ingegaan op verschillende inferentietechnieken en programmeertalen en de concrete implementatie van de beslisboom. Ten slotte wordt aan de hand van het ontwikkelde systeem gekeken in hoeverre de gestelde kwaliteitseisen tot uitdrukking zijn gekomen in het expertsysteem.
2.2
De kwaliteitseisen
Aan een softwareproduct kunnen en moeten hoge eisen worden gesteld. Voor elk product zullen de eisen echter weer verschillende vormen aannemen. Van software die een nucleaire installatie bestuurd zal je graag willen dat deze 100% veilig is; Van een tekstverwerkingprogramma zal je echter vooral eisen dat het gebruiksvriendelijk is. De belangrijkste kwaliteitseisen die aan een juridisch expertsysteem kunnen worden gesteld zijn correctheid, gebruiksvriendelijkheid en onderhoudbaarheid. 2.2.1 Correctheid Van een expertsysteem mag men verwachten dat de uitkomst ervan op een correcte wijze is verkregen. Concreet komt dit erop neer dat een conclusie van het expertsysteem te allen tijde te achterhalen moet zijn in de beslisboom. Indien op grond van de beslisboom tot een bepaalde conclusie kan worden geconcludeerd zal het expertsysteem tot deze conclusie moeten concluderen en vice versa. Door een juiste afleidings –of inferentietechniek te gebruiken kan deze correctheid worden gegarandeerd. Op de verschillende technieken hiervoor en de geschiktheid voor het onderliggende domein zal verderop in dit hoofdstuk nader worden ingegaan. De correctheidseis aan het afleidingsproces moet overigens niet verward worden met de eis dat de uitslag van het expertsysteem altijd een correcte beoordeling moet zijn van een bepaalde casus. Deze laatste eis zal wellicht ook aan het product kunnen worden gesteld maar is primair een eis met betrekking tot de correctheid van de beslisboom. 2.2.2 Gebruiksvriendelijkheid Een volgende eis is die van de gebruiksvriendelijkheid van het systeem. Bij de ontwikkeling van expertsystemen raakt deze eis nog wel eens ondergesneeuwd. Vaak wordt aan de correctheid van het systeem een grotere waarde gehecht, terwijl het eenvoudige gebruik van het geheel minstens zo belangrijk zal zijn voor de eindgebruiker. Gebruiksvriendelijkheid kan worden gestimuleerd door een prettige gebruikersinterface en een eenvoudige installatieprocedure. Bij de bespreking van de keuze van de programmeertalen zal deze eis nader aan de orde komen. 2.2.3 Onderhoudbaarheid De laatste eis is de onderhoudbaarheidseis. De ontwikkeling van het recht staat nooit stil en een expertsysteem zal hierdoor al snel verouderd raken. Een absolute eis zal zijn dat het systeem niet geheel opnieuw ontworpen hoeft te worden indien er een kleine verandering plaatsvindt in het juridische domein. Op deze eis zal verder worden ingegaan aan het slot van dit hoofdstuk.
12
2.3
Inferentietechnieken
Het dagelijkse leven van de mens bestaat grotendeels uit het maken van keuzes. Zo zal bijvoorbeeld de keuze voor het wel of niet meenemen van een paraplu naar het werk afhangen van de huidige weersituatie, de voorspelde weersituatie en de te wandelen afstand. Op grond van een aantal argumenten wordt soms onbewust geconcludeerd voor een bepaalde keuze. Een jurist zal daarentegen altijd bewust moeten zijn van zijn redeneerpatroon. Indien hij niet gebruik maakt van een systematische methodiek zal hij wellicht een mogelijkheid over het hoofd zien. Deze systematische redeneertrant wordt ook gebruikt in expertsystemen, waarbij in grote lijnen onderscheid gemaakt kan worden van twee inferentietechnieken: top-down inferentie en bottom-up inferentie. 2.3.1 Top-down Bij top-down inferentie wordt gestart met een verzameling van argumenten. Met deze argumenten wordt geredeneerd aan de hand van de beslisboom. Indien alle argumenten aanwezig zijn voor het trekken van een conclusie, wordt deze conclusie toegevoegd aan de verzameling van argumenten. Dit proces herhaalt zich totdat er geen nieuwe argumenten aan de verzameling kunnen worden toegevoegd. De conclusies in deze resulterende verzamelings vormen tezamen de uitkomst van het inferentieproces. In het model voor de beslisboom uit het vorige hoofdstuk wordt onderscheid gemaakt tussen drie soorten entiteiten: de conclusie, het tussenargument en het vraagbaar argument. Implementatie van topdown inferentie aan de hand van dit model kan geschieden door de verzameling vraagbare argumenten op te vragen aan de gebruiker en voorts met behulp van deze verzameling van argumenten de top-down inferentie te starten. Het gebruik van top-down inferentie is op deze manier niet erg efficiënt. Van veel van de opgevraagde argumenten zal blijken dat zijn achteraf niet nodig waren voor het inferentieproces. Zo zal bijvoorbeeld het argument dat de huurder een huurachterstand heeft achteraf niet worden gebruikt indien al kon worden geconcludeerd tot slecht huurderschap op grond van het veroorzaken van overlast. Aangezien echter pas achteraf duidelijk is welke argumenten niet opgevraagd behoeften te worden is dit een structureel probleem van top-down inferentie. 2.3.2 Bottom-up Bottom-up inferentie is het spiegelbeeld van top-down inferentie. Bij deze techniek wordt begonnen met een verzameling conclusies, waarna wordt onderzocht of elk van deze conclusies kan worden waargemaakt aan de hand van argumenten. Bij deze inferentietechniek wordt gebruik gemaakt van backchaining wat betekent dat indien een argument afhankelijk is van andere argumenten eerst de waarde van deze argumenten zal worden bepaald waarna de waarde van het eigenlijke argument bepaald kan worden. In het beslisboommodel uit het vorige hoofdstuk kan bottom-up inferentie worden toegepast door te starten met de verzameling van conclusies. Voorts wordt per conclusie bekeken of deze kan worden waargemaakt door middel van het beschouwen van zijn tussenargumenten en vraagbare argumenten uit de beslisboom. Indien het een vraagbaar argument is, wordt de waarde opgevraagd; Indien het een tussenargument is, wordt recursief de waarde van het tussenargument bepaald door opnieuw te beschouwen van welke argumenten deze afhankelijk is. Het verschil in efficiëntie met top-down inferentie is gelegen in het feit dat bottom-up inferentie gebruik kan maken van lazy backchaining. Bij deze vorm van backchaining worden argumenten slechts opgevraagd indien zij daadwerkelijk nodig zijn voor het inferentieproces. De waarde van een argument dat een voldoende voorwaarde is voor een conclusie wordt dan niet afgeleid indien een andere voldoende voorwaarde die naar dezelfde conclusie leidt al is opgevraagd en geldig bleek. De waarde van een argument dat een noodzakelijke voorwaarde is voor een conclusie, wordt alleen afgeleid indien alle voorgaande noodzakelijke voorwaarden waarvan de waarde is bepaald, waar blijken te zijn. Is bijvoorbeeld in het afleidingsproces van de conclusie opzeggen wegens weigering redelijk aanbod al bekend dat het aanbod enkel bedoeld is om de huurprijs te verhogen, dan hoeft het argument aanbod
13
betreft dezelfde woonruimte niet meer afgeleid (en dus opgevraagd) te worden omdat de conclusie niet meer kan worden waargemaakt. Op deze manier wordt bespaard op het aantal argumenten dat moet worden opgevraagd. Het moge dan ook duidelijk zijn dat bij de implementatie van het expertsysteem is gekozen voor de bottom-up inferentietechniek.
2.4
Programmeertalen
Nu de techniek waarmee de beslisboom zal worden geïmplementeerd is bepaald, moet een keuze gemaakt worden voor de programmeertaal waarin het geheel kan worden uitgeprogrammeerd. Op het gebied van expertsystemen zijn een aantal specifieke programmeertalen ontwikkeld waarmee de verschillende inferentiemechanismen kunnen worden uitgewerkt. Klassieke voorbeelden van dit soort programmeertalen zijn Prolog en CLIPS. Kenmerkend voor expertsystemen die zijn gebaseerd op deze talen is echter de onvriendelijke gebruikersinterface en de omslachtige installatieprocessen. Moderne programmeertalen zijn juist gericht op gebruiksvriendelijkheid maar zijn niet specifiek geschikt voor het ontwikkelen van expertsystemen. Dit gaat ten koste van de eenvoudige implementatie van het systeem waardoor het ontwikkelen meer tijd kost en de uitbreidbaarheid bemoeilijkt wordt. Een voor de hand liggende oplossing lijkt het combineren van een moderne programmeertaal en een specifieke expertsysteemtaal in een hybride taal. Dit was dan ook de opzet bij het ontwikkelen van het expertsysteem. Gekozen is voor een combinatie van de moderne programmeertaal Java en de specifieke programmeertaal CLIPS. Met behulp van de programmeertaal Java kan op eenvoudige wijze een gebruiksvriendelijke gebruikersinterface worden gecreëerd. Een bijkomend voordeel is dat zogenaamde Java-applets binnen een internet-browser kunnen worden opgestart zodat geen ingewikkelde installatieprocedure behoeft te worden doorlopen. Op elke computer met een internet-browser (onafhankelijk van het besturingssysteem dat wordt gebruikt) zal een in Java ontwikkeld expertsysteem kunnen worden gebruikt. Bij het ontwikkelen van het expertsysteem is gebruik gemaakt van het in Java ontwikkelde pakket JESS3. Met behulp van JESS kan een bestand met CLIPS programmeercode worden ingelezen en uitgevoerd. Op deze manier kan de daadwerkelijke implementatie van de beslisboom plaatsvinden in de CLIPS-taal terwijl voor het overige gebruik kan worden gemaakt van Java. Aangezien de standaard gebruikersinterface van JESS nogal gebruiksonvriendelijk is, is voor het juridisch expertsysteem een aparte gebruikersinterface over JESS heen gebouwd. Voor de nieuwe gebruikersinterface, JEDI, zijn tevens een aantal wijzigingen aangebracht in de aansturing vanuit de CLIPS programmacode. 2.4.1 CLIPS functies Een in CLIPS geschreven programma is niets anders dan een verzameling opeenvolgende functie aanroepen. Elke functie en haar parameters zijn hierbij tussen haakjes geplaatst. Een zeer eenvoudig programma is bijvoorbeeld:
waarbij de functie ‘+’ wordt toegepast op de parameters 4 en 5. Aangenomen dat de functie ‘+’ de betekenis heeft die je ervan zou verwachten is de uitkomst van dit programma gelijk aan 9. Voor CLIPS is een groot aantal van dit soort standaard functies beschikbaar, waarvan een aantal specifiek geschikt is voor expertsystemen. De functie die in expertsystemen het meest gebruikt wordt, is de functie ‘defrule’, welke de volgende vorm heeft: Met deze functie kan op eenvoudige wijze een als….dan functie worden geschreven. Zo is bijvoorbeeld de betekenis van de volgende functie: 3
http://herzberg.ca.sandia.gov/jess/
14
! "
“Als het regent en de zon schijnt dan is er een regenboog zichtbaar”. Te zien is dat in de premissen van de regel wordt getest of de variabelen het_regent en de_zon_schijnt bestaan. Indien dit het geval is, worden de conclusies die na de => zijn geplaatst, uitgevoerd. In dit geval wordt slechts één conclusie getrokken: De waarde van de variabele regenboog wordt op “Ja” gezet met behulp van de functie assert. Indien het bovenstaande programma enkel uit de opgegeven regels zou bestaan zou de conclusie nooit worden uitgevoerd. De waarden van de het_regent en de_zon_schijnt zijn immers nog niet bekend voor het programma. Een mogelijkheid is om deze variabelen tevens toe te kennen via de assert functie, zoals dat gebeurt in de laatste regel van het programma met betrekking tot de variabele regenboog. In de premissen van de defrule-functie kan naast het verifiëren of een bepaalde variabele bestaat, ook worden getest of deze variabele de juiste waarde heeft. Zo bepaalt het volgende programma of, gezien de weerssituatie, wel of geen paraplu wordt meegenomen. #
$
%
! " ! "
&
$
%
! " '
"
De eerste defrule bepaalt in welk geval er een paraplu wordt meegenomen, namelijk indien het regent. De variabele wordt eerst toegekend aan de tijdelijke variabele ?r , waarna met deze variabele getest wordt of hij gelijk is aan de waarde “Ja”. In de tweede defrule gebeurt hetzelfde. Hier wordt echter getest of de waarde van ?r niet gelijk is aan “Ja” (neq ?r “Ja”), waarna de waarde “Nee” aan de variabele paraplu wordt toegekend. 2.4.2 JESS functies In CLIPS is het in beginsel enkel mogelijk om top-down inferentie toe te passen op een verzameling variabelen. Hierom zijn in JESS een aantal functies toegevoegd welke bottom-up inferentie mogelijk maken. De belangrijste hiervan is de functie: (
)*
(
+
Indien deze functie wordt gebruikt, wordt backchaining toegepast op een variabele waarvan de waarde nog niet bekend is. Deze functie dient geplaatst te worden boven andere functies die de betreffende variabele gebruiken, zodat de functies ‘weten’ dat backchaining dient plaats te vinden met betrekking tot deze variabele. De feitelijke backchaining wordt bewerkstelligd door de term need- voor een variabele te plaatsen. Aan het bovenstaande paraplu-programma zouden bijvoorbeeld de volgende functies kunnen worden toegevoegd: (
)*
(
( '
"
Als nu de variabele het_regent nodig is, zoals in de premissen van de functies GeenParaplu en WelParaplu, wordt de variabele need-het_regent automatisch aangemaakt omdat backward-chaining is aangezet voor deze variabele. De premisse van bovenstaande functie zal hierdoor slagen. Na toewijzing van de waarde “Nee” aan de variabele het_regent zullen de paraplu-functies kunnen worden uitgevoerd.
15
2.4.3 JEDI functies De functies die zijn toegevoegd in JEDI hebben voornamelijk betrekking op interactie met de gebruiker van de vernieuwde gebruikersinterface. Zo kan met behulp van de functie: ) , +
*
een vraag worden gesteld aan de gebruiker. De tweede parameter4 moet tussen aanhalingstekens staan en is de vraag die aan de gebruiker gesteld wordt. Hierna kunnen de mogelijke antwoorden worden opgegeven. Het volgende voorbeeld illustreert het gebruik van de ask functie in combinatie met backchaining: ( ) , -
- -! - -'
-
Met behulp van de bovenstaande functie wordt, indien de waarde van de variabele het_regent onbekend is, aan de gebruiker gevraagd of het regent. Deze kan kiezen uit de antwoorden “Ja” en “Nee” waarna deze waarde wordt toegekend aan de variabele het_regent. Naast ask zijn er in de JEDI taal nog een aantal andere functies beschikbaar gemaakt zoals de functie: . /
,
)
waarmee een bepaalde tekst in de gebruikersinterface kan worden geplaatst en de functie: )
0
waarmee een pop-up scherm kan worden geopend waarin een tekst wordt afgedrukt. Met closeFrame kan JEDI worden afgesloten. 2.4.4 JEDI programma’s Met behulp van de functies uit de vorige paragrafen kunnen programma’s worden geschreven die vervolgens door de JEDI-engine geïnterpreteerd kunnen worden. Een JEDI-programma is feitelijk niets meer dan een aaneenschakeling van verschillende functies welke wordt afgesloten met de functies (reset) en (run), waarmee de uitvoering van het programma wordt gestart. Met behulp van de hierboven aangehaalde voorbeelden kan bijvoorbeeld het volgende programma worden geschreven: (
)* #
( $
%
! " ! "
. /
, &
' $
% . /
,
1"
! " 2
'
"
1"
( ) , -
- -! - -'
-
Na executie van dit programma, zal afhankelijk van het antwoord van de gebruiker op de vraag of het regent een advies gegeven worden over het wel of niet meenemen van een paraplu. 4
De eerste parameter is een waarde die gebruikt wordt om aan de gebruikersinterface door te geven dat er gestart moet worden met een leeg scherm. Er kan gekozen worden uit de waarden y en n.
16
In het bovenstaande programma is goed te zien hoe het bottom-up principe met backchaining werkt. Na aanroep van de functie (run) zal de JEDI-engine proberen om één van de gedefinieerde defrules te gaan uitvoeren, waarbij wordt getracht om alle premissen waar te maken. De eerste twee defrules hebben hiervoor de waarde van het_regent nodig; Deze waarde is echter nog niet bekend. Omdat echter backward-chaining voor deze variabele is aangezet wordt nu de variabele need-het_regent aangemaakt door het systeem. Nu kan de defrule get_het_regent worden uitgevoerd, aangezien de aanwezigheid van de need-het_regent variabele de enige eis is voor de uitvoering. De waarde van het_regent wordt gevraagd aan de gebruiker van het systeem en wordt vervolgens toegekend aan de variabele. Na deze toekenning zal één van de eerste twee defrules kunnen worden uitgevoerd, zodat de waarde van de variabele paraplu zal worden toegekend en de gebruiker een advies zal krijgen omtrent het meebrengen van een paraplu.
2.5
De implementatie
Het expertsysteem kan worden geïmplementeerd met behulp van de functies uit de vorige paragrafen. Hierbij moet een onderscheid gemaakt worden tussen de verschillende entiteiten in de beslisboom en de onderlinge relaties. Indien een entiteit uit de beslisboom bijvoorbeeld afhankelijk is van andere entiteiten, dient vanwege het bottom-up principe eerst de waarde van de entiteiten waarvan deze afhankelijk is gesteld te worden bepaald. In de volgende paragrafen zal worden besproken hoe voldoende en noodzakelijke voorwaarden kunnen worden geïmplementeerd met behulp van de gedefinieerde functies, waarna de uitwerking van de vraagbare –en tussenargumenten en de conclusies wordt besproken. 2.5.1 De noodzakelijke argumenten Indien een entiteit A in de beslisboom afhankelijk is gesteld van een aantal noodzakelijke argumenten moeten alle argumenten waar zijn wil de entiteit zelf ook de waarde ‘waar’ krijgen. Met behulp van de JEDI-functies is dit als volgt te modelleren: 4 4
(
)*
(
3
3
(3 5 5 6 6
5 ! " 5 ! "
3
! " 3
(3 3
'
"
In deze code is de regel “als argument1 en argument2 waar zijn, dan is ook A waar.” geïmplementeerd. Gestart wordt met het aanzetten van backward-chaining met betrekking tot de variabele A.5 Vervolgens worden twee defrules gecreëerd waarin de need-A variabele voorkomt. Deze constructie zorgt ervoor dat de waarde van A wordt afgeleid indien deze nodig is. In de eerste regel wordt de waarde van A bepaald aan de hand van de variabelen waarvan deze afhankelijk is. Indien alle argumenten waarvan A afhankelijk is waar zijn (gelijk zijn aan “Ja”), wordt de waarde van A ook op “Ja” gezet. De tweede regel handelt de overige gevallen af. Indien de eerste regel niet slaagt, treedt deze ‘default’ regel in werking welke de waarde van de variabele A op “Nee” zet. Het moge duidelijk zijn dat hoewel hier slechts twee argumenten zijn opgenomen waarvan A afhankelijk is, er onbeperkt afhankelijke variabelen kunnen worden toegevoegd aan de premisse van de eerste defrule. 5
Zoals gezegd moet deze functie voor de functies staan die de variabele A gebruiken. Hier is echter nog onbekend welke functies A (gaan) gebruiken; hierom is een scheiding aangebracht tussen de backward-chaining functie en de rest van het programma.
17
De bovenstaande code heeft het gewenste lazy karakter van backchaining. Indien tijdens de uitvoering van de regel blijkt dat een premisse niet kan worden waargemaakt (omdat bijvoorbeeld argument1 de waarde “Nee” heeft), wordt de uitvoering van de defrule meteen gestopt zodat de waarde van de andere noodzakelijke argumenten niet langer wordt onderzocht. 2.5.2 De voldoende argumenten Voldoende argumenten voor een conclusie zijn afzonderlijk in staat deze conclusie waar te maken. Indien één van de argumenten waar is zal ook de conclusie waar moeten zijn. Een eerste poging om een conclusie uit voldoende argumenten af te leiden zou kunnen zijn: (
)*
(
3
4 4 3 (3
5 ! " 3
! " 36
(3 6 3
! " ! " 3
(3 3
'
"
Met de bovenstaande code zal de variabele A de waarde “Ja” krijgen indien één van de argumenten, argument1 en argument2 waar is. De gebruikte code heeft echter niet het gewenste lazy karakter. De waarde van argument2 zal immers nog steeds worden geverifieerd indien A reeds een waarde heeft gekregen door toedoen van argument en vice versa. Dit gedrag valt te verklaren door de wijze waarop de JEDI-engine deze functies interpreteert. Deze zal pas een definitieve waarde aan de variabele A toekennen indien alle functies die een need-A bevatten zijn geverifieerd. De laatst toegekende waarde zal hierbij de definitieve waarde van A zijn.6 Aangezien dit gedrag ongewenst is, moet de bovenstaande code als volgt worden gewijzigd (
)*
4 4
(
3
3 (3 5 3
! " ! " 36
(3
5 5 6 6
'
3
! "
"
! "
3 (3 3
'
"
6 Hiermee valt ook de werking van de default-regels te verklaren. Indien er meerdere regels slagen zal de default-regel altijd worden overruled door andere regels aangezien deze altijd als eerste slaagt.
18
Bij de uitvoering van bovenstaande code zal eerst de waarde van argument1 worden geverifieerd. Leidt deze niet tot het gewenste resultaat dan zal de tweede defrule in werking treden. Indien ook deze regel niet tot succes leidt dan zal de defaultregel de waarde van A bepalen. Deze implementatie van voldoende argumenten heeft wel het gewenste lazy effect. Indien één van de geverifieerde argumenten reeds leidt tot een waardetoekenning aan de variabele A, zullen de overige regels meteen falen waardoor deze niet langer zullen worden geverifieerd. Deze implementatie van de voldoende en noodzakelijke argumenten heeft een erg deterministisch karakter. De volgorde waarin de variabelen zullen worden geverifieerd zal altijd hetzelfde zijn door de strikte manier waarop zij zijn geïmplementeerd. Dit is echter voor het onderliggende expertsysteem geen ongewenst effect en levert zelfs voordelen op. Variabelen die een grote invloed hebben op meerdere argumenten of conclusies kunnen hiermee als eerste worden geverifieerd, waardoor het aantal te beschouwen variabelen snel kan reduceren. 2.5.3 De implementatie van de entiteiten In de voorgaande paragrafen is in abstracte zin gesproken over argumenten en conclusies. De volgende stap is om de entiteiten uit de beslisboom, de vraagbare –en tussenargumenten en de conclusies, vorm te geven in het expertsysteem. De tussenargumenten en conclusies kunnen worden geïmplementeerd met behulp van de code voor de voldoende en de noodzakelijke argumenten. De entiteiten worden afhankelijk gesteld van noodzakelijke of voldoende argumenten door de desbetreffende programmastructuur ervoor te gebruiken. De implementatie van de vraagbare variabelen is tevens eenvoudig. Indien de waarde van de vraagbare variabele A nodig is, moet deze worden opgevraagd: 4 4
(
)*
(
3
(3
(3 3
) , -7
3 *
- -! - -'
-
In een programma zal de regel (do-backward-chaining A) boven de functies moeten worden geplaatst waarin naar de waarde van A wordt gerefereerd. Indien dit niet gebeurt zal geen back-chaining plaats vinden met betrekking tot deze variabele omdat de JEDI-engine hiervan niet op de hoogte is. Bij het ontwikkelen van de beslisboom is reeds aandacht besteedt aan de vragen die moeten worden gesteld bij de verschillende variabelen. De vragen die moeten worden gesteld bij het opvragen van de vraagbare variabele staan opgesomd in appendix B. 2.5.4 Gedeeltelijke uitwerking Het uitwerken van de beslisboom in JEDI-code is feitelijk slechts een formaliteit. Voor elke entiteit in de beslisboom hoeft slechts nagegaan te worden op welke manier de uitwerking is gedefinieerd in de vorige paragrafen, waarna de programmacode er vanzelf uitrolt. Voor de volledigheid zal echter in deze paragraaf een deel van de beslisboom beargumenteerd worden uitgewerkt. Hierbij is gekozen voor de uitwerking van de opzeggrond Opzeggen wegens weigering redelijk aanbod. Uit de beslisboom blijkt dat de conclusie Opzeggen wegens weigering redelijk aanbod afhankelijk is van vijf noodzakelijke argumenten, namelijk: Opzegbare huurovereenkomst, Huurder weigert aanbod nieuwe huurovereenkomst, Aanbod betreft niet enkel de huurprijs, Aanbod betreft dezelfde woonruimte en Aanbod is een redelijk aanbod. Aangezien het een relatie met noodzakelijke argumenten betreft zal de verhouding tussen de conclusie en de argumenten moeten worden gemodelleerd op de wijze die is aangegeven in paragraaf 2.5.1:
19
(
)*
(
)
4 4 ) (
)
/ / -! -
% %
-! -
%
*
% ) %
-'
-
-! -! )
-! )
(
) )
-'
-
Te zien is dat de vijf argumenten zijn geïmplementeerd volgens de wijze waarop dat gebeurt in het voorbeeld van paragraaf 2.5.1. De enige keuze die moet worden gemaakt is de keuze met betrekking tot de naamgeving van de functies en de variabelen. De keuze hiervoor is niet van belang voor de werking van het programma maar kan wel de overzichtelijkheid en daarmee de onderhoudbaarheid bevorderen. In het expertsysteem zijn de functies en variabelen aangegeven met korte omschrijvingen van de betreffende entiteiten. In de bovenstaande functies wordt verwezen naar variabelen die voor het systeem nog onbekend zijn. De volgende stap zal dus zijn het implementeren van de entiteiten waarnaar deze variabelen verwijzen. Voor de laatste vier variabelen (aanbod, huurprijs_betreffend, dezelfde woonruimte en redelijk) is dit eenvoudig; de entiteiten waarnaar verwezen wordt zijn allen vraagbare variabelen. Hiervoor kan de methode die gedefinieerd is in paragraaf 2.5.4 worden gebruikt. Voor de entiteit Aanbod is een redelijk aanbod is de uitwerking bijvoorbeeld als volgt: ( )
( -'
) )
-
) , -7
+
+
)
- -! -
Hiernaast moet tevens boven de code waarin de variabele redelijk wordt gebruikt de volgende regel worden opgenomen: (
)*
(
)
De variabele wordt gebruikt in de zojuist gedefinieerde functie get_opz_redelijk_aanbod en zal derhalve hierboven moeten worden geplaatst. De implementatie van de overige vraagbare argumenten verloopt analoog aan de bovenstaande methode, waarbij steeds de bijbehorende vraag gevonden kan worden in appendix B. Na implementatie van de laatste vier argumenten, rest slechts de uitwerking van de variabele opzegbaar. In de beslisboom is te zien dat deze variabele afhankelijk is van twee voldoende argumenten, namelijk: Huurovereenkomst voor onbepaalde tijd en Opzegbare overeenkomst voor bepaalde tijd. Voor de uitwerking hiervan zal derhalve de methode moeten worden gebruikt die is gedefinieerd in paragraaf 2.5.2: 5
( % %
-'
-
-! -! -
20
6 ( %
-'
-! -
( -'
-
Daarnaast zal de regel: (
)*
(
geplaatst moeten worden boven de code die de variabele opzegbaar gebruikt, dus wederom boven de functie get_opz_redelijk_aanbod. Wederom zullen nu de waarden van de variabelen onbepaalde_tijd en bepaald_opzegbaar moeten worden bepaald. De entiteit behorend bij onbepaalde_tijd is, zoals te zien is in de beslisboom, een vraagbaar argument en is analoog aan de zojuist behandelde vraagbare argumenten te implementeren. De entiteit behorend bij bepaald_opzegbaar is wederom opgebouwd uit twee voldoende argumenten en zal analoog aan de zojuist gebruikte uitwerking kunnen worden geïmplementeerd. De volledige uitwerking van de conclusie Opzeggen wegens weigering redelijk aanbod is te vinden in appendix C. De uitwerking van alle opzeggronden en het expertsysteem in werking is te vinden op http://www.expertsysteem.tk.
2.6
Onderhoudbaarheid en de overige kwaliteitseisen
De mogelijkheid tot uitbreiding en onderhoud is een belangrijk element van een softwareproduct en zeker van een juridisch expertsysteem. Hierom is bij de ontwikkeling van het expertsysteem steeds rekening gehouden met een eventuele toekomstige uitbreiding en het onderhoud van het systeem. Het gemakkelijke onderhoud wordt in de eerste plaats gegarandeerd door de gebruikte programmeertalen. De uitwerking van het expertsysteem is geheel losgekoppeld van de uitwerking van gebruikersinterface en de implementatie van het inferentiemechanisme, waardoor de ontwikkelaar zich enkel hoeft te concentreren op het gebruik van de JEDI-taal. Het programmeren van het expertsysteem kan hierdoor plaatsvinden aan de hand van een enkele source file die gemakkelijk gemodificeerd en getest kan worden. Bij de uitwerking van het expertsysteem in de source file is een overzichtelijke structuur gebruikt, waarbij de beslisboom per opzeggingsgrond uitgewerkt is met behulp van duidelijke naamgeving. Daarnaast is voor de verschillenden entiteiten uit de beslisboom expliciet uitgewerkt op welke wijze zij zijn vorm te geven in het de JEDI-taal. Hierdoor is een verandering in de beslisboom eenvoudig om te zetten in een verandering in programmacode. Naast handmatige uitbreiding aan de hand van een nieuwe beslisboom, leent het onderliggende systeem zich door de eenduidige wijze waarop een source file wordt opgebouwd uit een beslisboom ook uitstekend voor een uitbreiding naar een automatische ontwikkeling van een expertsysteem uit een willekeurige beslisboom. Men kan hierbij denken aan een gebruikersinterface waarin de beslisboom kan worden getekend waarna deze automatisch wordt omgezet in een JEDI source file. Het ontwikkelingsproces van een juridisch expertsysteem kan hierdoor aanmerkelijk worden bekort en het zwaartepunt van de ontwikkeling komt te liggen bij de ontwikkeling van een correcte beslisboom. Ook aan de overige gestelde kwalliteitseisen, correctheid en gebruiksvriendelijkheid, wordt door het ontwikkelde systeem ruimschoots voldaan. De correctheid van het systeem wordt gegarandeerd door het gebruik van een juiste inferentietechniek en de correcte implementatie hiervan. Voorts is het systeem niet alleen gebruiksvriendelijk voor de eindgebruiker door de gemakkelijke gebruikersinterface en het feit dat geen ingewikkelde installatieprocedure hoeft te worden doorlopen; ook door de ontwikkelaar is het systeem eenvoudig te hanteren en uit te breiden.
21
Conclusie In deze scriptie is het onderzoek naar de ontwikkeling van een juridisch expertsysteem beschreven. Daarbij werd gekozen voor een specifiek juridisch domein: de mogelijkheid tot tussentijdse opzegging door de verhuurder van een huurcontract met betrekking tot zelfstandige woonruimte. In het eerste deel van deze scriptie is aandacht besteed aan dit juridische domein en de wijze waarop van dit domein kan worden geabstraheerd door middel van het ontwikkelen van een beslisboom. De beslisboom kon werden opgebouwd met behulp van drie kern entiteiten (vraagbare argumenten, tussenargumenten en conclusies) en twee relatie-mogelijkheden (noodzakelijke en voldoende voorwaarden). Bij de ontwikkeling van de beslisboom werd duidelijk dat een domeinabstractie niet zonder meer mogelijk is zonder eisen te stellen aan de doelgroep van de beslisboom. Om een wildgroei van de boom te voorkomen bleek het noodzakelijk om de voorwaarde te stellen dat de eindgebruiker enige juridische kennis bezit. Een beslisboom voor een juridische leek zal een exponentiele groei betekenen ten opzichte van de huidige beslisboom. Het tweede deel van de scriptie bespreekt de implementatie van het expertsysteem aan de hand van de beslisboom. Door een eenduidige en volledige uitwerking van de entiteiten en relaties van het beslisboom-model kon de correcte implementatie van het expertsysteem worden gegarandeerd. Naast deze correctheidseis voldoet het systeem tevens aan de overige gestelde kwaliteitseisen, onderhoudbaarheid en gebruiksvriendelijkheid, doordat gebruik is gemaakt van heldere programmeertechnieken en een systematische opbouw. Het omzetten van de beslisboom in een correct expertsysteem is geslaagd, het expertsysteem zal exact dezelfde redeneertrant volgen als een gebruiker die enkel de beslisboom tot zijn beschikking heeft. De in de inleiding gestelde vraag of juridische kennis op eenvoudige wijze kan worden omgezet in een expertsysteem zal dus kunnen worden beantwoord aan de hand van de vraag of met behulp van een beslisboom een representatieve afspiegeling kan worden gemaakt van de kennis van de juridisch expert. Het antwoord hierop is niet eenvoudig te geven. Enerzijds is de beslisboom zoals deze is besproken in deze scriptie correct en volledig voor het besproken domein. Anderzijds zullen sommigen zich afvragen wat de waarde is van een juridisch expertsysteem indien dit enkel door een juridisch ingewijde kan worden gehanteerd. Deze waarde is echter wel degelijk aanwezig indien men bedenkt dat een expertsysteem altijd dezelfde systematische afweging zal maken. Door de systematische afweging zullen identieke gevallen altijd tot de dezelfde beslissing leiden, waarmee de rechtsgelijkheid en de voorspelbaarheid van de beslissing wordt bevorderd. Daarnaast is het mogelijk de beslisboom uit te breiden door het uitwerken van de vraagbare variabelen in nieuwe deelbomen zodat de doelgroep wordt vergroot. Zoals gezegd zal dit leiden tot een exponentiele groei van de beslisboom. Indien echter, zoals eerder geopperd, gebruik wordt gemaakt van automatische programmageneratie vanuit de beslisboom, kan meer aandacht worden besteedt aan de ontwikkeling van de beslisboom en worden programmeerfouten bij de implementatie tegengegaan. Op deze wijze kan de beslisboom op eenvoudige wijze worden uitgebreid naar een meer specifieke boom zonder dat dit bij de implementatie tot problemen leidt. Op grond van bovenstaande argumentatie kan worden geconcludeerd dat het onderhavige domein op eenvoudige wijze kan worden geïmplementeerd in een expertsysteem. Men zou hieruit kunnen concluderen dat alle juridische kennis gemakkelijk zou kunnen worden geïmplementeerd in een expertsysteem. Dit is echter op grond van het onderhavige onderzoek te kort door de bocht geredeneerd. Elk juridisch terrein zal zijn eigen problematiek kennis met betrekking tot de abstractie in een beslisboom. In een juridisch terrein waarbij vooral wordt geredeneerd aan de hand van redelijkheid en billijkheid zal een expertsysteem bijvoorbeeld enkel een kennisrepresentatie kunnen geven van hetgeen in het verleden in jurisprudentie is vastgelegd. Of deze kennis representatief genoeg is voor de kennis van expert in dit domein is een vraag die met name betrekking heeft op de definitie van het begrip kennis. Deze vraag is echter van een geheel andere aard dan het onderwerp van dit onderzoek en laat ik graag over aan de filosofen onder ons.
22
Referenties Literatuur Lucas, P., Van der Gaag, L. (1991), Principles of Expert Systems, Addison-Wesley, Wokingham Dozy, R.A., Jacobs, Y.A.M. (1999), Hoofdstukken Huurrecht, Quint, Gouda Koers, A.W. (1989), Knowledge based systems, Kluwer, Deventer Dijkstra, A (1998), Object Georienteerd Modelleren en Programmeren, Utrecht, Vakgroep Informatica De Vey Mestdagh, C.N.J. (1997), Juridische Kennissystemen, Rekentuig of rekenmeester? Het onderbrengen van juridische kennis in een expertsysteem voor het Milieuvergunningenrecht, Kluwer, Deventer Websites Java Expert System Shell (Jess), http://herzberg.ca.sandia.gov/jess/ CLIPS, http://www.ghg.net/clips/CLIPS.html Java Technology, http://java.sun.com/ AI & Law, http://www.cs.uu.nl/people/henry/research/ailaw.html
23
Appendix A: De beslisboom
24
Appendix B: De vragen Huurder weigert aanbod nieuwe huurovereenkomst Heeft de huurder een aanbod van de verhuurder tot het aangaan van een nieuwe huurovereenkomst geweigerd? Aanbod betreft niet enkel de huurprijs Heeft de verhuurder met het aangaan van de nieuwe huurovereenkomst enkel tot doel de huurprijs te verhogen? Aanbod betreft dezelfde woonruimte Betreft het aanbod dezelfde woonruimte of een redelijk deel daarvan? Aanbod is een redelijk aanbod Is het aanbod van de verhuurder een redelijk aanbod? Verhuurder heeft woonruimte dringend nodig Heeft de verhuurder de woonruimte dringend nodig voor gebruik? Verhuurder dient eigen belang Dient de verhuurder bij dit gebruik zijn eigen belangen? Gebruik valt onder begrip ‘dringend eigen gebruik’ Valt het dringend gebruik van de verhuurder onder een van de volgende categorieën? bewoning van de woonruimte - renovatie van de woonruimte ten behoeve van dezelfde huurder - uitbreiding van de woonruimte ten behoeve van dezelfde huurder - krotopruiming van de woonruimte en nieuwbouw - krotopruiming van de woonruimte en verkoop van de grond Huurder kan passende woonruimte verkrijgen Kan de huurder van de woonruimte andere, passende woonruimte verkrijgen? Verhuurder heeft huisvestingsvergunning Heeft de verhuurder een huisvestingsvergunning met betrekking tot de verhuurde woonruimte? Verhuurder is oorspronkelijke verhuurder / Niet oorspronkelijke Verhuurder Heeft er een eigendomsoverdracht van de woonruimte plaatsgevonden tijdens de huurperiode? Verhuurder is minstens 3 jaar eigenaar Is de huidige verhuurder gedurende minstens 3 jaar eigenaar van de woonruimte en is de huurder daarvan gedurende minstens 3 jaar op de hoogte? Belangenafweging Huurder/Verhuurder Wegen de belangen van de verhuurder voor het dringend eigen gebruik op tegen het belang van de huurder om de woning te blijven huren? Bestemmingsplan betreffende de woonruimte Bestaat er een bestemmingsplan van de gemeente waarbinnen de woonruimte valt welke betrekking heeft op de wijziging van de woonruimte?
25
Verplichte/gedwongen realisering bestemmingsplan Is de verhuurder verplicht dan wel gedwongen mee te werken aan de uitvoering van dit bestemmingsplan waardoor hij de huurovereenkomst met de huurder niet langer kan voortzetten? Belangenafweging Huurder / Bestemmingsplan Wegen de belangen van de uitvoering van het bestemmingsplan op tegen de belangen van de huurder om de woonruimte te blijven huren? Huurder veroorzaakt overlast Veroorzaakt de huurder structureel ernstige overlast aan omwonenden? Huurder heeft huurachterstand Heeft de huurder een huurachterstand van minstens 3 maanden? Overbewoning van de woonruimte Is er sprake van overbewoning van de woonruimte? Huurder heeft woonruimte verlaten Heeft de huurder de woonruimte gedurende geruime tijd verlaten? (Andere) schending huurovereenkomst of wet Is er sprake van een ernstige schending van de bepalingen van de huurovereenkomst of de wet door de huurder? Huurovereenkomst voor bepaalde tijd / Huurovereenkomst voor onbepaalde tijd Is de huurovereenkomst gesloten voor een bepaalde tijdsduur? Geldig opzegbeding Is er een beding opgenomen in de huurovereenkomst welke tussentijdse opzegging toestaat?
26
Appendix C: Uitwerking In deze appendix is de opzeggrond Opzeggen wegens weigering redelijk aanbod volledig uitgewerkt. De uitwerking van de andere opzeggronden is te vinden in de source file die gebruikt wordt door het expertsysteem in: http://www.students.cs.uu.nl/~jmoorman/JessNew/scr/beslisboom.txt 88((((((((((((((((((((((((((((((((((((((((((( 88 9 * * ) 88((((((((((((((((((((((((((((((((((((((((((( ( ( ( ( ( (
)* )* )* )* )* )*
( ( ( ( ( (
)
* ) )
(
) ) %
5
5 -! -:
+
)
)
*
+
+
*
+
)
. / , ) -- -:
) (
*
+
1-( -
)
--
) (
) / / -! -
% %
-! -
%
-'
% ) %
*
-
-! -! )
-! )
(
) )
-'
-
88 33';9: 88 ( ( ) , -< +
+ *
+
)
*
+ - -! - -'
-
88 <00 $ 7!= ;>. >??>': 88 ( ( ) , -< +
)
)
+ +
+ - -! - -'
*
-
88 :>@>2?:> #99' 07A.> ;>. >??>': 88 (
( +
*
*
* - -! - -'
-
) , -;
*
)
27
88
>:>27!B 33';9: 88 ( (
) ) )
-'
)
,
-7
+
+
)
-
-! -
-
88((((((((((((((((((((((((((((((((((((((((((( 88 9 + ) 88((((((((((((((((((((((((((((((((((((((((((( ( ( (
)* )* )*
( ( ( 5
( % %
-'
-
-! -! 6
( %
-'
-! -
( ( ) - -! - -'
,
-7
+
)
+
-
(
( %
-! -
%
-! -! -
(
( )
,
-7 - -! - -'
-
+
)
*
)
28