Basis

Schema als data

Elk stuk content is een Schema.org-record — het vocabulaire dat zoekmachines, browsers en taalmodellen al spreken.

Een vocabulaire dat het web al spreekt

De meeste contentsystemen verzinnen een eigen model dat niemand buiten hen begrijpt. loam leent het model waar het web het al over eens is. Een artikel is een Article met een headline en een author. Een bedrijf is een Organization met een address. Een evenement is een Event met een startDate.

Niet als export, niet als optie: het record is de content. De pagina, de machineweergaven en wat je agent begrijpt, draaien er allemaal omheen. Het is de enige keuze in loam die niet aan jou is — en de keuze die elk ander onderdeel eenvoudiger maakt.

Wat loam toevoegt: mechaniek, geen woorden

loam voegt geen eigen vocabulaire toe. Het voegt vier regels toe voor hoe records samenleven:

MechaniekRegel
IdentiteitElke entiteit heeft een identifier; dat is ook de bestandsnaam.
VerwijzingenEntiteiten wijzen naar elkaar met kleine verwijzingen die worden opgelost als de pagina gelezen wordt — nooit een kopie.
Pagina'sEen entiteit met een slug is een pagina. Een lijst nooit: dat is curatie, getoond door een pagina die hem leest.
Verplichte veldenEen handvol per type, zodat een pagina nooit live gaat zonder wat hij nodig heeft.

Bewaakt, nooit gecontroleerd op inhoud

De engine bewaakt die mechaniek: een verwijzing naar niets, een ontbrekend verplicht veld, een bestand dat niet parseert. Elk ervan houdt een publicatie tegen en zegt waarom. Hij controleert nooit de betekenis — hij zal je niet vertellen dat je Service eigenlijk een Product zou moeten zijn. Wat iets is, bepaal jij.

Eén record, elke lezer

Omdat de velden die de pagina renderen dezelfde velden zijn die de gestructureerde data voeden, kan de machineweergave alleen claimen wat de pagina laat zien. Hetzelfde record is de pagina die een bezoeker leest, de JSON-LD die een zoekmachine indexeert, het bestand op /data/<type>/<naam>.json en de regel in de index die een assistent doorzoekt. Niets wordt gemapt, geëxporteerd of met de hand in de pas gehouden.

In de praktijk

“Maak een pagina voor onze workshop op 12 maart” wordt een Event met een startDate, een location en een slug — je agent weet wat een evenement heeft zonder dat je het zegt, omdat hij er miljoenen gezien heeft. Voordat hij een nieuw soort ding maakt, vraagt hij de site naar de vorm van dat type: welke velden er zijn en welke verplicht. De template leest dezelfde woorden.

Wat het oplost