home *** CD-ROM | disk | FTP | other *** search
/ Chip 2011 November / CHIP_2011_11.iso / Programy / Narzedzia / AbiWord / abiword-setup-2.8.6.exe / grammar / en / 4.0.regex < prev    next >
Text File  |  2009-10-29  |  7KB  |  161 lines

  1.  %***************************************************************************%
  2.  %                                                                           %
  3.  %  Copyright (C) 2005, 2006 Sampo Pyysalo, Sophie Aubin                     %
  4.  %  See file "LICENSE" for information about commercial use of this system   %
  5.  %                                                                           %
  6.  %***************************************************************************%
  7.  
  8. % This file contains regular expressions that are used to match
  9. % tokens not found in the dictionary. Each regex is given a name which
  10. % determines the disjuncts assigned when the regex matches; this name
  11. % must be defined in the dictionary along with the appropriate disjuncts.
  12. % Note that the order of the regular expressions matters: matches will
  13. % be attempted in the order in which the regexs appear in this file,
  14. % and only the first match will be used.
  15.  
  16. % Numbers.
  17. % XXX, we need to add utf8 U+00A0 "no-break space"
  18. % The ":" is included here so we allow "10:30" to be a number
  19. %
  20. % This one matches the original LG rule.
  21. % NUMBERS: /^[0-9][0-9:.,]+$/
  22. % This allows more, e.g. "-5" and "5-10" and "9+/-6.5"
  23. NUMBERS: /^[0-9:.,-]*[0-9]([0-9:.,-]|\+\/-[0-9:.,-])*$/
  24. % "10(3)" exponent (used in PubMed)
  25. NUMBERS: /^[0-9:.,-]*[0-9][0-9:.,-]*\([0-9:.,-]*[0-9][0-9:.,-]*\)$/
  26.  
  27. % Roman numerals
  28. % The first expr has the potential(?) problem that it matches an empty
  29. % string, this should be fixed.
  30. ROMAN-NUMERAL-WORDS: /^M*(CM|D?C{0,3}|CD)(XC|L?X{0,3}|XL)(IX|V?I{0,3}|IV)$/
  31. % ROMAN-NUMERAL-WORDS: /^M*(CM|D?C{0,3}|CD){1}(XC|L?X{0,3}|XL)(IX|V?I{0,3}|IV)$/
  32. % ROMAN-NUMERAL-WORDS: /^M*(CM|D?C{0,3}|CD)(XC|L?X{0,3}|XL){1}(IX|V?I{0,3}|IV)$/
  33. % ROMAN-NUMERAL-WORDS: /^M*(CM|D?C{0,3}|CD)(XC|L?X{0,3}|XL)(IX|V?I{0,3}|IV){1}$/
  34.  
  35. % Greek letters with numbers
  36. GREEK-LETTER-AND-NUMBER: /^(alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega)\-?[0-9]+$/
  37. PL-GREEK-LETTER-AND-NUMBER: /^(alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega)s\-?[0-9]+$/
  38.  
  39. % Some "safe" derived units. Simple units are in dictionary.
  40. % The idea here is for the regex to match something that is almost
  41. % certainly part of a derived unit, and allow the rest to be
  42. % anything; this way we can capture difficult derived units such
  43. % as "mg/kg/day" and even oddities such as "micrograms/mouse/day"
  44. % without listing them explicitly.
  45. % TODO: add more. 
  46. % Some (real) misses from these: 
  47. % micrograms.kg-1.h-1 microM-1 J/cm2 %/day mN/m cm/yr
  48. % m/s days/week ml/s degrees/sec cm/sec cm/s mm/s N/mm (is that a unit?)
  49. % cuts/minute clicks/s beats/minute x/week W/kg/W %/patient-year
  50. % microIU/ml degrees/s counts/mm2 cells/mm3 tumors/mouse
  51. % mm/sec ml/hr mJ/cm(2) m2/g amol/mm2 animals/group
  52. % h-1 min-1 day-1 cm-1 mg-1 kg-1 mg.m-2.min-1 ms.cm-1 g-1
  53. % sec-1 ms-1 ml.min.-1kg-1 ml.hr-1
  54. % also, both kilometer and kilometers seem to be absent(!)
  55. % remember "mm"!
  56.  
  57. UNITS: /^([npmk]|nano|pico|milli|micro|kilo)?(g|grams?)\//   % grams/anything
  58. UNITS: /^([fnmp]|femto|nano|micro|pico|mu)?mol(es)?\//       % mol/anything
  59. UNITS: /^[a-zA-Z\/.]+\/((m|micro)?[lLg]|kg|mol|min|day|h)$/  % common endings
  60. % common endings, except in the style "mg.kg-1" instead of "mg/kg".
  61. UNITS: /^[a-zA-Z\/.1-]+\.((m|micro)?[lLg]|kg|mol|min|day|h)(-1|\(-1\))$/
  62.  
  63. % combinations of numbers and units, e.g. "50-kDa", "1-2h"
  64. % TODO: Clean up and check that these are up-to-date wrt the 
  65. % dictionary-recognized units; this is quite a mess currently.
  66. % TODO: Extend the "number" part of the regex to allow anything
  67. % that the NUMBER regex matches.
  68. % One problem here is a failure to split up the expression ... 
  69. % e.g. "2hr" becomes 2 - ND - hr with the ND link. But 2-hr is treated
  70. % as a single word ('I is a 2-hr wait')
  71. NUMBER-AND-UNIT: /^[0-9.,-]+(msec|s|min|hour|h|hr|day|week|wk|month|year|yr|kDa|kilodalton|base|kilobase|base-pair|kD|kd|kDa|bp|nt|kb|mm|mg|cm|nm|g|Hz|ms|kg|ml|mL|km|microm|\%)$/
  72.  
  73. % fold-words. Matches NUMBER-fold, where NUMBER can be either numeric
  74. % or a spelled-out number, and the hyphen is optional. Note that for
  75. % spelled-out numbers, anything is allowed between the "initial" number
  76. % and "fold" to catch e.g. "two-to-three fold" ("fourteen" etc. are absent
  77. % as the prefix "four" is sufficient to match).
  78. FOLD-WORDS: /^[0-9.,:-]*[0-9]([0-9.,:-]|\([0-9.,:-]*[0-9][0-9.,:-]*\)|\+\/-)*-?fold$/
  79. FOLD-WORDS: /^(one|two|three|four|five|six|seven|eight|nine|ten|eleven|twelve|thirteen|fifteen|twenty|thirty|fifty|hundred|thousand|million).*fold$/
  80.  
  81. % Plural proper nouns.
  82. PL-CAPITALIZED-WORDS:  /^[[:upper:]].*[^iuoys]s$/
  83.  
  84. % Other proper nouns.
  85. CAPITALIZED-WORDS:     /^[[:upper:]]/
  86.  
  87. % Nouns ending -ation  stubbed out in BioLG, stub out here ... 
  88. %ATION-WORDS:      /..ation$/
  89.  
  90. ING-WORDS:        /..ing$/
  91.  
  92. % plurals or verb-s.
  93. S-WORDS:          /[^iuoys]s$/
  94.  
  95. % Verbs ending -ed.
  96. ED-WORDS:         /..ed$/
  97.  
  98. % Advebs ending -ly.
  99. LY-WORDS:         /..ly$/
  100.  
  101. % Extension by LIPN 11/10/2005
  102. % nouns -- typically seen in (bio-)chemistry texts
  103. % synthetase, kinase
  104. % 5-(hydroxymethyl)-2ΓÇÖ-deoxyuridine
  105. % hydroxyethyl, hydroxymethyl
  106. % septation, reguion
  107. % isomaltotetraose, isomaltotriose
  108. % glycosylphosphatidylinositol
  109. % iodide, oligodeoxynucleotide
  110. % chronicity, hypochromicity
  111. MC-NOUN-WORDS: /..ase$/
  112. MC-NOUN-WORDS: /..ine?$/
  113. MC-NOUN-WORDS: /..yl$/
  114. MC-NOUN-WORDS: /..ion$/
  115. MC-NOUN-WORDS: /..ose$/
  116. MC-NOUN-WORDS: /..ol$/
  117. MC-NOUN-WORDS: /..ide$/
  118. MC-NOUN-WORDS: /..ity$/
  119.  
  120. % replicon, intron
  121. C-NOUN-WORDS: /..o[rn]$/
  122.  
  123. % adjectives
  124. % exogenous, heterologous
  125. % intermolecular, intramolecular
  126. % glycolytic, ribonucleic, uronic
  127. % ribosomal, ribsosomal
  128. % nonpermissive, thermosensitive
  129. % inducible, metastable
  130. ADJ-WORDS: /..ous$/
  131. ADJ-WORDS: /..ar$/
  132. ADJ-WORDS: /..ic$/
  133. ADJ-WORDS: /..al$/
  134. ADJ-WORDS: /..ive$/
  135. ADJ-WORDS: /..ble$/
  136.  
  137. % latin (postposed) adjectives
  138. % influenzae, tarentolae
  139. % pentosaceus, luteus, carnosus
  140. LATIN-ADJ-WORDS: /..ae$/
  141. LATIN-ADJ-WORDS: /..us$/ % must appear after -ous in this file
  142.  
  143. % latin (postposed) adjectives  or latin plural noun
  144. % brevis, israelensis
  145. % japonicum, tabacum, xylinum
  146. LATIN-ADJ-P-NOUN-WORDS: /..is?$/
  147. LATIN-ADJ-S-NOUN-WORDS: /..um$/
  148.  
  149.  
  150. % Hyphenated words. In the original LG morpho-guessing system that
  151. % predated the regex-based system, hyphenated words were detected
  152. % before ING-WORDS, S-WORDS etc., causing e.g. "cross-linked" to be
  153. % treated as a HYPHENATED-WORD (a generic adjective/noun), and
  154. % never a verb. To return to this ordering, move this regex just
  155. % after the CAPITALIZED-WORDS regex.
  156. HYPHENATED-WORDS: /^[[:alpha:][:digit:],.][[:alpha:][:digit:],.-]*-[[:alpha:][:digit:],.-]*[[:alpha:][:digit:],.]$/
  157.  
  158. % proteins often end "ase", so we'll assume those things are names.
  159. % removed, too many false positives.
  160. % NAME: /ase$/
  161.