Effect of C mode to contextual tests

19 views
Skip to first unread message

Inari Listenmaa

unread,
Aug 21, 2015, 2:08:20 PM8/21/15
to Constraint Grammar
Hello!

I'm finally going to implement a properly working C mode for my SAT-CG. ^_^  (In case you weren't at the Nodalida CG workshop and are wondering who is this crazy person, see paper & code). 

I'll likely have more questions later on, but let's start with a simple one: the interaction of NOT and C mode.

Is there any difference between the following rules:

REMOVE (a) IF (NOT 1 (b)) ;
REMOVE (a) IF (NOT 1C (b));

I would've thought that there is a difference. A context that matches  1C (b) also matches  1 (b) but not vice versa, thus there should be more cases that match NOT 1C (b) than NOT 1 (b).

matches NOT 1C (b):

1C (b) | 1C (^b)
-------|--------
1  (b) | 1  (^b)


matches NOT 1 (b):

1C (b) | 1C (^b)
-------|--------
1  (b) | 1  (^b)


However, when I was testing with the following rules and input http://pastebin.com/JNjjZdSH, the result was identical. Is this the intended behaviour? Is there some kind of intuition for negating a careful context?
I grepped from all the CGs in Apertium repo that I had, and found 127 occurrences of NOT + C mode (in total >8000 occurrences of NOT), so it seems not to be used that much anyway.

Note that I'm not requesting to change the behaviour, I just want to make sure that I have the correct interpretation. I was reading this http://beta.visl.sdu.dk/cg3.html but didn't find comments on that.

Cheers,
Inari

Tino Didriksen

unread,
Aug 21, 2015, 2:45:09 PM8/21/15
to Constraint Grammar, Eckhard Bick
On Friday, 21 August 2015 20:08:20 UTC+2, Inari Listenmaa wrote:
I'll likely have more questions later on, but let's start with a simple one: the interaction of NOT and C mode.

The CG-2 specification (ISBN 951-45-7331-5) says on page 30:
"(NOT 1C A): All the readings of the following cohort do not contain a tag belonging to the set A. This test is not likely to be needed. This kind of test always generates a warning if it is used."

CG-3 does not throw a warning for the construct. But it sure looks like there is a bug in the handling of it - I'll have to look more into it.

-- Tino Didriksen
Reply all
Reply to author
Forward
0 new messages