Gramática de concatenação de intervalo

Gramática de concatenação de intervalo, em tradução livre de range concatenation grammar (RCG), é uma gramática formal desenvolvida por Pierre Boullier [1] em 1998 como uma tentativa de representar uma série de fenômenos da linguagem natural, como os números chineses e embaralhamento de palavras alemãs, que não pertencem às linguagens moderadamente sensíveis ao contexto (tradução livre de Mildly context-sensitive languages[2]).

De um ponto de vista teórico, qualquer linguagem pode ser analisada em tempo polinomial se, e somente se, pertencer ao subconjunto de RCG chamado gramáticas de Concatenação de Intervalo Positivo (tradução livre de positive range concatenation grammars).[3]

Embora projetada como uma variante das Gramáticas de Movimento Literal de Groenink (sigla LMG), as RCGs tratam o processo gramático mais como prova do que produção. Enquanto LMGs produzem uma cadeia final de um predicado inicial, RCGs focam em reduzir o predicado inicial (que implica na cadeia final) para a cadeia vazia, que constitui a prova do pertencimento da cadeia final à linguagem.

Descrição

Definição Formal

Uma gramática de Concatenação de Intervalo Positivo - tradução livre de positive range concatenation grammar, PRCG - é uma tupla G = ( N ,   T ,   V ,   S ,   P ) {\displaystyle G=(N,~T,~V,~S,~P)} , onde:

  • N {\displaystyle N} , T {\displaystyle T} e V {\displaystyle V} são conjuntos disjuntos finitos de (respectivamente) predicados, simbolos teminais e variáveis. Cada nome de predicado tem uma aridade associada dada pela função d i m : N N { 0 } {\displaystyle dim:N\rightarrow \mathbb {N} \setminus \{0\}} .
  • S N {\displaystyle S\in N} é o início do predicado e verifica d i m ( S ) = 1 {\displaystyle dim(S)=1} .
  • P {\displaystyle P} é um conjunto finito de cláusulas da forma ψ 0 ψ 1 ψ m {\displaystyle \psi _{0}\rightarrow \psi _{1}\ldots \psi _{m}} , onde os ψ i {\displaystyle \psi _{i}} são predicados da forma A i ( α 1 , , α d i m ( A i ) ) {\displaystyle A_{i}(\alpha _{1},\ldots ,\alpha _{dim(A_{i})})} com A i N {\displaystyle A_{i}\in N} e α i ( T V ) {\displaystyle \alpha _{i}\in (T\cup V)^{\star }} .

Uma gramática de Concatenação de Intervalo Negativo - tradução livre de Negative Range Concatenation Grammar, NRCG - é definida como uma PRCG, mas com o adicional de que alguns predicados ocorrendo no lado direito das cláusulas podem ter a forma A i ( α 1 , , α d i m ( A i ) ) ¯ {\displaystyle {\overline {A_{i}(\alpha _{1},\ldots ,\alpha _{dim(A_{i})})}}} . Estes predicados são chamados predicados negativos.

Uma gramática de Concatenação de Intervalo é ou positiva ou negativa. Embora PRCGs sejam tecnicamente NRCGs, dizemos que essas gramáticas são de intervalos negativos ou positivos enfatizar a ausência ou presença de predicados negativos.

Um intervalo no palavra w T {\displaystyle w\in T^{\star }} são alguns l , r w {\displaystyle \langle l,r\rangle _{w}} , com 0 l r n {\displaystyle 0\leq l\leq r\leq n} , onde n {\displaystyle n} é o comprimento de w {\displaystyle w} . Dois intervalos l 1 , r 1 w {\displaystyle \langle l_{1},r_{1}\rangle _{w}} and l 2 , r 2 w {\displaystyle \langle l_{2},r_{2}\rangle _{w}} podem ser concatenados sse r 1 = l 2 {\displaystyle r_{1}=l_{2}} , então nós temos: l 1 , r 1 w l 2 , r 2 w = l 1 , r 2 w {\displaystyle \langle l_{1},r_{1}\rangle _{w}\cdot \langle l_{2},r_{2}\rangle _{w}=\langle l_{1},r_{2}\rangle _{w}} .

Para uma palavra w = w 1 w 2 w n {\displaystyle w=w_{1}w_{2}\ldots w_{n}} , com w i T {\displaystyle w_{i}\in T} , a notação pontuada para intervalos é: l , r w = w 1 w l 1 w l w r 1 w r w n {\displaystyle \langle l,r\rangle _{w}=w_{1}\ldots w_{l-1}\bullet w_{l}\ldots w_{r-1}\bullet w_{r}\ldots w_{n}} .

Reconhecimento de cadeias

Como LMGs, cláusulas de RCG tem o esquema geral A ( x 1 , . . . , x n ) α {\displaystyle A(x_{1},...,x_{n})\to \alpha } , onde em uma RCG, α {\displaystyle \alpha } é, ou a cadeia vazia ou uma cadeia de predicados. Os argumentos x i {\displaystyle x_{i}} consistem de cadeias de símbolos terminais e/ou símbolos de variáveis, padrão o qual corresponde com os valores do argumento atual como no LMG. Variáveis adjascentes constituem uma família de correspondências em partições, então esse argumento x y {\displaystyle xy} , onde duas variáveis, correnpondem a cadeias de litais a b {\displaystyle ab} em três modos diferentes: x = ϵ ,   y = a b ;   x = a ,   y = b ;   x = a b ,   y = ϵ {\displaystyle x=\epsilon ,\ y=ab;\ x=a,\ y=b;\ x=ab,\ y=\epsilon } .

Termos predicados vêm de duas formas, positiva (que produz a cadeia vazia em caso de sucesso), e negativa (que produz a cadeia vazia em caso de falha ou se termos positivos não produzem a cadeia vazia). Termos negativos são denotados da mesma forma que os positivos, com uma barra sob si, como em A ( x 1 , . . . , x n ) ¯ {\displaystyle {\overline {A(x_{1},...,x_{n})}}} .

A re-escrita da semântica para RCGs é bastante simples, idêntica à semântica correspondente de LMGs. Dado uma cadeia de predicado A ( α 1 , . . . , α n ) {\displaystyle A(\alpha _{1},...,\alpha _{n})} , onde os símbolos α i {\displaystyle \alpha _{i}} são cadeias finais, se há uma regra A ( x 1 , . . . , x n ) β {\displaystyle A(x_{1},...,x_{n})\to \beta } na gramática que corresponde à cadeia de predicado , a cadeia de predicado é substituida por β {\displaystyle \beta } , substituindo as variáveis correspondentes em cada x i {\displaystyle x_{i}} .

Por exemplo, dada uma regra A ( x , a y b ) B ( a x b , y ) {\displaystyle A(x,ayb)\to B(axb,y)} , onde x {\displaystyle x} and y {\displaystyle y} são símbolos de variáveis e a {\displaystyle a} e b {\displaystyle b} são símbolos terminais, a cadeia de predicado A ( a , a b b ) {\displaystyle A(a,abb)} pode ser re-escrita como B ( a a b , b ) {\displaystyle B(aab,b)} , porque A ( a , a b b ) {\displaystyle A(a,abb)} corresponde a A ( x , a y b ) {\displaystyle A(x,ayb)} onde x = a ,   y = b {\displaystyle x=a,\ y=b} . Da mesma forma, se houvesse uma regra A ( x , a y b ) A ( x , x )   A ( y , y ) {\displaystyle A(x,ayb)\to A(x,x)\ A(y,y)} , A ( a , a b b ) {\displaystyle A(a,abb)} poderiamos re-escrever como A ( a , a )   A ( b , b ) {\displaystyle A(a,a)\ A(b,b)} .

A prova/reconhecimento de uma cadeia α {\displaystyle \alpha } é feita mostrando que S ( α ) {\displaystyle S(\alpha )} produz a cadeias vazia. Para os passos de re-escrita individuais, quando multiplas correspondecias alternativas de variáveis são possíveis, qualquer re-escrita que pode guiar a prova por inteiro é considerada.

Exemplo

RCGs são capazes de reconhecer uma linguagem de índice não-linear { w w w : w { a , b } } {\displaystyle \{www:w\in \{a,b\}^{*}\}} como segue:

Sejam x, y, and z símbolos de variáveis:


S ( x y z ) A ( x , y , z ) {\displaystyle S(xyz)\to A(x,y,z)}

A ( a x , a y , a z ) A ( x , y , z ) {\displaystyle A(ax,ay,az)\to A(x,y,z)}

A ( b x , b y , b z ) A ( x , y , z ) {\displaystyle A(bx,by,bz)\to A(x,y,z)}

A ( ϵ , ϵ , ϵ ) ϵ {\displaystyle A(\epsilon ,\epsilon ,\epsilon )\to \epsilon }

A prova para abbabbabb é então

S ( a b b a b b a b b ) A ( a b b , a b b , a b b ) A ( b b , b b , b b ) A ( b , b , b ) A ( ϵ , ϵ , ϵ ) ϵ {\displaystyle S(abbabbabb)\Rightarrow A(abb,abb,abb)\Rightarrow A(bb,bb,bb)\Rightarrow A(b,b,b)\Rightarrow A(\epsilon ,\epsilon ,\epsilon )\Rightarrow \epsilon }

Ou, usando a mais correta "notação pontuada" para intervalos:

S ( a b b a b b a b b ) A ( a b b a b b a b b , a b b a b b a b b , a b b a b b a b b ) A ( a b b a b b a b b , a b b a b b a b b , a b b a b b a b b ) {\displaystyle S(\bullet {}abbabbabb\bullet {})\Rightarrow A(\bullet {}abb\bullet {}abbabb,abb\bullet {}abb\bullet {}abb,abbabb\bullet {}abb\bullet {})\Rightarrow A(a\bullet {}bb\bullet {}abbabb,abba\bullet {}bb\bullet {}abb,abbabba\bullet {}bb\bullet {})} A ( a b b a b b a b b , a b b a b b a b b , a b b a b b a b b ) A ( ϵ , ϵ , ϵ ) ϵ {\displaystyle \Rightarrow A(ab\bullet {}b\bullet {}abbabb,abbab\bullet {}b\bullet {}abb,abbabbab\bullet {}b\bullet {})\Rightarrow A(\epsilon ,\epsilon ,\epsilon )\Rightarrow \epsilon }

References

  1. Pierre Boullier (1998). «Chinese Numbers, MIX, Scrambling, and Range Concatenation Grammars». Proposal for a Natural Language Processing Syntactic Backbone (PDF). [S.l.: s.n.] 
  2. Pierre Boullier (1999). «Chinese Numbers, MIX, Scrambling, and Range Concatenation Grammars». Proc. EACL (PDF). [S.l.: s.n.] pp. 53–60. Consultado em 17 de fevereiro de 2015. Arquivado do original (PDF) em 15 de maio de 2003 
  3. Laura Kallmeyer (2010). Parsing Beyond Context-Free Grammars. [S.l.]: Springer Science & Business Media. p. 37. ISBN 978-3-642-14846-0  citing http://mjn.host.cs.st-andrews.ac.uk/publications/2001d.pdf

  • v
  • d
  • e
Informática Teórica: linguagens formais and Gramáticas formais
Hierarquia de ChomskyGramáticasLinguagensMáquinas abstratas
  • Tipo-0
  • Tipo-1
  • Tipo-2
  • Tipo-3
  • Máquina de Turing
  • Decisor
  • linear limitada
  • P (Complexidade) Máquina de Turing
  • Nested stack
  • en:Thread automaton
  • Automato com pilha embutido
  • Automato com pilha não-determinístico
  • Automato com pilha determinístico
  • palavra aninhada
  • Finito
  • Counter-free (with aperiodic finite monoid)
  • Acíclico finito
Cada categoria das linguagens, exceto aquelas marcadas por um *, é subconjunto próprio da categoria diretamente acima. Qualquer linguagem em cada categoria é gerada por uma gramática e por um autômato na categoria da mesma linha.