▲

Edugraph? Waar is het goed voor?

De laatste dertig jaar zijn netwerken naast de formele logica en klassieke wiskunde steeds een grotere rol gaan spelen in de wetenschappelijke analyse. Toevallig is dat ook de periode waarin het Internet populair werd. Maar in feite stuitte de klassieke wiskunde al op haar grenzen aan het begin van vorige eeuw. Einstein gebruikte een vier-dimensionale geometrie voor zijn relativiteitstheorie, de euclidische meetkunde met drie dimensies volstond niet. Hij voegde er de dimensie tijd aan toe. Ook bij de analyse van causaliteit speelt tijd een centrale rol. Het is verwonderlijk dat de logica voor causaliteit zo lang in de schaduw is gebleven. Waarom volstond de formele logica en de klassieke wiskunde niet? Fundamenteel omwille van twee redenen. Ten eerste omdat ze uitgaan van een binaire visie op de realiteit. In de formele logica is iets waar of vals. De uitgesloten derde is natuurlijk handig voor bewijzen uit het ongerijmde, maar de formele logica en klassieke wiskunde werken alleen maar goed voor gesloten systemen. Ze schieten tekort als ze netwerken moeten beschrijven.

Aanvankelijk beperkte ook de informatica zich tot binaire relaties. Data moesten in relationele databanken eerst genormaliseerd worden om te kunnen verwerkt worden. Die normalisatie herleidde heterogene data tot tabellen van eenduidige relaties tussen de datasleutel en de overige gegevens. Maar eens relaties complex worden, bijvoorbeeld in een semantisch netwerk, werkt dat niet meer. De relaties binnen een netwerk zijn ternair, niet binair. Binaire relaties kunnen weergegeven worden door duplets. In netwerken gebruikt men triplets: a → b. Het voordeel van die triplets is dat ze enorm uitbreidbaar zijn en zo toch een complexe realiteit wel goed weten te beschrijven zonder het harnas van de herstructurering van de oorspronkelijke data. Het is geen toeval dat XML, AI, neuronale netwerken en LLM werken met triplets. Het was de enige oplossing die tot resultaten leidde.

De tweede reden waarom de klassieke wiskunde tekort schiet is omdat ze wel goed over weg kan met homogene data maar al gauw in de problemen komt bij heterogene data. In de ecologie bijvoorbeeld stuitte Robert E. Ulanowicz op dat probleem nadat hij eerst lang had geprobeerd om ecologische netwerken te analyseren met klassieke wiskunde. Het werkte niet. Te veel heterogeniteit. Dat probleem deed zich ook voor in de biologie, genetica, neurologie, geografie en tal van andere wetenschappen. Daar duiken ook meer en meer netwerken op.

De bouwsteen van een netwerk is een graaf. En om grafen te visualiseren kan Edugraph gebruikt worden. Tevens genereert het van die grafen telkens ook een bogenmatrix, ‘adjacency matrix’ in academisch latijn De bogenmatrix slaat de brug naar de klassieke wiskunde. Het is een wiskundige representatie van grafen. Intern in computerprogramma’s worden die matrixen gebruikt voor de verwerking. In neurale netwerken zijn die gigantisch.

Edugraph is bedoeld als inleiding voor netwerk analyse voor het secundair onderwijs. Het kan daar bijdragen tot de demystificatie van AI. Op academisch niveau is het bruikbaar voor het weergeven van interdisciplinair onderzoek.Als voorbeeld geldt de taalverwerving van de homo sapiens, waarin zowel genetica, biologie, neurologie, klankleer, linguïstiek als antropologie aan bod komen. Echter omdat de collectie en verwerking van data verschilt van discipline tot discipline worden in de verschillende wetenschappelijke disciplines andere software programma’s gebruikt. In de ecologie bijvoorbeeld wordt Ecopath gebruikt. Hier kan je zien dat er al heel wat projecten mee zijn gerealiseerd. In de Wikipedia vind je een overzicht van de verschillende sofware toepassingen die gebruikt worden in verschillende disciplines.

De drie belangrijkste pluspunten van Edugraph zijn dat het beelden en HTML links kan integreren in grafen. Om dat te doen kan je enkel terecht bij dure commerciële pakketten. Bovendien is er niet veel voorafgaande kennis voor nodig. Een intuïtief begrip van netwerken volstaat. Men heeft geen nieuwe hardware nodig. Zelfs eenvoudige AI-tools zijn veeleisend. Zie bijvoorbeeld PuppyGraph. Het is direct toegangkelijk voor zowel studenten in de humane als in kunst richtingen. Het kan ook gebruikt worden in het technisch en het beroeps onderwijs. Zo kan wetenschap dan toch visuaal aan bod komen zonder uitgebreide kennis van wiskunde. Nog een voordeel, je kan het programma offline gebruiken. Geen interneterbinding nodig.

Hoe werkt Edugraph?

Op de site zie je acht afgewerkte voorbeelden. Op elke pagina zie je telkens eerst de proces notatie, een link naar de matrix en uiteindelijk het volledige netwerk dat aangemaakt is vertrekkende van de proces notatie. Edugraph is dus geen teken programma maar een conversie programma voor een formele gestrutureerde tekst naar beeld. Die formele proces notatie wordt omgezet naar instructies voor Graphiz, dat daarmee de beelden automatisch genereert.

Aangezien de gebruikte beelden generator Graphiz naast de beschrijving van de processen ook een beschrijving van de individuele nodes nodig heeft, genereert Edugraph een elementaire beschrijving van de nodes en slaat het die beschrijving op in een bestand met extensie .nodes. Dat bestand kan nog bijgewerkt worden als je er extra tekst, beelden en links wil aan toevoegen. Zonder die bij te werken wordt wel al een elementaire graaf aangemaakt, maar dan zonder extra tekst, links of beelden. Meer is niet nodig om uiteindelijk de visualisatie te genereren in een .svg (scalar vector graphics). Het programma kopieerde ook al de standaard layout instellingen naar een bestand. Dat kan ook nog aangepast worden, niet via een menu, zoals gebruikelijk bij een tekenprogramma maar door het wijzigen van de instellingen in het .layout bestand.

De grafische users interface bevat enkel een menu voor een tekst editor en de de mogelijkheid om het bestand met extensie .txt waarin de proces notatie staat op te vragen via een ‘file chooser’. In het menu heb je wel non de keuze tussen een gerichte graaf en een gerichte gewogen graaf. Eens het bestand gekozen begint de conversie van de proces notatie. Edugraph maakt op het einde ook nog een webpagina aan met extensie .html waarin proces notatie, een link naar de bogenmatrix en de svg getoond worden.

Edugraph kan zowel gerichte grafen weergeven als gerichte gewogen grafen. Het enige verschil is dat de bogenmatrix op een andere manier aangemaakt wordt voor een gerichte gewogen graaf. Bij een gerichte graaf bevat deze matrix enkel nullen en enen, bij een gerichte gewogen graaf worden de waarden weergegeven van de wegingen in plaats van enen. Je kan ook een ongerichte graaf aanmaken met Edugraph. Het volstaat om de pijlpunten te laten verdwijnen. Dat is een layout instelling. Standaard is dat arrowhead="normal". Als je er arrowhead="none" van maakt verdwijnt te pijlpunt. Maar om de bogenmatrix te genereren heb je dan wel nog extra werk. Een ongerichte graaf is symmetrisch. Dus je zal in de proces notatie telkens de twee richtingen moeten coderen. Zowel a → b als b → a moeten beschreven worden.

Technische details

Na elke run toont Edugraph een verslag van wat het gedaan heeft. Als in dat verslag het woord “ERROR” voorkomt dan is het fout gelopen. Vooral op de proces notatie is het streng. Dubbele spaties volstaan om de verwerking af te breken. Het programma geeft wel precies aan in welke lijn de fout zit. Aangezien de elementaire codering van de definities van de nodes automatisch gebeurt zullen daar zelden fouten in voorkomen. MAAR, als in de proces notatie de schrijfwijze van een term lichtjes verschilt, krijg je dubels in de automatisch gegenereerde nodes definities. CONTROLLEER altijd op dubbels en corrigeer de proces notatie tot er geen dubbels meer voorkomen. Je zal dan ook telkens het bestand met nodes definities moeten verwijderen voor je een nieuwe run start.

Ook de uitbreiding met gewone korte tekst waarvoor geen regelovergang nodig is, zal zelden voor problemen zorgen. Alle tekens zijn toegestaan, behalve niet-functionele vierkante haakjes. Vierkante haakjes mogen alleen worden gebruikt om een volgnummer te bevatten. Voor lange teksten, meer dan 70 tekens, beelden en links moeten wel speciale instructies gebruikt worden en die moeten dan wel strikt de grammatica volgen. Dit zijn ze:

ltext(“Hier komt dan de lange tekst…”)

img(“Hier komt de naam van het beeld bestand met extensie”)

url(“Hier komt de link. Je kan zowel absolute als relatieve url’s gebruiken bvb ./tekst/tekst.html”)

Het beeldbestand moet aanwezig zijn in de folder waar de proces notatie staat voor ververking.

Hier onder een lijst van de layout instellingen die kunnen aangepast worden:

rankdir="TB"; Richting ontwikkeling graaf kan ook zijn BT, LR of RL

fontname="Verdana"; Te gebruiken letter font

fontsize="14"; Grootte van het font

bgcolor="#ffffff"; Kleur van het achtergrond van de graaf in hexadecimale code

stylesheet="../svg_def.css"; Link naar het CSS bestand

--- NODES ---

fontname="Verdana", Te gebruiken letter font

fontsize="14", Grootte van het font

color="#101010", Kleur van het font in hexadecimale code

bgcolor="#ffffff" Achtergrondkleur in hexadecimale code van node hoofdingen

border="0" Voor boord rond de node

cellborder="1" Voor boord rond een cel

cellpadding="3" Binnenafstand in de cel

cellspacing="0" Buitenafstand tussen de cellen

63 Geeft voor ltext aan wanneer lijnovergang nodig is

--- EDGES ---

decorate="false", Verbindt de tekst met de pijl

style="solid", Waarden kunnen ook dash en dot zijn

arrowhead="normal", Normale pijlpunt, none is geen pijlpunt

penwidth="1.0", Dikte van de pijl

fontsize="14", Groote van het font voor tekst

fontcolor="14", Kleur van de tekst voor tekst bij de pijl bij de pijlen

fontname="Verdana", Te gebruiken letter font voor tekst bij de pijlen

--- OUTPUT ---

SVG Standaard kan ook NOSVG zijn

NOPNG Kan ook PNG zijn dan maakt het programma ook een .png beeld

NOPDF Kan ook PDF zijn dan maakt het programma ook een .pdf bestand

HTML Standaard kan ook NOHTML zijn

Verander echter niets aan het format! het zijn bijna allemaal letterlijke Graphiz instructies.

Een uitgebreide lijst van RGB hexadecimale kleurencodes vindt je hier.

Download en installatie

Het programma draait op verschillende platformen omdat het gemaakt is met Java. Aangezien het gebruik maakt van Graphiz zal je ook dat moeten installeren. Voor het installeren van Java op Microsoft Windows hebt u beheerders autorisatie nodig. Verzeker u ervan dat zowel Java als Graphiz in de opstart paden van het systeem zit. In Windows kan je dat checken door aan de prompt het commando path <enter> te gebruiken.

Na PATH= moet je dan lijnen zien als:

C:\Program Files\Common Files\Oracle\Java\javapath;

C:\Program Files\Java\jdk-21\bin;

C:\Program Files\Graphviz\bin;

Eens het programma gecompileerd kan je het opstarten in de bin folder waar de classes staan met:

java EDUGRAPH

Je kan dat commando ook in een batch file met extensie .bat zetten in de bin folder . Dan kan je opstarten zonder telkens naar de prompt te moeten gaan.

Compileren van de source code kan je aan de prompt vanuit de src folder met het commando:

javac *.java -d ..\bin

In de zip file die je hier onder kan downloaden zitten ook folders met voorbeelden van proces notaties en nodes definities. Daar kan je alvast mee oefenen voor je aan de slag gaat met eigen werk. De binary is gecompileerd voor Windows 10, 64 bit met JDK 21. De binariies ervan vindt je nog in de bin folder. Die binaries zullen ook werken met de laatste versie van Java, JDK 27 als je Windows 10, 64 bit hebt. Ze worden overschreven als je opnieuw compileert.

Nuttige tips

Als je beelden in de graaf gebruikt, maal dat ze even breed zijn. Drie zaken bepalen de breedte van een node: (1) De lengte van een regel zonder afbreking. (2) De lengte van de regels na afbreking en (3) de breedte van de beelden.

Voor SVG maakt het niet uit welke soort beelden je gebruikt. .png, .jpg en .gif kan allemaal, maar als je de graaf ook wil omzetten naar png of pdf gebruik je best vooral .png. Gifs worden onzichtbaar na omzetting.

Het svg bestand dat gegenereerd wordt bevat al een link naar een opmaak bestand extensie.css. In het bestand waarin de layout gedefinieerd is, kan je die link wijzigen. Je kan dus de opmaak van de svg daar sturen zoals in html. Er zijn wel een aantal bijzonderheden. Om aan te duiden dat de opmaakregels gelden voor svg bevat dat bestand de regel:
@namespace svg url(http://www.w3.org/2000/svg);
De items die je wil aanspreken moeten vooraf gegaan worden door svg| Voorbeelden:

svg|text
svg|a text
svg|polygon
svg|path

Typisch voor svg css is dat je om een vlak grijs te kleuren bijvoorbeeld, je dan fill:#e0e0e0; gebruikt ipv background. Om een lijn een rode kleur te geven gebruik je stroke:#ff0000;. Meer over svg css vind je in W3C schools: svg Stroke Attributes en svg Fill Attributes.

Zie ook de FAQ

Dowload Edugraph Beta 1.0

Download Edugraph Beta 1.0: Edugraph.zip
(creative commons CC BY-NC-ND 4.0)

Het programma is Open Source maar dat wil niet zeggen dat de beelden die ermee gemaakt werden op deze site niet copyrighted zijn. Als die voor educatieve en niet commerciële doeleinden gebruikt worden zijn ze wel creative commons CC BY-NC-ND 4.0.

Aangezien het programma voor de grafische omzetting Graphiz dot lanceert via het besturingssysteem is het waarschijnlijk dat die instructies in het programma zullen moeten aangepast worden in Linux. Waarschijnlijk zal je het absolute pad naar Graphiz moeten meegeven. In Windows is dat niet nodig omdat dat pad in het systeem is opgeslagen.

Ruimte voor verbetering

Dit is een project waarvan het concept veelbelovend is maar waarvan de uitvoering matig is door een tekort aan manschappen. Het concept laat toe kennisdatabanken op te bouwen en daarbij de eerste twee stappen ‘Chunking en voorbewerking’ en ‘Entiteit- en relatie-extractie’ over te slaan. Het zijn deze stappen die de inzet van enorme datacenters vragen. Het huidige AI concept van Open AI en Anthropic is gebaseerd op piraterij, met dit concept kan de opbouw van kennis terug in handen gegeven worden aan de docenten en wetenschappers die ze verspreiden en eraan bouwen.

De hedendaagse AI industrie heeft een visie ontdaan van elke grond in de realiteit en ze propageert doelstellingen die ze niet waar kan maken. Het idee van algemene intelligentie en bewustzijn geven aan een machine is een propaganda trope. Net zoals de tabaksindustrie het onderzoek naar afleidingsmanoeuvres financierde om het publieke debat met twijfel te overspoelen, zo presenteert deze industrie onzinnige discussiepunten als existentiële vragen en financiert ze zelfs onderzoek hiernaar.

De applicatie van het concept is momenteel nog een een mans project en dat is het zwakke punt. Dat het steunt op open source Graphiz is niet het probleem, maar dat het Graphiz aanspreekt via het besturingssysteem is dat wel. Het programma is niet in staat om fouten te detecteren als het daar misloopt. Door de java bibliotheken voor de grafisch generatie op te nemen kan dit probleem opgelost worden. Ook de gebruikers interface is minimaal. Maar als je kijkt hoe Graphiz zelf ontwikkeld is door Bell Laboratories en nog altijd onderhouden wordt door een team van drie programmeurs, zie je direct waar de kat gebonden ligt. Dit is werk voor een team.



Referenties

Alkharashi M. Comparing experiential versus conventional learning on knowledge retention for teaching surgery to medical graduates. Saudi J Ophthalmol. 2020 Dec 28;34(2):107-110. doi: 10.4103/1319-4534.305042. PMID: 33575531; PMCID: PMC7866721 <https://pmc.ncbi.nlm.nih.gov/articles/PMC7866721/>.

Bahdanau, Dzmitry; Cho, Kyunghyun; Bengio, Yoshua (19 May 2016). "Neural Machine Translation by Jointly Learning to Align and Translate". arXiv:1409.0473 [cs.CL] <https://arxiv.org/abs/1409.0473>.

Belli, Stefano R., Robert D. Rogers, Jennifer Y.F. Lau, Adult and adolescent social reciprocity: Experimental data from the Trust Game, Journal of Adolescence, Volume 35, Issue 5, 2012, Pages 1341-1349, ISSN 0140-1971, https://doi.org/10.1016/j.adolescence.2012.05.004. (https://www.sciencedirect.com/science/article/pii/S0140197112000814).

Dahlström, Erik et al, (2011) Scalable Vector Graphics (SVG) 1.1 (Second Edition), W3C Recommendation 16 August 2011, <https://www.w3.org/TR/2011/REC-SVG11-20110816/>

Daigavane, Balaraman Ravindran, Gaurav Aggarwal, 2021, Understanding Convolutions on Graphs, Google Research, Published Sept. 2, 2021, DOI: 10.23915/distill.00032, <https://distill.pub/2021/understanding-gnns/>.

Jawed S, Amin HU, Malik AS, Faye I. Classification of Visual and Non-visual Learners Using Electroencephalographic Alpha and Gamma Activities. Front Behav Neurosci. 2019 May 7;13:86. doi: 10.3389/fnbeh.2019.00086. PMID: 31133829; PMCID: PMC6513874. <https://pmc.ncbi.nlm.nih.gov/articles/PMC6513874/>

Ladkin, Bernard (2018), Causal Analysis of Incidents with Why-Because Analysis using the SERAS® , Software Toolkit, CAUSALIS Ingenieurgesellschaft mbH, 2008, revised 2018-02-14, <https://rvs-bi.de/research/WBA/WBA-NewIntro20180214.pdf>

Levonian, E. Auditory and visual retention in relation to arousal. AVCR 16, 57–62 (1968). https://doi.org/10.1007/BF02768681, <https://link.springer.com/article/10.1007/BF02768681>

Lewis, David, (2004), “Causation as Influence” (expanded version), in Collins, Hall, and Paul 2004, 75–106, <https://www.andrewmbailey.com/dkl/Causation_As_Influence_long.pdf>

Menzies, Peter, (2019), Counterfactual Theories of Causation, 29 October 2019, Stanford Encyclopedia of Pholosophy, <https://plato.stanford.edu/entries/causation-counterfactual/>

Reed, Stephen K. (2012). Cognition : theories and applications. Wadsworth, Cengage Learning, 12 April 2012, ISBN 978-1-133-49228-3. OCLC 1040947645, <https://www.worldcat.org/nl/title/1040947645>

Roark CL, Lescht E, Hampton Wray A, Chandrasekaran B. Auditory and visual category learning in children and adults. Dev Psychol. 2023 May;59(5):963-975. doi: 10.1037/dev0001525. Epub 2023 Mar 2. PMID: 36862449; PMCID: PMC10164074.

Rottman BM, Hastie R. Reasoning about causal relationships: Inferences on causal networks. Psychol Bull. 2014 Jan;140(1):109-39. doi: 10.1037/a0031903. Epub 2013 Apr 1. PMID: 23544658; PMCID: PMC3988659. <https://pmc.ncbi.nlm.nih.gov/articles/PMC3988659/>.

Runge, Jakob, et al. , (2019), Detecting and quantifying causal associations in large non-linear time series datasets. Sci. Adv.5,eaau4996 (2019). DOI: <https://www.science.org/doi/10.1126/sciadv.aau4996>

Sanchez-Lengeling, Benjamin, Emily Reif, Adam Pearce, Alexander B. Wiltschko, 2021, A Gentle Introduction to Graph Neural Networks, Google Research, Published Sept. 2, 2021, DOI 10.23915/distill.00033, <https://distill.pub/2021/gnn-intro/>.

Schürmann, Tim, (WBA) 'Counterfactual Test’, Workgroup RVS, Faculty of Technology, Bielefeld University) <https://rvs-bi.de/research/WBA/IntroWBA-ENG.pdf>

Stepanov, Alexander (1985), Towards a Theory of Causal Implication, Department of Electrical Engineering and Computer Science, Polytechnic University of New York, 1985, <http://stepanovpapers.com/TOWARDS%20A%20THEORY%20OF%20CAUSAL%20IMPLICATION.pdf>

van Benthem, Johan, (IEP), Modal Logic: A Contemporary View, University of Amsterdam, Stanford University, and Tsinghua University, The Netherlands, U. S. A., and China, <https://iep.utm.edu/modal-lo/>

Vaswani, Ashish; Shazeer, Noam; Parmar, Niki; Uszkoreit, Jakob; Jones, Llion; Gomez, Aidan N; Kaiser, Łukasz; Polosukhin, Illia (December 2017). "Attention is All you Need" (PDF). In I. Guyon and U. Von Luxburg and S. Bengio and H. Wallach and R. Fergus and S. Vishwanathan and R. Garnett (ed.). 31st Conference on Neural Information Processing Systems (NIPS). Advances in Neural Information Processing Systems. Vol. 30. Curran Associates, Inc. arXiv:1706.03762 <https://papers.nips.cc/paper_files/paper/2017/file/3f5ee243547dee91fbd053c1c4a845aa-Paper.pdf>.

Wielemaker, J. (2005). An Optimised Semantic Web Query Language Implementation in Prolog. In: Gabbrielli, M., Gupta, G. (eds) Logic Programming. ICLP 2005. Lecture Notes in Computer Science, vol 3668. Springer, Berlin, Heidelberg. <https://doi.org/10.1007/11562931_12>.