[alg] lazy talen.

Pagina: 1
Acties:

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Voor de universiteit waar ik voor werk, ga ik binnenkort weer beginnen aan het expertsysteem waar ik de afgelopen paar jaar aan heb gewerkt. En als sideproject ben ik thuis ook wat aan het experimenteren met een typesysteem en een klein taaltje. Ik vraag me eigelijk alleen af wat ik nu eigelijk zoek.

Een voorwaarde aan het systeem van de uni, is dat het oa lazy moet zijn. Volgens de oude specificatie werd dat door goaldriven inference gedaan. De reden dat het systeem lazy moet zijn, is dat er ook informatie aan de gebruiker gevraagt kan worden en dit moet tot een minimum worden beperkt. Daarnaast komt het goaldriven redeneren ook redelijk overeen met onze manier van denken.

Een andere oplossing om een systeem lazy te maken is door het een pure functionele taal te laten worden. Alhoewel dit natuurlijk theoretisch super is om mee te werken, is het behoorlijk onpraktisch voor dat systeem. In een pure functionele taal is het namelijk onmogelijk om iets te updaten, en dat is juist wat er wel nodig is voor dat systeem. Daarnaast zijn pure functionele talen vrij complex om mee te werken, en kan het omzetten van wetgeving (daar wordt het systeem oa voor gebruikt), niet meer door juristen zonder behoorlijke technische achtergrond worden gedaan.

Ik zou dus graag een discussie hierover willen beginnen en zien wat voor ideeen er allemaal uitkomen.

Verwijderd

Ik snap niet helemaal wat je precies wilt. Zoek je een lazy taal die je zou kunnen gebruiken? Zo'n anderhalf jaar geleden had Martin een topic over lazy evaluation in Java (alhoewel het vrij snel meer over generics ging), misschien heb je daar wat aan (mocht je het zelf nog niet gevonden hebben): [rml][ Java-functioneel] Lazy evaluation[/rml]

[ Voor 3% gewijzigd door Verwijderd op 16-03-2003 14:32 ]


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Ik zoek niet zozeer een lazytaal die ik wil gebruiken, maar eerder ideeen. Ik weet eerlijk zelf nog niet al te goed wat ik wil en zoek (maakt het extra duidelijk :P) . Ik denk dat het voornaamste een discussie erover me wat duidelijkheid gaat verschaffen.

Verwijderd

Om wat ideeen op te doen over juridische expertsystemen zou ik als eerste eens kijken in oude jaargangen van computerrecht. Af en toe worden er jurimetrische dingen besproken, o.a. expertsystemen.

Eigenlijk ken ik alleen JURICAS, dat werkt op basis van rapid prototyping. Op basis van wetgeving en jurisprudentie kom je tot een beslissingsboom. Deze wordt dan sec geimplementeerd in een bestaande (AI) programmeertaal. Vervolgens wordt het prototype getoetst aan de praktijk. De resultaten worden vervolgens weer verwerkt in het prototype waardoor deze accurater wordt. (bedoel je dit met goaldriven?)

Je zou inderdaad zelf een pure taal kunnen schrijven om snel dit soort boomstructuren te implementeren. Het probleem is dan inderdaad dat juristen deze taal onder de knie moeten krijgen. (Er zijn overigens wel juristen met een technische achtergrond ;) )

Een andere oplossing zou zijn, en dat is zomaar een ideetje, dat je de juristen de beslissingsboom in een daartoe ontworpen omgeving laat tekenen, een soort visuele programmeertaal. Deze beslissingsbomen zijn daarna eenvoudig aan te passen. Deze beslissingsbomen worden dan geinterpreteerd of gecompileerd naar een werkend systeem, die vragen stelt aan de gebruiker en op basis daarvan tot een advies komt.

Zie trouwens ook: http://www.rint.rechten.rug.nl/publicaties/r&c.pdf uit een boek van Franken. Het is oud maar het kan inspirerend werken.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Verwijderd schreef op 16 March 2003 @ 17:17:
Eigenlijk ken ik alleen JURICAS, dat werkt op basis van rapid prototyping. Op basis van wetgeving en jurisprudentie kom je tot een beslissingsboom. Deze wordt dan sec geimplementeerd in een bestaande (AI) programmeertaal. Vervolgens wordt het prototype getoetst aan de praktijk.
Zo zit het oude systeem ook in elkaar. Het probleem aan een beslissingsboom is dat je er vrij slecht gecompliceerdere uitspraken in kunt doen.
De resultaten worden vervolgens weer verwerkt in het prototype waardoor deze accurater wordt. (bedoel je dit met goaldriven?)
Met goaldriven wordt over het algemeen bedoelt dat je begint met het oplossen van de goals ipv top down (datadriven) te werk te gaan. In gewone imperatieve talen begin je van boven naar beneden, vb:

a = vragen;
b = vragen;
c = b +25;

Je begint dan met het vragen van a en b en daarna kan je c bepalen. Als je alleen c wil weten dan loop ik onnodig a te vragen. In een goaldriven systeem zou je beginnen met c en daarvoor heb je b nodig en deze wordt dan gevraagd. a wordt verder genegeerd. Dit is veel efficienter,
Je zou inderdaad zelf een pure taal kunnen schrijven om snel dit soort boomstructuren te implementeren. Het probleem is dan inderdaad dat juristen deze taal onder de knie moeten krijgen. (Er zijn overigens wel juristen met een technische achtergrond ;) )
Het oude systeem bevat conditionele assignments en normale assignments. In het huidige systeem zijn een aantal constructies toegoegd zoals geneste statements en else blokken bij de condities. Verder ook functies omdat je bij 8000 regels normale code redelijk het overzicht begint te verliezen.
Een andere oplossing zou zijn, en dat is zomaar een ideetje, dat je de juristen de beslissingsboom in een daartoe ontworpen omgeving laat tekenen, een soort visuele programmeertaal. Deze beslissingsbomen zijn daarna eenvoudig aan te passen. Deze beslissingsbomen worden dan geinterpreteerd of gecompileerd naar een werkend systeem, die vragen stelt aan de gebruiker en op basis daarvan tot een advies komt.
Dat hebben we nu ook in het huidige systeem:
Afbeeldingslocatie: http://rint.rechten.rug.nl/Site/images/lawgame_regelgenerator.gif

Maar niet alle problemen kunnen opgelost worden met beslissingsbomen. Hiervoor moet toch echt gewerkt gaan worden met een taal die meer aankan dan alleen if else blokken. Het systeem waar ik nu mee bezig ben kunnen classes en interfaces in gedeclareerd worden en modules (waardoor ook veel code hergebruikt kan worden). En verder methodes/functies en nog allerlei andere leuke technische dingen die ik zoveel mogelijk achter de schermen wil houden.

Maar bedankt voor de reply.
Zie trouwens ook: http://www.rint.rechten.rug.nl/publicaties/r&c.pdf uit een boek van Franken. Het is oud maar het kan inspirerend werken.
Ik zal ernaar kijken.

De auteur van dat stuk is Cees de Vey Mestdagh, en dat is mijn werkgever :P

[ Voor 6% gewijzigd door Alarmnummer op 16-03-2003 18:37 ]


  • lordsnow
  • Registratie: Maart 2000
  • Laatst online: 22-08 10:41

lordsnow

I know nothing

zie ook: het boek van Franken

edit:
URL gefixed

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Het is al gelukt ;)

  • judgem
  • Registratie: December 2001
  • Laatst online: 28-04-2014

judgem

Lord of Metal

[off-topic]

Ziet er zeer interessant uit.. Ik ga binnenkort voor mijn pa beginnen aan een online stamboom-systeem. Ik heb er ook al wel wat ideeen voor in mijn hoofd zitten (te gebruiken tal PHP met een MySQL databeest erachter) maar met name om de koppelingen tussen de diverse generaties te kunnen genereren denk ik dat ik wat dieper moet gaan graven...

[/off-topic]

- Ik bespreek ook harde waren en dan wel op www.lordsofmetal.nl - en ik draai en programmeer ze in DYNAMO

Pagina: 1