;;; -*- Mode: LISP; Package: CGP; BASE: 10; Syntax: ANSI-Common-Lisp; -*- (in-package :cgp) (setf *regexp-parser* (make-instance 'feature-regexp :name "Regulære uttrykk for navnegjenkjenning" :source-regexp '(:OR ((:name "X i Y") (:SEQ (:AND subst (:ADD head) ;; (not :) prop be ent) "i" (:AND subst prop))) ((:name "X i Ys") ;; gen feature is moved to head (:SEQ (:AND subst (:ADD head gen) prop be ent) "i" (:AND subst prop gen))) ((:name "Den (norske)* X") (:OR (:SEQ (:AND det dem prop) (:+ (:AND adj (:OR be fl))) (:AND subst (:ADD head))) (:SEQ (:AND pron pers fl nom høflig) (:+ (:AND adj (:OR be fl))) (:AND subst (:ADD head))))) #+prelim ((:name "?") (:SEQ (:+ (:AND adj prop)) (:AND subst (:ADD head)))) ((:name "Bergen rådhus") (:SEQ (:+ (:AND subst prop (:NOT gen))) ;; (:* adj) (:? (:seq (:and subst) "og")) (:AND subst (:ADD head) ent ub (:OR "as" "a/s" "*kontor" "*hjem" "kirke" "*klubb" "*skole" "*barnehage" "*korps" "borettslag" "lufthavn" "flyplass" "+anlegg" "børs" "*gymnas" "+hjem" "kapell" "fylke" "*kommune" "+rett" "sentrum" "*råd" "*fengsel" "*senter" "+hus" "politikammer" "*bane" "gård" "stadion" "menighet" "rådhus" "stadion" "museum" "kino" "teater")))) ((:name "Institutt for filosofi") (:SEQ (:AND subst (:ADD head) prop (:NOT gen) (:OR "*institutt" "*avdeling")) "for" (:* adj) (:? (:SEQ adj "og" adj)) (:AND subst appell (:NOT gen)) )) #+test ((:name "Navn") (:SEQ (:AND subst prop (:NOT gen)) (:+ (:AND subst prop)) (:? (:AND det )))) ((:name "Sammensatt navn") (:OR (:SEQ (:* (:AND subst prop @subst> (:NOT gen))) (:AND subst (:ADD head) prop #+test(:NOT gen)) #+ignore(:AND subst (:ADD head) prop @subj (:NOT gen)) #+ignore(:AND subst (:ADD head) prop @obj (:NOT gen)) #+ignore(:AND subst (:ADD head) prop @i-obj (:NOT gen)) (:? (:AND det ))) #+test (:SEQ (:+ (:AND subst prop @subst> #+test (:NOT gen))) (:AND subst (:ADD head) prop #+test (:NOT gen)) #+ignore(:AND subst (:ADD head) prop @subj (:NOT gen)) #+ignore(:AND subst (:ADD head) prop @obj (:NOT gen)) #+ignore(:AND subst (:ADD head) prop @i-obj (:NOT gen))))) #+test ((:name "test") (:SEQ (:AND subst prop gen) (:+ (:AND subst ub (:NOT prop))))) ((:name "X og Y (AS)") (:SEQ (:+ (:AND subst prop)) (:OR (:SEQ "&" (:+ (:AND subst prop))) #+test (:SEQ (:AND subst prop) "og" (:+ (:AND subst appell prop (:not samset))))) (:? (:or "AS" "A/S")))) ((:name "X of Y (eng)") (:SEQ (:+ (:AND subst (:ADD head) prop)) (:OR "of" "di" "on") (:+ (:AND subst prop)))) #+test ((:name "X for Y (eng)") (:SEQ (:+ (:AND subst (:ADD head) prop (:NOT lc))) "for" (:+ (:AND subst prop)))) ((:name "Odontologisk fakultet") (:SEQ (:AND adj prop) (:AND subst (:ADD head) ub appell)))) )) :eof