OWL 2 – Web Ontology Language

     Como dito no post “Para que serve uma ontologia?”, as ontologias são uma forma de representação do conhecimento em um domínio(ex: biblioteca, vinhos, doenças) com o intuito de facilitar a troca de informações, efetuar inferências a respeito do domínio e permitir o compartilhamento e reutilização do conhecimento do contexto.  Em outras palavras, ontologia é um vocabulário representativo, geralmente especializado em algum domínio ou determinado assunto. O vocabulário em si não define a importância de uma ontologia, o que define são os conceitos que os termos do vocabulário têm intenção de capturar.

     No post de hoje vamos falar sobre a linguagem de representação de ontologias conhecida como OWL (Web Ontology Language) e as mudanças que ocorreram desde sua criação em 2004 até sua versão atual publicada em 2009, a OWL 2. Linguagens voltadas para representação de ontologias tem como objetivo permitir que usuários descrevam de forma clara e explícita a conceitualização formal de um modelo de domínio. Para isso, é necessário que a linguagem atenda alguns requisitos como: uma sintaxe bem definida, uma semântica bem definida, suporte eficiente a inferências e um bom nível de expressividade.

A Web Semântica

     A internet possui uma quantidade vasta de informações, no entanto, estas informações possuem pouca organização e padronização, os dados são criados de humanos para humanos e essa falta de estrutura formal dificulta a busca e processamento por máquinas e dispositivos automatizados. Neste contexto surge a Web Semântica. Segundo Tim Berners-Lee, o pai da internet um dos seus idealizadores, a Web Semântica, a partir do uso intensivo de metadados, visa construir uma rede que seja capaz de reconhecer o significado dos documentos e, por meio de um processamento via máquina, inferir novos conhecimentos.

arquitetura web semantica

Figura 1: Representação de uma possível arquitetura para a web semântica.

     Uma das possíveis arquiteturas da Web Semântica pode ser dividida em três grandes camadas, como mostra a Figura 1. A camada de estrutura, é responsável por estruturar os dados e definir seu significado. Ela é implementada utilizando as tecnologias XML (eXtensible Markup Language) e RDF (Resource Description Framework). As ontologias ficam se enquadram na camada de esquema e possibilitam a representação de conceitos através de uma taxonomia(classes, objetos, propriedades) e um conjunto de regras sobre um domínio, estas definições de conceitos e seus relacionamentos são processáveis por computadores e são expressas em linguagens baseadas em lógica. A camada lógica, é responsável por definir mecanismos para se fazer inferência sobre os dados geralmente utilizando softwares de processamento lógico (reasoning) como o FACT++.

OWL 1

     Diferentes linguagens de ontologias provêem diferentes facilidades. Dentre estas linguagens pode-se citar: a SHOE (Simple HTML Ontology Extensions), XOL (Ontology Exchange Language), OIL (Ontology Inference Layer) e DAML (DARPA Agent Markup Language). Estas duas últimas foram combinadas e formaram a DAML+OIL. A mais recente linguagem de ontologia desenvolvida é a OWL Web Ontology Language

     A OWL foi criada para aplicações que necessitem processar informação ao invés de apenas apresentá-la para humanos, a OWL faz parte de um grupo de tecnologias recomendadas pelo OWL Working Group do W3C (World Wide Consortioum) relacionadas a web semântica, dentre elas o XML (Extensible Markup Language) e RDF (Resource Description Framework). Antes de falar sobre as novidades da OWL 2 vamos falar um pouco sobre suas subdivisões e sintaxe, a OWL é dividida em três sublinguagens:

  • OWL Lite –  suporte a usuários que necessitam de uma hierarquia de classificação e restrições simples.  
  • OWL DL – suporte a usuários que necessitam do máximo de expressividade da linguagem sem perder a plenitude computacional e o poder de decidibilidade e raciocínio da linguagem.  
  • OWL Full – suporte a usuários que necessitam do máximo de expressividade da linguagem, com uma liberdade sintática maior, mas sem garantias computacionais.

     A utilização de cada uma depende da aplicação em que será utilizada, ou seja depende das necessidades da ontologia, a OWL-DL permite um nível maior de expressividade nas construções, assim como a OWL Full traz um melhor detalhamento, no entanto, a sublinguagem OWL Full é menos previsível ao se fazer inferências pois não existem implementações que façam uso completo de suas estruturas.

OWL 2


A nova versão da OWL diciona tanto poder quanto velocidade à linguagem: padroniza as características mais requisitadas por usuários desde a primeira versão e introduz o conceito de perfis(profiles), subconjuntos da linguagem que tem como intuito de melhorar a escalabilidade em aplicações específicas.

3.1. Tipo de Sintaxe

Existem várias sintaxes disponíveis para OWL e que servem para diferentes propósitos.

  • Funcional: A sintaxe funcional foi criada para ser mais fácil quando se deseja especificar algo e para servir como base na criação de ferramentas como APIs e processadores de inferência(reasoners).
  • RDF/XML: A sintaxe RDF/XML é simplesmente o padrão no formato RDF/XML, é a única das sintaxes que deve ser suportada obrigatoriamente por toda ferramenta OWL 2.
  • Manchester: A sintaxe Manchester foi desenhada para ser mais fácil de ler por usuários com pouca afinidade com construções lógicas.
  • XML: A sintaxe OWL XML é simplesmente a linguagem definida pelo esquema XML.

     Através do uso de ferramentas existentes é possível converter de uma sintaxe para outra com relativa facilidade. Veja abaixo alguns trechos de exemplo da OWL 2 usando cada sintaxe mencionada.

OWL2 Functional Syntax

Ontology(<http://example.com/tea.owl&gt;
 Declaration( Class( :Tea ) )
)

OWL2 XML Syntax

<Ontology ontologyIRI=http://example.com/tea.owl&#8221;>
  <Prefix name=“owl” IRI=http://www.w3.org/2002/07/owl#&#8221;/>
  <Declaration>
    <Class IRI=“Tea”/>
  </Declaration>
</Ontology>

3.2. Profiles

No OWL 2 existe o conceito de Profiles, que são sublinguagens (subconjuntos sintáticos) que oferecem vantagens dependendo do cenário em que será aplicado. Existem três diferentes profiles:

  • OWL 2 EL:   é mais adequado para aplicações onde ontologias muito grandes são necessárias, e onde o poder de expressividade pode ser trocado por garantias de performance. Permite a execução dos algoritmos de inferência com complexidade polinomial.
  • OWL 2 QL: é adequado para casos de ontologias relativamente leves e voltadas à organização de um grande número de indivíduos. Útil para casos onde é necessário acessar os dados diretamente através de consultas relacionais (ex: SQL) . Complexidade logarítimica – LogSpace.
  • OWL 2 RL: é adequado para casos de ontologias relativamente leves e voltadas à organização de um grande número de indivíduos. Útil para casos onde é necessário acessar os dados diretamente na forma de construções RDF. Permite a execução dos algoritmos de inferência com complexidade polinomial.

     Qualquer uma destas sub linguagens é também uma ontologia OWL 2 e pode ser interpretada usando a semântica direta ou via RDF. Cada uma é mais restritiva que a OWL DL e definem diferentes aspectos do poder de expressão da OWL com diferentes benefícios computacionais e de implementação.

3.3. Relações com OWL 1

     A estrutura geral da OWL 1 foi mantida, os principais blocos de construção da linguagem foram mantidos ou apenas renomeados. Mais importante, a compatibilidade com o padrão anterior foi pensado, ou seja, todas ontologias criadas em OWL 1 permanecem válidas com relação a OWL 2, com inferências praticamente idênticas em quase todos os casos.

     A OWL 2 adiciona algumas melhorias e funcionalidades em comparação com OWL 1. Algumas delas trazem mais poder de expressividade, ajustes na sintaxe e poder de interoperabilidade, veja abaixo alguns exemplos de problemas da OWL 1 que foram resolvidos com a nova versão:

Qualified Cardinality Restrictions(QCR): OWL 1 permite a definição de uma entidade pessoa com pelo menos 3 filhos mas não permite especificar que uma pessoa com pelo menos 3 filhos do sexo masculino. 

Chaves(Keys):  não provê meios para especificar chaves primárias em propriedades, que é uma característica comum em bancos de dados.Por exemplo, em OWL 1 DL não é possível dizer que o cidadão BR é identificado unicamente por seu CPF.

Annotations: são pedaços de informação extra-lógica que descrevem a entidade ou ontologia. Na OWL 1 não era permitido a adição de anotações em axiomas, o que poderia ser necessário, por exemplo, para adicionar uma informação sobre quem criou o axioma.

Imports and Versioning: importação na OWL 1 é feita por “nome e local” onde está a OWL. O URI deve ter o mesmo nome da OWL mas como muitas vezes era necessário mudar de local isso trazia problemas.

     Deu para perceber que o assunto é bem extenso e olha que o que comentei acima é apenas um resumão do negócio rsrsrs. No próximo post sobre ontologia espero poder trazer algo mais concreto e uma possível ontologia voltada a ambientes inteligentes. Até a próxima.

Referências

https://www.w3.org/2009/10/owl2-pr

https://www.w3.org/TR/2012/REC-owl2-primer-20121211/

Ontologias – OWL (Web Ontology Language) – Lima, Júnio César De;Carvalho, Cedric L. De; 2005.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s