D-rule: Difference between revisions
imported>Martins No edit summary  | 
				imported>Martins No edit summary  | 
				||
| Line 1: | Line 1: | ||
'''D-rules'''   | '''D-rules''' or Disambiguation rules are used to prevent wrong lexical choices, to provoke best matches and to check the consistency of graphs, trees and lists. Differently from [[t-rule]]s, they do not provoke transformations, but induce or block them, by assigning priorities to natural language phenomena. The set of d-rules form the '''Disambiguation grammar''', or '''D-Grammar'''.  | ||
== Syntax ==  | == Syntax ==  | ||
| Line 9: | Line 9: | ||
STATEMENT is the left side (condition) of a [[L-rule]] or a [[S-rule]]; and<br />  | STATEMENT is the left side (condition) of a [[L-rule]] or a [[S-rule]]; and<br />  | ||
P, which can range from 0 (impossible) to 255 (necessary), is the probability of occurrence of the STATEMENT<br />  | P, which can range from 0 (impossible) to 255 (necessary), is the probability of occurrence of the STATEMENT<br />  | ||
== Types of Disambiguation Rules ==  | |||
There are three types of disambiguation rules:  | |||
*Network disambiguation rules  | |||
*Tree disambiguation rules  | |||
*List disambiguation rules  | |||
=== Network Disambiguation Rules ===  | |||
Network disambiguation rules apply over the network structure of UNL graphs to constrain the application of Tree-to-Network (TN) and Network-to-Network (NN) Transformation Rules. They have the following format:  | |||
 SEM(A;B)=P;  | |||
Where SEM is a semantic relation, A and B are nodes, and P is an integer (from 0 to 255).  | |||
==== Examples ====  | |||
;agt(VER;ADJ)=0;   | |||
:An adjective (ADJ) may not be an agent (agt) of a verb (VER).  | |||
;agt(VER;NOU)=255;  | |||
:Agents (agt) of verbs (VER) are always nouns (NOU).  | |||
==== Use ====  | |||
{|cellpadding="5" border="1" align="center"  | |||
!INPUT  | |||
!TRANSFORMATION RULES  | |||
!DISAMBIGUATION RULES  | |||
!OUTPUT  | |||
|-  | |||
|SYN(A,B,C;D,E,F)  | |||
|SYN(A;D)=agt(;); (higher priority)<br />SYN(A;E)=aoj(;); (lower priority)  | |||
|agt(A;F)=0;  | |||
|aoj(A,B,C;D,E,F)  | |||
|}  | |||
=== Tree Disambiguation Rules ===  | |||
Tree disambiguation rules apply over the intermediate tree structure to constrain the application of List-to-Tree (LT), Network-to-Tree (NT) and Tree-to-Tree (TT) Transformation Rules. They have the following format:  | |||
 SYN(A;B)=P;  | |||
Where SYN is a syntactic relation, A and B are nodes, and P is an integer (from 0 to 255).  | |||
==== Examples ====  | |||
;VS(VER;ADJ)=0;   | |||
:An adjective (ADJ) may not be an specifier (VS) of a verb (VER).  | |||
;NS(NOU;DET)=255;  | |||
:Determiners (DET) are always specifiers (NS) of nouns (NOU).  | |||
==== Use ====  | |||
{|cellpadding="5" border="1" align="center"  | |||
!INPUT  | |||
!TRANSFORMATION RULES  | |||
!DISAMBIGUATION RULES  | |||
!OUTPUT  | |||
|-  | |||
|(A,B,C)(D,E,F)  | |||
|(A)(D)=X(A;D); (higher priority)<br />(A)(E)=X(E;A); (lower priority)  | |||
|X(F;A)=255;  | |||
|X(D,E,F;A,B,C)  | |||
|-  | |||
|agt(A,B,C;D,E,F)  | |||
|agt(A;D)=X(A;D); (higher priority)<br />agt(A;E)=Y(A;E); (lower priority)  | |||
|X(B;F)=0;  | |||
|Y(A,B,C;D,E,F)  | |||
|}  | |||
=== List Disambiguation Rules ===  | |||
List disambiguation rules apply over the natural language list structure to constrain the application of both Tree-to-List (TL) and List-to-List (LL) Transformation Rules. They are also used for word selection. They have the following format:  | |||
 (A)(B)=P;  | |||
Where A and B are nodes, and P is an integer (from 0 to 255).  | |||
==== Examples ====  | |||
;(ART)(BLK)(VER)=0;   | |||
:An article (ART) may not precede a verb (VER).  | |||
;(ART)(BLK)(NOU)=255;  | |||
:Articles (ART) always precede nouns (NOU).  | |||
==== Use ====  | |||
{|cellpadding="5" border="1" align="center"  | |||
|+ Rule Disambiguation  | |||
!INPUT  | |||
!TRANSFORMATION RULES  | |||
!DISAMBIGUATION RULES  | |||
!OUTPUT  | |||
|-  | |||
|X(A,B,C;D,E,F)  | |||
|X(A;D)=(A)(D); (higher priority)<br />X(A;F)=(F)(A); (lower priority)  | |||
|(B)(E)=0;  | |||
|(D,E,F)(A,B,C)  | |||
|}  | |||
{|cellpadding="5" border="1" align="center"  | |||
|+ Word Disambiguation  | |||
!INPUT  | |||
!DICTIONARY  | |||
!DISAMBIGUATION RULES  | |||
!OUTPUT  | |||
|-  | |||
|the book  | |||
|[book] "22222" (POS=VER); (higher priority)<br />[book] "11111" (POS=NOU); (lower priority)  | |||
|(ART)(BLK)(VER)=0;  | |||
|[book] "1111" (POS=NOU);  | |||
|}  | |||
== Formal Syntax of Disambiguation Rules ==  | |||
Disambiguation rules must comply with the following syntax  | |||
 <nowiki><DISAMBIGUATION RULE> ::= <NN RULE> | <TT RULE> | <LL RULE> </nowiki>  | |||
 <nowiki><NN RULE>             ::= (<SEM>)+ "=" [0-255]";"</nowiki>  | |||
 <nowiki><TT RULE>             ::= (<SYN>)+ "=" [0-255]";"</nowiki>  | |||
 <nowiki><LL RULE>             ::= "(" <NODE> ")" ( "(" <NODE> ")" )+ "=" [0-255]";"</nowiki>  | |||
 <nowiki><SEM>                 ::= <TEXT> "(" <NODE> ";" <NODE> ")"</nowiki>  | |||
 <nowiki><SYN>                 ::= <TEXT> "(" <NODE> ";" <NODE> ")"</nowiki>  | |||
 <nowiki><NODE>                ::= ( (<DESCRIPTION>)( "," <DESCRIPTION> )* )?</nowiki>  | |||
 <nowiki><DESCRIPTION>         ::= <STRING> | <ENTRY> | <FEATURE> | <RELATION></nowiki>  | |||
 <nowiki><STRING>              ::= """<text>"""</nowiki>  | |||
 <nowiki><ENTRY>               ::= "["<entry>"]"</nowiki>  | |||
 <nowiki><FEATURE>             ::= <VALUE> | <ATTRIBUTE> | <ATTRIBUTE>"="<VALUE></nowiki>  | |||
 <nowiki><RELATION>            ::= <SEM>|<SYN></nowiki>  | |||
 <nowiki><VALUE>               ::= <TEXT></nowiki>  | |||
 <nowiki><ATTRIBUTE>           ::= <TEXT></nowiki>  | |||
 <nowiki><TEXT>                ::= any sequence of characters except whitespace | <REGULAR EXPRESSION></nowiki>  | |||
 <REGULAR EXPRESSION>  ::= "/"<[http://www.pcre.org/ PERL COMPATIBLE REGULAR EXPRESSIONS]>"/"  | |||
== Examples ==  | == Examples ==  | ||
| Line 19: | Line 138: | ||
**VS(VER;ADJ)=0; (an adjective (ADJ) may not be an specifier (VS) of a verb (VER))  | **VS(VER;ADJ)=0; (an adjective (ADJ) may not be an specifier (VS) of a verb (VER))  | ||
**NS(NOU;DET)=255; (determiners (DET) are always specifiers (NS) of nouns (NOU))  | **NS(NOU;DET)=255; (determiners (DET) are always specifiers (NS) of nouns (NOU))  | ||
Revision as of 15:02, 31 May 2013
D-rules or Disambiguation rules are used to prevent wrong lexical choices, to provoke best matches and to check the consistency of graphs, trees and lists. Differently from t-rules, they do not provoke transformations, but induce or block them, by assigning priorities to natural language phenomena. The set of d-rules form the Disambiguation grammar, or D-Grammar.
Syntax
D-rules follow the general syntax (UNL Grammar Specs):
STATEMENT=P;
Where
STATEMENT is the left side (condition) of a L-rule or a S-rule; and
P, which can range from 0 (impossible) to 255 (necessary), is the probability of occurrence of the STATEMENT
Types of Disambiguation Rules
There are three types of disambiguation rules:
- Network disambiguation rules
 - Tree disambiguation rules
 - List disambiguation rules
 
Network Disambiguation Rules
Network disambiguation rules apply over the network structure of UNL graphs to constrain the application of Tree-to-Network (TN) and Network-to-Network (NN) Transformation Rules. They have the following format:
SEM(A;B)=P;
Where SEM is a semantic relation, A and B are nodes, and P is an integer (from 0 to 255).
Examples
- agt(VER;ADJ)=0;
 - An adjective (ADJ) may not be an agent (agt) of a verb (VER).
 - agt(VER;NOU)=255;
 - Agents (agt) of verbs (VER) are always nouns (NOU).
 
Use
| INPUT | TRANSFORMATION RULES | DISAMBIGUATION RULES | OUTPUT | 
|---|---|---|---|
| SYN(A,B,C;D,E,F) | SYN(A;D)=agt(;); (higher priority) SYN(A;E)=aoj(;); (lower priority)  | 
agt(A;F)=0; | aoj(A,B,C;D,E,F) | 
Tree Disambiguation Rules
Tree disambiguation rules apply over the intermediate tree structure to constrain the application of List-to-Tree (LT), Network-to-Tree (NT) and Tree-to-Tree (TT) Transformation Rules. They have the following format:
SYN(A;B)=P;
Where SYN is a syntactic relation, A and B are nodes, and P is an integer (from 0 to 255).
Examples
- VS(VER;ADJ)=0;
 - An adjective (ADJ) may not be an specifier (VS) of a verb (VER).
 - NS(NOU;DET)=255;
 - Determiners (DET) are always specifiers (NS) of nouns (NOU).
 
Use
| INPUT | TRANSFORMATION RULES | DISAMBIGUATION RULES | OUTPUT | 
|---|---|---|---|
| (A,B,C)(D,E,F) | (A)(D)=X(A;D); (higher priority) (A)(E)=X(E;A); (lower priority)  | 
X(F;A)=255; | X(D,E,F;A,B,C) | 
| agt(A,B,C;D,E,F) | agt(A;D)=X(A;D); (higher priority) agt(A;E)=Y(A;E); (lower priority)  | 
X(B;F)=0; | Y(A,B,C;D,E,F) | 
List Disambiguation Rules
List disambiguation rules apply over the natural language list structure to constrain the application of both Tree-to-List (TL) and List-to-List (LL) Transformation Rules. They are also used for word selection. They have the following format:
(A)(B)=P;
Where A and B are nodes, and P is an integer (from 0 to 255).
Examples
- (ART)(BLK)(VER)=0;
 - An article (ART) may not precede a verb (VER).
 - (ART)(BLK)(NOU)=255;
 - Articles (ART) always precede nouns (NOU).
 
Use
| INPUT | TRANSFORMATION RULES | DISAMBIGUATION RULES | OUTPUT | 
|---|---|---|---|
| X(A,B,C;D,E,F) | X(A;D)=(A)(D); (higher priority) X(A;F)=(F)(A); (lower priority)  | 
(B)(E)=0; | (D,E,F)(A,B,C) | 
| INPUT | DICTIONARY | DISAMBIGUATION RULES | OUTPUT | 
|---|---|---|---|
| the book | [book] "22222" (POS=VER); (higher priority) [book] "11111" (POS=NOU); (lower priority)  | 
(ART)(BLK)(VER)=0; | [book] "1111" (POS=NOU); | 
Formal Syntax of Disambiguation Rules
Disambiguation rules must comply with the following syntax
<DISAMBIGUATION RULE> ::= <NN RULE> | <TT RULE> | <LL RULE> 
<NN RULE>             ::= (<SEM>)+ "=" [0-255]";"
<TT RULE>             ::= (<SYN>)+ "=" [0-255]";"
<LL RULE>             ::= "(" <NODE> ")" ( "(" <NODE> ")" )+ "=" [0-255]";"
<SEM>                 ::= <TEXT> "(" <NODE> ";" <NODE> ")"
<SYN>                 ::= <TEXT> "(" <NODE> ";" <NODE> ")"
<NODE>                ::= ( (<DESCRIPTION>)( "," <DESCRIPTION> )* )?
<DESCRIPTION>         ::= <STRING> | <ENTRY> | <FEATURE> | <RELATION>
<STRING>              ::= """<text>"""
<ENTRY>               ::= "["<entry>"]"
<FEATURE>             ::= <VALUE> | <ATTRIBUTE> | <ATTRIBUTE>"="<VALUE>
<RELATION>            ::= <SEM>|<SYN>
<VALUE>               ::= <TEXT>
<ATTRIBUTE>           ::= <TEXT>
<TEXT>                ::= any sequence of characters except whitespace | <REGULAR EXPRESSION>
<REGULAR EXPRESSION>  ::= "/"<PERL COMPATIBLE REGULAR EXPRESSIONS>"/"
Examples
- List structures
- (ART)(BLK)(VER)=0; (an article (ART) may not precede a verb (VER))
 - (ART)(BLK)(NOU)=255; (articles (ART) always precede nouns (NOU))
 
 - Syntactic structures
- agt(VER;ADJ)=0; (an adjective (ADJ) may not be an agent (agt) of a verb (VER))
 - agt(VER;NOU)=255; (agents (agt) of verbs (VER) are always nouns (NOU))
 - VS(VER;ADJ)=0; (an adjective (ADJ) may not be an specifier (VS) of a verb (VER))
 - NS(NOU;DET)=255; (determiners (DET) are always specifiers (NS) of nouns (NOU))