Semi-gestructureerde en semantische data
HTML: een semi-gestructureerde taal
Webpagina's bouw je met HTML. Dat is geen programmeertaal, maar enkel een gestructureerde manier van "schrijven".
Je markeert nauwkeurig alle onderdelen van de pagina.
Alle webpagina's die je op internet bezoekt, maar ook heel wat apps (sociale media-apps bijvoorbeeld) zijn gebouwd met de taal HTML. Daarom is HTML een bijzonder belangrijke taal!
Met de markeertaal HTML bouw je webpagina's en kan je ze eveneens aan elkaar koppelen (linken). Een webpagina bouw je niet met een tekstverwerker. Je schrijft hem best in code. Een browser (Chrome, Firefox, Internet Explorer, Opera, Safari...) leest die code en zet die om in een weergave voor de mens. Je moet in je HTML-code precies aangeven waar een titel, alinea, link, afbeelding... of wat dan ook staat, want een browser is een stuk software en die software weet anders niet wat voor jou een titel of een alinea is.
Je kan in HTML ook media zoals foto's, films en kaarten "linken", maar die media staan, anders dan in een presentatiebestand zoals PowerPoint, niet in het bestand. Ze zijn eraan gelinkt. De webbrowser waarin je de HTML-pagina bekijkt, weet dankzij een HTML-instructie waar hij de media moet plaatsen.
<element>
De inhoud van het element
</element>
Natuurlijk moet je niet "element" invoeren, maar de afgesproken benamingen, meestal afkortingen: zo staat "p" voor "alinea" en "h1" voor een grote "kop". In een webpagina zitten een aantal HTML-elementen. Je hoeft heus niet alles te kennen. Met een beperkt aantal basisonderdelen bouw je zo goed als alle mogelijke webpagina's.
Stel dat je een tekst wil schrijven met een grote kop en daaronder een alinea met een foto, dan ziet de HTML-code er uit als volgt:
<h1>Hoofdstuk 1: HTML en semi-gestructureerde gegevens</h1>
<p>HTML is geen programmeertaal...</p>
<img src="assets/images/foto.jpg"/>
Alles is een link, ook foto's en films
Daarom moet je elk onderdeel "selecteren" en aan de browser zeggen: "Kijk, dit is een titel!" Het lijkt een beetje op het studeren van een tekst: je duidt de belangrijkste onderdelen met een markeerstift aan. We kunnen natuurlijk niets met een markeerstift beginnen als we een webpagina bouwen. In HTML (hypertext markup language) markeren we een element door aan te duiden waar het element begint en waar het eindigt. Dit doe je op de volgende manier:
<img src="assets/images/foto.jpg"/>
Semi-gestructureerde gegevens
Waarom zeggen we dat HTML semi-gestructureerde informatie bevat? Anders dan bij XML of JSON, kan je aan de HTML-structuur niet "zien" waarover de data of informatie gaat. Een <h1>-markering duidt aan dat het om een titel gaat, maar je weet niet of het gaat om de titel van een nieuwsbericht of de naam van een paar schoenen in de webshop. Uiteraard kan je dat als menselijke "bezoeker" van een website wel zien en weten, maar een zoekmachine zoals de Googlebot moet heel wat meer inspanning doen om de "semantiek" te ontdekken.
Semantiek betekent dat het document zelf "vertelt" waarover de inhoud gaat. Vergelijk de onderstaande voorbeelden in XML en HTML.
XML
<book>
<title>Uit het hoofd</title>
<author>Kris Merckx</author>
<description>Welk voordeel biedt het ons evolutionair gezien om informatie te kunnen onthouden? Waarom verzamelen grote techbedrijven zoals Google en Facebook massa’s data? Hoe komt het dat 90% van alle data die de mens doorheen de geschiedenis produceerde, stamt uit het laatste decennium?</description>
</book>
HTML
<article>
<h1>Uit het hoofd</h1>
<p>Kris Merckx</p>
<p>Welk voordeel biedt het ons evolutionair gezien om informatie te kunnen onthouden? Waarom verzamelen grote techbedrijven zoals Google en Facebook massa’s data? Hoe komt het dat 90% van alle data die de mens doorheen de geschiedenis produceerde, stamt uit het laatste decennium?</p>
</article>
In het XML-bestand vertellen de structuur en de markeringen ons dat het gaat om een "boek". In het HTML-document kom je dat wel te weten als je als mens het bestand leest, maar een stuk software kan de structuur wel herkennen als een "artikel" met een titel en twee alinea's, maar komt weinig te weten over het type inhoud.