Upload
internet
View
104
Download
0
Embed Size (px)
Citation preview
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;
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
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
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-->
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>
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>
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>
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>
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>
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>
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>
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>
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>
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.
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)
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
Ferramentas de desenvolvimento e uso de ontologias em DAML-OIL
http://www.daml.org/tools/
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
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
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)
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
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
Subconjuntos de RuleML
Estrutura de regras em RuleML
Regras Reativas
/ \
1. / \ 2.
/ \
Restrições de Integridade Regras de Derivação
|
3. |
|
fatos
Sintaxe RuleML para vários tipos de regras
- Regras Reativas:
<rule> <_body> <and> prem1 ... premN </and> </_body> <_head>
action </_head></rule>
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>
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>
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>
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>
Tipologia das regras RuleML
<fact> <_head> <atom> <_opr><rel>vendeu</rel></_opr> <ind>Lucas</ind>
<ind>Maria</ind> <ind>livro</ind> </atom> </_head></fact>
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>
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>
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>
Tipologia das regras RuleML
- Prioridades- Usada para resolução de conflitos entre regras
- <_spriority> elem1 <spriority>
Complemento da ontologia acadêmica abaixo da ontologia geral
do AIMA com regras RuleML
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>
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>
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>
Ferramentas de desenvolvimento e uso de base de regras RuleML
http://www.dfki.uni-kl.de/ruleml/#Engines
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.