40
Motivação de linguagens de ontologias na WEB* Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por humanos) Softwares de busca e mineração de dados; Necessidade de agregar representação semântica aos dados, ao invés de apenas sintaxe; Prover comunicação entre agentes de softwares;

Motivação de linguagens de ontologias na WEB* Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Embed Size (px)

Citation preview

Page 1: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Motivação de linguagens de ontologias na WEB*

Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por humanos)

Softwares de busca e mineração de dados;

Necessidade de agregar representação semântica aos dados, ao invés de apenas sintaxe;

Prover comunicação entre agentes de softwares;

Page 2: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Linguagens padrão para representação de ontologias na web

Elementos de uma ontologia: Hierarquia de conceitos (ou taxonomia) Restrições sobre os valores dos atributos dos conceitos (parte

dos axiomas) Regras dedutivas sobre os conceitos (outra parte dos axiomas) Instâncias dos conceitos

Linguagem ideal para representação de ontologias: Contemple todos os elementos de uma ontologia (taxonomia,

axiomas e instâncias) Ainda não existe Atualmente:

De um lado DAML-OIL para taxonomia, instâncias e restrições Do outro lado RuleML para regras dedutivas Ainda não propriamente integrado No entanto, ambos camadas em cima de XML F-Logic, por exemplo, contempla todos os elementos, mas não

possui em si facilidade para distribuição na web

Page 3: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

DAML-OIL: definição e características

Junção de duas linguagens de representação de conhecimento: DAML - DARPA Markup Language:

inicialmente desenvolvida pelo DARPA e atualmente apoiada pela W3C;

Camada em cima de XML e RDF; Extensão de RDFS para codificar classes de maneira mais

sofisticada

OIL - Ontology Inference Layer: desenvolvimento financiado pela União Européia; linguagem baseada em Frames; semântica formal e serviços de raciocínio provido por lógica

descritiva; extensão de RDF Schema

Page 4: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Estrutura de um documento DAML-OIL

<?xml version=“1.0” enconding=”UTF-8”?> <!-- Criacao de alias para os namespaces--> <rdf:RDF xmlns:rdf=“http://www.w3.org/1999/....” xmlns:daml=”http://www.w3.org/2001/....”>

<!-- Cabeçalho da ontologia--> <daml:Ontology rdf:about=“”> <daml:versionInfo>1.0</daml:versionInfo> <daml:comment>Example Ontology</daml:comment> <daml:imports rdf:resource=“http://www.....”> </daml>

<!-- Definição da ontologia propriamente dita com as construções a seguir-->

Page 5: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Como DAML-OIL estende RDFS

Definindo e implementado conceitos não suportados em RDFS: Tipos de Dados:

Literais RDF são essencialmente strings; DAML-OIL permite tipos definidos em XSDL ou pelo usuário;

<rdfs:Class rdf:ID=“Publication”> <rdfs:label>Person`s Publications</rdfs:label> <rdfs:comment>Students or Professors...</rdfs:comment></rdfs:Class><daml: DatatypeProperty rdf:ID=“idPublication”> <rdfs:label>Publication Identifier</rdfs:label> <rdfs:domain rdf:resource=“#Publication”/> <rdfs:range

<rdf:resource=“http://www.w3.org/.../XMLSchema#nonNegativeInteger”/> </daml:DatatypeProperty>

Page 6: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Como DAML-OIL estende RDFS

Restrições de Unicidade

<daml: DatatypeProperty rdf:ID=“idPublication”> <rdfs:label>Publication Identifier</rdfs:label> <rdfs:domain rdf:resource=“#Publication”/> <rdfs:range

rdf:resource=“http://www.w3.org/.../XMLSchema#nonNegativeInteger”/><rdfs:type rdf:resource=“http://www.w3.org/.../daml+oil#UniqueProperty”/>

</daml:DatatypeProperty>

Page 7: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Como DAML-OIL estende RDFS

Classes de Enumeração (tipo definido pelo usuário):

<daml:Class rdf:ID=“publicationType”> <daml:oneOf parseType=“daml:collection”>

<daml:Thing rdf:ID=“JournalArticle”> <rdfs:label>Journal Article</rdfs:label> </daml:Thing> <daml:Thing rdf:ID=“TechnicalReport”> <rdfs:label>Technical Report</rdfs:label>

</daml:Thing> </daml:oneOf> </daml:Class>

Page 8: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Como DAML-OIL estende RDFS

Expressões em classes Disjunção

<daml:Class rdf:ID=“ArticleInBook”> <rdfs:label>Articles in Books</rdfs:label> <rdfs:comment>Articles published

in...</rdfs:comment> </daml:Class> <daml:Class rdf:ID=“JournalArticle”>

<rdfs:label>Journal Article</rdfs:label> <rdfs:comment>Articles published

in...</rdfs:comment> <daml:disjointWith rdf:resource=“ArticleInBook”>

</daml:Class>

Page 9: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Como DAML-OIL estende RDFS

Disjunção / Subclasses <daml:Class rdf:ID=“Article”>

<rdf:comment>Published Articles...</rdfs:comment>

<daml:disjointUnionOf parseType=“daml:collection”>

<daml:Class rdf:ID=“ArticleInBook”> <rdfs:label>Articles in Books</rdfs:label> <rdfs:comment>Articles published

in...</rdfs:comment> </daml:Class> <daml:Class rdf:ID=“JournalArticle”>

<rdfs:label>Journal Article</rdfs:label> <rdfs:comment>Articles published

in...</rdfs:comment> </daml:Class>

</daml:disjointUnionOf>

</daml:Class>

Page 10: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Como DAML-OIL estende RDFS

União<daml:Class rdf:ID=“Event”>

<rdf:comment>Events...</rdfs:comment>

<daml:unionOf parseType=“daml:collection”>

<daml:Class rdf:ID=“Meeting”> <rdfs:label>Meetings</rdfs:label> <rdfs:comment>Meetings...</rdfs:comment>

</daml:Class> <daml:Class rdf:ID=“Conference”>

<rdfs:label>Conference</rdfs:label> <rdfs:comment>Conferences...</rdfs:comment>

</daml:Class>

</daml:unionOf>

</daml:Class>

Page 11: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Como DAML-OIL estende RDFS

Inferência de Propriedades Propriedades Inversas

<daml:ObjectProperty rdf:ID=“supervisor”> <rdfs:label>Supervisor</rdfs:label> <daml:domain rdf:resource=“#Student”/>

<daml:range rdf:resource=“#Researcher”/> </daml:Class> <daml:Class rdf:ID=“supervises”> <rdfs:label>Supervises</rdfs:label> <daml:inverseOf rdf:resource=“#supervisor”/> <daml:domain rdf:resource=“#Researcher”/>

<daml:range rdf:resource=“#Student”/> </daml:Class>

Page 12: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Como DAML-OIL estende RDFS

Propriedades Transitivas (definição de classes)

<daml:TransitiveProperty rdf:ID=“member”>

<rdfs:label>Member</rdfs:label> <rdfs:comment>Member of a Research

Organization</rdfs:comment>

</daml:TransitiveProperty >

<daml:Class rdf:ID=“ResearchOrganization”>

<rdfs:label>Research Organization</rdfs:label>

</daml:Class>

<daml:Class rdf:ID=“Researcher”>

<rdfs:label>Researchers</rdfs:label>

</daml:Class>

Page 13: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Como DAML-OIL estende RDFS

Propriedades Transitivas (instanciação) <ResearchOrganization rdf:ID=“AmericanInstitute”> <rdfs:label>American Resarch Institute</rdfs:label> </ResearchOrganization> <ResearchOrganization rdf:ID=“BrazilianInstitute”> <rdfs:label>Brazilian Resarch Institute</rdfs:label> <member rdf:resource=“AmericanInstitute”> </ResearchOrganization> <Researcher rdf:ID=“jr”> <rdfs:label>Jacques Robin</rdfs:label>

<member rdf:resource=“BrazilianInstitute”> </ Researcher>

Page 14: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Como DAML-OIL estende RDFS

Outros conceitos: Restrição por propriedades por valor (hasValue):

classificar uma instância pelo valor de seu atributos. Ex: se um produto tem uma propriedade “sexo destino” preenchida como “masculino”, poderia classificá-lo como produto masculino.

Restrição por propriedades por tipo (hasClass): classificar uma instância pelo tipo de seu atributos. Ex: se um esporte tem uma propriedade “apetrecho envolvido” preenchido como “bola de meia” poderei classificá-lo na categoria de esportes que precisam de uma bola para ser jogado.

Equivalência de classes (equivalentTo): permite raciocínio entre ontologias diferentes. Ex: podemos declarar que numa ontologia A a classe Estudante eqüivale à classe Aluno na ontologia B.

Page 15: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Como DAML-OIL estende RDFS

Outros conceitos: Extensibilidade da linguagem: Permite que novas

linguagens possam ser criadas a partir das definições herdadas de DAML-OIL (na realidade esse conceito é compartilhado com RDFS). Ex: Criação de DAML-Logic.

Restrições de cardinalidade e cardinalidade qualificada: permite construções do tipo: um aluno deve possuir cinco artigos ao final do mestrado (cardinalidade). Desses cinco, três devem ser em Publicações OnLine(cardinalidade qualificada)

Page 16: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Semântica formal de DAML-OIL

Existem duas propostas: Baseada na lógica

Traduz sentenças DAML-OIL para sentenças KIF (outra linguagem padrão para ontologia na web ) que por suas vezes possuem tradução direta para sentenças da lógica dos predicados na primeira ordem aumentada com listas de elementos

Baseada na teoria do conjuntos Representa sentenças DAML-OIL em sentenças da teoria

de conjuntos. Ex: Sentença DAML-OIL: <sameClassAs,?C,?D> Sentença em conjuntos: IC(?C) = IC(?D) onde, IC = função que mapeia classes em uma coleção de

objetos DAML-OIL

Page 17: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Ferramentas de desenvolvimento e uso de ontologias em DAML-OIL

http://www.daml.org/tools/

Page 18: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Limitações de DAML-OIL

Construtores limitados de propriedades composição, produto, ...

Apenas relações unárias e binárias entre entidades

Sem comparação ou agregação de valores

Sem valores default

Page 19: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

RuleML: definição e motivação

- Necessidade de representar regras na Web Semântica- Regras reativas: especificar comportamento em resposta a

determinados eventos;- Regras dedutivas: inferir conclusões a partir da conjunção de

determinados dados; - Regras de definição de restrições de integridade: dado um

conjunto de dados, os mesmos satisfazem certas restrições?

- Construção de uma linguagem independente de padrões proprietários => provimento de interoperabilidade;

- Unificação das linguagens previamente propostas para representação de regras na WEB.- RuleML = RFML + URML + AORML + ....- Manter compatibilidade com versões anteriores

Page 20: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

RuleML: estágio atual

- Rule Markup Iniative: participantes da academia e indústria líderes em representação de conhecimento e Markup Languages- Tentar construir uma linguagem em conformidade com os

padrões da WEB e que atenda às necessidades dos participantes.

- Rule Markup Language: representação de regras em XML.- Representação de regras reativas, derivativas, restrições

de integridade e fatos.- Representação de sua sintaxe em DTD (versão atual 0.8)

Page 21: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Revisão das várias linguagens de regras usadas em IA

Regras de reação ou produção: P1 ... Pn do A, onde A é uma ação a executar quando a

conjunção de premissas é verificada Regras de derivação e regras Prolog:

P1 ... Pn do assert C Caso particular de regra de produção na qual a ação é

acrescentar conclusão C na base de conhecimento Equivalente a regra Prolog C :- P1, ..., Pn.

Fatos: regras de derivação sem premissas Regras Datalog:

Restrição de regras Prolog sem funções aninhadas dentro de predicados

Ex, p(g(X,b),f(a)) :- q(X), r(f(b)), OK em Prolog, mas não em Datalog

Restrições adicionais de Datalog: Apenas predicados binários, ex, excluindo vende(V,C,P) Lógica proposicional, sem variáveis, apenas constantes

Page 22: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Revisão das várias linguagens de regras usadas em IA

EqualLog: extensão de Prolog

Com igualdade entre constantes Ex: f(b,c) :- g(b), t(c), c=d

Restrições de integridade P1 ... Pn do signal inconsistency

RuleML extende esses formalismos com URL e URI como constantes

Page 23: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Subconjuntos de RuleML

Page 24: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Estrutura de regras em RuleML

Regras Reativas

/ \

1. / \ 2.

/ \

Restrições de Integridade Regras de Derivação

|

3. |

|

fatos

Page 25: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Sintaxe RuleML para vários tipos de regras

- Regras Reativas:

<rule> <_body> <and> prem1 ... premN </and> </_body> <_head>

action </_head></rule>

Page 26: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Sintaxe RuleML para vários tipos de regras

- Restrições de Integridade: <ic>

<_body> <and> prem1 ... premN </and> </_body> </ic> implementado por <rule> <_body> <and> prem1 ... premN </and> </_body> <_head> <signal> inconsistency </signal> </_head>

</rule>

Page 27: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Sintaxe RuleML para vários tipos de regras

- Regras Derivativas: <imp> <_head> conc </_head> <_body>

<and> prem1 ... premN </and> </_body>

</imp> implementado por <rule>

<_body> <and> prem1 ... premN </and>

</_body> <_head>

<assert> conc </assert> </_head>

</rule>

Page 28: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Sintaxe RuleML para vários tipos de regras (identar)

- Fatos: <fact> <_head> conc </_head> </fact>

implementado por <imp> <_head> conc </_head> <_body>

<and> </and> </_body> </imp>

Page 29: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Tipologia das regras RuleML

- Valores atômicos- <atom> elem1 </atom>

- Conjunção:- <and> elem1 elem2 ... elemN </and>

- Disjunção- <or> elem1 elem2 ... elemN </or>

- Funções- <_opr> elem1 </opr>

- Relação- <rel> elem1 </rel>

Page 30: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Tipologia das regras RuleML

<fact> <_head> <atom> <_opr><rel>vendeu</rel></_opr> <ind>Lucas</ind>

<ind>Maria</ind> <ind>livro</ind> </atom> </_head></fact>

Page 31: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Tipologia das regras RuleML

- Negação- fraca (não verdade): eu não conheço RuleML

- a não verdade não implica falsidade- <not> elem1 </not>

- forte (falsidade): eu desconheço RuleML- a não verdade implica falsidade- <neg> elem1 </neg>

- Variáveis- <var> elem1 </var>

- Constantes- <ind> elem1 </ind>

Page 32: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Tipologia das regras RuleML

<imp>

<_head>

<atom>

<_opr><rel>EhAlunoMestrado</rel></_opr>

<var>pessoa</var>

</atom>

</_head>

<_body>

<and>

<or>

<atom>

<_opr><rel>Selecionado</rel></_opr>

<var>pessoa</var>

</atom>

Page 33: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Tipologia das regras RuleML

<atom>

<_opr><rel>Especial</rel></_opr>

<var>pessoa</var>

</atom>

</or>

<not>

<atom>

<_opr><rel>AssassinadoNoEstacionamento</rel></_opr>

<var>pessoa</var>

</atom>

</not>

<and>

</_body>

</imp>

Page 34: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Tipologia das regras RuleML

- Prioridades- Usada para resolução de conflitos entre regras

- <_spriority> elem1 <spriority>

Page 35: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Complemento da ontologia acadêmica abaixo da ontologia geral

do AIMA com regras RuleML

Page 36: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Exemplo de regras RuleML e F-Logic

- F-Logic X:pessoa[idade -> I] :- I >= 0, I <= 130.

- RuleML <imp> <_head>

<atom> <_opr><rel>Pessoa</rel><_opr> <var>X</var>

</atom> </_head>

Page 37: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Exemplo de regras RuleML e F-Logic

<_body> <and>

<atom> <_opr><rel>MaiorIgual</rel><_opr>

<var>idadeX</var> <ind>0</ind>

</atom> <atom>

<_opr><rel>MenorIgual</rel><_opr> <var>idadeX</var> <ind>130</ind>

</atom> </and> </_body> </imp>

Page 38: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Exemplo de regras RuleML e F-Logic

- F-Logic meiaIdade(P) :- P:prof.

- RuleML<imp>

<_head> <atom> <_opr><rel>MeiaIdade</rel><_opr> <var>P</var>

</atom> </_head>

<_body> <atom> <_opr><rel>Professor</rel><_opr>

<var>P</var> </atom> </_body> </imp>

Page 39: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Ferramentas de desenvolvimento e uso de base de regras RuleML

http://www.dfki.uni-kl.de/ruleml/#Engines

Page 40: Motivação de linguagens de ontologias na WEB*  Evolução da distribuição da informação na WEB (para ser processados por software e não apenas lidos por

Limitações de RuleML

- Base de regras não referencia um modelo de informação onde possa atuar:- RuleML deveria prover formas de incluir modelos de

informação como DAML-OIL em sua base. Ex: um atributo da base.

- Variáveis da base poderiam ser linkadas a modelos externos onde estas poderiam ser definidas. Ex: UML class.