• No results found

Våre observasjoner, vurderinger og konklusjoner

2 Vedtak om spesialpedagogisk hjelp

2.2 Våre observasjoner, vurderinger og konklusjoner

Os motores de inferência, também chamados reasoners, conseguem deduzir (inferir) novos factos ou associações a partir de informação existente numa base de conhecimento. O motor de inferência funciona como um mecanismo de controlo, que aplica conhecimento axiomático a partir da fonte de conhecimento para chegar a alguma conclusão. Utilizando um exemplo muito simples, suponha-se que a base de conhecimento contém os dois factos seguintes: Maria é feminina; feminina é um tipo de pessoa. O motor de inferência baseado nestes dois factos pode inferir que Maria é uma pessoa. Outras das funcionalidades que os motores de inferência suportam é a validação de ontologias, de modo a verificar que não existem inconsistências, isto é, utilizando o exemplo anterior, cria-se uma regra em que diz que mulheres e homens são mutuamente exclusivos. Se posteriormente dissermos que Maria é masculino, o motor de inferência, ao validar a ontologia, irá detectar uma contradição nos dados da base de conhecimento.

As regras de inferência são normalmente especificadas em linguagem ontológica ou linguagem descritiva. A criação de um modelo de informação e relacionamentos permite aos motores de inferência retirar conclusões lógicas baseadas nesse modelo e ser possível perguntar aos motores de inferência a razão de terem chegado a uma determinada conclusão. As linguagens mais utilizadas para criar os modelos de informação e relacionamentos são RDFS, OWL e SWRL. Actualmente existem diversos motores de inferência disponíveis que podem fornecer vários níveis de inferência, mas apenas analisaremos os mais populares e que suportam inferência em RDFS e OWL.

3.3.1.1 Pellet

O Pellet (Kolovski, Parsia et al., 2006) foi iniciado no Mindswap Group da Universidade de

Maryland Institute for Advanced Computer Studies. Posteriormente este modelo foi

aproveitado pela Clark & Parsia LLC, que o disponibiliza sob a licença AGPLv3 (Foundation, 2007) e licença proprietária para aplicações de código fechado. Entre as diversas funcionalidades que o motor de inferência oferece destacam-se as seguintes:

implementa a descrição lógica SROIQ (D);

suporta um conjunto de regras SWRL chamadas DL-Safe Rules;

navegador Web, com as APIs Jena e OWL, e também fornece uma interface para ferramentas através da ferramenta DL Implementation Group – DIG (Bechhofe, 2003), que fornece um acesso uniforme a motores de inferência de descrição lógica;

− suporta actualmente a maior parte das funções propostas na OWL 2 (Motik, Grau et al., 2009), apesar de esta estar ainda em especificação pelo W3C;

análise, validação da consistência, reparação de ontologias OWL e debug de ontologias;

motor de linguagem de queries conjuntivas SPARQL-DL (Sirin and Parsia, 2007).

Mais informações sobre este motor de inferência podem ser encontradas em (Sirin and Parsia, 2007).

3.3.1.2 Jena

O Jena (Carroll, Dickinson et al., 2004) é mais do que um motor de inferência, é uma

framework para o desenvolvimento de aplicações com recurso à Semantic Web. É um projecto

de código aberto que tem vindo a ser desenvolvido pelo HP Labs Semantic Web Programme. Bastante disseminada na comunidade da Semantic Web, providencia uma ambiente de programação para suportar RDF, RDFS e OWL. Entra as suas principais características encontram-se:

− uma API RDF para a manipulação de ontologias codificadas em RDF (leitura escrita, importação/exportação de formatos de dados);

uma API OWL para a manipulação de ontologias codificadas em OWL;

um motor de queries a dados RDF suportando linguagens RDQL e a SPARQL;

− motor de inferência baseado em regras, além de facilmente integrar motores de inferência de terceiros (ex. o Pellet que já vem incluído no próprio pacote de software);

− mecanismos para a manipulação de dados RDF em memória, ficheiros simples e bases de dados relacionais, as duas últimas designadas ontologias persistentes.

3.3.1.3 KAON2

O KAON2 (Hustadt, Motik et al., 2009) é um projecto descendente do KAON (Bozsak, Ehrig et al., 2002) desenvolvido sob licença GPL (Foundation, 2007) pelo Institute AIFB da

Universidade de Karlsruhe e pelo FZI – Research Center for Information Technologies.

Criado através do esforço que envolve as várias instituições, o KAON2 tem com principal diferença em relação ao seu predecessor o suporte às linguagens. Enquanto o KAON usava um extensão proprietária da RDFS, o KAON2 (Hustadt, Motik et al., 2009) é baseado em OWL-DL e Frame Logic – F-Logic (M. Kifer, G. Lausen et al., 1995). É considerado uma

framework que fornece uma infra-estrutura para a gestão de ontologias para aplicações de

negócios. As suas principais características são:

− suporte a expressividade lógica SHIQ (D) da OWL DL e um subconjunto de regras chamadas de DL-safe do SWRL;

gestão de ontologias OWL-DL, SWRL, e F-Logic;

servidor que fornece acesso a ontologias de modo distribuído;

motor de inferência para responder a queries expressas em sintaxe SPARQL;

− interface de acesso as outras ferramentas através da DIG, como o Protégé (Musen, 1988);

extracção de instâncias de ontologias de bases de dados relacionais.

Mais informações sobre este projecto podem ser encontradas em (Hustadt, Motik et al., 2009).

3.3.1.4 RacerPro

O RacerPro (Haarslev and Möller, 2001) foi desenvolvido pela empresa Racer Systems GmbH

& Co. e é um motor de inferência para as linguagens RDF, OWL, OWL2 e um repositório de

informação.

Algumas das principais características do RacerPro são:

implementa a descrição lógica SHIQ;

suporta a linguagem semântica de queries nRQLe a linguagem SWRL;

− suporta a verificação da consistência de ontologias OWL e descrição de dados RDF;

− suporta ontologias persistentes, isto é, permite o armazenamento de base de conhecimento em bases de dados relacionais como o PostgreSQL, MySQL, HSQLDB, entre outras;

interface de acesso as outras ferramentas através da DIG;

3.3.1.5 FACT++

O FaCT++ (Tsarkov and Horrocks, 2006) tem vindo a ser desenvolvido principalmente pelo

Computing Laboratory da Universidade de Oxford. É um motor de inferência baseado em

descritores lógicos, que foi re-implementado a partir do motor de inferência FaCT. Diferencia-se do seu antecessor pelo facto de ser desenvolvido em C++ e foi-lhe ainda introduzida uma série de melhoramentos na sua arquitectura interna sendo agora personalizável (Tsarkov and Horrocks, 2003).

As características mais relevantes são apresentadas em seguida:

implementa a descrição lógica SHOIQ;

suporta as linguagem OWL 1.1 e parcialmente OWL 2;

pode ser usado por outras ferramentas através da interface DIG;

− é usado como um dos motores de inferência no Protégé.

3.3.1.6 Comparação dos motores de inferência

A Tabela 3.6 apresenta uma comparação e resumo das características mais relevantes dos motores de inferência anteriormente descritos. Os motores de inferência processam conhecimento disponível na Semantic Web e deduzem novo conhecimento do conhecimento previamente estabelecido. Diversos motores de inferência foram anteriormente descritos, todos eles são baseados em lógica descritiva e são capazes de inferir em diferentes linguagens com diferentes níveis de expressividade, por exemplo RDFS, OWL e SWRL. Entre as suas principais tarefas estão a inferência de novo conhecimento, mas também a verificação da consistência das ontologias, processamento e classificação de factos, gestão de tipos de dados, entre outros.

Como se pôde constatar pela análise prévia, juntamente com os motores de inferência são fornecidos conjuntos de ferramentas, para o apoio ao desenvolvimento de aplicações

avançadas de Semantic Web e que oferecem bibliotecas de desenvolvimento, suporte para importar/exportar diferentes formatos de ontologias, interfaces com bases de dados e outras ferramentas de terceiros. Nesta breve análise dos diversos motores de inferência não foram considerados quaisquer parâmetros sobre o desempenho de cada um deles ou comparação entre eles, no entanto, existem diversos estudos comparativos sobre testes de desempenho na comunidade científica e que podem ser encontrados em (Tsarkov and Horrocks, 2003), (Pan, 2005), (Gardiner, Horrocks et al., 2006) e (Bock, Haase et al., 2008).

Tabela 3.6 – Tabela comparativa das características de diversos motores de inferência.

Características Fact++ Jena KAON2 Pellet RacerPro

Suporte OWL OWL 1.1 Parcial/Pode utilizar outros motores de inferência OWL 1.1 OWL 1.1 e OWL 2 parcialmente OWL 1.1 Suporte de Regras

Não Sim (formato

próprio) SWRL (DL- Safe Rules) SWRL (DL- Safe Rules) SWRL (parcialmen- te) Suporte de queries SPARQL

Não Sim Sim Sim Brevemente

Suporte de queries a fontes OWL

Não Não Não SPARQL DL OWL QL

(através da nRQL) Expressividade

lógica

SROIQ (D) SROIQ (D) SROIQ (D) SROIQ (D) SHIQ(Dn)

Verificação de consistência

Sim OWL DL

(Parcial)

Sim Sim Sim

Suporte à DIG Sim Sim Sim Sim Sim

Tecnologia de desenvolvimen- to

C++ Java Java Java APIs em

Java/LISP

Versão 1.3.0 2.6.0 Desconhecida 2.0 (rc7) 2.0

Licença GNU Open-Source Gratuito (uso não comer- cial )/Código Fechado AGPL(v3) Comercial/Có -digo fechado Comercial/ Código Fechado