Lógicas Descritivas & CARIN Jacques Robin & Thiago Santos Histórico Redes Semânticas Nós e associações; Herança; Confusão entre classe/sub-classe e classe/instâncias; Falta de semântica clara das associações; Nível do conhecimento diretamente mapeado para o nível da implementação, sem nível lógico intermediário. Frames Redes Semânticas aumentadas com: Valores default (raciocínio não monótono); Procedimentos. Mesmos problemas que redes semânticas. Lógica Descritivas: emergiram para superar as limitações destes. Filosofia Usar lógica para definir formalmente semântica de formalismos de representação de conhecimento OO. Estudar computabilidade e complexidade das linguagens e serviços de inferência antes de implementá-los. Limitar expressividade para garantir esses serviços sejam computacionalmente tratáveis. SPIV invade a IA. Lógicas Descritivas (LDs) Formalismos lógicos para representação das informações sobre classes de indivíduos e suas descrições. Subconjunto da lógica de primeira ordem, trata de: Relações unárias (conceitos) Exemplo: Student Relações binárias (papéis); Exemplo: SUPERVISED {(x,y) | SUPERVISED(x,y) } Possui também: Construtores sobre os conceitos (,, outros) Exemplo: PdhStudent = Student SUPERVISED.AcademicStaff { x | Student(x) y.SUPERVISED(x,y) AcademicStaff(y) } Indivíduos, e instâncias dos conceitos {x | Student(x)} franklin, jacques, thiago; Student(thiago), PhdStudent(franklin), Researcher(jacques) Trade-offs entre expressividade e complexidade computacional conhecidos. Construtores Semântica Baseada na teoria dos conjuntos; Semântica definida por uma interpretação (I,I); Conjunto não-vazio, domínio I; Função de interpretação I que mapeia: I Todo conceito em um subconjunto de ; I I Todo papel em um subconjunto de x ; Unicidade de nome I I Se a b então a b Um modelo para C é uma interpretação onde CI é não-vazio Um conceito é satisfiable se ele possui pelo menos um modelo. Semântica dos construtores Bases de conhecimento em LD KB = Tbox + Abox Tbox (Terminological part) = Descrições Exemplos: Student = Person STUDIESAT.University PhdStudent Student Researcher Abox (Assertional part) = Instâncias Exemplos: PdhStudent (franklin) STUDIESAT (franklin,UFPE) Serviços de inferência Dada uma base de conhecimento = <Tbox,Abox>, dois conceitos C e D, e um indivíduo a, chamamos: Satisfiability: |= C Subsumption: |= C D Verificar se C é subsumed por D. CI DI em todo modelo I de Exemplo: Employee Person Student ? Consistência: |= Verificar se há um modelo I de tal que CI Exemplo: Student Person ? Verificar se a própria base tem um modelo. Exemplo: Student = Person ? Classificação de instância: |= C(a) Verificar se uma dada asserção é válida. Exemplo: Person(franklin) Raciocínio na Tbox Tbox: Syntax-based reasoning: Structural Comparison Semantic-based reasoning: Constraint Systems Expressividade Vs Complexidade Expressividade é diretamente proporcional à complexidade computacional. Exemplo: Estrutura Acadêmica LD para o exemplo = <Tbox,Abox> Tbox – Conceitos Student Person STUDIESAT Student University Student = Person STUDIESAT.University Employee Person AFILIATEDTO Employee Organization Employee = Person AFILIATEDTO.Organization AcademicSaff Employee SUPERVISES AcademicStaff PhdStudent AcademicSaff = Employee SUPERVISES.PdhStudent Researcher AcademicStaff PhdStudent Student Researcher SUPERVISED PhdStudent AcademicStaff PdhStudent = Student SUPERVISED.AcademicStaff Abox – Instâncias Student(thiago) STUDIESAT(thiago,UFPE) PhdStudent(franklin) STUDIESAT(franklin,UFPE) Researcher(jacques) SUPERVISED(franklin,jacques) AFILIATEDTO(jacques,UFPE) Exemplos de serviços (1/4) |= C |= Student Person ? Equivalente a: Se já temos x Student(x) Person(x) Student Person = ? x Student(x) Person(x) x Person(x) Person(x) que é impossível. Logo o conjunto formado pela conjunção Student Person é . Não satisfiable. Person e1 e2 Student e5 ... en e14 Exemplos de serviços (2/4) |= C D |= AcademicStaff Researcher ? AcademicStaff Researcher Equivalente a: x Researcher(x) AcademicStaff(x) O conjunto de indivíduos do tipo Researcher está contido no do conjunto de AcademicStaff. AcademicStaff e1 e2 Research e5 ... en e14 Exemplos de serviços (3/4) |= A base contém asserções/definições contraditórias? Adicionando Person(franklin) mantém a base consistente ? Raciocinando com as instâncias da Abox e conceitos da Tbox, temos: Ao término das expansões da Abox temos: PhdStudent(franklin) : Abox Student(franklin) : Regra PhdStudent Student da Tbox Person(franklin) : Regra Person Student da Tbox Abox = Abox0 , Student(franklin), Person(franklin) Ao adicionarmos Person(franklin) teríamos uma KB com contradições, isto é, inconsistente onde franklin é Student e franklin não é Student. Conclusão: Uma KB que possua a Tbox anterior, não pode ter Abox com asserções do tipo PhdStudent(franklin) e Person(franklin) pois se torna uma base inconsistente. Exemplos de serviços (4/4) |= C(a) |= Person(franklin) ? Raciocínio sobre a hierarquia definida na Tbox, gera: Student(franklin) Person(franklin) Assim, Person(franklin) pode ser deduzido como uma instância válida dentro da KB. Aplicações Ontologias Terminologia médica; Taxonomia biológica; Baseadas na Web (OIL, DAML+OIL). Configuração de sistemas Bancos de dados Modelagem de esquemas; Otimização de consultas; Interoperabilidade; Verificação de consistência dos dados. CARIN Linguagem que combina: Lógicas descritivas ( ALCNR ) Cláusulas de Horn ( Regras dedutivas) KB = <T,R,A> Uma Tbox da lógica descritiva (T); Um conjunto de regras (R); Um conjunto fatos para os conceitos, papéis e predicados que estão em T e R (A). Contribuições Um mecanismo de inferência completo para declarações não-recursivas em ALCNR; Um algoritmo para determinar subsumption em ALCNR. CARIN – Regras e Restrições Lógica descritiva Sejam C e D conceitos, pode-se: Criar definições Descrever inclusões C=D CD Regras X[p1(X1) pn(Xn) q(Y)], onde: Y {X1,,Xn) p1,,pn são conceitos, papéis, expressões, ou ainda predicados que não constam na Tbox. q não pode ser um conceito ou papel. O raciocínio sobre a estrutura deve estar na Tbox, não nas regras. Um predicado q é dito dependente de um predicado p se p é precedente em uma regra que gera q. Regras em CARIN Considerando a Tbox e Abox já apresentadas. Adicionando ao componente de regras: AcademicStaff(X) 7 SUPERVISES(X) Overloaded(X) Student(X) AcademicStaff(Y) SUPERVISED(X,Y) SpecialStudent(X) Poderíamos responder as perguntas: Overloaded(jacques)? Jacques está sobrecarregado? R: não SpecialStudant(franklin)? Franklin é um aluno especial? R: não Referências Curso de Lógicas Descritivas Enrico Franconi, Department of Computer Science, University of Manchester, UK http://www.cs.man.ac.uk/~franconi/dl/course Referências da aula “Ontologias na Web” http://www.cin.ufpe.br/~compint/aulas-IAS/mci2/taias-012