2 · SKOS Essentials — Concept, Scheme, broader/narrower, labels

The five SKOS predicates that do 95% of the work, and the anti-patterns librarians learned the hard way.

0/2 done

Theory — SKOS in a page

The five predicates you'll use every day

  1. skos:ConceptScheme — the container. One per vocabulary you publish.
  2. skos:Concept — a term. Every concept has an IRI you control.
  3. skos:prefLabel / skos:altLabel / skos:hiddenLabel — the preferred name (one per language), alternative names (synonyms surface in search), hidden names (misspellings, deprecated terms — searchable, never displayed).
  4. skos:broader / skos:narrower — hierarchy. broaderTransitive is automatic.
  5. skos:exactMatch / closeMatch / relatedMatch — mappings to external vocabularies (LCSH, Wikidata, Library of Congress, AGROVOC…).

The four anti-patterns

A1 — Treating prefLabel as a primary key. The IRI is the identity. Labels are display — they translate, they rename, they capitalise differently. If you join data on labels you've already failed.

A2 — Multiple prefLabel in the same language. SKOS explicitly forbids it (it would mean 'this concept has two preferred English names', which is a contradiction). If you want synonyms, that's what altLabel is for.

A3 — Cycles in broader. A taxonomy is a tree (or a DAG at worst). 'Physics broader Science broader Physics' is a vocabulary bug; SHACL can detect it.

A4 — Mixing OWL classes with SKOS concepts. :Physics a skos:Concept, owl:Class . is the worst of both worlds. Pick one. (If you can't decide, re-read lesson 1.)

Concept map

Click a node to focus its neighbourhood · drag to pan · scroll to zoom

The concept hierarchy

Dashed nodes are external (LCSH). Notice nothing here is an OWL class — it's all skos:Concept linked by skos:broader and skos:exactMatch.

Reading in progress · 0 of 2 activities done