Semantisk opmarkerede data

Overblik:

  • Semantic web og SEO – hvorfor
    • Google Rich Results
    • Facebook, twitter, ... social deling
    • Påvirker rankering
    • Tilgænglighed af data i det hele taget
  • Hvad er semantic web og linked data
    • Triplet – koncept
    • Unik stabil url per ting
    • Indlejring og vokabular
  • Indlejring
    • RDFa
      <html prefix="dc: http://purl.org/dc/elements/1.1/">... <meta property="dc:creator" content="Søren Kierkegaard">
    • Microdata
      <div itemtype="http://schema.org/Book"><span itemprop="name">Den lille havfrue</span> er et eventyr af <span itemprop="creator">H. C. Andersen.</span></div>
    • JSON-LD
      <script type="application/ld+json">{"@context": "https://schema.org","@type": "Book", "name": "1q84", "creator": "Haruki Murakami"}</script>
  • Vokabular
    • schema.org kan indlejres som RDFa/Microdata/JSON-LD, – Google bruger nu JSON-LD i deres eksempler. (Detaljer om udvikling på GitHub)
    • google-udvidelser/tilpasninger, herunder klarer info om hvilke data der skal indgå til google (ie. ISBN13 identifier etc.), herunder feed om bøger fra eksemplevis biblioteker med metadata
    • Open Graph protocol, og udvidelser (indlejres som RDFa)
    • Andre eksempler: Dublin Core, DKABM, ...
  • Links

Del 1:

Indhold i forkortet form:

Vi starter med semantisk opmarkeret data. Hvorfor taler jeg om semantisk web, når det var meningen at jeg skulle tale om søgemaskineoptimering? Det bliver nu brugt af google og søgemaskiner, og sociale medier, – og er det fundament der bruger for hvordan at man gør data forståelige for maskiner.

Et konkret eksempel er Google's Rich Result. (I videoen ses googles dokumentation, med eksempel på hvordan de viser bog med biblioteks-reserverings-link) Så det er et konkret eksempel på hvordan det vises. På samme måde når man deler noget i sociale medier, så vises der jo ofte også et billede eller noget tekst. Dette er også baseret på semantisk opmarkering.

Det handler ikke kun om visning, men det påvirker også rankeringen i websøgning. Jeg har lavet eksperiment hvor jeg har lagt bibliotekdata op, og kunne se hvordan det har tiltrukket robotter, og derefter organisk trafik.

Derudover gør det også at de undeliggende data bliver lettere tilgængelige.

[Det følgende forklares via eksempel med tekstfil i video'en]

Men hvad er semantisk web og linked data: Tripler med url'er. Disse kan indlejres forskellige steder, og benytter forskellige vokabularer eller ordforråd. Tripler beskriver objekter, som vi kender dem:

  1. Der er selv objektet eller den ting vi taler om, – det kan være et biblioteksmateriale.
  2. Der properties eller egenskaber ved objektet, – det kan være en titel eller forfatternavn.
  3. Der er selve værdien som egenskaben for det pågældende objekt har, – eksempelvis "Enten Eller" eller "Søren Kierkegaard".

En liste af sådanne tripler beskriver et objekt.

Selve objektet har en url som unik-id. Og ligeledes er navne på properties også url'er, – og værdierne kan også være url'er. På denne måde kan koncepter linkes sammen. Url'er i stedet for almindelige navne på egenskaber, sikrer en klar semantik. En stabil url per ting eller begreb sikrer, at det har en unik værdi, og det gør at vi kan vide at det er samme ting vi taler om.

Så kombinationen af tripler og urler giver den abstrakte model.

For at det kan blive konkret, så skal vi også indlejre det og definere vokabular.

Et vokabular er en metadatamodel, hvor man definerer hvad de enkelte properties/egenskaber betyder. Eksempel er Dublin Core, FOAF, Schema.org, etc.

Semantiske data kan indlejres på hjemmesider på forskellig vis:

  • via RDFa i eksempelvis meta-tags
  • som mikrodata med opmarkering af hvilke egenskaber de enkelte dele af teksten er
  • som JSON-LD, der ligger i et script tag

og kan også ligge som tekstfiler(turtle), json-filer, etc.

Dette var en smagsprøve på hvad semantisk opmarkeret data er. Som det næste vil kigge mere på forskellige indlejringer og vokabularer som er særligt relevante for søgemaskineoptimering.

Del 2:

Indhold i forkortet form:

I næste del vil jeg tale om tre forskellige måder link data kan indlejres i hjemmesider:

  • RDFa hvilket er den mest klassiske
  • Mikrodata som er en del af HTML5
  • JSON-LD

RDFa er brugt i gamle dage med Dublin Core, og bruges nu med Open Graph protocol.
Alle tre bruges ved eksemplerne på schema.org. Google bruger JSON-LD i deres eksempler.

Eksempel på RDFa:

<html prefix="book: https://ogp.me/ns/book#">
<head>
  <meta property="book:title" content="Enten Eller">
  <meta property="book:author" content="Søren Kierkegaard">
  <meta property="book:isbn" content="123456">
</head>
</html>

"book:title" bliver en kort måde at skrive https://ogp.me/ns/book#title. Identifier for objektet der beskrives implicit er url'en for dokumentet, så vi har 3 tripler:

https://dokumentets/url https://ogp.me/ns/book#title "Enten Eller"
https://dokumentets/url https://ogp.me/ns/book#author "Søren Kierkegaard"
https://dokumentets/url https://ogp.me/ns/book#isbn "123456"

I de følgende eksempler inkodes der også tripler pa lignende vis.

Eksempel på mikrodata:

<p itemscope itemtype="https://schema.org/book">
  <span itemprop="creator">Arthur C. Clarke</span> 
  skrev bogen <span itemprop="name">2001"</span>
</p>

Eksempel på JSON-LD indlejret i html:

<script type="application/ld+json">
{ "@context": "https://schema.org",
  "@type": "Book",
  "name": 1q84",
  "creator": "Haruki Murakami"}
</script>

Dette var lidt om de forskellige måde hvorpå man kan indlejre data.

Vi bruger allerede forskellige vokabularer. Bemærk at eksempelvis https://schema.org/creator og https://ogp.me/ns/book#author er to forskellige måder at benævne bogens ophav, med henholdsvis Open Graph og schema.org vokabularene. Det kan ofte give mening at bruge begge dele.

Det første vokabular er https://schema.org, og man kan gå ind på hjemmesiden og læse mere om dette. Det er en sammenslutning af eksempelvis søgemaskiner-udvikler og andre, der har specificeret det, – herunder Google, Microsoft, Pinterest og så videre. Det hele ligger på github, og der er en åben process, så man kan følge med i udviklingen.

Google har også en mere specifik dokumentation, også i forbindelse med deres Rich Results. Her har de blandt andet specificeret i detaljer hvordan de ønsker biblioteks-data, herunder hele feeds af beholdning, – og også uddybninger i forhold til hvordan eksempelvis værk/udgave, biblioteker etc håndteres med schema.org (udvidelsesforslag), og hvordan ISBN-13 bruges som den unikke id som de tager udgangspunkt i.

Det andet vokabular er Open Graph protocol, som blandt andet bruges i mange sociale medier. Det har simplere metadata, og indlejringen er afledt af RDFa.

Så dette er nok de to vigtigste vokabularer når man ser på søgemaskineoptimering. (Der er mange andre til andre formål).

Hvis jeg skulle lave en søgemaskine-optimeret hjemmeside nu, ville jeg nok både indkode opengraph via RDFa og schema.org som JSON-LD.

I overblikket herover er der også links til både dokumentationen, og også redskaber hvor man kan teste om data på hjemmesiden kan læses af søgemaskinen.

Det var lidt om semantisk opmarkerede data.