particles and affixes produce different lfs?

Help
J Moore
2011-05-15
2013-04-08
  • J Moore

    J Moore - 2011-05-15

    Hi,

    I'm trying to understand the points made in the documentation about function words that specify a feature but are otherwise semantically null, so I wrote a minimal grammar that provides only a morphological and a syntactical expression of definiteness:

    ##### features #####

    feature {
    dft<X,Y>: def indef;
    }

    #####  words  #####

    word the:Det(pred=def);

    word eats:IntransV;

    word person:N;

    word Name:NP {
    Fred: def;
    };

    ##### categories #####

    family Det(indexRel=det) {
    entry: np  / n : X (<det> *);
    }

    family N {
      entry: n: X(*);
    }

    family NP {
    entry: np: X(*);
    }

    family IntransV {
      entry: s  \ np  : E (* <Actor>X);
    }

    For "the person eats", with definiteness expressed by "the", openccg interprets the 'def' feature under the thematic projection of the verb:

    <lf>
      <satop nom="e1">
        <prop name="eats"/>
        <diamond mode="Actor">
          <nom name="x1"/>
          <diamond mode="det">
            <prop name="def"/>
          </diamond>
        </diamond>
      </satop>
      <satop nom="p1">
        <prop name="person"/>
      </satop>
    </lf>

    For "Fred eats", with definiteness stipulated as a feature of the (only) inflection, openccg interprets the 'def' feature under the nominal head:

    <lf>
      <satop nom="e1">
        <prop name="eats"/>
        <diamond mode="Actor">
          <nom name="x1"/>
        </diamond>
      </satop>
      <satop nom="n1">
        <prop name="Name"/>
        <diamond mode="X">
          <prop name="def"/>
        </diamond>
      </satop>
    </lf>

    Unless the two xml statements are synonymous to openccg, it seems to to me that, for instance, it would be difficult to translate from a synthetic to an isolating language.  Is there a way around this discrepancy, or am I missing something?  Thanks for any insights out there!

     
  • Michael White

    Michael White - 2011-05-15

    Hello J Moore

    The main problem is that your n and np cats are not linking the semantics to anything in the syntax, as you have "n: X(*)" instead of "n: X(*)".  Below I've edited this grammar to do what you want, cleaning things up in various ways.  (The use of the feature structure id's like <1> and <2> is not strictly required, but makes it easier for openccg to recognize category equivalences in some cases.)

    -Mike

    ##### features #####
    feature {
      dft<X:dft>: def indef;
    }
    #####  words  #####
    word the:Det(pred=def);
    word eats:IntransV;
    word person:N;
    word Fred:NP {
      *: def;
    };
    ##### categories #####
    family Det(indexRel=dft) {
      entry: np<2>[X] /^ n<2>[X]: X(<dft> *);
    }
    family N {
      entry: n<2>[X]: X(*);
    }
    family NP {
      entry: np<2>[X]: X(*);
    }
    family IntransV {
      entry: s<1>[E] \ np<2>[X] : E(* <Actor>X);
    }
    ##### examples #####
    testbed {
      the person eats: 1;
      Fred eats: 1;
    }
    tccg> Fred eats
    1 parse found.
    Parse: s<2>{index=E_1} :
      @w1(eats ^
          <Actor>(w0 ^ Fred ^
                  <dft>def))
    ------------------------------
    (lex)  Fred :- np<1>{index=X_0} : (@X_0(Fred) ^ @X_0(<dft>def))
    (lex)  eats :- s<2>{index=E_1}\np<3>{index=X_1} : (@E_1(eats) ^ @E_1(<Actor>X_1))
    (<)    Fred eats :- s<2>{index=E_1} : (@E_1(eats) ^ @E_1(<Actor>X_0) ^ @X_0(Fred) ^ @X_0(<dft>def))
    tccg> the person eats
    1 parse found.
    Parse: s<3>{index=E_2} :
      @w2(eats ^
          <Actor>(w1 ^ person ^
                  <dft>def))
    ------------------------------
    (lex)  the :- np<1>{index=X_0}/^n<1>{index=X_0} : @X_0(<dft>def)
    (lex)  person :- n<2>{index=X_1} : @X_1(person)
    (>)    the person :- np<6>{index=X_0} : (@X_0(person) ^ @X_0(<dft>def))
    (lex)  eats :- s<3>{index=E_2}\np<4>{index=X_2} : (@E_2(eats) ^ @E_2(<Actor>X_2))
    (<)    the person eats :- s<3>{index=E_2} : (@E_2(eats) ^ @E_2(<Actor>X_0) ^ @X_0(person) ^ @X_0(<df
    t>def))
    tccg>
    
     
  • J Moore

    J Moore - 2011-05-16

    Got it!  Thanks so much for pointing that out.

     

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.





No, thanks