1.5 Organiza¸c˜ ao do Trabalho
2.1.4 Representa¸c˜ ao de Ontologias Usando OWL
As linguagens para representa¸c˜ao de ontologias come¸caram a surgir no in´ıcio dos anos 90, baseadas em t´ecnicas da Inteligˆencia Artificial e consideradas uma evolu¸c˜ao das utilizadas para representa¸c˜ao de conhecimento. Alguns exemplos s˜ao a KIF, Ontolingua, OCML, FLogic e Loom, as quais s˜ao classificadas em (G´omez-P´erez, Fern´andez-L´opez e Corcho, 2006) como tradicionais.
O surgimento da Web Semˆantica levou `a cria¸c˜ao de linguagens que explorassem as caracter´ısticas da Web e os fundamentos da Web Semˆantica, as denominadas linguagens de marca¸c˜ao de ontologias ou baseadas na web (G´omez-P´erez, Fern´andez-L´opez e Corcho, 2006), com sintaxe baseada em linguagens de marca¸c˜ao como o XML (eXtensible Markup Language). Alguns exemplos s˜ao SHOE, RDF(S), OIL, DAML+OIL e OWL.
OWL (Web Ontology Language) (W3C, 2004) ´e uma linguagem para defini¸c˜ao e instancia¸c˜ao de ontologias criada pelo Grupo WebOnt (W3C Web Ontology Working Group), derivada da DAML+OIL e baseada em RDF. OWL ´e atualmente uma especi- fica¸c˜ao W3C e a linguagem recomendada para cria¸c˜ao de ontologias quando se fala em Web Semˆantica.
OWL torna poss´ıvel a descri¸c˜ao dos conceitos, mas tamb´em disponibiliza novas funci- onalidades. A linguagem ´e rica em operadores (interse¸c˜ao, uni˜ao e nega¸c˜ao) e ´e baseada em um modelo l´ogico que torna poss´ıvel conceitos serem bem definidos e descritos. Con- ceitos complexos, por sua vez, podem ser constru´ıdos a partir das defini¸c˜oes de conceitos mais simples. Esse modelo l´ogico permite o uso de um raciocinador que pode checar se as afirma¸c˜oes e defini¸c˜oes da ontologia s˜ao mutuamente consistentes, e reconhecer quais conceitos encaixam em cada defini¸c˜ao (Horridge et al., 2011).
OWL em sua vers˜ao 1.0 possui trˆes sub-linguagens. S˜ao elas (W3C, 2004): OWL Lite: para ontologias com classifica¸c˜ao hier´arquica e restri¸c˜oes simples; OWL DL: mais expressiva que a OWL-Lite e baseada em L´ogica de Descri¸c˜ao, sendo
pass´ıvel de racioc´ınio autom´atico. ´E poss´ıvel, assim, computar automaticamente a hierarquia de classes e verificar inconsistˆencias na ontologia. Ontologias desse tipo s˜ao as mais utilizadas por suportar o m´aximo de expressividade enquanto se mantˆem comput´aveis e conclusivas. Uma ontologia DL, K = (T,A) consiste em um
conjunto Tbox (Terminological Box ) T, os conceitos e propriedades de um dom´ınio e um Abox (Assertional Box ) A, os indiv´ıduos que pertencem aos conceitos descritos no Tbox (Calvanese et al., 2011);
OWL Full: ontologias com m´axima expressividade e com liberdade sint´atica quanto ao RDF, embora n˜ao haja garantia computacional.
Uma nova vers˜ao, a OWL 2, adicionou novas funcionalidades, sendo uma das grandes diferen¸cas a defini¸c˜ao de perfis criados devido `a complexidade de implementa¸c˜ao da OWL (W3C, 2012a). Os perfis foram projetados para atender necessidades de uso e capacidade computacional, possuindo, assim, diferentes n´ıveis de expressividade. A Figura 2.2 apre- senta as diferen¸cas entre a OWL 1 e a OWL 2 (W3C, 2012a; Hoekstra, 2009; Isotani e Bittencourt, 2015).
Figura 2.2: Tipos da OWL 1 vs Perfis da OWL 2. Fonte: (Hoekstra, 2009)
Os perfis s˜ao independentes entre si e a escolha entre um deles depende da estrutura das ontologias e das tarefas de racioc´ınio necess´arias para cada situa¸c˜ao. Trˆes perfis s˜ao descritos, s˜ao eles:
OWL 2 EL: perfil que trabalha com a fam´ılia EL da L´ogica de Descri¸c˜ao (Baader, Brandt e Lutz, 2005). OWL 2 EL ´e utilizado em aplica¸c˜oes que fazem uso de ontologias com um grande n´umero de propriedades e/ou classes, podendo ser usado para especificar classes complexas e axiomas sobre elas. Esse perfil foi projetado para sistemas de alta complexidade e necessidade de maior poder de expressividade; OWL 2 RL: perfil voltado para aplica¸c˜oes que necessitem de racioc´ınio de forma escal´avel. Foi projetado para acomodar aplica¸c˜oes OWL 2 que podem trocar a expressividade completa da linguagem por eficiˆencia e tamb´em aplica¸c˜oes RDF(S) que precisam adicionar um pouco de expressividade;
OWL 2 QL: perfil para aplica¸c˜oes que usam um grande volume de dados de instˆancias e onde a resposta a consultas ´e a tarefa mais importante. ´E voltado para o trabalho com bancos de dados relacionais. Na OWL 2 QL, as inferˆencias sob o TBox s˜ao independentes do Abox, onde a parte de processo que requer acesso ao Abox pode ser realizado por algum mecanismo SQL, fazendo uso das estrat´egias de otimiza¸c˜ao
2.1 ONTOLOGIAS 15
de consulta fornecida pelos Sistemas Gerenciadores de Bancos de Dados Relacio- nais atuais. OWL 2 QL ´e um perfil independente de dom´ınio, que foi projetado para permitir a especifica¸c˜ao de esquemas de bancos de dados e integra¸c˜ao via con- sultas. Esse perfil pertence `a fam´ılia DL-Lite, podendo, dessa forma, reescrever consultas em SQL(Calvanese et al., 2007). Ao contr´ario dos dois perfis anteriores que possuem complexidade polinomial, esse perfil possui complexidade logar´ıtmica - LogSpace (W3C, 2012a).
Os elementos essenciais de uma ontologia OWL s˜ao as Classes, Indiv´ıduos e as Pro- priedades, cujas defini¸c˜oes s˜ao as mesmas, respectivamente, de Conceito, Instˆancias e Rela¸c˜oes, descritas na se¸c˜ao 2.1.1.
Os principais conceitos de um dom´ınio devem corresponder a classes que s˜ao as ra´ızes para v´arias ´arvores taxonˆomicas. Todo ind´ıviduo em OWL ´e um membro da class owl:Thing, assim, toda classe definida ´e implicitamente uma subclasse de owl:Thing, e ela, por sua vez, ´e o conjunto com todos os indiv´ıduos. Uma classe ´e definida atrav´es de uma declara¸c˜ao. Por exemplo, o trecho a seguir cria a classe Incident em uma ontologia: <owl:Class rdf:ID="Incident"/>
OWL tamb´em define a classe owl:Nothing, para representar um conjunto vazio. Indiv´ıduos s˜ao os membros pertencentes a uma classe, e tamb´em s˜ao adicionados atrav´es de uma declara¸c˜ao. Por exemplo:
<Resource rdf:ID="Ambulance" />
cria o Individuo Ambulance como sendo pertencente `a classe Resource.
As propriedades permitem declarar fatos gerais sobre os membros de uma classe e fatos espec´ıficos sobre os indiv´ıduos. Em OWL, propriedades de tipos de dados (DataType properties) definem as rela¸c˜oes entre instˆancias de uma classe e literais RDF e tipos XML- Schema. O exemplo abaixo cria a propriedade de tipo de dados IncidentName indicando que ela ´e uma rela¸c˜ao entre a classe Incident e uma literal do tipo string.
<owl:DatatypeProperty rdf:ID="IncidentName"> <rdfs:domain rdf:resource="Incident"/> <rdfs:range rdf:resource="&xsd;string"/> </owl:DatatypeProperty>
As propriedades de objeto (Object properties) definem rela¸c˜oes entre as instˆancias de duas classes. Um das formas de restringir esse tipo de rela¸c˜ao ´e definindo o dom´ınio e o alcance, isso especifica que instˆancias da classe de dom´ınio se relacionam com as instˆancias da classe de alcance atrav´es da propriedade objeto. Existem outros tipos de restri¸c˜oes, como por exemplo: quantifica¸c˜ao existencial (some), quantifica¸c˜ao universal (all ) e cardinalidade (min, max e exact ). O seguinte exemplo:
<owl:ObjectProperty rdf:ID="hasIncidentType"> <rdfs:domain rdf:resource="Incident"/> <rdfs:range rdf:resource="IncidentType"/> </owl:ObjectProperty>>
declara uma propriedade de objeto chamada hasIncidentType que possui como dom´ınio a classe Incident e como alcance a classe IncidentType.
O conte´udo de ontologias expressas em RDF ou OWL – que ´e uma extens˜ao do RDF – pode ser visto como um grafo ou um conjunto de triplas RDF (Bagosi et al., 2014; Press, 2008).
Uma tripla consiste de um sujeito, um predicado e um objeto, e define a rela¸c˜ao entre o sujeito e o objeto. Por exemplo:
<Incident> <hasIncidentType> <Fire>
onde: Incident ´e o sujeito, hasIncidentType ´e o predicado e Fire ´e o objeto.
Essa cole¸c˜ao de dados em RDF pode ser armazenada em um banco de dados de triplas (triplestores) e pode ser consultada usando a linguagem SPARQL (SPARQL Protocol and RDF Query Language). Essa linguagem usa triplas ou padr˜oes de grafo que s˜ao comparados sob os dados RDF. SPARQL ´e a linguagem padr˜ao da W3C para consultas semˆanticas.
Os bancos de dados de triplas podem oferecer pontos de acesso via Web que aceitam o protocolo SPARQL e sua linguagem para consulta. Esses pontos de acesso s˜ao chamados de SPARQL endpoints e s˜ao capazes de aceitar consultas e retornar resultados via HTTP (Laufer, 2015).