4 Representa¸c˜ ao da Imagem
5.5 Linguagens Formais
Ontologia ´e uma especifica¸c˜ao formal sobre um dom´ınio; logo, requer linguagem l´ogica formal para express´a-la. A maioria das linguagens para formaliza¸c˜ao de ontologias derivou
de duas alternativas: l´ogica de predicado de primeira ordem (FOL) e XML-RDF. Nesta se¸c˜ao descreveremos as id´eias por tr´as destas alternativas e abordaremos as linguagens mais representativas. Em rela¸c˜ao `a primeira alternativa, abordaremos KIF e CycL. Em rela¸c˜ao `a segunda alternativa, abordaremos XML, RDF, RDF Schema e OWL.
5.5.1
Linguagens de predicado de primeira ordem
Nesta se¸c˜ao discutiremos as id´eias por tr´as de KIF e CycL, que s˜ao conhecidas como linguagens de ontologia. Ambas extendem linguagem de predicado de primeira ordem por meio de conceito de segunda ordem. Linguagens de representa¸c˜ao de conhecimento baseada em FOL – First Order Logic emergiram das id´eias da comunidade de matem´aticos e cientistas da computa¸c˜ao, que desejavam definir uma linguagem expressiva para sistemas de computadores. O objetivo era definir uma linguagem que fosse t˜ao expressiva quanto a linguagem natural, mas que n˜ao tivesse a imprecis˜ao e ambig¨uidade desta. KIF e CycL s˜ao linguagens baseadas neste tipo de alternativa. KIF inicialmente n˜ao foi projetada como uma linguagem de ontologia, mas como uma linguagem de troca de conhecimento. Entretanto, ´e qualificada como um linguagem de ontologia por causa do seu alto n´ıvel de generalidade. CycL, por outro lado foi desenvolvida como uma linguagem de ontologia para representar o conhecimento embutido na ontologia de senso comum CYC.
KIF (Knowledge Interchange Format) ´e uma linguagem orientada para computadores que foi projetada como um formato de troca de conhecimento entre diferentes sistemas de computa¸c˜ao para facilitar o compartilhamento de conhecimento. Ela pode ser aplicada para especifica¸c˜ao de ontologias, para comunica¸c˜ao de agentes de softwares, para automa- tizar dedu¸c˜oes e satisfazer restri¸c˜oes. Tipicamente, KIF trabalha do seguinte modo: um programa lˆe uma base de conhecimento em KIF e a converte para sua pr´opria linguagem de implementa¸c˜ao. O programa realiza algum processamento computacional na base de conhecimento que foi convertida para sua linguagem interna. Depois, quando o programa necessita comunicar-se com outro, mapeia os dados da sua linguagem de volta para KIF. O outro program recebe a informa¸c˜ao via-KIF e, em seguida, converte para sua pr´opria linguagem. Desta forma ,KIF trabalha como uma interl´ıngua entre diferentes sistemas de computa¸c˜ao.
A especifica¸c˜ao KIF identifica trˆes importantes caracter´ısticas para a linguagem: pos- sui semˆantica declarativa, isto ´e, o significado das express˜oes na linguagem de representa- ¸c˜ao pode ser entendido como est´a; ´e logicamente compreens´ıvel, isto ´e, qualquer senten¸ca em c´alculo de predicado de primeira ordem pode ser expresso; e fornece representa¸c˜ao
do conhecimento sobre o conhecimento, conseq¨uentemente, usu´arios da linguagem podem introduzir novas constru¸c˜oes de representa¸c˜ao do conhecimento sem alterar a linguagem. CycL ´e uma linguagem de representa¸c˜ao de ontologia que foi desenvolvida como parte do projeto Cyc, cujo objetivo ´e construir uma grande base de conhecimento para prover os computadores de senso comum. CycL ´e o meio de representa¸c˜ao da ontologia Cyc. Como KIF, CycL ´e tamb´em baseada em FOL e tamb´em extende FOL com caracter´ısticas de segunda ordem.
5.5.2
XML, RDF, RDF Schema e OWL
XML (Extensible Markup Language) foi desenvolvida para ser uma linguagem leg´ıvel por m´aquina que permite a estrutura¸c˜ao sint´atica de documentos. Portanto, XML n˜ao pode tratar quest˜oes relacionadas `a semˆantica dos documentos. Para isso foram desenvol- vidas linguagens que se beneficiaram das vantagens da estrutura sint´atica do XML, como RDF Schema e OWL (Web Ontology Language). Ambas s˜ao baseadas em RDF (Resource Description Framework), que ´e um modelo de dados desenvolvido para descrever recur- sos Web com metadados. RDF n˜ao ´e uma linguagem, mas um modelo de dados que ´e independente de qualquer dom´ınio ou implementa¸c˜ao.
O modelo de dados RDF ´e um grafo e consiste de n´os e arcos. Os n´os correspondem aos objetos ou recursos e os arcos correspondem `as propriedades. Os identificadores dos n´os e arcos s˜ao URIs (Uniform Resource Identifiers). Os recursos s˜ao todas as coisas que s˜ao descritas por express˜oes RDF. Um recurso pode ser uma imagem, um documento HTML, parte de uma p´agina Web, uma cole¸c˜ao de p´aginas HTML, etc. Uma propriedade s˜ao atributos espec´ıficos que descrevem os recursos.
Uma propriedade com o seu valor associado a um recurso faz uma declara¸c˜ao sobre o recurso. Statement (declara¸c˜ao) RDF consiste de um recurso espec´ıfico junto com uma propriedade mais o valor da propriedade para aquele recurso. Logo, uma declara¸c˜ao RDF ´e composta de trˆes parte: subject, predicate e object. O subject (recurso) representa um recurso que ser´a descrito; o predicate (predicado) representa uma caracter´ıstica do recurso; e o object (objeto) representa o valor do predicate. O objeto de uma declara¸c˜ao, isto ´e, o valor da predicado pode ser outro recurso, uma simples string ou algum outro tipo de dado definido pelo XML.
RDF Schema foi desenvolvida com a finalidade de definir o vocabul´ario usado nos modelos RDF. RDF Schema oferece um conjunto de primitivas de modelagem, como
rdfs:Class, rdf:Property ou relacionamento rdf:subClassOf para definir o vocabul´ario RDF para aplica¸c˜oes espec´ıficas. Em RDF Schema ´e poss´ıvel definir classes de classes, classes de propriedades, classes de literais que s˜ao string, n´umerico, booleanos, etc. Usando propriedades RDF Schema, como rdf:Type, rdfs:subClassOf e rdfs:subPropertyOf, ´e poss´ı- vel definir relacionamentos instanceOf entre recursos e classes. Usando as propriedade rdfs:domain e rdfs:range ´e poss´ıvel restringir os recursos que podem ser subject ou objects da propriedade.
RDF Schema foi considerada como a primeira iniciativa para definir uma linguagem de defini¸c˜ao de ontologias para Web; no entanto existem muitas coisas que n˜ao podem ser expressas com RDF Schema como, por exemplo, uni˜ao, interse¸c˜ao, complemento e dis- jun¸c˜ao de classes. N˜ao h´a como declarar restri¸c˜ao de cardinalidade e as propriedades n˜ao podem ser declaradas como transitivas, sim´etricas ou inversas. Entretanto, os pesquisa- dores defendem que estas caracter´ısticas s˜ao essenciais para uma linguagem de ontologia, pois sem elas n˜ao h´a como fornecer suporte para inferˆencia. Devido a estas limita¸c˜oes foi proposto pelo grupo de trabalho da World Wide Web Consortium (W3C) a linguagem OWL, que a descreve como “linguagem projetada para uso em aplica¸c˜oes que necessita processar o conte´udo da informa¸c˜ao ao inv´es de simplesmente apresent´a-la para humanos”.
Existem trˆes tipos da linguagem OWL:
OWL Full ´e a mais expressiva. ´E compat´ıvel com RDF, logo todo documento OWL Full ´e um documento RDF v´alido; entretanto, ela n˜ao ´e dedut´ıvel, logo, n˜ao ´e poss´ıvel executar inferˆencia autom´atica com OWL Full ;
OWL DL est´a relacionada com L´ogica de Descri¸c˜ao. ´E computacionalmente com- pleta e dedut´ıvel, conseq¨uentemente ´e poss´ıvel automaticamente verificar inconsi- tˆencias numa ontologia OWL DL;
OWL Lite ´e a menos expressiva, destinada para usos em situa¸c˜oes onde uma hie- rarquia de classes simples e restri¸c˜oes simples s˜ao necess´aria.
5.5.3
Editor de ontologias Prot´eg´e
Existem v´arios ambientes de desenvolvimento de ontologias, mas optamos por adotar neste trabalho o editor de ontologias Prot´eg´e, pelas seguintes raz˜oes: ´e compat´ıvel com os padr˜oes da Web Semˆantica como a linguagem OWL; est´a dispon´ıvel para in´umeras plataformas como Windows, UNIX, Mac, Solaris, etc.; al´em disso, ´e uma ferramenta open
source. Prot´eg´e ´e um ambiente de desenvolvimento de ontologias com funcionalidade para edi¸c˜ao de classes, instˆancias e propriedades. O Prot´eg´e suporta a edi¸c˜ao de ontologias OWL atrav´es do plugin OWL, desde quando a linguagem OWL se tornou a linguagem- padr˜ao para especifica¸c˜ao de ontologias para Web. O plugin OWL pode ser usado para carregar e salvar arquivos OWL em diferentes formatos, para editar ontologias OWL atrav´es de janelas gr´aficas customizadas e para executar inferˆencia baseado em L´ogica de Descri¸c˜ao.
A interface do usu´ario consiste de v´arios pain´eis, chamados de tabs, cada um deles mostra um aspecto diferente da ontologia numa vis˜ao especializada. A maioria das tabs existentes fornece uma vis˜ao estilo explorer do modelo, com uma ´arvore do lado esquerdo e detalhes do recurso selecionado do lado direito.