Skip to content

Introduction to OWL

The Web Ontology Language (OWL) is a W3C standard for defining formal ontologies — structured descriptions of a domain’s concepts and relationships. OWL builds on RDF and RDF Schema to add richer semantics: class hierarchies, property characteristics, restrictions, and logical axioms.

OWL is used in healthcare (SNOMED CT, Gene Ontology), government (Dublin Core), geography (GeoNames), and academia (schema.org) to model complex domains where relationships between concepts matter.

Traditional databases require you to define schemas in proprietary formats. When your domain has class hierarchies, transitive relationships, or inverse properties, you end up hand-coding that logic in your application.

OWL changes this:

Traditional DatabaseOWLGraph
Define schema in SQL/GraphQL SDLDefine ontology in OWL Turtle
Write JOIN queries for hierarchiestype(Parent) gets all descendants
Code inverse relationships manuallyowl:inverseOf creates them automatically
No reasoningWrite-time materialization
Schema is opaqueOntology is introspectable

OWL has three profiles with different expressiveness/complexity tradeoffs:

  • OWL2 EL — optimized for large ontologies with many classes (biomedical)
  • OWL2 QL — optimized for query answering over large datasets
  • OWL2 RL — optimized for materialization-based reasoning with polynomial-time complexity

OWLGraph implements OWL2 RL because it’s the natural fit for a graph database: compute inferences at write time, answer queries with simple lookups.

  • Classes: Categories of things (e.g., Animal, Person, Book)
  • Individuals: Instances of classes (e.g., a specific dog named Rex)
  • Object Properties: Relationships between individuals (e.g., hasOwner)
  • Data Properties: Attributes with literal values (e.g., name, birthDate)
  • Class Hierarchies: rdfs:subClassOf creates parent-child relationships
  • Property Characteristics: Transitive, symmetric, functional, inverse
  • Restrictions: Constraints on how properties can be used with classes