コード例 #1
0
 public function _make_linguistic_object($fieldsAndValues)
 {
     $logger = Logger::getLogger('LinguisticObjects.makeLinguisticObject');
     $logger->debug("\$fieldsAndValues= " . print_r($fieldsAndValues, TRUE));
     $type = $fieldsAndValues['type'];
     $logger->debug("type= {$type}");
     $obj = NULL;
     if ($type == 'n' || $type == 'a' || $type == 'e' || $type == 'c') {
         $obj = new NounRoot($fieldsAndValues);
         array_push(self::$rootIDs, $obj->id());
     } elseif ($type == 'v') {
         $obj = new VerbRoot($fieldsAndValues);
         array_push(self::$rootIDs, $obj->id());
     } elseif ($type == 's') {
         $obj = new Source($fieldsAndValues);
         array_push(self::$sourceIDs, $obj->id());
     } elseif ($type == 'sn' || $type == 'sv' || $type == 'q') {
         $obj = new Suffix($fieldsAndValues);
         array_push(self::$affixIDs, $obj->id());
     } elseif ($type == 'tn') {
         $obj = new NounEnding($fieldsAndValues);
         array_push(self::$affixIDs, $obj->id());
     } elseif ($type == 'tv') {
         $obj = new VerbEnding($fieldsAndValues);
         array_push(self::$affixIDs, $obj->id());
     } elseif ($type == 'vw') {
         $obj = new VerbWord($fieldsAndValues);
         self::$verbWords[$object->getVerb()] = $obj;
     } elseif ($type == 'pr') {
         $obj = new Pronoun($fieldsAndValues);
         array_push(self::$rootIDs, $obj->id());
     } elseif ($type == 'pd' || $type == 'ad') {
         $obj = new Demonstrative($fieldsAndValues);
         array_push(self::$rootIDs, $obj->id());
         $roots = explode(' ', $obj->get_root());
         foreach ($roots as $a_root) {
             $newFieldsAndValues = $fieldsAndValues;
             $newFieldsAndValues['morpheme'] = $a_root;
             $newFieldsAndValues['root'] = $a_root;
             $new_obj = new Demonstrative($newFieldsAndValues);
             array_push(self::$rootIDs, $new_obj->id());
         }
     } else {
         $logger->debug("type '{$type}' not supported yet");
     }
     return $obj;
 }
コード例 #2
0
 public function test__construct()
 {
     $champs = 'morpheme;type;mode;perSubject;numbSubject;perObject;numbObject;V-form;V-actions;V-action1;V-action2;t-form;t-actions;t-action1;t-action2;k-form;k-actions;k-action1;k-action2;q-form;q-actions;q-action1;q-action2;SpecificCondOnPrecMorph;sources';
     $donnees = 'junga;tv;ger;1;s;;;junga;n;n;;tunga;n;n;;tunga;n;n;;tunga;n;n;;;?';
     $champsValeurs = parseCSV($champs, $donnees);
     $tv = new VerbEnding($champsValeurs);
     $this->assertEquals('tv', $tv->type(), "");
     $this->assertEquals('tv-ger-1s', $tv->signature(), "");
     $this->assertEquals('junga/tv-ger-1s', $tv->id(), "ERREUR Cas 'junga'");
     $champs = 'morpheme;type;mode;sameSubject;posneg;tense;dialect;perSubject;numbSubject;perObject;numbObject;V-form;V-actions;V-action1;V-action2;t-form;t-actions;t-action1;t-action2;k-form;k-actions;k-action1;k-action2;q-form;q-actions;q-action1;q-action2;SpecificCondOnPrecMorph;sources';
     $donnees = 'nak;tv;part;oui;neg;;North Baffin, Cumberland Peninsula;2;s;;;nak natit;n n;n;;nak natit;nas nas;nas nas;;nak natit;nas nas;nas nas;;nak rak natit ratit;nas s nas s;nas s nas s nas s;;;M1 H2';
     $champsValeurs = parseCSV($champs, $donnees);
     $tv = new VerbEnding($champsValeurs);
     $this->assertEquals('tv', $tv->type(), "");
     $this->assertEquals('tv-part-2s', $tv->signature(), "");
     $this->assertEquals('nak/tv-part-2s', $tv->id(), "ERREUR Cas 'nak'");
 }