Re: Bug in VISL CG-3?

18 views
Skip to first unread message

Tino Didriksen

unread,
May 5, 2008, 8:47:38 AM5/5/08
to Fernando Sánchez León, constrain...@googlegroups.com
G'day...
CC'ed to http://groups.google.com/group/constraint-grammar as this is an important compatibility issue.

Instead of
MAP (@DN>) DET IF (*1C N BARRIER V) ; # Single *
you want
MAP (@DN>) DET IF (**1C N BARRIER V) ; # Double **

The CG-2 spec dictates that for a test (*-1C A):
"There is a cohort to the left containing a reading which has a tag belonging to the set A. The first such cohort must have a tag belonging to the set A in all its readings."
...meaning scanning stops at the first A regardless of whether it is carefully A. To scan further than the first A you must use **.

VISLCG2 was not compliant with that and would scan until it found a "careful A".
This caused the need for ugly hacks such as (*1C A BARRIER A) to emulate the correct behavior.

In CG-3 I chose spec compliance over compatibility for that case.

-- Tino Didriksen

Fernando Sánchez León wrote:
Hi,

I've been playing with both vislcg2 and vislcg3 executables and have different results with MAP rules. Using the following (testing) text:
#---------------------------------------------------------------------------------------
"<$SENTo$>"
"<Word1>"
        "word" DET
"<word2>"
        "word" A
        "word" N
"<word3>"
        "word" N
"<word4>"
        "word" V
"<word6>"
        "word" ADV
"<.>"
        "." PUNCT STOP t0
"<$SENTc$>"
#---------------------------------------------------------------------------------------

and the following grammars for CG-2:

#---------------------------------------------------------------------------------------
DELIMITERS = "<$SENTc$>";

SETS

LIST DET = DET ;
LIST A   = A ;
LIST N   = N ;
LIST V   = V ;

CONSTRAINTS

MAPPINGS

MAP (@DN>) DET IF (*1C N BARRIER V) ;

#---------------------------------------------------------------------------------------

I get the DET mapped to @DN> with CG-2 but not with CG-3 (I am using version 0.9.3.3356). Is there any difference in the evaluation of contextual looks and careful mode between CG versions?

Thanks in advance,

--Fernando Sánchez

Eckhard Bick

unread,
May 5, 2008, 5:22:24 PM5/5/08
to Tino Didriksen, Fernando Sánchez León, constrain...@googlegroups.com
Hello,

Just to support the design decision made for CG-3 from a linguistic
point of view:

It is important to make the distinction between the 2 cases (*1C and
**1C), since both address real grammatical needs. The first (*1C) is
useful for close context checks, like np's (where it would be weird to
instantiate a test just because there is a safe N very far away in
anouther subclause), the second (**1C) is useful for the uniqueness
principle in a more global context especially with REMOVE rules (for
instance removing VFIN readigs in the presence of [safe] other VFIN.

More precise rule tailoring can be achieved by using BARRIERs, for
instance if **1C is to be used for np-chunking, as in the example given:
**1C N BARRIER CLB OR PRP OR VFIN, for instance. In English, e.g., nouns
can be both np-heads and prenominals, so "jumping" ambiguous nouns to
find a safe np-head makes sense.

Best regards,
Eckhard Bick

Tino Didriksen wrote:
> G'day...
> CC'ed to http://groups.google.com/group/constraint-grammar as this is
> an important compatibility issue.
>
> Instead of
> MAP (@DN>) DET IF (*1C N BARRIER V) ; # Single *
> you want
> MAP (@DN>) DET IF (**1C N BARRIER V) ; # Double **
>
> The CG-2 spec dictates that for a test (*-1C A):
> "There is a cohort to the left containing a reading which has a tag

> belonging to the set A. The _*first such cohort*_ must have a tag


--
Eckhard Bick,
cand.med., dr.phil.
University of Southern Denmark
e-mail: eckhar...@mail.dk
web: http://beta.visl.sdu.dk

Reply all
Reply to author
Forward
0 new messages