Controlled Vocabularies


Controlled vocabularies of the Semantic Web define the concepts and relationships (terms) used to describe a field of interest or area of concern.

Definition (Controlled Vocabulary). A controlled vocabulary is the triple V = (NC, NR, NI) of countably infinite sets of IRI symbols denoting atomic concepts (concept names, classes) (NC), atomic roles (role names, properties, or predicates) (NR), and individual names (objects) (NI), respectively, where NC, NR, and NI are pairwise disjoint sets.

Ontologies refer to more complex collection of constructs suitable to describe virtually any statement in a machine-readable form. For example, to declare a person in a machine-readable format, we need a vocabulary that has the formal definition of “Person.” A straightforward choice is the Friend of a Friend (FOAF) vocabulary, which has a Person class that defines typical properties of a person including, but not limited to, name and homepage, or the Person vocabulary of Schema.org. Similarly, a book can be described using the Book vocabulary of Schema.org and general publication terms from the Dublin Core vocabulary, an event with the Event vocabulary of Schema.org, and so on.

To use machine-readable terms from any controlled vocabulary, web designers can choose from a variety of annotation formats, all of which represent the same concepts. For example, to describe the name and website of a person using the Person vocabulary of Schema.org, you can use RDFa, HTML5 Microdata, or JSON-LD in the markup:

Annotation Data
Markup without Structured Data

John Smith
<img src="johnsmith.jpg" alt="John Smith" />
John’s web site:
<a href="http://www.johnsmithexample.com">
johnsmithexample.com</a>

Markup with HTML5 Microdata

<div itemscope="itemscope" itemtype="http://schema.org/Person">
<span itemprop="name">John Smith</span>
<img src="johnsmith.jpg" alt="John Smith" itemprop="image" />
John’s web site:
<a href="http://www.johnsmithexample.com" itemprop="url">johnsmithexample.com</a> </div>
Markup with RDFa

<div vocab="http://schema.org/" typeof="Person">
<span property="name">John Smith</span>
<img src="johnsmith.jpg" alt="John Smith" property="image" />
John’s web site:
<a href="http://www.johnsmithexample.com" property="url">johnsmithexample.com</a> </div>
Markup with JSON-LD

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "Person",
  "image": "johnsmith.jpg",
  "name": "John Smith",
  "url": "http://www.johnsmithexample.com"
} </script>

Beyond the markup annotation, the same information can also be represented using any RDF serialization such as RDF/XML, Turtle, Notation3, TriG, or TriX.

Linked Open Vocabularies

To find controlled vocabularies, you can use the Linked Open Vocabularies vocabulary collection, which covers vocabulary documentations and provides open data access, a vocabulary search engine, and applications.