Ejemplo OWL con grafo RDF
Ilustremos el uso del vocabulario OWL con una ontología de ejemplo (inspirada en OWL Pizzas): "Pizza tiene PizzaBase como base; Pizza es disjunta de PizzaBase; NonVegetarianPizza es exactamente Pizza que no es VegetarianPizza; isIngredientOf es una propiedad transitiva; isIngredientOf es la inversa de hasIngredient". El ejemplo expresado en la sintaxis de lógica de descripción se muestra a continuación:
El mismo ejemplo expresado usando la sintaxis abstracta de OWL formula la misma información usando notación tipo LISP y, además, utiliza URI para identificar todas las clases y propiedades:
Namespace(p = <http://example.com/pizzas.owl#>)
Ontology( <http://example.com/pizzas.owl#>
Class(p:Pizza partial
restriction(p:hasBase someValuesFrom(p:PizzaBase)))
DisjointClasses(p:Pizza p:PizzaBase)
Class(p:NonVegetarianPizza complete
intersectionOf(p:Pizza complementOf(p:VegetarianPizza)))
ObjectProperty(p:isIngredientOf Transitive
inverseOf(p:hasIngredient))
)
Al incrustar la ontología OWL de ejemplo en RDF, cada declaración debe
convertirse en tripletas; véase la figura siguiente. Por ejemplo, la
restricción ∃R.C se forma mediante un recurso anónimo de tipo
owl:Restriction. Este recurso anónimo (blank node) es sujeto de dos
propiedades, owl:onProperty y owl:someValuesFrom, que relacionan la
relación de restricción (propiedad) y el concepto (clase). El recurso anónimo se
usa luego para relacionarse con la clase restringida (mediante rdfs:subClassOf en
nuestro caso). El ejemplo expresado en tripletas y serializado en N3 es el siguiente:

Ontología OWL de pizza expresada en tripletas RDF
@prefix : <http://example.com/pizzas.owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
:Pizza rdfs:subClassOf
[ a owl:Restriction ;
owl:onProperty :hasBase ;
owl:someValuesFrom :PizzaBase ] ;
owl:disjointWith :PizzaBase .
:NonVegetarianPizza owl:equivalentClass
[ owl:intersectionOf
( [owl:complementOf :VegetarianPizza]
:Pizza ) ] .
:isIngredientOf
a owl:TransitiveProperty , owl:ObjectProperty ;
owl:inverseOf :hasIngredient .
OWL DL utiliza todas las características de SHOIN(D). La visión general de las posibles descripciones, rangos de datos, propiedades, individuos y valores de datos se muestra en la tabla de la página anterior. La descripción en DL de la semántica fue introducida en una de las secciones anteriores. El dominio de los individuos en el modelo es ΔI, y el dominio de los valores de datos ΔID se añadió para especificar la semántica de los rangos de datos.
La ontología está formada por restricciones sobre un modelo. Los axiomas que pueden usarse para restringir un modelo se resumen en la tabla de la página anterior.
Además de las características estándar de las lógicas de descripción, se añaden las llamadas
annotation properties. Además de las annotation properties de RDFS (como
rdfs:comment y rdfs:label), existen propiedades que permiten, por
ejemplo, indicar información de versión, compatibilidad o incompatibilidad
entre ontologías. También existe un constructo owl:imports que permite
afirmar que una ontología importa otra ontología.