Opnieuw baas over eigen data: een semantische aanpak

Pol
Nachtergaele

Het semantische web is misschien nog onbekend voor je, maar het is wel de toekomst. Waar data vroeger vooral bestond uit hypertext documenten en links, wil het semantische web data representeren zoals ze echt zijn—mensen, plaatsen, ideeën, gebeurtenissen enzovoort—en deze op een zinvolle manier met elkaar verbinden. Iedere minuut worden gigantische hoeveelheden data, waaronder jouw persoonlijke gegevens, opgevraagd, uitgewisseld en verwerkt op het internet. Als data-bezitter heb je het recht om te weten hoe en wanneer jouw data gebruikt wordt. Maar hoe kunnen we onze eigen rechten handhaven als we geen idee hebben wat er achter de computer schermen gebeurt? Dit artikel onderzoekt hoe het semantische web ons kan helpen inzicht te krijgen in hoe jouw gegevens worden verwerkt, zonder dat je code moet kunnen lezen en/of begrijpen. Een tool is ontwikkeld die code automatisch beschrijft op een betekenisvolle manier en zo visualiseert hoe jouw data door het verwerkingsproces vloeit.


Achter de schermen

Data is vaak ongestructureerd. Er moet aan gesleuteld worden alvorens deze bruikbaar is door experten en/of computers. Tegenwoordig gebeurt dit automatisch door het maken van een pipeline, een serie van aaneengekoppelde cleaning-steps die de data stap voor stap transformeren in een relevant format. Dit wordt vooral toegepast bij machine learning. Hierbij krijgt een computer een grote hoeveelheid data voorgeschoteld om aan de hand van complexe algoritmen patronen te herkennen om zo voorspellingen te maken over nieuwe data. Hoe goed een computer hier in is, hangt dus sterk af van de gegevens waarop het is getraind. Daarom is het belangrijk om te weten hoe we van ongestructureerde data naar gestructureerde data gaan met behulp van een pipeline. Zo’n pipeline is geschreven in een programmeertaal die niet direct duidelijk maakt hoe data stroomt door het proces. Zelfs een ervaren developer kan op het eerste zicht niet altijd zien wat elke stap doet en hoe deze aan elkaar verbonden zijn.

De kracht van semantiek

Het uitbreiden van data zodat deze niet alleen waarde, maar ook betekenis krijgt, biedt veel voordelen. Een voorbeeld daarvan heb je waarschijnlijk al eens ervaren. Vroeger, als je op "Brussel" zocht, kreeg je een lijst met webpagina’s waarin het woord vaak voorkwam. Nu krijg je meteen relevante informatie zoals het aantal inwoners, treinverbindingen en reisopties naar de stad. Dit is mogelijk dankzij het semantische web, dat werkt met ontologieën—regels die concepten zoals steden, inwoners en treinen op een manier beschrijven die computers kunnen begrijpen. Een ontologie kun je zien als een set afspraken over hoe een concept semantisch beschreven wordt, zodat iedereen dit op een uniforme manier doet. Hierdoor kunnen databases, zelfs al zijn ze heel verschillend, toch met elkaar communiceren omdat ze dezelfde "taal" spreken, vastgelegd door de ontologie. Bijvoorbeeld, een database van de grootste steden kan worden gecombineerd met een database van de rijkste mensen ter wereld. Dankzij ontologieën begrijpt de computer hoe een persoon een inwoner van een stad kan zijn, en kun je eenvoudig de stad met de meeste rijke inwoners vinden.

Ontcijfer de code

De tool maakt gebruik van bestaande ontologieën om ingewikkelde code begrijpelijker te maken, zowel voor computers als voor mensen. We gebruiken hiervoor de Function Ontology, die het concept van een functie beschrijft. Zo wordt duidelijk wat een functie doet, welke soort gegevens het nodig heeft en wat voor output het genereert. De tool analyseert de programmacode om de individuele cleaning-steps eruit te halen en te beschrijven als ‘een functie’. De ontologie wordt ook gebruikt om te tonen hoe de stappen aan elkaar gekoppeld zijn, waarbij de ene stap de output van een eerdere stap gebruikt om data verder te verwerken. Met deze aanpak kun je dus niet alleen zien wat een pipeline doet, maar ook hoe de verschillende stappen samenwerken. Slimme apps kunnen deze semantische data vervolgens gebruiken om beter te begrijpen wat er in de code gebeurt. Om dit aan te tonen is er een visualisatie module toegevoegd. Hiermee kan je op een interactieve manier volgen hoe de data door de verschillende stappen beweegt en wat er met je gegevens gebeurt tijdens het hele verwerkingsproces.

Visualisatie van een machine learning pipeline

Hé google, waar komt dit vandaan?

We gebruiken al semantiek om code te beschrijven en deze te visualiseren op een toegankelijke manier. Zo kan jij als data-bezitter beter begrijpen wat er precies met jouw data gebeurt. Maar hoe maak je dit duidelijk aan andere computers die op het semantische web werken? Hoe toon je aan dat jouw data betrouwbaar is doordat hij gegenereerd is door een goed onderbouwde pipeline? Dit slaat op het concept van provenance, wat gaat over de origine en de historie van iets of iemand. Met de Provenance Ontology kan je aantonen waar data vandaan komt, hoe het is aangepast en op welke andere gegevens het is gebaseerd. De tool laat toe om een semantisch beschreven pipeline met je eigen gegevens uit te voeren. Met behulp van de Provenance ontology en de beschreven functies wordt de uitvoering van elke cleaning-step gelinkt aan jouw data. Deze semantische data kan opnieuw gebruikt worden door slimme apps die proberen te achterhalen of data te vertrouwen is of niet.

 

 

Bibliografie

References 

[1] J. Frey, S. Hellmann, and M. Assoc Comp, “Fair linked data - towards a linked data backbone for users and machines,” in 30th World Wide Web (WWW) Conference (WebConf), 2021, Conference Proceedings, pp. 431–435, frey, Johannes Hellmann, Sebastian. [Online]. Available: ://WOS:000749534900072 

[2] T. Berners-Lee. (2009) Linked data design principles. [Online]. Available: https://www.w3.org/wiki/ LinkedData 

[3] E. Prud’hommeaux and A. Seaborne, “SPARQL Query Language for RDF,” W3C Recommendation, 2008. [Online]. Available: http://www.w3.org/TR/rdf-sparql-query/ 

[4] European Parliament and Council of the European Union, “Regulation (EU) 2016/679 of the European Parliament and of the Council.” [Online]. Available: https://data.europa.eu/eli/reg/2016/679/oj 

[5] K. Belhajjame, J. Cheney, D. Corsar, D. Garijo, S. Soiland-Reyes, S. Zednik, and J. Zhao, “Prov-o: The prov ontology,” April 30, 2013 2013. [Online]. Available: https://www.w3.org/TR/prov-o/ 

[6] S. Scherzinger, C. Seifert, L. Wiese, and I. C. Soc, “The best of both worlds: Challenges in linking provenance and explainability in distributed machine learning,” in 39th IEEE International Conference on Distributed Computing Systems (ICDCS), ser. IEEE International Conference on Distributed Computing Systems. LOS ALAMITOS: Ieee Computer Soc, 2019, Conference Proceedings, pp. 1620–1629. [Online]. Available: ://WOS:000565234200150 

[7] P. I. Nakagawa, L. F. Pires, J. L. R. Moreira, L. Santos, and F. Bukhsh, “Semantic description of explainable machine learning workflows for improving trust,” Applied Sciences-Basel, vol. 11, no. 22, p. 18, 2021. [Online]. Available: ://WOS:000724818600001 

[8] B. De Meester, A. Dimou, and F. Kleedorfer, “The function ontology,” 2023. [Online]. Available: https://fno.io/spec/ 

[9] B. De Meester, T. Seymoens, A. Dimou, and R. Verborgh, “Implementation-independent function reuse,” Future Generation Computer Systems, vol. 110, pp. 946–959, 2020. [Online]. Available: https: //www.sciencedirect.com/science/article/pii/S0167739X19303723 

[10] B. De Meester, A. Dimou, R. Verborgh, and E. Mannens, “Detailed provenance capture of data processing,” Proceedings of the First Workshop on Enabling Open Semantic Science (SemSci), vol. 1931, pp. 31–38, 2017. [Online]. Available: http://ceur-ws.org/Vol-1931/#paper-05 

[11] D. Esteves, A. Ławrynowicz, P. Panov, L. Soldatova, T. Soru, and J. Vanschoren, “Ml schema core specification,” Oct. 2016. [Online]. Available: http://ml-schema.github.io/documentation/ML%20Schema.html#overview 78

[12] P. Domingos, “A few useful things to know about machine learning,” Communications of the Acm, vol. 55, no. 10, pp. 78–87, 2012. [Online]. Available: ://WOS:000309215800024 

[13] G. De Mulder, “fno-descriptor-python,” 2022. [Online]. Available: https://github.com/FnOio/fno-descriptorpython 

[14] “inspect - inspect live objects,” 2023. [Online]. Available: https://docs.python.org/3/library/inspect.html 

[15] “ast - abstract syntax tree,” 2023. [Online]. Available: https://docs.python.org/3/library/ast.html 

[16] A. Chen, A. Chow, A. Davidson, A. DCunha, A. Ghodsi, S. A. Hong, A. Konwinski, C. Mewald, S. Murching, T. Nykodym, P. Ogilvie, M. Parkhe, A. Singh, F. Xie, M. Zaharia, R. Zang, J. Zheng, and C. Zumar, “Developments in mlflow: A system to accelerate the machine learning lifecycle,” in Proceedings of the Fourth International Workshop on Data Management for End-to-End Machine Learning, ser. DEEM’20. New York, NY, USA: Association for Computing Machinery, 2020. [Online]. Available: https://doi.org/10.1145/3399579.3399867 

[17] M. Schlegel and K.-U. Sattler, “Mlflow2prov: Extracting provenance from machine learning experiments,” in Proceedings of the Seventh Workshop on Data Management for End-to-End Machine Learning, ser. DEEM ’23. New York, NY, USA: Association for Computing Machinery, 2023. [Online]. Available: https://doi.org/10.1145/3595360.3595859 

[18] D. Beckett, I. Schreiber, and P. Hayes, “Turtle: Terse rdf triple language,” in World Wide Web Consortium (W3C) Recommendation, 2014. [Online]. Available: https://www.w3.org/TR/turtle/ 

[19] F. Chollet et al., “Keras,” https://keras.io, 2015. 

[20] J. McCrae and P. Buitelaar, “Linking datasets using semantic textual similarity,”Cybernetics and Information Technologies, vol. 18, pp. 109–123, 03 2018. 

[21] W. Zheng, L. Zou, W. Peng, X. Yan, S. Song, and D. Zhao, “Semantic sparql similarity search over rdf knowledge graphs,” Proc. VLDB Endow., vol. 9, no. 11, p. 840–851, jul 2016. [Online]. Available: https://doi.org/10.14778/2983200.2983201 

[22] Python Software Foundation, “The import system,” 2024. [Online]. Available: https://realpython.com/pythonimport/

[23] Geir Arne Hjelle, “Python import: Advanced Techniques and Tips.”

[24] M. Abadi, A. Agarwal, P. Barham, E. Brevdo, Z. Chen, C. Citro, G. S. Corrado, A. Davis, J. Dean, M. Devin, S. Ghemawat, I. Goodfellow, A. Harp, G. Irving, M. Isard, Y. Jia, R. Jozefowicz, L. Kaiser, M. Kudlur, J. Levenberg, D. Mané, R. Monga, S. Moore, D. Murray, C. Olah, M. Schuster, J. Shlens, B. Steiner, I. Sutskever, K. Talwar, P. Tucker, V. Vanhoucke, V. Vasudevan, F. Viégas, O. Vinyals, P. Warden, M. Wattenberg, M. Wicke, Y. Yu, and X. Zheng, “TensorFlow: Large-scale machine learning on heterogeneous systems,” 2015, software available from tensorflow.org. [Online]. Available: https://www.tensorflow.org/ 

[25] A. Paszke, S. Gross, F. Massa, A. Lerer, J. Bradbury, G. Chanan, T. Killeen, Z. Lin, N. Gimelshein, L. Antiga, A. Desmaison, A. Kopf, E. Yang, Z. DeVito, M. Raison, A. Tejani, S. Chilamkurthy, B. Steiner, L. Fang, J. Bai, and S. Chintala, “Pytorch: An imperative style, high-performance deep learning library.” 

[26] “scikit-learn - train_test_split,” 2007. [Online]. Available: https://scikit-learn.org/stable/modules/generated/ sklearn.model_selection.train_test_split.html 

[27] “Pyqtgraph - scientific graphics and gui library for python,” 2021. [Online]. Available: https://www. pyqtgraph.org/ 

[28] “Sentiment analysis of tweets using an lstm.” [Online]. Available: https://techvidvan.com/tutorials/pythonsentiment-analysis/11 

[29] “Handwritten digit recognition.” [Online]. Available: https://data-flair.training/blogs/python-deeplearning-project-handwritt…;

[30] “Iris flower classification.” [Online]. Available: https://data-flair.training/blogs/iris-flower-classification/

[31] “Tedtalk reccomendation.” [Online]. Available: https://www.geeksforgeeks.org/ted-talks-recommendationsystem-with-machi…;

[32] “Ipl score prediction using deep learning.” [Online]. Available: https://www.geeksforgeeks.org/ipl-scoreprediction-using-deep-learning/?…;

[33] “Clustering music genres using python.” [Online]. Available: https://thecleverprogrammer.com/2022/04/05/ clustering-music-genres-with-machine-learning/#google_vignette 

[34] “Stock price prediction with lstm.” [Online]. Available: https://thecleverprogrammer.com/2022/01/03/stockprice-prediction-with-l…;

[35] M. Bamboat, A. Hafeez, and A. Wagan, “Performance of rdf library of java, c and python on large rdf models [scopus index y category journal],” pp. 25–30, 01 2021. 

[36] B. Curtis, S. Sheppard, P. Milliman, M. Borst, and T. Love, “Measuring the psychological complexity of software maintenance tasks with the halstead and mccabe metrics,” IEEE Transactions on Software Engineering, vol. SE-5, no. 2, pp. 96–104, 1979. 

[37] “Various code metrics for python code.” [Online]. Available: https://github.com/rubik/radon 

[38] Solid project. [Online]. Available: https://solidproject.org/

[39] U. Nations, “Transforming our world: the 2030 agenda for sustainable development.” [Online]. Available: https://sdgs.un.org/2030agenda

Download scriptie (2.94 MB)
Universiteit of Hogeschool
Universiteit Gent
Thesis jaar
2024
Promotor(en)
Femke Ongenae