Estou tentando entender o conceito de Web Semântica. Estou achando difícil entender qual é exatamente a diferença entre RDF e OWL. OWL é uma extensão do RDF ou essas duas são tecnologias totalmente diferentes?
Estou tentando entender o conceito de Web Semântica. Estou achando difícil entender qual é exatamente a diferença entre RDF e OWL. OWL é uma extensão do RDF ou essas duas são tecnologias totalmente diferentes?
Respostas:
A web semântica vem em camadas. Este é um resumo rápido daqueles em que você está interessado.
Atualização : observe que o RDFS é usado para definir a estrutura dos dados, não o OWL. OWL descreve relações semânticas sobre as quais a programação normal, como uma estrutura C, não se preocupa e está mais próxima da pesquisa de IA e da teoria dos conjuntos.
Triplos e URIs
Subject - Predicate - Object
Eles descrevem um único fato. Geralmente, os URIs são usados para o sujeito e o predicado. O objeto é outro URI ou literal, como um número ou sequência. Os literais podem ter um tipo (que também é um URI) e também podem ter um idioma. Sim, isso significa que os triplos podem ter até 5 bits de dados!
Por exemplo, um triplo pode descrever o fato de que Charles é o pai de Harry.
<http://example.com/person/harry> <http://familyontology.net/1.0#hasFather> <http://example.com/person/charles> .
Triplos são a normalização do banco de dados levada ao extremo lógico. Eles têm a vantagem de poder carregar triplos de várias fontes em um banco de dados sem reconfiguração.
RDF e RDFS
A próxima camada é RDF - The Resource Description Framework. RDF define alguma estrutura extra para triplica. A coisa mais importante que o RDF define é um predicado chamado "rdf: type". Isso é usado para dizer que as coisas são de certos tipos. Todo mundo usa rdf: type, o que o torna muito útil.
RDFS (RDF Schema) define algumas classes que representam o conceito de assuntos, objetos, predicados etc. Isso significa que você pode começar a fazer declarações sobre classes de coisas e tipos de relacionamento. No nível mais simples, você pode indicar coisas como http://familyontology.net/1.0#hasFather é um relacionamento entre uma pessoa e uma pessoa. Também permite que você descreva em texto legível por humanos o significado de um relacionamento ou de uma classe. Este é um esquema. Indica usos legais de várias classes e relacionamentos. Também é usado para indicar que uma classe ou propriedade é um subtipo de um tipo mais geral. Por exemplo "HumanParent" é uma subclasse de "Person". "Loves" é uma subclasse de "Knows".
Serializações RDF
O RDF pode ser exportado em vários formatos de arquivo. O mais comum é o RDF + XML, mas isso tem alguns pontos fracos.
N3 é um formato não XML que é mais fácil de ler, e há alguns subconjuntos (Turtle e N-Triples) que são mais rígidos.
É importante saber que o RDF é uma maneira de trabalhar com triplos, NÃO com os formatos de arquivo.
XSD
XSD é um espaço para nome usado principalmente para descrever tipos de propriedades, como datas, números inteiros e assim por diante. Geralmente é visto em dados RDF identificando o tipo específico de um literal. Também é usado em esquemas XML, que é uma chaleira ligeiramente diferente de peixe.
CORUJA
OWL adiciona semântica ao esquema. Ele permite que você especifique muito mais sobre as propriedades e classes. Também é expresso em triplos. Por exemplo, pode indicar que "Se A isMarriedTo B", isso implica "B isMarriedTo A". Ou então, se " C forAncestorOf D " e " D forAncestorOf E ", " C forAncestorOf E" ". Outra coisa útil que a coruja acrescenta é a capacidade de dizer que duas coisas são iguais, isso é muito útil para juntar dados expressos em esquemas diferentes. Você pode dizer que o relacionamento" gerado "em um esquema é coruja: sameAs" fathered "in outro esquema.Você também pode usá-lo para dizer que duas coisas são iguais, como o "Elvis Presley" na wikipedia é o mesmo da BBC. Isso é muito emocionante, pois significa que você pode começar a juntar dados de vários sites (isso é "Dados vinculados").
Você também pode usar o OWL para inferir fatos implícitos, como " C isAncestorOf E ".
Em resumo:
Como o pôster anterior escreveu, RDF é uma especificação que explica como definir triplos.
O problema é que o RDF permite definir tudo, para que você possa compor uma declaração como esta:
| subject | predicate | object |
|---------|-----------|--------|
| Alex | Eats | Apples |
| Apples | Eats | Apples |
| Apples | Apples | Apples |
Esses triplos formam documentos RDF válidos.
Mas, semanticamente, você entende que essas instruções estão incorretas e o RDF não pode ajudá-lo a validar o que você escreveu.
Esta não é uma ontologia válida.
A especificação OWL define exatamente o que você pode escrever com RDF para ter uma ontologia válida.
Ontologias podem ter várias propriedades.
É por isso que OWL (versão 1) define várias versões, como OWL DL, OWL Lite, OWL Full.
RDF, RDFS e OWL são meios para expressar informações ou conhecimentos cada vez mais complexos. Todos eles podem ser serializados na sintaxe RDF / XML (ou qualquer outra sintaxe de serialização RDF como Turtle ou N3, por exemplo).
Essas tecnologias são relacionadas e devem ser interoperáveis, mas têm origens diferentes, talvez por isso a relação entre elas seja complicada de entender. A escolha de um ou de outro depende de quanta complexidade a situação que você está modelando exige.
Resumo de expressividade
RDF : Representação direta, focada nas instâncias e no mapeamento para seus tipos ( rdf:type
). É possível definir propriedades customizadas para vincular dados e criar triplos. Os dados RDF são consultados com o SPARQL. Exemplo de RDF serializado em Turtle:
@prefix : <http://www.example.org/> .
:john rdf:type :Man .
:john :livesIn "New-York" .
:livesIn rdf:type rdf:Property .
RDFS: Algumas situações não são facilmente modeladas apenas pelo RDF, às vezes é interessante representar relações mais complexas, como subclasses ( o tipo de um tipo ), por exemplo. O RDFS fornece meios especiais para representar esses casos, com construções como rdfs:subClassOf
, rdfs:range
ou rdfs:domain
. Idealmente, um raciocínio pode entender a semântica do RDFS e expandir o número de triplos com base nas relações: por exemplo, se você tem os triplos John a Man
e Man rdfs:subClassOf
Human
deve gerar também o triplo John a Human
. Observe que isso não é possível apenas com RDF. Os dados RDFS são consultados usando SPARQL. Exemplo de RDFS serializado no 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 .
OWL: O mais alto nível de expressividade. A relação entre classes pode ser formalmente modelada com base em lógicas descritivas (teoria matemática). OWL depende muito do raciocínio, é possível expressar construções complexas, como propriedades encadeadas, por exemplo, ou restrição entre classes. OWL serve para criar ontologias ou esquemas na parte superior dos conjuntos de dados RDF. Como o OWL pode ser serializado como RDF / XML, é teoricamente possível consultá-lo via SPARQL, mas é muito mais intuitivo consultar uma ontologia do OWL com uma consulta DL (que geralmente é uma expressão de classe OWL padrão). Exemplo de construções OWL serializadas em 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 .
Em primeiro lugar, como já foi indicado anteriormente, a coruja pode ser serializada no RDF.
Em segundo lugar, o OWL adiciona capacidade ontológica ao RDF (que, por si só, fornece capacidade extremamente limitada para representação formal de conhecimento), fornecendo o aparelho para definir os componentes do seu triplo usando a lógica formal de descrição computável de primeira ordem. É isso que os cartazes aqui querem dizer quando falam sobre "riqueza semântica".
Em terceiro lugar, é importante perceber que em OWL-Full (para OWL 1) rdfs: class e owl: class são equivalentes e em OWL-DL, owl: class é uma subclasse de rdfs: class. Com efeito, isso significa que você pode usar uma ontologia OWL como um esquema para RDF (que não requer formalmente esquemas).
Espero que ajude a esclarecer mais.
Ao usar o termo RDF, é necessário distinguir duas coisas:
Você pode se referir ao RDF como um conceito :
Uma maneira de descrever coisas / lógica / qualquer coisa usando coleções de triplos.
Exemplo:
"Anna tem maçãs." "Maçãs são saudáveis."
Acima, você tem dois triplos que descrevem dois recursos "Anna" e "maçãs". O conceito de RDF (Resource Description Framework) é que você pode descrever recursos (qualquer coisa) com conjuntos de apenas 3 palavras (termos). Nesse nível, você não se importa com o armazenamento de informações, com uma sequência de três palavras, uma pintura em uma parede ou uma mesa com 3 colunas, etc.
Nesse nível conceitual, a única coisa importante é que você pode representar o que quiser usando instruções triplas.
Você pode se referir ao RDF como um vocabulário
Um vocabulário é apenas uma coleção de definições de termos armazenadas em um arquivo ou em algum lugar. Esses termos definidos têm o objetivo de serem geralmente reutilizados em outras descrições para que as pessoas possam descrever dados (recursos) mais facilmente e de maneira padrão.
Na web, você pode encontrar alguns vocabulários padrão, 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 )
O vocabulário RDF define termos que ajudam você a descrever (no nível mais básico possível) indivíduos / instâncias de classes. Exemplo: rdf: type, rdf: Property.
Com rdf: type, você pode descrever que algum recurso é uma instância de uma classe:
<http://foo.com/anna> rdf:type <http://foo.com/teacher>
Portanto, o vocabulário RDF tem termos que têm como alvo descrições básicas de instâncias de classe e algumas outras descrições (como a definição de declaração tripla ou a definição de predicado ... em geral, coisas que são direcionadas ao conceito de RDF).
O vocabulário RDFS possui definições de termos que ajudam a descrever classes e relacionamentos entre eles. O vocabulário RDFS não se importa com instâncias de classes (indivíduos) como o vocabulário RDF. Exemplo: a propriedade rdfs: subClassOf que você pode usar para descrever que uma classe A é uma subclasse da classe B.
Os vocabulários RDF e RDFS são dependentes um do outro. RDF define seus termos usando RDFS, e RDFS usa RDF para definir seus próprios termos.
Os vocabulários RDF / RDFS fornecem termos que podem ser usados para criar descrições muito básicas de recursos. Se você quiser ter descrições mais complexas e precisas, use o vocabulário OWL.
O vocabulário OWL vem com um conjunto de novos termos direcionados a descrições mais detalhadas. Esses termos são definidos usando termos do vocabulário 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 você pode ver acima, o vocabulário OWL estende o conceito de rdf: Property criando novos tipos de Propriedades que são menos abstratos e podem fornecer descrições mais precisas dos recursos.
Conclusões:
RDF é uma maneira de definir um 'sujeito', 'predicado', 'valor' triplo . Por exemplo, se eu quiser dizer,
"meu nome é Pierre"
eu escreveria
<mail:me@where.com> <foaf:name> "Pierre"
Veja o <foaf:name>
? faz parte da ontologia FOAF . Uma ontologia é uma maneira formal de descrever as propriedades, as classes de um determinado assunto e OWL é uma maneira (RDF) de definir uma ontologia.
Você usa C ++, Java, etc ... para definir uma classe, uma subclasse, um campo, etc ...
class Person
{
String email_as_id;
String name;
}
RDF usa OWL para definir esses tipos de instruções.
Outro lugar para fazer esse tipo de pergunta: http://www.semanticoverflow.com/
Estou tentando entender o conceito de Web Semântica. Estou achando difícil entender qual é exatamente a diferença entre RDF e OWL. OWL é uma extensão do RDF ou essas duas são tecnologias totalmente diferentes?
Em suma, sim, você poderia dizer que o OWL é uma extensão do RDF.
Mais detalhadamente, com o RDF, você pode descrever um gráfico direcionado definindo triplos sujeito-predicado-objeto. O sujeito e o objeto são os nós, o predicado é a aresta ou, por outras palavras, o predicado descreve a relação entre o sujeito e o objeto. Por exemplo :Tolkien :wrote :LordOfTheRings
ou:LordOfTheRings :author :Tolkien
, etc ... Os sistemas de dados vinculados usam esses triplos para descrever gráficos de conhecimento e fornecem maneiras de armazená-los, consultá-los. Agora, esses são sistemas enormes, mas você pode usar o RDF em projetos menores. Cada aplicativo possui um idioma específico do domínio (ou por termos DDD, linguagem ubíqua). Você pode descrever esse idioma em sua ontologia / vocabulário, para descrever o modelo de domínio do seu aplicativo com um gráfico, que pode visualizá-lo para pessoas de negócios, conversar sobre decisões de negócios com base no modelo e construir o aplicativo em cima por essa. Você pode vincular o vocabulário do seu aplicativo aos dados que ele retorna e a um vocabulário conhecido pelos mecanismos de pesquisa, como microdados(por exemplo, você pode usar HTML com RDFA para fazer isso) e, assim, os mecanismos de pesquisa podem encontrar seus aplicativos facilmente, porque o conhecimento sobre o que ele faz será processável por máquina. É assim que a web semântica funciona. (Pelo menos é assim que eu imagino.)
Agora, para descrever aplicativos orientados a objetos, você precisa de tipos, classes, propriedades, instâncias, etc ... Com o RDF, você pode descrever apenas objetos. RDFS (esquema RDF) ajuda a descrever classes, herança (com base em objetos de c.), Mas é muito amplo. Para definir restrições (por exemplo, um filho por família chinesa), você precisa de outro vocabulário. OWL (linguagem de ontologia da web) faz esse trabalho. OWL é uma ontologia que você pode usar para descrever aplicativos da web. Ele integra os simpleTypes do XSD.
Assim RDF -> RDFS -> OWL -> MyWebApp
é a ordem para descrever seu aplicativo da Web de uma maneira cada vez mais específica.
personA friendsWith personB
), que (2) o RDFS estende isso, fornecendo a capacidade de especificar relacionamentos entre object classes
- ie class Person <has 'friendsWith' relationship> Person
. Isso permite que você, em seguida, a frase RDF via classe: A:typeof:person friendsWith B:<typeof:person>
. E (3), o OWL permite que você especifique restrições dos relacionamentos?
O RDFS permite que você expresse os relacionamentos entre as coisas, padronizando em um formato flexível e triplo e fornecendo um vocabulário ("palavras-chave" como rdf:type
ou rdfs:subClassOf
) que pode ser usado para dizer coisas.
OWL é semelhante, mas maior, melhor e mais ruim. OWL permite que você fale muito mais sobre seu modelo de dados, mostra como trabalhar eficientemente com consultas ao banco de dados e raciocínios automáticos, além de fornecer anotações úteis para trazer seus modelos de dados para o mundo real.
Das diferenças entre RDFS e OWL, o mais importante é que o OWL fornece um vocabulário muito, muito maior que você pode usar para dizer coisas .
Por exemplo, OWL inclui todos os seus velhos amigos de RDFS tais como rdfs:type
, rdfs:domain
, e rdfs:subPropertyOf
. No entanto, o OWL também oferece novos e melhores amigos! Por exemplo, OWL permite que você descreva seus dados em termos de operações definidas:
Example:Mother owl:unionOf (Example:Parent, Example:Woman)
Permite definir equivalências entre os bancos de dados:
AcmeCompany:JohnSmith owl:sameAs PersonalDatabase:JohnQSmith
Permite restringir os valores da propriedade:
Example:MyState owl:allValuesFrom (State:NewYork, State:California, …)
de fato, o OWL fornece muito vocabulário novo e sofisticado para ser usado na modelagem e no raciocínio de dados que recebe sua própria lição!
Outra grande diferença é que, diferentemente do RDFS, o OWL não apenas mostra como você pode usar determinado vocabulário, mas também mostra como você não pode usá-lo. Por outro lado, o RDFS oferece a você um mundo em que você pode adicionar praticamente qualquer triplo que desejar.
Por exemplo, no RDFS, qualquer coisa que você sinta pode ser uma instância rdfs:Class
. Você pode decidir dizer que o Beagle é um rdfs:Class
e depois dizer que o Fido é uma instância do Beagle :
Example: Beagle rdf:Type rdfs:Class
Example:Fido rdf:Type Example: Beagle
Em seguida, você pode decidir que gostaria de dizer coisas sobre beagles, talvez queira dizer que Beagle é uma instância de cães criados na Inglaterra :
Example:Beagle rdf:Type Example:BreedsBredInEngland
Example: BreedsBredInEngland rdf:Type rdfs:Class
O interessante neste exemplo é que Example:Beagle
está sendo usado como uma classe e uma instância . O Beagle é uma classe da qual Fido é membro, mas o próprio Beagle é membro de outra classe: Things Bred in England.
No RDFS, tudo isso é perfeitamente legal porque o RDFS não restringe realmente as instruções que você pode e não pode inserir. Em OWL, por outro lado, ou pelo menos em alguns tipos de OWL, as declarações acima não são realmente legais: você simplesmente não tem permissão para dizer que algo pode ser tanto uma classe quanto uma instância.
Essa é a segunda grande diferença entre RDFS e OWL. O RDFS permite um mundo livre para todos , tudo dá tipo de mundo cheio do Oeste Selvagem, do Speak-Easies e de Salvador Dali. O mundo da OWL impõe uma estrutura muito mais rígida.
Suponha que você passou a última hora construindo uma ontologia que descreve seu negócio de fabricação de rádio. Durante o almoço, sua tarefa é criar uma ontologia para o seu negócio de fabricação de relógios. Hoje à tarde, depois de um bom café, seu chefe agora diz que você precisará criar uma ontologia para o seu negócio de rádio-relógio altamente lucrativo. Existe uma maneira de reutilizar facilmente o trabalho da manhã?
OWL torna muito fácil fazer coisas assim. Owl:Import
é o que você usaria na situação rádio-relógio, mas OWL também lhe dá uma rica variedade de anotações, como owl:versionInfo
, owl:backwardsCompatibleWith
, e owl:deprecatedProperty
, o que pode ser facilmente modelos de dados link usado em um todo mutuamente coerentes.
Ao contrário do RDFS, o OWL certamente satisfará todas as suas necessidades de modelagem de meta-meta-dados.
OWL fornece um vocabulário muito maior para você brincar, o que facilita dizer qualquer coisa que você queira dizer sobre seu modelo de dados. Ele ainda permite adaptar o que você diz com base nas realidades computacionais dos computadores atuais e otimizar para aplicativos específicos (para consultas de pesquisa, por exemplo.) Além disso, o OWL permite que você expresse facilmente os relacionamentos entre diferentes ontologias usando uma estrutura de anotação padrão .
Todas essas são vantagens em comparação com o RDFS e normalmente valem o esforço extra necessário para se familiarizar com elas.
Fonte: RDFS vs. OWL
No modelo de objeto de documento do WC3, um documento é uma coisa abstrata: um elemento com texto, comentários, atributos e outros elementos aninhados dentro dele.
Na web semântica, lidamos com um conjunto de "triplos". Cada triplo é:
OWL é para a web semântica, assim como os esquemas para o modelo de objeto de documento do W3C. Ele documenta o significado dos vários URIs e especifica como eles são usados de uma maneira formal que pode ser verificada por uma máquina. Uma web semântica pode ou não ser válida com relação à OWL que se aplica a ela, assim como um documento pode ou não ser válido com relação a um esquema.
RDF é para a web semântica como XML é para o DOM - é uma serialização de um conjunto de triplos.
Obviamente, o RDF geralmente é serializado como um documento XML ... mas é importante entender que o RDF não é a mesma coisa que "a serialização XML do RDF".
Da mesma forma, o OWL pode ser serializado usando OWL / XML ou (desculpe por isso) pode ser expresso como RDF, que normalmente é serializado como XML.
A pilha da web semântica básica já foi explicada muito neste tópico. Eu gostaria de me concentrar na pergunta inicial e comparar o RDF com a OWL.
Usar o OWL é essencial para obter mais significado (raciocínio e inferência), apenas conhecendo alguns fatos. Esta informação "criada dinamicamente" pode ainda ser usada para consultas concordantes, como no SPARQL.
Alguns exemplos mostram que isso realmente funciona com o OWL - eles foram retirados da minha palestra sobre o básico da web semântica no TYPO3camp Mallorca, Espanha, em 2015.
Spaniard: Person and (inhabitantOf some SpanishCity)
Isso significa que a Spaniard
deve ser a Person
(e, portanto, herda todas as propriedades na parte inferencial) e deve residir em pelo menos uma (ou mais) SpanishCity
.
<Palma isPartOf Mallorca>
<Mallorca contains Palma>
O exemplo mostra o resultado da aplicação inverseOf
às propriedades isPartOf
e contains
.
<:hasParent owl:cardinality “2“^^xsd:integer>
Isso define que cada um Thing
(nesse cenário provavelmente a Human
) tem exatamente dois pais - a cardinalidade é atribuída à hasParent
propriedade.
Uma imagem fala mais que mil palavras! Este diagrama abaixo deve reforçar o que Christopher Gutteridge disse nesta resposta que a web semântica é uma "arquitetura em camadas".
Fonte: https://www.obitko.com/tutorials/ontologies-semantic-web/semantic-web-architecture.html
A Estrutura de Descrição de Recurso (RDF) é uma poderosa linguagem formal de representação de conhecimento e um padrão fundamental da Web Semântica. Possui seu próprio vocabulário que define conceitos e relações principais (por exemplo, rdf: type corresponde ao relacionamento isA) e um modelo de dados que permite instruções interpretáveis por máquina na forma de sujeito-predicado-objeto (recurso-propriedade-valor) triplos, chamados RDF triplos, como figuras-retratam-livros. A extensão do vocabulário RDF com os conceitos necessários para criar vocabulários controlados e ontologias básicas é chamada de Esquema RDF ou RDF (RDF Vocabulary Description Language). O RDFS possibilita escrever instruções sobre classes e recursos e expressar estruturas taxonômicas, como por meio de relacionamentos de superclasse-subclasse.
Domínios de conhecimento complexos exigem mais recursos do que os disponíveis no RDFS, o que levou à introdução do OWL . OWL suporta relacionamentos entre classes (união, interseção, disjunção, equivalência), restrições de cardinalidade de propriedade (número mínimo, máximo e exato, por exemplo, toda pessoa tem exatamente um pai), tipagem rica de propriedades, características de propriedades e propriedades especiais (transitivas, simétrica, funcional, funcional inversa, por exemplo, A ex: hasAncestor B e B ex: hasAncestor C implica que A ex: hasAncestor C), especificando que uma determinada propriedade é uma chave exclusiva para instâncias de uma classe específica e restrições de domínio e intervalo para propriedades.