• Nenhum resultado encontrado

consulta 2 e entradas numéricas

3.3 Lógicas de Descrição

3.3.4 Tipos de Dados Concretos em DLs

Uma importante extensão em DLs são os domínios concretos, que permitem incorporar características concretas tais como números reais, inteiros, intervalos de tempo ou cadeias de caracteres (strings) em DLs (LUTZ, 2003). A partir dos domínios concretos, é possível modelar propriedades concretas dos indivíduos, como a idade de uma pessoa, o peso de um objeto, a temperatura do ambiente, além da comparação dos valores desses atributos. Por exemplo, ontologias usadas em aplicações de comércio eletrônico podem classificar itens de acordo com o peso e ainda inferir que itens pesando mais de 50kg requerem frete especial (HORROCKS; SATTLER, 2001).

Conforme descrito por Lutz (2003), um domínio concreto D é um par (∆D, ΦD) onde ∆D

é um conjunto e ΦD um conjunto de nomes de predicados. Cada nome de predicado P ∈ ΦD

é associado com uma aridade n e um predicado n-ário PD⊆ ∆n

D. Para ilustrar um exemplo de

domínio concreto numérico, ∆Dpode ser o conjunto dos números racionais Q e o conjunto ΦD

pode ser composto por predicados unários Pq, com P ∈ {<,≤,=,,,≥,>}, q ∈ Q e (Pq)D={q′∈

Q| q′P q}. Por exemplo, o predicado <18denota o conjunto de números racionais menores que

18, com (<18)D={q′∈ Q | q′ < 18}.

Segundo Baader, Horrocks e Sattler (2007), os domínios concretos em sua forma irres- trita podem prejudicar a decidibilidade e a complexidade computacional das DLs. Por esta razão, uma forma mais restrita de domínios concretos, conhecida como tipos de dados con- cretos (HORROCKS; SATTLER, 2001), é frequentemente utilizada em aplicações práticas. Uma dessas restrições considera que ∆Dé definido como o domínio de todos os tipos de dados

concretos, ao invés de considerar algum domínio concreto específico ∆D(PAN; HORROCKS,

2002). Assim, segundo Pan e Horrocks (2002), ∆D é o domínio de tipos de dados cobrindo

todos os tipos de dados concretos. Um conjunto de tipos de dados concretos d1, . . . ,dm pode

ser definido sobre ∆D, sendo que o domínio de cada tipo de dado é um subconjunto de ∆D, ou

seja ∀i : 1 ≤ i ≤ m, dD

i ⊆ ∆D. Predicados de tipos de dados P1, . . . ,Pr podem ser definidos

sobre esses tipos de dados e cada predicado Pj está associado com uma aridade nj, onde

∀ j : 1 ≤ j ≤ r, PD j ⊆ ∆

nj

são suas variáveis de entrada, retornando verdadeiro se e somente se existe uma tupla de valores de dados t1, . . . ,tnj em ∆D tal que ∀i : 1 ≤ i ≤ nj,v

D

i = ti e ht1, . . . ,tnji ∈ P

D

j. Pan e Horrocks

(2002) exemplificam um tipo de dado, INT+, que possui o conjunto de inteiros não negativos como seu domínio dINT +⊆ ∆D. Predicados binários como ≥ e predicados unários ≥n podem

ser definidos sobre INT+. Para denotar o suporte a tipos de dados concretos, adiciona-se o sufixo (D) ao nome da DL, por exemplo, ALC(D), SHIF(D).

Dependendo da semântica do domínio, tipos de dados e predicados concretos personaliza- dos podem ser necessários para expressar o conhecimento de forma adequada. Neste sentido, Pan (2007) definiu o conceito de grupos de tipos de dados e expressões de tipos de dados que permitem personalizar tipos de dados e predicados concretos. Um grupo de tipos de dados G é um grupo de predicados embutidos, definidos sobre um conjunto de tipos de dados primitivos, provendo um formalismo unificado para tratar tipos de dados e predicados de tipos de dados. Para denotar o suporte a grupos de tipos de dados, adiciona-se o sufixo (G) ao nome da DL, por exemplo, ALC(G), SHIF(G).

Segundo Pan (2007), um predicado de tipo de dado p é caracterizado por uma aridade a(p) e uma extensão de predicado E(p). Por exemplo, =int+ é um predicado binário com

aridade a(=int+) = 2 e extensão E(=int+) = {hi

1,i2i ∈ V(INT+)2| i1= i2}, onde V(d) representa

o conjunto de valores do tipo de dado d. Para cada predicado de tipo de dado p existe um tipo de dado primitivo d tal que E(p) ⊆ V(d)a(p), com V(d) ⊆ ∆D. Os tipos de dados primitivos são

disjuntos, ou seja, para quaisquer dois tipos de dados primitivos d1,d2,V(d1) ∩ V(d2) = ∅ (PAN,

2007).

Em um grupo de tipos de dados, expressões de tipos de dados podem ser usadas para representar tipos de dados e predicados personalizados. A Tabela 3.3 mostra a sintaxe e a semântica do conjunto de expressões de tipos de dados Dexp(G).

Tabela 3.3: Sintaxe e semântica de expressões de tipos de dados.

Expressão Sintaxe Semântica expressões atômicas p pD

expressões negadas relativizadas ¯p ∆D\ pD

expressões enumeradas {l1, . . . ,ln} {lD1} ∪ · · · ∪ {lDn}

expressões de domínio [u1, . . . ,un] u1D× · · · × uDn

expressões conjuntivas E1∧ · · · ∧ En ED1∩ · · · ∩ EnD

expressões disjuntivas E1∨ · · · ∨ En ED1∪ · · · ∪ EnD

DLs com suporte a grupos de tipos de dados contêm atributos de tipos de dados, também denominados propriedades concretas, que correspondem a relacionamentos entre indivíduos a∈ ∆I e valores concretos x ∈ ∆D, além de construtores de conceito adicionais que permitem

3.3 Lógicas de Descrição 49

dados. Assim, o conjunto de indivíduos é composto por IA, que denota o conjunto de indivíduos

em ∆I, denominados indivíduos abstratos, e por I

D, que denota o conjunto de indivíduos

que correspondem a valores concretos em ∆D, denominados indivíduos concretos, sendo IA

e ID disjuntos. O mesmo ocorre para o conjunto de relacionamentos: RA denota o conjunto

de relacionamentos entre indivíduos abstratos, denominados relacionamentos abstratos, e RD

denota o conjunto de atributos de tipos de dados que relacionam indivíduos abstratos a valores concretos, sendo RA e RD também disjuntos. Sejam a ∈ IA, x, xi∈ ID, T, Ti ∈ RD, 1 ≤ i ≤ n

e E ∈ Dexp(G), a função de interpretação também é estendida para definir a semântica dos atributos de tipos de dados e dos construtores de conceito adicionais (PAN, 2007):

• TI: ∆I → ∆D;

• (∃T1, . . . ,Tn.E)I={a ∈ ∆I| ∃ha, xii ∈ TiI e hx1, . . . ,xni ∈ ED, com 1 ≤ i ≤ n};

• (∀T1, . . . ,Tn.E)I={a ∈ ∆I| ∀ha, xii ∈ TiI→ hx1, . . . ,xni ∈ ED, com 1 ≤ i ≤ n}.

Utilizando esses construtores adicionais, é possível definir conceitos a partir das expressões de tipos de dados. Por exemplo, pode-se definir o conceito:

ItemPequeno≡ Item ⊓ ∃soma, altura, largura, pro f undidade.menorQue15 (3.1) onde o predicado personalizado menorQue15 possui extensão X:

X(menorQue15) = {hi0,i1,i2,i3i ∈ V(INT+)4| i0= i1+ i2+ i3∧ i0<15} (3.2)

Pan (2007) também definiu uma arquitetura flexível para raciocínio em DLs com suporte a grupos de tipos de dados G, ilustrada na Figura 3.1. A principal característica dessa arquitetura é separação entre o procedimento de raciocínio das DLs baseado em tableau, realizado pelo raciocinador de conceitos, e o processamento das expressões de tipos de dados, realizado pelo raciocinador de tipos de dados. Existem dois tipos de raciocinadores de tipos de dados: gerenciador de tipos de dados e verificador de tipos de dados. Assim, os tipos de dados são tratados independentemente da parte abstrata ou simbólica, o que confere flexibilidade para adicionar novos tipos de dados e predicados concretos, de acordo com a necessidade do domínio.

Nessa arquitetura, o algoritmo baseado em tableau invoca o raciocinador de tipos de dados somente quando necessário, ou seja, quando são utilizados construtores de conceito contendo as expressões de tipos de dados E ∈ Dexp(G) listadas na Tabela 3.3. Para tanto, o tableau é estendido com nós de tipos de dados que correspondem a nós-folha não rotulados, além dos

Figura 3.1: Arquitetura para raciocínio proposta por Pan (2007).

nós rotulados, denominados nós abstratos. Um nó de tipo de dado v é chamado de sucessor-T de x se T ∈ L(hx,vi), onde T é uma propriedade concreta e x é um indivíduo abstrato. Uma tupla de nós de tipos de dados hv1, . . . ,vni é chamada de sucessor-hT1, . . . ,Tni de x se para todo

1 ≤ i ≤ n, vi é um sucessor-Ti de x. Para armazenar as expressões de tipos de dados E que

devem ser satisfeitas com relação aos sucessores-hT1, . . . ,Tni de um nó abstrato x, é utilizado

um conjunto DC(x) que contém elementos da forma:

(hv1, . . . ,vni, E) ou (hvi1, . . . ,vini, hvj1, . . . ,vjni, ,) (3.3)

onde hv1, . . . ,vni, hvi1, . . . ,vini, hvj1, . . . ,vjni são tuplas de sucessores de tipo de dado de x. Tam-

bém são definidas regras de expansão adicionais, chamadas de regras-G (Tabela 3.4), para expandir o tableau e armazenar as expressões de tipos de dados E em DC(x).

Tabela 3.4: Regras-G para tratar expressões de tipos de dados (PAN, 2007).

regra− ∃p

se ∃T1, . . . ,Tn.E∈ L(x)

e não existe um sucessor-hT1, . . . ,Tni hv1, . . . ,vni de x tal que (hv1, . . . ,vni, E) ∈ DC(x)

então crie um sucessor-hT1, . . . ,Tni hv1, . . . ,vni de x

com L(hx,vii) = {Ti}, 1 ≤ i ≤ n e DC(x) −→ DC(x) ∪ {(hv1, . . . ,vni, E)}

regra− ∀p

se ∀T1, . . . ,Tn.E∈ L(x)

e existe algum sucessor-hT1, . . . ,Tni hv1, . . . ,vni de x tal que (hv1, . . . ,vni, E) < DC(x)

então DC(x) −→ DC(x) ∪ {(hv1, . . . ,vni, E)}

Além das regras-G, uma nova condição de clash é adicionada: um tableau contém um clashse, para algum nó abstrato x, DC(x) é insatisfatível. Por meio das regras-G, o algoritmo tableau invoca o raciocinador de tipos de dados como um subprocedimento para verificar a satisfazibilidade de DC(x). Assim, DC(x) atua como interface entre o algoritmo baseado em tableaue os raciocinadores de tipos de dados, para o nó abstrato x. As expressões de tipos de dados não são processadas pelo algoritmo baseado em tableau, portanto não afetam a estrutura do tableau, permitindo a separação entre o raciocínio da DL e o raciocínio de grupos de tipos de dados.