Conforme vimos, no artigo Introdução a Ontologias, as ontologias são uma estrutura formal composta por conceitos e relações entre conceitos e também inclui um conjunto de axiomas. E seu desenvolvimento, na sua maioria, é realizado de forma manual, acarretando num trabalho árduo e demorado.
Para conseguirmos informatizar a aprendizagem de ontologias será necessário conhecer sobre as linguagens e marcações existentes no auxilio desse processo.
Linguagens
O Cyc Language (CycL) é uma linguagem formal cuja sintaxe deriva do cálculo de predicados de primeira ordem (a linguagem da lógica formal) e do Lisp. O vocabulário de CycL consiste em termos. O conjunto de termos pode ser dividido em constantes, termos não-atômicas, variáveis e alguns outros tipos de objetos. Termos são combinados em expressões CycL significativas, que são usados para fazer as afirmações na base de conhecimento Cyc (CYCORP, 2013). No exemplo, visualizamos a representação do termo Governo (GovernmentFn) que é definido como entidade Geopolítica (GeopoliticalEntity) e Governo Regional (RegionalGovernment):
#$GovernmentFn: (#$arity #$GovernmentFn 1) (#$arg1Isa #$GovernmentFn #$GeopoliticalEntity) (#$resultIsa #$GovernmentFn #$RegionalGovernment)
A F-Logic foi desenvolvida em 1995, no Instituto de Tecnologia de Karlsruhe, Alemanha. Ela combina frames e lógica de primeira ordem, o que permite representar conceitos, taxonomias de conceitos, relações binárias, funções, instâncias, axiomas e regras dedutivas. O motor de inferência do F-Logic é o Ontobroker (DECKER, 1998) e pode ser usado para a verificação de restrições e deduzir novas informações (CORCHO et.al., 2003). No exemplo abaixo pode-se ver a representação de conceitos, onde, um homem é uma pessoa (man: person) e uma mulher é uma pessoa (woman: person) e Brad é um homem e Angelina é uma mulher:
man::person woman::person brad:man angelina:woman
O Simple HTML Ontology Extensions (SHOE) foi construído, em 1996, como uma extensão do HTML, na Universidade de Maryland. Ele utiliza marcações diferentes das especificações do HTML, portanto, permite a inserção de ontologias em documentos HTML. O SHOE apenas permite representar conceitos, suas taxonomias, relações n-árias, instâncias e regras de dedução, que são utilizados pelo seu motor de inferência para obter novos conhecimentos [5]. No exemplo abaixo, visualizamos o mapeamento de uma instância que tem uma categoria e uma relação:
<HTML> <HEAD> <META HTTP-EQUIV="SHOE" CONTENT="VERSION=1.0"> <TITLE> Minha Página </TITLE> </HEAD> <BODY> <INSTANCE KEY="http://www.sabenca.eti.br"> <USE-ONTOLOGY ID="cs-ontologia" URL="http://www.sabenca.eti.br" VERSION="1.0" PREFIX="cs"> <CATEGORY NAME="cs.Professor"> <RELATION NAME="cs.nome"> <ARG POS=TO VALUE="Norton Guimarães"> </RELATION> </INSTANCE> </BODY> </HTML>
A eXtensible Markup Language (XML) foi desenvolvida por um Grupo de Trabalho XML (originalmente conhecido como o SGML Editorial Review Board), formado pelo W3C, em 1996. Um Documento XML é um arquivo de texto simples, que usa um conjunto de elementos para mostrar sua estrutura (DONG;SRIVASTAVA, 2009). Exemplo:
<?xml version="1.0" encoding="UTF-8"?> <migration urlid="http://www.microsoft.com/"> <component type="Documents" context="User"> <displayName>My Video</displayName> <role role="Data"> <detects> <detect> <condition>z</condition> </detect> </detects> <rules> <include filter='x'> <objectSet> <pattern type="File">y</pattern> </objectSet> </include> </rules> </role> </component> </migration>
A Ontolíngua combina paradigmas das linguagens baseadas em frames e lógica de primeira ordem. Permite a representação de conceitos, taxonomias de conceitos, relações, funções, axiomas, instâncias e procedimento (ALMEIDA; BAX, 2004). No exemplo abaixo, visualizamos a definição de uma classe (human) e a relação de que “um homem é um animal”:
(define-class human (?human) "O humano é um animal." :def (animal ?human))
O Resource Description Framework (RDF) foi desenvolvido pelo W3C como uma linguagem de base semântica para descrever recursos da Web. O RDF Schema foi construído pelo W3C como uma extensão do RDF. A combinação de ambos RDF e RDF Schema normalmente conhecida como RDF(S). O RDF(S) não é muito expressivo, apenas permitindo a representação de conceitos, o conceito de taxonomias e relações binárias. Alguns motores de inferência foram criados para essa linguagem, principalmente para a verificação de restrição (CORCHO et.al., 2003). No exemplo abaixo, visualizamos o mapeamento de um estudante que trabalha em uma empresa:
<rdf:Description about="http://www.sabenca.eti.br"> <Estudante> <rdf:Description rdf:about="mailto:nortoncg@hotmail.com"> <TrabalhaEm rdf:resource="IF Goiano"/> </rdf:Description> </Estudante> </rdf:Description>
O Ontology Exchange Language (XOL) foi desenvolvido pelo centro de IA da SRI International, em 1999, como um “XMLization” sendo um subconjunto de primitivas do protocolo OKBC, chamado OKBC-Lite. É uma linguagem muito restrita que aborda o conceito de taxonomias e relações binárias. Não há um mecanismos de inferência e foi projetado principalmente para a troca de ontologias na área de biomédica (CORCHO et.al., 2003). Exemplo:
<person> <name>fred</name> <age>35</age> <brother>bill</brother> <brother>harold</brother> </person>
O Ontology Interchange Language (OIL) foi desenvolvido no projeto europeu IST On-To-Knowledge. Ele acrescenta primitivas KR baseados em RDF(S), e sua estrutura semântica é a base do NDLS. É utilizado um classificador para executar as classificações automáticas dos conceitos (CORCHO et.al., 2003).
A Web Ontology Language (OWL) foi projetada para uso em aplicações que precisam processar o conteúdo da informação. A OWL facilita a interpretabilidade da máquina em conteúdo da Web e é suportada por XML, RDF e RDF Schema, fornecendo vocabulário adicional juntamente com uma semântica formal. A OWL possui três sublinguagens: OWL Lite, OWL DL e OWL Full (LIMA; CARVALHO, 2005). Exemplo:
<owl:Class> <owl:oneOf rdf:parseType="Collection"> <owl:Thing rdf:about="#Eurasia"/> <owl:Thing rdf:about="#Africa"/> <owl:Thing rdf:about="#NorthAmerica"/> <owl:Thing rdf:about="#SouthAmerica"/> <owl:Thing rdf:about="#Australia"/> <owl:Thing rdf:about="#Antarctica"/> </owl:oneOf> </owl:Class>
A STELLA é uma linguagem orientada a objetos, fortemente tipada com base no Lisp, projetado para facilitar as tarefas de programação simbólicos em aplicações de inteligência artificial. A STELLA tem suporte para estruturas dinâmicas de dados, coleções heterogêneas, símbolos de primeira classe, poderosas construções de iteração, nome espaços, protocolo de meta-objeto, manipulação de exceção e linguagem extensível por meio de macros. A STELLA está disponível para programação em C++, Lisp comum, ou Java (STELLA, 2013). Exemplo:
% cd native/java/ % javac edu/isi/hello_world/*.java % java edu.isi.hello_world.HelloWorld Hello World A Hello World B bye
A SPARQL Protocol and RDF Query Language (SPARQL) é uma linguagem de consulta semântica para RDF. Ele pode ser utilizado em diversas bases de dados com recursos para consultar padrões gráficos, conjunções e disjunções. Os resultados das consultas podem ser conjuntos de resultados e gráficos RDF (W3C, 2013).
SELECT ?title WHERE { <http://example.org/book/book1> <http://purl.org/dc/elements/1.1/title> ?title. }
Como vimos, existem diversas linguagens para representação de estruturas ontológicas.
Atualmente, temos encontrado diversos trabalhos científicos que abordam a utilização dos recursos do XML, RDF, OWL e SPARQL.
Espero ter contribuído para aumentar seus conhecimentos na temática aprendizagem de ontologias. Fique à vontade para utilizar os comentários.
Até o próximo artigo!
Prof. Norton Guimarães
@nortoncg
Referências
ALMEIDA, M.; BAX, M. Uma visão geral sobre ontologias: pesquisa sobre definições, tipos, aplicações, métodos de avaliação e de construção. Ciência da Informação, 32(3), 2004.
CORCHO, O.; Fernández-López, M.; Gómez-Pérez, A. Methodologies, tools and languages for building ontologies: where is their meeting point? Data Knowl. Eng., 46(1):41–64, July 2003.
CYCORP. The syntax of cycl. http://www.cyc.com/cycdoc/ref/ cycl-syntax.html, último acesso em junho de 2013.
DECKER, S.; ERDMAN, M.; FENSEL, D.; STUDER, R. Ontobroker: Ontology based access to distributed and semi-structured information, 1998.
DONG, X. L.; SRIVASTAVA, D. Xml indexing. In: Liu, L.; Özsu, M. T., editors, Encyclopedia of Database Systems, p. 3585–3591. Springer US, 2009.
LIMA, J. C.; CARVALHO, C. L. d. Ontologias – OWL (Web Ontology Language). Technical report, Universidade Federal de Goiás, 2005.
STELLA. Stella – lisp-style symbolic programming with delivery in common-lisp, c++ and java. Information Sciences Institute – ISI. Disponível em: <http://www.isi.edu/isd/LOOM/ Stella/>. Acesso em: julho de 2013.
W3C. Sparql query language for rdf. http://www.w3.org/TR/ rdf-sparql-query/, último acesso em julho de 2013.