Estoy tratando de comprender el concepto de Web Semántica. Me resulta difícil entender cuál es exactamente la diferencia entre RDF y OWL. ¿OWL es una extensión de RDF o estas dos son tecnologías totalmente diferentes?
Estoy tratando de comprender el concepto de Web Semántica. Me resulta difícil entender cuál es exactamente la diferencia entre RDF y OWL. ¿OWL es una extensión de RDF o estas dos son tecnologías totalmente diferentes?
Respuestas:
La web semántica viene en capas. Este es un resumen rápido de los que creo que te interesan.
Actualización : Tenga en cuenta que RDFS se utiliza para definir la estructura de los datos, no OWL. OWL describe relaciones semánticas sobre las que la programación normal, como una estructura C, no se preocupa y está más cerca de la investigación de IA y la teoría de conjuntos.
Triples y URI
Subject - Predicate - Object
Estos describen un solo hecho. En general, los URI se usan para el sujeto y el predicado. El objeto es otro URI o un literal, como un número o una cadena. Los literales pueden tener un tipo (que también es un URI), y también pueden tener un idioma. Sí, esto significa que los triples pueden tener hasta 5 bits de datos.
Por ejemplo, un triple podría describir el hecho de que Charles es el padre de Harry.
<http://example.com/person/harry> <http://familyontology.net/1.0#hasFather> <http://example.com/person/charles> .
Los triples son la normalización de la base de datos llevada a un extremo lógico. Tienen la ventaja de que puede cargar triples de muchas fuentes en una base de datos sin reconfiguración.
RDF y RDFS
La siguiente capa es RDF: el marco de descripción de recursos. RDF define alguna estructura extra para triplicar. Lo más importante que RDF define es un predicado llamado "rdf: type". Esto se usa para decir que las cosas son de ciertos tipos. Todos usan rdf: type, lo que lo hace muy útil.
RDFS (RDF Schema) define algunas clases que representan el concepto de sujetos, objetos, predicados, etc. Esto significa que puede comenzar a hacer declaraciones sobre clases de cosas y tipos de relación. En el nivel más simple, puede indicar cosas como http://familyontology.net/1.0#hasFather es una relación entre una persona y una persona. También le permite describir en texto legible para humanos el significado de una relación o una clase. Este es un esquema. Le dice usos legales de varias clases y relaciones. También se usa para indicar que una clase o propiedad es un subtipo de un tipo más general. Por ejemplo, "HumanParent" es una subclase de "Persona". "Loves" es una subclase de "Knows".
Serializaciones RDF
RDF se puede exportar en varios formatos de archivo. El más común es RDF + XML pero esto tiene algunas debilidades.
N3 es un formato no XML que es más fácil de leer, y hay algunos subconjuntos (Turtle y N-Triples) que son más estrictos.
Es importante saber que RDF es una forma de trabajar con triples, NO los formatos de archivo.
XSD
XSD es un espacio de nombres utilizado principalmente para describir tipos de propiedades, como fechas, enteros, etc. Generalmente se ve en los datos RDF que identifican el tipo específico de un literal. También se usa en esquemas XML, que es un caldero de peces ligeramente diferente.
BÚHO
OWL agrega semántica al esquema. Le permite especificar mucho más sobre las propiedades y clases. También se expresa en triples. Por ejemplo, puede indicar que "Si A es Casado con B", esto implica "B es Casado con A". O que si " C es un anticipador de D " y " D es un anticipador de E ", entonces " C es un anticipador de E ". Otra cosa útil que Owl agrega es la capacidad de decir que dos cosas son iguales, esto es muy útil para unir datos expresados en diferentes esquemas. Puede decir que la relación "engendrada" en un esquema es búho: sameAs "engendrado" en algún otro esquema. También puede usarlo para decir que dos cosas son iguales, como que "Elvis Presley" en wikipedia es el mismo en la BBC.
También puede usar el OWL para inferir hechos implícitos, como " C isAncestorOf E ".
En breve:
Como escribió el póster anterior, RDF es una especificación que le dice cómo definir triples.
El problema es que RDF le permite definir todo, por lo que podría componer una declaración como esta:
| subject | predicate | object |
|---------|-----------|--------|
| Alex | Eats | Apples |
| Apples | Eats | Apples |
| Apples | Apples | Apples |
Estos triples forman documentos RDF válidos.
Pero, semánticamente, comprende que estas declaraciones son incorrectas y que RDF no puede ayudarlo a validar lo que ha escrito.
Esta no es una ontología válida.
La especificación OWL define exactamente lo que puede escribir con RDF para tener una ontología válida.
Las ontologías pueden tener varias propiedades.
Es por eso que OWL (ver 1) define varias versiones como OWL DL, OWL Lite, OWL Full.
RDF, RDFS y OWL son medios para expresar información o conocimiento cada vez más complejo. Todos ellos se pueden serializar en sintaxis RDF / XML (o cualquier otra sintaxis de serialización RDF como Turtle o N3, por ejemplo).
Estas tecnologías están relacionadas y se supone que son interoperables, sin embargo, tienen orígenes diferentes, quizás por eso la relación entre ellas es complicada de entender. La elección de uno u otro depende de la complejidad que requiera la situación que está modelando.
Resumen de expresividad
RDF : Representación directa, centrada en las instancias y en la asignación a sus tipos ( rdf:type
). Es posible definir propiedades personalizadas para vincular datos y crear triples. Los datos RDF se consultan con SPARQL. Ejemplo de RDF serializado en Turtle:
@prefix : <http://www.example.org/> .
:john rdf:type :Man .
:john :livesIn "New-York" .
:livesIn rdf:type rdf:Property .
RDFS: Algunas situaciones no se modelan fácilmente solo con RDF, a veces es interesante representar relaciones más complejas como las subclases ( el tipo de un tipo ), por ejemplo. RDFS proporciona medios especiales para representar tales casos, con construcciones como rdfs:subClassOf
, rdfs:range
o rdfs:domain
. Idealmente, un razonador puede comprender la semántica de RDFS y expandir el número de triples en función de las relaciones: por ejemplo, si tiene los triples John a Man
y Man rdfs:subClassOf
Human
también debería generar el triple John a Human
. Tenga en cuenta que esto no es posible hacerlo solo con RDF. Los datos RDFS se consultan utilizando SPARQL. Ejemplo de RDFS serializado en Turtle:
@prefix : <http://www.example.org/> .
:john rdf:type :Man .
:Man rdfs:subClassOf :Human .
:john :livesIn "New-York" .
:livesIn rdf:type rdf:Property .
# After reasoning
:john rdf:type :Human .
BÚHO: El nivel más alto de expresividad. La relación entre clases se puede modelar formalmente en base a lógicas descriptivas (teoría matemática). OWL depende en gran medida del razonador, es posible expresar construcciones complejas, como propiedades encadenadas, por ejemplo, o restricción entre clases. OWL sirve para construir ontologías o esquemas en la parte superior de los conjuntos de datos RDF. Como OWL se puede serializar como RDF / XML, es teóricamente posible consultarlo a través de SPARQL, pero es mucho más intuitivo consultar una ontología de OWL con una consulta DL (que generalmente es una expresión de clase OWL estándar). Ejemplo de construcciones OWL serializadas en Turtle.
@prefix : <http://www.example.org/> .
:livesIn rdf:type owl:DatatypeProperty .
:Human rdf:type owl:Class .
:Man rdf:type owl:Class .
:Man rdfs:subClassOf :Human .
:John rdf:type :Man .
:John rdf:type owl:NamedIndividual .
En primer lugar, y como se ha señalado anteriormente, el búho se puede serializar en RDF.
En segundo lugar, OWL agrega capacidad ontológica a RDF (que por sí solo proporciona una capacidad extremadamente limitada para la representación formal de conocimiento), al proporcionar el aparato para definir los componentes de su triple utilizando lógica de descripción formal de primer orden computable. A eso se refieren los carteles cuando hablan de "riqueza semántica".
En tercer lugar, es importante darse cuenta de que en OWL-Full (para OWL 1) rdfs: class y owl: class son equivalentes y en OWL-DL, owl: class es una subclase de rdfs: class. En efecto, esto significa que puede usar una ontología OWL como esquema para RDF (que no requiere esquemas formalmente).
Espero que eso ayude a aclarar más.
Cuando utiliza el término RDF, debe distinguir dos cosas:
Puede referirse a RDF como concepto :
Una forma de describir cosas / lógica / cualquier cosa usando colecciones de triples.
Ejemplo:
"Anna tiene manzanas". "Las manzanas son saludables".
Arriba tienes dos triples que describen dos recursos "Anna" y "manzanas". El concepto de RDF (Marco de descripción de recursos) es que puede describir recursos (cualquier cosa) con conjuntos de solo 3 palabras (términos). En este nivel, no le importa cómo almacena la información, si tiene una cadena de 3 palabras, o una pintura en una pared, o una mesa con 3 columnas, etc.
En este nivel conceptual, lo único importante es que puede representar cualquier cosa que desee utilizando declaraciones triples.
Puedes referirte a RDF como vocabulario
Un vocabulario es solo una colección de definiciones de términos almacenadas en un archivo o en algún lugar. Estos términos definidos tienen el propósito de ser reutilizados generalmente en otras descripciones para que las personas puedan describir los datos (recursos) más fácilmente y de manera estándar.
En la web puede encontrar algunos vocabularios estándar como:
RDF ( https://www.w3.org/1999/02/22-rdf-syntax-ns )
RDFS ( https://www.w3.org/2000/01/rdf-schema# )
OWL ( https://www.w3.org/2002/07/owl )
El vocabulario RDF define términos que lo ayudan a describir (en el nivel más básico posible) individuos / instancias de clases. Ejemplo: rdf: type, rdf: Property.
Con rdf: type puede describir que algún recurso es una instancia de una clase:
<http://foo.com/anna> rdf:type <http://foo.com/teacher>
Por lo tanto, el vocabulario RDF tiene términos que se dirigen a descripciones básicas de instancias de clase y algunas otras descripciones (como la definición de declaración triple o la definición de predicado ... en general, cosas relacionadas con el concepto RDF).
El vocabulario RDFS tiene definiciones de términos que lo ayudan a describir clases y relaciones entre ellos. El vocabulario RDFS no se preocupa por las instancias de clases (individuos) como el vocabulario RDF. Ejemplo: la propiedad rdfs: subClassOf que puede usar para describir que una clase A es una subclase de clase B.
Los vocabularios RDF y RDFS dependen uno del otro. RDF define sus términos usando RDFS, y RDFS usa RDF para definir sus propios términos.
Los vocabularios RDF / RDFS proporcionan términos que pueden usarse para crear descripciones muy básicas de recursos. Si desea tener descripciones más complejas y precisas, debe utilizar el vocabulario OWL.
El vocabulario de OWL viene con un conjunto de nuevos términos dirigidos a descripciones más detalladas. Estos términos se definen usando términos de vocabularios RDF / RDFS.
owl:ObjectProperty a rdfs:Class ;
rdfs:label "ObjectProperty" ;
rdfs:comment "The class of object properties." ;
rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;
rdfs:subClassOf rdf:Property .
owl:DatatypeProperty a rdfs:Class ;
rdfs:label "DatatypeProperty" ;
rdfs:comment "The class of data properties." ;
rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;
rdfs:subClassOf rdf:Property .
owl:TransitiveProperty a rdfs:Class ;
rdfs:label "TransitiveProperty" ;
rdfs:comment "The class of transitive properties." ;
rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;
rdfs:subClassOf owl:ObjectProperty .
Como puede ver arriba, el vocabulario OWL amplía el concepto de rdf: Property creando nuevos tipos de Propiedades que son menos abstractas y pueden proporcionar descripciones más precisas de los recursos.
Conclusiones:
RDF es una forma de definir un triple 'sujeto', 'predicado', 'valor' . Por ejemplo, si quiero decir,
"mi nombre es Pierre"
Yo escribiría
<mail:me@where.com> <foaf:name> "Pierre"
¿Ves el <foaf:name>
? Es parte de la ontología FOAF . Una ontología es una forma formal de describir las propiedades, las clases de un tema determinado y OWL es una forma (RDF) de definir una ontología.
Utiliza C ++, Java, etc. para definir una clase, una subclase, un campo, etc.
class Person
{
String email_as_id;
String name;
}
RDF usa OWL para definir este tipo de declaraciones.
Otro lugar para hacer este tipo de preguntas: http://www.semanticoverflow.com/
Estoy tratando de comprender el concepto de Web Semántica. Me resulta difícil entender cuál es exactamente la diferencia entre RDF y OWL. ¿OWL es una extensión de RDF o estas dos son tecnologías totalmente diferentes?
En resumen, sí, se podría decir que OWL es una extensión de RDF.
Con más detalle, con RDF puede describir un gráfico dirigido definiendo triples sujeto-predicado-objeto. El sujeto y el objeto son los nodos, el predicado es el borde o, en otras palabras, el predicado describe la relación entre el sujeto y el objeto. Por ejemplo :Tolkien :wrote :LordOfTheRings
o:LordOfTheRings :author :Tolkien
, etc. Los sistemas de datos vinculados usan estos triples para describir gráficos de conocimiento y proporcionan formas de almacenarlos, consultarlos. Ahora, estos son sistemas enormes, pero puedes usar RDF en proyectos más pequeños. Cada aplicación tiene un idioma específico de dominio (o por términos DDD lenguaje ubicuo). Puede describir ese lenguaje en su ontología / vocabulario, para que pueda describir el modelo de dominio de su aplicación con un gráfico, que puede visualizar para mostrarlo a las personas de negocios, hablar sobre las decisiones comerciales basadas en el modelo y construir la aplicación en la parte superior de eso. Puede vincular el vocabulario de su aplicación a los datos que devuelve y a un vocabulario conocido por los motores de búsqueda, como microdatos.(por ejemplo, puede usar HTML con RDFA para hacer esto), y así los motores de búsqueda pueden encontrar sus aplicaciones fácilmente, porque el conocimiento sobre lo que hace será procesable por máquina. Así es como funciona la web semántica. (Al menos así es como me lo imagino).
Ahora, para describir aplicaciones orientadas a objetos, necesita tipos, clases, propiedades, instancias, etc. Con RDF solo puede describir objetos. RDFS (esquema RDF) le ayuda a describir clases, herencia (basado en objetos de c.), Pero es demasiado amplio. Para definir restricciones (por ejemplo, un niño por familia china) necesita otro vocabulario. OWL (lenguaje de ontología web) hace este trabajo. OWL es una ontología que puede usar para describir aplicaciones web. Integra los XSD simplesTypes.
Así RDF -> RDFS -> OWL -> MyWebApp
es el orden de describir su aplicación web de una manera cada vez más específica.
personA friendsWith personB
), que (2) RDFS extiende esto al proporcionar la capacidad de especificar relaciones entre object classes
, es decir class Person <has 'friendsWith' relationship> Person
. Que permite a continuación la frase RDF a través de la clase: A:typeof:person friendsWith B:<typeof:person>
. Y (3), ¿OWL le permite especificar restricciones de las relaciones?
RDFS le permite expresar las relaciones entre las cosas al estandarizar en un formato flexible de base triple y luego proporcionar un vocabulario ("palabras clave" como rdf:type
o rdfs:subClassOf
) que puede usarse para decir cosas.
OWL es similar, pero más grande, mejor y más malo. OWL le permite decir mucho más sobre su modelo de datos, le muestra cómo trabajar de manera eficiente con consultas de bases de datos y razonadores automáticos, y proporciona anotaciones útiles para llevar sus modelos de datos al mundo real.
De las diferencias entre RDFS y OWL, la más importante es que OWL proporciona un vocabulario mucho más amplio que puedes usar para decir cosas .
Por ejemplo, OWL incluye todos sus viejos amigos de RDFS tales como rdfs:type
, rdfs:domain
, y rdfs:subPropertyOf
. ¡Sin embargo, OWL también te da nuevos y mejores amigos! Por ejemplo, OWL le permite describir sus datos en términos de operaciones de conjuntos:
Example:Mother owl:unionOf (Example:Parent, Example:Woman)
Le permite definir equivalencias entre bases de datos:
AcmeCompany:JohnSmith owl:sameAs PersonalDatabase:JohnQSmith
Le permite restringir los valores de propiedad:
Example:MyState owl:allValuesFrom (State:NewYork, State:California, …)
de hecho, ¡OWL proporciona mucho vocabulario nuevo y sofisticado para usar en el modelado y razonamiento de datos que tiene su propia lección!
Otra diferencia importante es que, a diferencia de RDFS, OWL no solo le dice cómo puede usar cierto vocabulario, sino que también le dice cómo no puede usarlo. Por el contrario, RDFS le brinda todo lo que necesita en el mundo en el que puede agregar casi cualquier triple que desee.
Por ejemplo, en RDFS, cualquier cosa que desee puede ser una instancia de rdfs:Class
. Puede decidir decir que Beagle es un rdfs:Class
y luego decir que Fido es una instancia de Beagle :
Example: Beagle rdf:Type rdfs:Class
Example:Fido rdf:Type Example: Beagle
A continuación, puede decidir que le gustaría decir cosas sobre los beagles, tal vez quiera decir que Beagle es una instancia de perros criados en Inglaterra :
Example:Beagle rdf:Type Example:BreedsBredInEngland
Example: BreedsBredInEngland rdf:Type rdfs:Class
Lo interesante de este ejemplo es que Example:Beagle
se está utilizando como clase y como instancia . Beagle es una clase de la que Fido es miembro, pero Beagle es en sí mismo miembro de otra clase: Things Bred in England.
En RDFS, todo esto es perfectamente legal porque RDFS realmente no restringe qué declaraciones puede y no puede insertar. En OWL, por el contrario, o al menos en algunos sabores de OWL, las declaraciones anteriores en realidad no son legales: simplemente no se le permite decir que algo puede ser tanto una clase como una instancia.
Esta es entonces una segunda gran diferencia entre RDFS y OWL. RDFS permite un juego gratuito para todos , todo se convierte en un mundo lleno de Wild West, Speak-Easies y Salvador Dali. El mundo de OWL impone una estructura mucho más rígida.
Suponga que ha pasado la última hora creando una ontología que describa su negocio de fabricación de radio. Durante el almuerzo, su tarea es crear una ontología para su negocio de fabricación de relojes. Esta tarde, después de un buen café, su jefe ahora le dice que tendrá que construir una ontología para su negocio altamente rentable de radio reloj. ¿Hay alguna manera de reutilizar fácilmente el trabajo de la mañana?
OWL hace que hacer cosas como esta sea muy, muy fácil. Owl:Import
es la que se uso en la situación radio-reloj, pero OWL también le da una rica variedad de anotaciones tales como owl:versionInfo
, owl:backwardsCompatibleWith
yowl:deprecatedProperty
, lo que puede ser fácilmente modelos de datos de enlace usado en un todo coherente entre sí.
A diferencia de RDFS, OWL seguramente satisfará todas sus necesidades de modelado de meta-meta-datos.
OWL te ofrece un vocabulario mucho más amplio con el que jugar, lo que facilita decir cualquier cosa que quieras decir sobre tu modelo de datos. Incluso le permite adaptar lo que dice en función de las realidades computacionales de las computadoras actuales y optimizar para aplicaciones particulares (para consultas de búsqueda, por ejemplo). Además, OWL le permite expresar fácilmente las relaciones entre diferentes ontologías utilizando un marco de anotación estándar .
Todas estas son ventajas en comparación con RDFS, y generalmente valen la pena el esfuerzo adicional que se necesita para familiarizarse con ellas.
Fuente: RDFS vs. OWL
En el modelo de objeto de documento WC3, un documento es algo abstracto: un elemento con texto, comentarios, atributos y otros elementos anidados dentro de él.
En la web semántica, tratamos con un conjunto de "triples". Cada triple es:
OWL es para la web semántica como lo son los esquemas para el modelo de objeto de documento W3C. Documenta el significado de los distintos URI y especifica cómo se utilizan de manera formal que puede ser verificada por una máquina. Una web semántica puede o no ser válida con respecto al OWL que le corresponde, así como un documento puede o no ser válido con respecto a un esquema.
RDF es para la web semántica como XML para el DOM: es una serialización de un conjunto de triples.
Por supuesto, RDF generalmente se serializa como documentos XML ... pero es importante comprender que RDF no es lo mismo que "la serialización XML de RDF".
Del mismo modo, OWL se puede serializar usando OWL / XML, o (perdón por esto) se puede expresar como RDF, que generalmente se serializa como XML.
La pila web semántica básica ya se ha explicado mucho en este hilo. Me gustaría centrarme en la pregunta inicial y comparar RDF con OWL.
Usar OWL es esencial para obtener más significado (razonamiento e inferencia) con solo conocer algunos hechos. Esta información "creada dinámicamente" se puede utilizar para consultas acordes como en SPARQL.
Algunos ejemplos mostrarán que eso realmente funciona con OWL: estos se han tomado de mi charla sobre los conceptos básicos de la web semántica en el TYPO3camp Mallorca, España en 2015.
Spaniard: Person and (inhabitantOf some SpanishCity)
Esto significa que a Spaniard
debe ser a Person
(y por lo tanto hereda todas las propiedades en la parte de inferencia) y debe vivir en al menos una (o más)SpanishCity
.
<Palma isPartOf Mallorca>
<Mallorca contains Palma>
El ejemplo muestra el resultado de aplicar inverseOf
a las propiedades isPartOf
y contains
.
<:hasParent owl:cardinality “2“^^xsd:integer>
Esto define que cada uno Thing
(en este escenario probablemente a Human
) tiene exactamente dos padres: la cardinalidad se asigna a la hasParent
propiedad.
¡Una imagen vale más que mil palabras! El siguiente diagrama debería reforzar lo que Christopher Gutteridge dijo en esta respuesta que la web semántica es una "arquitectura en capas".
Fuente: https://www.obitko.com/tutorials/ontologies-semantic-web/semantic-web-architecture.html
El Marco de Descripción de Recursos (RDF) es un poderoso lenguaje formal de representación del conocimiento y un estándar fundamental de la Web Semántica. Tiene su propio vocabulario que define conceptos y relaciones centrales (por ejemplo, rdf: type corresponde a la relación isA), y un modelo de datos que permite enunciados interpretables por máquina en forma de sujeto-predicado-objeto (resource-property-value) triples, llamados RDF triples, como picture-pictures-book. La extensión del vocabulario RDF con los conceptos requeridos para crear vocabularios controlados y ontologías básicas se llama esquema RDF o lenguaje de descripción de vocabulario RDF (RDFS). RDFS hace posible escribir declaraciones sobre clases y recursos, y expresar estructuras taxonómicas, como a través de relaciones de superclase-subclase.
Los dominios de conocimiento complejos requieren más capacidades que las disponibles en RDFS, lo que condujo a la introducción de OWL . OWL admite relaciones entre clases (unión, intersección, desunión, equivalencia), restricciones de cardinalidad de propiedad (mínimo, máximo, número exacto, por ejemplo, cada persona tiene exactamente un padre), un rico tipeo de propiedades, características de propiedades y propiedades especiales (transitivo, simétrica, funcional, funcional inversa, por ejemplo, A ex: hasAncestor B y B ex: hasAncestor C implica que A ex: hasAncestor C), especificando que una propiedad dada es una clave única para instancias de una clase particular, y restricciones de dominio y rango para propiedades.