Primer on Semantic Web Ontologies
published: (updated: )
by Harshvardhan J. Pandit
is part of: Semantic Web
ontologies semantic-web
Introduction
The basic ontology for recording anything (and everything)
is RDF, which is just a way of expressing
knowledge in the form of triples or (subject, object, predicate) form.
RDFS and OWL
which build a relationship-constraint model on top of RDF.
To summarise, RDF
allows expressing knowledge, pure and simple; RDFS
and OWL
add additional relationships such as hierarchy, inheritance,
and restrictions (or in the case of OWL
, axioms) that enrich the knowledge
through the use of 'structure'. This is not a guide to learn about
semantic web ontologies, but if you're looking for that sort of a resource,
you may as well start with a StackOverflow answer
and then move on to Wikipedia - OWL.
Usage
RDF is used to represent knowledge, but not its validity or truth. So,
statements like <harsh> <is> <awesome>
are perfectly valid RDF, but there
is no way to check their 'validity' or 'correctness'. To express some
constraints over the use of resources, one uses RDFS and OWL to structure
how the knowledge may be represented. The ontologies also additionally
allow inheritance and axioms, which can help create new knowledge through
inference and reasoning. For example,
<class:Man> <rdf:type> <subclass:Human>
<class:Woman> <rdf:type> <subclass:Human>
<property:isMother>
<rdf:type> <owl:Property>
<rdf:domain> <class:Woman>
<rdf:range> <class:Human>
<property:isSon>
<rdf:type> <owl:Property>
<rdf:domain> <class:Man>
<rdf:range> <class:Human>
<node:Harsh> <rdf:type> <class:Man>
<property:isSon> <node:HarshMom>
<node:HarshMom> <property:isMother> <node:Harsh>
defines classes Man
and Woman
as subclasses of Human
, with the
properties isMother
and isSon
with domains and ranges. It then
defines that Harsh
is a Man
, and is the son of HarshMom
. At this point,
the only inference possible is that HarshMom
is of type Human
. The next
sentence specifies that HarshMom
is the mother of Harsh
, and therefore,
it is possible to infer that HarshMom
is a Woman
. Although this is a simple
example, it amply shows how the structuring of knowledge can be shaped
using relationships. Simpler constraints help represent complex knowledge.
Formats
RDFS and OWL are serialised down into RDF, so they are essentially represented as RDF in most cases. There are possibilities of having OWL only formats, which do not cater to RDF, but OWL, as an ontology is based on RDF.
- RDF/XML: This is (sort-of) the default format for serialising RDF. Files usually end in
.rdf
though.xml
extension would also be valid, but is not recommended. The content-type istext/rdf+xml
. - Turtle: This is the easiest format to read and write in, and is quite concise. It's extenion is
.ttl
and the content-type istext/turtle
. - N-Triples: This is a similar format to Turtle, though is arguably less concise. The extension is
.nt
and the content-type isapplication/n_triples
. - Notation 3: Another concise format, it's extension is
.n3
and the content-type istext/n3
. - JSON-LD: To make the propogation of RDF easier on the web, the JSON-LD format was developed. It uses a notation based on the JSON format with annotations catering to RDF keywords. It's extension is
.jsonld
and content-type isapplication/ld+json
. - RDFa: This is a way to embed RDF information in HTML tags, while still allowing traditional page markup to be used and displayed. This is, in theory, the best of both worlds as the resulting document is presentable for human as well as machine consumption.