Representatie van feiten in PROLOG p6.li05p8.li09.p2 v2 li08 v4 li02 li p5.li06.pl v3 vl liOl li04 p3li03p7li07p4 sie en premissen uitgebreid met een symbolische notatie voor één of meerdere termen als argument: C (t1, t2, t3) P1 (t4, t5), P2 (t6, t7, t8), Pn (t11, t12) C, P1, P2, Pn worden predikaatnamen genoemd, met de termen t1, t2, enz. als argumenten. Hierna zal blijken dat onderdelen van een PROLOG- programma op overeenkomstige manier worden opge bouwd en gesymboliseerd (voor het verdere verloop van dit artikel is de behandeling van de predikatenlogica van minder belang). Wanneer een conclusie geen enkele premisse heeft dat wil zeggen: zonder voorwaarde dan kunnen we spreken van een „feit". Zo is een (relationele) database op te vatten als een (uitgebreide) verzameling „feiten". De punten-, lijnen- en vlakkentabellen van de relationele database bij fig. 2 van het artikel van Van der Schans [1] zijn dan ook als „feiten" te beschouwen. Hieronder volgt nogmaals deze figuur: In PROLOG wordt dit: Feiten worden in PROLOG aangeduid met een predikaat- naam, gevolgd door één of meerdere attributen als argu ment. Een punt wordt als feit als volgt gerepresenteerd: punt naam, x-coördinaat, y-coördinaat, label) De puntentabel is: naam X y label p6 44.14 153.12 p8 92.38 160.60 paal P2 132.75 166.82 P5 103.78 87.28 paal P1 145.70 96.00 paal P4 157.48 31.45 boom P7 113.52 23.42 p3 70.85 15.82 punt p6, 44.14, 153.12, null punt p8, 92.38, 160.60, paal punt p2, 132.75, 166.82, null punt p5, 103.78, 87.28, paal punt p1, 145.70, 96.00, paal punt p4, 157.48, 31.45, boom punt p7, 113.52, 23.42, null punt p3, 70.85, 15.82, null Door voor een (nog) niet gekend of niet van toepassing zijnde waarde van een argument de waarde „null" op te nemen, volgen we de SQL-conventie. Een feit uit de lijnentabel wordt in PROLOG gerepresen teerd als: lijn (naam, beginpunt, eindpunt, vlak-links, vlak- rechts, label) De lijnentabel is: naam bp ep vl vr label Ii05 P6 P8 v3 v2 sloot M09 p8 P2 v3 v4 sloot M02 P8 P5 v4 v2 raster Ii10 p2 P1 v3 v4 sloot M06 P5 P1 v4 v1 raster N01 P5 P7 v1 v2 heg I i 04 P1 P4 v3 v1 heg N07 P4 P7 v3 v1 heg Ii03 p7 p3 v3 v2 heg Ii08 P6 P3 v2 v3 sloot In PROLOG wordt dit: lijn Ii05, p6, p8, v3, v2, sloot lijn N09, P8, P2, v3, v4, sloot lijn M02, P8, p5, v4, v2, raster lijn Ii10, P2. P1. v3, v4, sloot lijn N06, P5, P1. v4, v1, raster lijn N01, P5, P7 v1, v2, heg lijn Ii04, P1. P4, v3, v1, heg lijn Ii07, P4, P7, v3, v1, heg lijn Ii03, P7, p3, v3, v2, heg lijn N08, P6, p3, v2, v3, sloot Tenslotte wordt een feit uit de vlakkentabel gerepresen teerd als: vlak naam, label De vlakkentabel is: naam label v;2 weide v4 bos v1 akker v3 woest NGT GEODESIA 89 - 7/8 357

Digitale Tijdschriftenarchief Stichting De Hollandse Cirkel en Geo Informatie Nederland

(NGT) Geodesia | 1989 | | pagina 21