Aprendizagem de Ontologias: Linguagens aplicadas

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

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.

Facebooktwittergoogle_plusredditpinterestlinkedinmail