Lógicas de Descrição
Visão geral
Lógicas de Descrição (Description Logics, DLs) são uma família de linguagens de representação de conhecimento (knowledge representation) baseadas em lógica, projetadas para ontologias (ontologies): modelos formais, interpretáveis por máquina, de um domínio (por exemplo, medicina, produtos, organizações). As lógicas de descrição são melhor compreendidas como fragmentos decidíveis da lógica de primeira ordem (first-order logic, FOL): são expressivas o suficiente para modelar muitos domínios estruturados, ao mesmo tempo em que são restritas o bastante para que problemas-chave de raciocínio permaneçam solucionáveis algoritmicamente.
As lógicas de descrição estão no núcleo de padrões modernos de ontologias, como a Linguagem de Ontologias da Web (Web Ontology Language, OWL) usada na Web Semântica (Semantic Web). Elas são um tema central em Lógica e na modelagem prática de conhecimento, junto com Regras, Ontologias, Grafos de Conhecimento.
Por que as lógicas de descrição importam:
- Significado preciso (semântica formal): definições e restrições têm uma interpretação matemática clara.
- Raciocínio automatizado (automated reasoning): você pode derivar fatos implícitos, verificar contradições e computar hierarquias de classes.
- Compromisso de engenharia (engineering trade-off): diferentes lógicas de descrição oferecem diferentes balanços entre expressividade e custo computacional.
Ideias centrais e vocabulário
As lógicas de descrição modelam um domínio usando três tipos principais de símbolos:
- Conceitos (concepts) (predicados unários): conjuntos de indivíduos, por exemplo,
Person,Cat,Mammal - Papéis (roles) (predicados binários): relações entre indivíduos, por exemplo,
hasChild,ownsPet - Indivíduos (individuals) (constantes): entidades nomeadas, por exemplo,
alice,fido
Uma ontologia/base de conhecimento (knowledge base) é comumente dividida em:
- TBox (Terminological Box): conhecimento em nível de esquema (schema) (definições e inclusões de classes)
- ABox (Assertional Box): conhecimento em nível de dados (facts) (fatos sobre indivíduos)
- RBox (Role Box): axiomas de papéis (por exemplo, hierarquias de papéis, transitividade); às vezes tratada como parte da TBox dependendo da apresentação
Essa divisão espelha como muitos sistemas separam um esquema de instâncias (instances), mas com uma semântica baseada em lógica, em vez de um esquema de banco de dados.
Uma lógica de descrição pequena, mas expressiva: ALC
Uma lógica de descrição “baseline” comum é a ALC, que suporta:
- Combinações booleanas de conceitos (and/or/not)
- Restrições existenciais e universais de papéis
Partindo de conceitos atômicos (atomic concepts) A e papéis atômicos (atomic roles) R, as expressões de conceito em ALC são construídas com construtores como:
- Topo / Fundo:
⊤(tudo),⊥(nada) - Conjunção:
C ⊓ D(interseção) - Disjunção:
C ⊔ D(união) - Negação:
¬C - Restrição existencial (existential restriction):
∃R.C(“tem um sucessor em R que está em C”) - Restrição universal (universal restriction):
∀R.C(“todos os sucessores em R estão em C”)
Muitas lógicas de descrição práticas estendem ALC com construtores adicionais (restrições numéricas, inversos, nominais, cadeias de papéis, tipos de dados), mas ALC é suficiente para ilustrar a semântica central e as tarefas de raciocínio.
Semântica formal (significado teórico-modelar)
As lógicas de descrição usam semântica teórico-modelar (model-theoretic semantics) padrão (como na lógica de primeira ordem), baseada em uma interpretação (interpretation):
- Uma interpretação é ( \mathcal{I} = (\Delta^\mathcal{I}, \cdot^\mathcal{I}) )
- ( \Delta^\mathcal{I} ) é um domínio (domain) não vazio de indivíduos
- ( \cdot^\mathcal{I} ) mapeia:
- cada nome de conceito
Apara um conjunto ( A^\mathcal{I} \subseteq \Delta^\mathcal{I} ) - cada nome de papel
Rpara uma relação ( R^\mathcal{I} \subseteq \Delta^\mathcal{I} \times \Delta^\mathcal{I} ) - cada nome de indivíduo
apara um elemento ( a^\mathcal{I} \in \Delta^\mathcal{I} )
- cada nome de conceito
Os construtores são interpretados como:
- ( \top^\mathcal{I} = \Delta^\mathcal{I} ), ( \bot^\mathcal{I} = \emptyset )
- ( (C \sqcap D)^\mathcal{I} = C^\mathcal{I} \cap D^\mathcal{I} )
- ( (C \sqcup D)^\mathcal{I} = C^\mathcal{I} \cup D^\mathcal{I} )
- ( (\neg C)^\mathcal{I} = \Delta^\mathcal{I} \setminus C^\mathcal{I} )
- ( (\exists R.C)^\mathcal{I} = { x \mid \exists y.\ (x,y)\in R^\mathcal{I} \land y \in C^\mathcal{I} } )
- ( (\forall R.C)^\mathcal{I} = { x \mid \forall y.\ (x,y)\in R^\mathcal{I} \Rightarrow y \in C^\mathcal{I} } )
Semântica de TBox e ABox
Axiomas típicos incluem:
- Inclusão de conceito (subclasse (subclass)): ( C \sqsubseteq D ) significando ( C^\mathcal{I} \subseteq D^\mathcal{I} )
- Equivalência de conceito: ( C \equiv D ) significando igualdade das extensões
- Asserção (instance-of): ( C(a) ) significando ( a^\mathcal{I} \in C^\mathcal{I} )
- Asserção de papel: ( R(a,b) ) significando ( (a^\mathcal{I}, b^\mathcal{I}) \in R^\mathcal{I} )
Uma base de conhecimento é satisfatível (satisfiable) (tem um modelo) se existe alguma interpretação ( \mathcal{I} ) que satisfaça todos os seus axiomas.
Exemplo prático de modelagem (TBox + ABox)
Considere uma ontologia minúscula sobre pessoas e animais de estimação.
TBox (esquema)
Em notação de lógica de descrição:
Dog ⊑ Animal
Cat ⊑ Animal
Dog ⊓ Cat ⊑ ⊥ # Dog and Cat are disjoint
PetOwner ≡ Person ⊓ ∃hasPet.Animal
AnimalLover ⊑ Person
AnimalLover ⊑ ∀hasPet.Animal # all pets of an AnimalLover are Animals
Intuição:
- Todo cachorro e gato é um animal.
- Nada pode ser ao mesmo tempo um cachorro e um gato.
- Um
PetOwneré uma pessoa que tem pelo menos um animal de estimação que é um animal. - Um
AnimalLoveré uma pessoa cujos animais de estimação (se houver) são todos animais.
ABox (fatos)
Person(alice)
Dog(fido)
hasPet(alice, fido)
O que um raciocinador (reasoner) pode inferir
De Dog ⊑ Animal, inferir:
Animal(fido)
Então, a partir da definição PetOwner ≡ Person ⊓ ∃hasPet.Animal, inferir:
PetOwner(alice)
Detectando inconsistência
Se adicionalmente afirmarmos:
Cat(fido)
então, como Dog ⊓ Cat ⊑ ⊥, a base de conhecimento se torna inconsistente (insatisfatível): nenhuma interpretação pode satisfazer que fido seja ao mesmo tempo Dog e Cat enquanto essas classes são disjuntas.
Esse tipo de detecção de contradição é um dos benefícios mais práticos das lógicas de descrição na engenharia de ontologias (ontology engineering).
Tarefas padrão de raciocínio
Problemas de raciocínio em lógicas de descrição são definidos com precisão e são centrais tanto na teoria quanto nas ferramentas de OWL.
Satisfatibilidade de conceito (concept satisfiability)
Pergunta: Uma descrição de conceito pode ser possivelmente não vazia dada a TBox?
- Entrada: TBox ( \mathcal{T} ), conceito ( C )
- Pergunta-se se existe um modelo ( \mathcal{I} ) de ( \mathcal{T} ) com ( C^\mathcal{I} \neq \emptyset )
Exemplo:
- Se a TBox contém
Dog ⊓ Cat ⊑ ⊥, entãoDog ⊓ Caté insatisfatível.
A satisfatibilidade é útil para encontrar definições de classe impossíveis.
Consistência da base de conhecimento (satisfatibilidade da ontologia)
Pergunta: A TBox + ABox combinadas têm pelo menos um modelo?
Isso captura dados e restrições contraditórios (como o conflito Dog(fido) e Cat(fido) acima).
Subsunção (subsumption) (hierarquia de classes)
Pergunta: ( C \sqsubseteq D ) decorre da TBox?
A subsunção sustenta a construção e validação de taxonomias:
- Se
PetOwner ≡ Person ⊓ ∃hasPet.Animal, entãoPetOwner ⊑ Personé implicado.
Raciocinadores podem computar automaticamente muitas relações de subclasse não afirmadas explicitamente.
Equivalência de conceitos
Pergunta: Temos tanto ( C \sqsubseteq D ) quanto ( D \sqsubseteq C )?
A equivalência é comum para definir classes nomeadas em termos de condições, como em PetOwner ≡ ....
Verificação de instância (instance checking)
Pergunta: ( \mathcal{K} \models C(a) ) vale (o indivíduo a é necessariamente uma instância do conceito C)?
No exemplo, um raciocinador pode provar PetOwner(alice) via a definição na TBox mais os fatos na ABox.
Classificação e realização (realization) (raciocínio em lote)
Ferramentas de ontologias frequentemente executam essas tarefas “em lote”:
- Classificação (classification): computar a hierarquia completa inferida de subclasses entre classes nomeadas.
- Realização: computar os tipos inferidos mais específicos de cada indivíduo.
Esses são fluxos de trabalho práticos em editores como o Protégé e em pipelines de produção.
Resposta a consultas (query answering) (onde lógica de descrição encontra dados)
Além de verificações de instância única, muitas vezes deseja-se consultar indivíduos que correspondem a um padrão, por exemplo, “todas as pessoas que possuem um animal”. Em sistemas baseados em lógicas de descrição isso aparece como:
- Consultas conjuntivas (conjunctive queries, CQs) ou SPARQL sobre dados RDF/OWL (com regimes de consequência lógica).
Algumas famílias de lógicas de descrição (notavelmente DL-Lite / OWL 2 QL) são projetadas para que a resposta a consultas possa ser reescrita em SQL e executada de forma eficiente sobre backends relacionais.
Construtores comuns de lógicas de descrição além de ALC (o que você vê em OWL)
Lógicas de descrição práticas estendem ALC com recursos que aumentam o poder de modelagem:
- Hierarquias de papéis: ( R \sqsubseteq S ) (subpropriedade (subproperty))
- Papéis inversos: ( R^{-} ) (se
hasChild, então o inverso éhasParent) - Papéis transitivos: por exemplo,
ancestorOfé transitivo - Restrições numéricas (number restrictions):
- pelo menos: ( \geq n\ R.C )
- no máximo: ( \leq n\ R.C )
- exatamente: ( =n\ R.C )
- Nominais (nominals): classes singleton como
{alice}(úteis, mas aumentam a complexidade) - Cadeias de papéis (role chains) (caminhos de propriedades): por exemplo,
hasParent ∘ hasParent ⊑ hasGrandparent - Tipos de dados (datatypes): restrições sobre literais (strings, inteiros, datas), por exemplo,
hasAgealgum inteiro ≥ 18
Esses aparecem em OWL 2 DL (baseada em uma lógica de descrição chamada SROIQ(D)).
Decidibilidade e complexidade: por que as lógicas de descrição são “cuidadosamente limitadas”
Lógicas de descrição são projetadas para que tarefas centrais de raciocínio sejam decidíveis. Na lógica de primeira ordem irrestrita, muitos problemas (por exemplo, satisfatibilidade) são indecidíveis; por isso, lógicas de descrição impõem restrições sintáticas para permanecer em uma região tratável ou, pelo menos, decidível.
Dito isso, decidível não significa fácil:
- O raciocínio em ALC é ExpTime-completo (no pior caso).
- OWL 2 DL muito expressiva (SROIQ(D)) tem complexidade de pior caso ainda maior (frequentemente descrita como 2NExpTime-completo para tarefas-chave).
- Algumas lógicas de descrição são projetadas para escalabilidade:
- Família EL (OWL 2 EL): raciocínio em tempo polinomial; boa para grandes ontologias biomédicas.
- Família DL-Lite (OWL 2 QL): resposta a consultas eficiente via reescrita.
- OWL 2 RL: projetada para implementações com mecanismos de regras.
Na prática, o desempenho depende do formato da ontologia, do uso de certos construtores (nominais e axiomas de papéis complexos podem ser custosos) e de otimizações do raciocinador.
Como o raciocínio funciona (visão de alto nível)
Raciocinadores implementam algoritmos que decidem satisfatibilidade, subsunção etc. As famílias mais comuns são:
- Algoritmos de tableau (tableau algorithms): tentam construir um modelo (ou mostrar que nenhum existe) expandindo restrições implicadas por axiomas. Usam técnicas como bloqueio (blocking) para garantir terminação.
- Hipertableau (hypertableau) / raciocínio baseado em consequências (consequence-based reasoning): variantes otimizadas usadas em raciocinadores OWL modernos, muitas vezes muito mais rápidas em ontologias realistas.
- Materialização baseada em regras (rule-based materialization) (encadeamento para frente (forward chaining)): comum para perfis como OWL 2 RL, em que axiomas podem ser compilados em regras do tipo Horn.
Do ponto de vista do usuário, tipicamente você não escolhe um algoritmo diretamente; você escolhe um perfil de OWL / fragmento de lógica de descrição e um raciocinador que o suporte.
Semântica de mundo aberto e outras suposições de modelagem
Lógicas de descrição (e OWL) tipicamente usam a Hipótese de Mundo Aberto (Open World Assumption, OWA):
- Se algo não é declarado, é desconhecido, não falso.
Exemplo: Se você afirma Person(alice), mas não declara nenhum animal de estimação, você não pode concluir ¬PetOwner(alice). Alice pode ter um animal de estimação que você simplesmente não registrou.
Outros dois pontos importantes:
- Sem Hipótese de Nome Único (Unique Name Assumption, UNA) por padrão:
aliceea_smithpodem se referir ao mesmo indivíduo, a menos que se declare que são diferentes (em OWL, viaDifferentIndividuals). - Monotonicidade (monotonicity): adicionar fatos não pode invalidar consequências lógicas (entailments) anteriores (embora possa tornar a base de conhecimento inconsistente; após isso, tudo é consequência lógica na lógica clássica — raciocinadores tipicamente reportam inconsistência em vez de “derivar tudo”).
Essas suposições diferem de muitos sistemas de bancos de dados e de regras; entendê-las é essencial para um bom design de ontologias.
Lógicas de descrição na prática: OWL e perfis
A maior parte do uso real de lógicas de descrição hoje ocorre via OWL:
- OWL 2 DL corresponde de perto a SROIQ(D): muito expressiva, totalmente decidível.
- Perfis de OWL (OWL 2 profiles) são fragmentos restritos projetados para casos de uso específicos:
- OWL 2 EL: grandes hierarquias de classes, muitas restrições existenciais; classificação rápida (comum em ciências da vida).
- OWL 2 QL: acesso a dados baseado em ontologias (ontology-based data access, OBDA), reescrita eficiente de consultas para SQL.
- OWL 2 RL: subconjunto amigável a regras; pode ser implementado com motores no estilo Programação Lógica (Prolog, Datalog).
Escolher um perfil costuma ser a decisão de engenharia mais importante ao implantar raciocínio em lógica de descrição em escala.
Aplicações
Engenharia de ontologias e interoperabilidade semântica
Lógicas de descrição apoiam a construção de vocabulários compartilhados com significado preciso, permitindo:
- integração de dados entre sistemas (semântica consistente)
- alinhamento e validação de esquemas (consistência lógica)
- classificação automatizada de entidades do domínio
Biomedicina e ciências da vida
Grandes terminologias e ontologias frequentemente usam fragmentos do tipo EL para manter o raciocínio viável:
- classificação consistente de doenças, fenótipos, anatomia
- detecção de definições contraditórias em bases de conhecimento em evolução
Grafos de conhecimento corporativos e governança de dados
Em cenários de grafos de conhecimento, lógicas de descrição podem fornecer:
- um “esquema semântico” com restrições e tipos derivados
- inferência de relações/tipos ausentes (por exemplo, se algo tem certa propriedade, deve estar em certa categoria)
- integração mais segura de fontes de dados heterogêneas
Isso complementa abordagens mais amplas discutidas em Regras, Ontologias, Grafos de Conhecimento.
Configuração e conformidade
Restrições em lógicas de descrição podem modelar “configurações válidas”:
- pacotes de produtos (componentes obrigatórios)
- restrições de compatibilidade
- restrições de conformidade (por exemplo, todos os prontuários de pacientes devem ter propriedades obrigatórias)
Quando combinadas com resposta a consultas, lógicas de descrição tornam-se uma ferramenta poderosa de conformidade e validação — embora seja importante notar as implicações da Hipótese de Mundo Aberto (desconhecido vs. falso).
Ecossistema de ferramentas (o que as pessoas realmente usam)
Ferramentas comuns em torno de lógica de descrição/OWL incluem:
- Protégé (editor) para modelagem, depuração e execução de raciocinadores
- Raciocinadores OWL como HermiT, Pellet, FaCT++, ELK (otimizado para OWL 2 EL)
Fluxo de trabalho típico:
- Modelar classes/relações na TBox (e opcionalmente importar outras ontologias).
- Adicionar indivíduos na ABox (ou vincular a dados externos).
- Executar um raciocinador para:
- classificar a ontologia (inferir estrutura de subclasses),
- verificar consistência,
- realizar indivíduos (inferir tipos).
- Corrigir inferências não intencionais (comum durante a modelagem iterativa).
Muitas ferramentas também fornecem explicações/justificativas (explanations/justifications) — conjuntos mínimos de axiomas que implicam uma dada conclusão ou inconsistência — o que é inestimável para depuração.
Lógicas de descrição e aprendizado de máquina: complementares, não concorrentes
Lógicas de descrição são simbólicas e baseadas em lógica, enquanto aprendizado de máquina (machine learning) é estatístico e orientado a dados (veja Programação Lógica Indutiva como uma ponte entre aprendizado e lógica). Interseções atuais incluem:
- Aprendizado de ontologias / indução de esquemas (schema induction): sugerir classes e relações a partir de texto ou dados em grafos.
- Embeddings de grafos de conhecimento (knowledge graph embeddings): representar entidades/relações em espaços vetoriais enquanto usa restrições ontológicas como regularizadores.
- Sistemas neuro-simbólicos (neuro-symbolic systems): combinar modelos neurais com restrições lógicas ou raciocinadores para melhor generalização e interpretabilidade.
Na prática, ontologias em lógica de descrição frequentemente servem como estrutura e restrições de alta qualidade em torno das quais componentes de aprendizado de máquina operam.
Armadilhas comuns e boas práticas
- Seja explícito sobre disjunção quando apropriado (
A ⊓ B ⊑ ⊥), caso contrário muitos “conflitos” não serão detectáveis. - Use domínio/faixa (domain/range) com cuidado: em OWL, axiomas de domínio/faixa inferem tipos; não são meramente restrições.
- Evite usar em excesso recursos muito caros (por exemplo, muitos nominais ou axiomas complexos de papéis), a menos que seja necessário.
- Escolha um perfil de OWL se você precisar de desempenho previsível em escala.
- Lembre-se da Hipótese de Mundo Aberto: se você precisa de validação em “mundo fechado” (por exemplo, “estes são todos os animais de estimação”), você pode precisar de padrões adicionais de modelagem, linguagens de restrições de integridade (como SHACL) ou técnicas de regras/banco de dados.
Resumo
Lógicas de Descrição oferecem uma base fundamentada e decidível para representar e raciocinar sobre conhecimento estruturado. Ao organizar o conhecimento em TBox (esquema) e ABox (fatos) e ao usar construtores como restrições existenciais/universais, as lógicas de descrição suportam tarefas poderosas de raciocínio automatizado, como satisfatibilidade, subsunção e verificação de instância. Na prática moderna, elas são mais visíveis por meio de ontologias OWL e são amplamente usadas em interoperabilidade semântica, ontologias biomédicas, grafos de conhecimento corporativos e sistemas de configuração/conformidade — frequentemente em conjunto com sistemas baseados em regras e aprendizado de máquina.