grammar_cop 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (344) hide show
  1. data/.DS_Store +0 -0
  2. data/.gitignore +4 -0
  3. data/Gemfile +4 -0
  4. data/Rakefile +8 -0
  5. data/data/.DS_Store +0 -0
  6. data/data/Makefile +511 -0
  7. data/data/Makefile.am +4 -0
  8. data/data/Makefile.in +511 -0
  9. data/data/de/.DS_Store +0 -0
  10. data/data/de/4.0.affix +7 -0
  11. data/data/de/4.0.dict +474 -0
  12. data/data/de/Makefile +387 -0
  13. data/data/de/Makefile.am +9 -0
  14. data/data/de/Makefile.in +387 -0
  15. data/data/en/.DS_Store +0 -0
  16. data/data/en/4.0.affix +26 -0
  17. data/data/en/4.0.batch +1002 -0
  18. data/data/en/4.0.biolg.batch +411 -0
  19. data/data/en/4.0.constituent-knowledge +127 -0
  20. data/data/en/4.0.dict +8759 -0
  21. data/data/en/4.0.dict.m4 +6928 -0
  22. data/data/en/4.0.enwiki.batch +14 -0
  23. data/data/en/4.0.fixes.batch +2776 -0
  24. data/data/en/4.0.knowledge +306 -0
  25. data/data/en/4.0.regex +225 -0
  26. data/data/en/4.0.voa.batch +114 -0
  27. data/data/en/Makefile +554 -0
  28. data/data/en/Makefile.am +19 -0
  29. data/data/en/Makefile.in +554 -0
  30. data/data/en/README +173 -0
  31. data/data/en/tiny.dict +157 -0
  32. data/data/en/words/.DS_Store +0 -0
  33. data/data/en/words/Makefile +456 -0
  34. data/data/en/words/Makefile.am +78 -0
  35. data/data/en/words/Makefile.in +456 -0
  36. data/data/en/words/currency +205 -0
  37. data/data/en/words/currency.p +28 -0
  38. data/data/en/words/entities.given-bisex.sing +39 -0
  39. data/data/en/words/entities.given-female.sing +4141 -0
  40. data/data/en/words/entities.given-male.sing +1633 -0
  41. data/data/en/words/entities.locations.sing +68 -0
  42. data/data/en/words/entities.national.sing +253 -0
  43. data/data/en/words/entities.organizations.sing +7 -0
  44. data/data/en/words/entities.us-states.sing +11 -0
  45. data/data/en/words/units.1 +45 -0
  46. data/data/en/words/units.1.dot +4 -0
  47. data/data/en/words/units.3 +2 -0
  48. data/data/en/words/units.4 +5 -0
  49. data/data/en/words/units.4.dot +1 -0
  50. data/data/en/words/words-medical.adv.1 +1191 -0
  51. data/data/en/words/words-medical.prep.1 +67 -0
  52. data/data/en/words/words-medical.v.4.1 +2835 -0
  53. data/data/en/words/words-medical.v.4.2 +2848 -0
  54. data/data/en/words/words-medical.v.4.3 +3011 -0
  55. data/data/en/words/words-medical.v.4.4 +3036 -0
  56. data/data/en/words/words-medical.v.4.5 +3050 -0
  57. data/data/en/words/words.adj.1 +6794 -0
  58. data/data/en/words/words.adj.2 +638 -0
  59. data/data/en/words/words.adj.3 +667 -0
  60. data/data/en/words/words.adv.1 +1573 -0
  61. data/data/en/words/words.adv.2 +67 -0
  62. data/data/en/words/words.adv.3 +157 -0
  63. data/data/en/words/words.adv.4 +80 -0
  64. data/data/en/words/words.n.1 +11464 -0
  65. data/data/en/words/words.n.1.wiki +264 -0
  66. data/data/en/words/words.n.2.s +2017 -0
  67. data/data/en/words/words.n.2.s.biolg +1 -0
  68. data/data/en/words/words.n.2.s.wiki +298 -0
  69. data/data/en/words/words.n.2.x +65 -0
  70. data/data/en/words/words.n.2.x.wiki +10 -0
  71. data/data/en/words/words.n.3 +5717 -0
  72. data/data/en/words/words.n.t +23 -0
  73. data/data/en/words/words.v.1.1 +1038 -0
  74. data/data/en/words/words.v.1.2 +1043 -0
  75. data/data/en/words/words.v.1.3 +1052 -0
  76. data/data/en/words/words.v.1.4 +1023 -0
  77. data/data/en/words/words.v.1.p +17 -0
  78. data/data/en/words/words.v.10.1 +14 -0
  79. data/data/en/words/words.v.10.2 +15 -0
  80. data/data/en/words/words.v.10.3 +88 -0
  81. data/data/en/words/words.v.10.4 +17 -0
  82. data/data/en/words/words.v.2.1 +1253 -0
  83. data/data/en/words/words.v.2.2 +1304 -0
  84. data/data/en/words/words.v.2.3 +1280 -0
  85. data/data/en/words/words.v.2.4 +1285 -0
  86. data/data/en/words/words.v.2.5 +1287 -0
  87. data/data/en/words/words.v.4.1 +2472 -0
  88. data/data/en/words/words.v.4.2 +2487 -0
  89. data/data/en/words/words.v.4.3 +2441 -0
  90. data/data/en/words/words.v.4.4 +2478 -0
  91. data/data/en/words/words.v.4.5 +2483 -0
  92. data/data/en/words/words.v.5.1 +98 -0
  93. data/data/en/words/words.v.5.2 +98 -0
  94. data/data/en/words/words.v.5.3 +103 -0
  95. data/data/en/words/words.v.5.4 +102 -0
  96. data/data/en/words/words.v.6.1 +388 -0
  97. data/data/en/words/words.v.6.2 +401 -0
  98. data/data/en/words/words.v.6.3 +397 -0
  99. data/data/en/words/words.v.6.4 +405 -0
  100. data/data/en/words/words.v.6.5 +401 -0
  101. data/data/en/words/words.v.8.1 +117 -0
  102. data/data/en/words/words.v.8.2 +118 -0
  103. data/data/en/words/words.v.8.3 +118 -0
  104. data/data/en/words/words.v.8.4 +119 -0
  105. data/data/en/words/words.v.8.5 +119 -0
  106. data/data/en/words/words.y +104 -0
  107. data/data/lt/.DS_Store +0 -0
  108. data/data/lt/4.0.affix +6 -0
  109. data/data/lt/4.0.constituent-knowledge +24 -0
  110. data/data/lt/4.0.dict +135 -0
  111. data/data/lt/4.0.knowledge +38 -0
  112. data/data/lt/Makefile +389 -0
  113. data/data/lt/Makefile.am +11 -0
  114. data/data/lt/Makefile.in +389 -0
  115. data/ext/.DS_Store +0 -0
  116. data/ext/link_grammar/.DS_Store +0 -0
  117. data/ext/link_grammar/extconf.rb +2 -0
  118. data/ext/link_grammar/link-grammar/.DS_Store +0 -0
  119. data/ext/link_grammar/link-grammar/.deps/analyze-linkage.Plo +198 -0
  120. data/ext/link_grammar/link-grammar/.deps/and.Plo +202 -0
  121. data/ext/link_grammar/link-grammar/.deps/api.Plo +244 -0
  122. data/ext/link_grammar/link-grammar/.deps/build-disjuncts.Plo +212 -0
  123. data/ext/link_grammar/link-grammar/.deps/command-line.Plo +201 -0
  124. data/ext/link_grammar/link-grammar/.deps/constituents.Plo +201 -0
  125. data/ext/link_grammar/link-grammar/.deps/count.Plo +202 -0
  126. data/ext/link_grammar/link-grammar/.deps/disjunct-utils.Plo +126 -0
  127. data/ext/link_grammar/link-grammar/.deps/disjuncts.Plo +123 -0
  128. data/ext/link_grammar/link-grammar/.deps/error.Plo +121 -0
  129. data/ext/link_grammar/link-grammar/.deps/expand.Plo +133 -0
  130. data/ext/link_grammar/link-grammar/.deps/extract-links.Plo +198 -0
  131. data/ext/link_grammar/link-grammar/.deps/fast-match.Plo +200 -0
  132. data/ext/link_grammar/link-grammar/.deps/idiom.Plo +200 -0
  133. data/ext/link_grammar/link-grammar/.deps/jni-client.Plo +217 -0
  134. data/ext/link_grammar/link-grammar/.deps/link-parser.Po +1 -0
  135. data/ext/link_grammar/link-grammar/.deps/massage.Plo +202 -0
  136. data/ext/link_grammar/link-grammar/.deps/post-process.Plo +202 -0
  137. data/ext/link_grammar/link-grammar/.deps/pp_knowledge.Plo +202 -0
  138. data/ext/link_grammar/link-grammar/.deps/pp_lexer.Plo +201 -0
  139. data/ext/link_grammar/link-grammar/.deps/pp_linkset.Plo +200 -0
  140. data/ext/link_grammar/link-grammar/.deps/prefix.Plo +102 -0
  141. data/ext/link_grammar/link-grammar/.deps/preparation.Plo +202 -0
  142. data/ext/link_grammar/link-grammar/.deps/print-util.Plo +200 -0
  143. data/ext/link_grammar/link-grammar/.deps/print.Plo +201 -0
  144. data/ext/link_grammar/link-grammar/.deps/prune.Plo +202 -0
  145. data/ext/link_grammar/link-grammar/.deps/read-dict.Plo +223 -0
  146. data/ext/link_grammar/link-grammar/.deps/read-regex.Plo +123 -0
  147. data/ext/link_grammar/link-grammar/.deps/regex-morph.Plo +131 -0
  148. data/ext/link_grammar/link-grammar/.deps/resources.Plo +203 -0
  149. data/ext/link_grammar/link-grammar/.deps/spellcheck-aspell.Plo +1 -0
  150. data/ext/link_grammar/link-grammar/.deps/spellcheck-hun.Plo +115 -0
  151. data/ext/link_grammar/link-grammar/.deps/string-set.Plo +198 -0
  152. data/ext/link_grammar/link-grammar/.deps/tokenize.Plo +160 -0
  153. data/ext/link_grammar/link-grammar/.deps/utilities.Plo +222 -0
  154. data/ext/link_grammar/link-grammar/.deps/word-file.Plo +201 -0
  155. data/ext/link_grammar/link-grammar/.deps/word-utils.Plo +212 -0
  156. data/ext/link_grammar/link-grammar/.libs/analyze-linkage.o +0 -0
  157. data/ext/link_grammar/link-grammar/.libs/and.o +0 -0
  158. data/ext/link_grammar/link-grammar/.libs/api.o +0 -0
  159. data/ext/link_grammar/link-grammar/.libs/build-disjuncts.o +0 -0
  160. data/ext/link_grammar/link-grammar/.libs/command-line.o +0 -0
  161. data/ext/link_grammar/link-grammar/.libs/constituents.o +0 -0
  162. data/ext/link_grammar/link-grammar/.libs/count.o +0 -0
  163. data/ext/link_grammar/link-grammar/.libs/disjunct-utils.o +0 -0
  164. data/ext/link_grammar/link-grammar/.libs/disjuncts.o +0 -0
  165. data/ext/link_grammar/link-grammar/.libs/error.o +0 -0
  166. data/ext/link_grammar/link-grammar/.libs/expand.o +0 -0
  167. data/ext/link_grammar/link-grammar/.libs/extract-links.o +0 -0
  168. data/ext/link_grammar/link-grammar/.libs/fast-match.o +0 -0
  169. data/ext/link_grammar/link-grammar/.libs/idiom.o +0 -0
  170. data/ext/link_grammar/link-grammar/.libs/jni-client.o +0 -0
  171. data/ext/link_grammar/link-grammar/.libs/liblink-grammar-java-symbols.expsym +31 -0
  172. data/ext/link_grammar/link-grammar/.libs/liblink-grammar-java.4.dylib +0 -0
  173. data/ext/link_grammar/link-grammar/.libs/liblink-grammar-java.4.dylib.dSYM/Contents/Info.plist +20 -0
  174. data/ext/link_grammar/link-grammar/.libs/liblink-grammar-java.4.dylib.dSYM/Contents/Resources/DWARF/liblink-grammar-java.4.dylib +0 -0
  175. data/ext/link_grammar/link-grammar/.libs/liblink-grammar-java.a +0 -0
  176. data/ext/link_grammar/link-grammar/.libs/liblink-grammar-java.dylib +0 -0
  177. data/ext/link_grammar/link-grammar/.libs/liblink-grammar-symbols.expsym +194 -0
  178. data/ext/link_grammar/link-grammar/.libs/liblink-grammar.4.dylib +0 -0
  179. data/ext/link_grammar/link-grammar/.libs/liblink-grammar.4.dylib.dSYM/Contents/Info.plist +20 -0
  180. data/ext/link_grammar/link-grammar/.libs/liblink-grammar.4.dylib.dSYM/Contents/Resources/DWARF/liblink-grammar.4.dylib +0 -0
  181. data/ext/link_grammar/link-grammar/.libs/liblink-grammar.a +0 -0
  182. data/ext/link_grammar/link-grammar/.libs/liblink-grammar.dylib +0 -0
  183. data/ext/link_grammar/link-grammar/.libs/liblink-grammar.la +41 -0
  184. data/ext/link_grammar/link-grammar/.libs/liblink-grammar.lai +41 -0
  185. data/ext/link_grammar/link-grammar/.libs/massage.o +0 -0
  186. data/ext/link_grammar/link-grammar/.libs/post-process.o +0 -0
  187. data/ext/link_grammar/link-grammar/.libs/pp_knowledge.o +0 -0
  188. data/ext/link_grammar/link-grammar/.libs/pp_lexer.o +0 -0
  189. data/ext/link_grammar/link-grammar/.libs/pp_linkset.o +0 -0
  190. data/ext/link_grammar/link-grammar/.libs/prefix.o +0 -0
  191. data/ext/link_grammar/link-grammar/.libs/preparation.o +0 -0
  192. data/ext/link_grammar/link-grammar/.libs/print-util.o +0 -0
  193. data/ext/link_grammar/link-grammar/.libs/print.o +0 -0
  194. data/ext/link_grammar/link-grammar/.libs/prune.o +0 -0
  195. data/ext/link_grammar/link-grammar/.libs/read-dict.o +0 -0
  196. data/ext/link_grammar/link-grammar/.libs/read-regex.o +0 -0
  197. data/ext/link_grammar/link-grammar/.libs/regex-morph.o +0 -0
  198. data/ext/link_grammar/link-grammar/.libs/resources.o +0 -0
  199. data/ext/link_grammar/link-grammar/.libs/spellcheck-aspell.o +0 -0
  200. data/ext/link_grammar/link-grammar/.libs/spellcheck-hun.o +0 -0
  201. data/ext/link_grammar/link-grammar/.libs/string-set.o +0 -0
  202. data/ext/link_grammar/link-grammar/.libs/tokenize.o +0 -0
  203. data/ext/link_grammar/link-grammar/.libs/utilities.o +0 -0
  204. data/ext/link_grammar/link-grammar/.libs/word-file.o +0 -0
  205. data/ext/link_grammar/link-grammar/.libs/word-utils.o +0 -0
  206. data/ext/link_grammar/link-grammar/Makefile +900 -0
  207. data/ext/link_grammar/link-grammar/Makefile.am +202 -0
  208. data/ext/link_grammar/link-grammar/Makefile.in +900 -0
  209. data/ext/link_grammar/link-grammar/analyze-linkage.c +1317 -0
  210. data/ext/link_grammar/link-grammar/analyze-linkage.h +24 -0
  211. data/ext/link_grammar/link-grammar/and.c +1603 -0
  212. data/ext/link_grammar/link-grammar/and.h +27 -0
  213. data/ext/link_grammar/link-grammar/api-structures.h +362 -0
  214. data/ext/link_grammar/link-grammar/api-types.h +72 -0
  215. data/ext/link_grammar/link-grammar/api.c +1887 -0
  216. data/ext/link_grammar/link-grammar/api.h +96 -0
  217. data/ext/link_grammar/link-grammar/autoit/.DS_Store +0 -0
  218. data/ext/link_grammar/link-grammar/autoit/README +10 -0
  219. data/ext/link_grammar/link-grammar/autoit/_LGTest.au3 +22 -0
  220. data/ext/link_grammar/link-grammar/autoit/_LinkGrammar.au3 +545 -0
  221. data/ext/link_grammar/link-grammar/build-disjuncts.c +487 -0
  222. data/ext/link_grammar/link-grammar/build-disjuncts.h +21 -0
  223. data/ext/link_grammar/link-grammar/command-line.c +458 -0
  224. data/ext/link_grammar/link-grammar/command-line.h +15 -0
  225. data/ext/link_grammar/link-grammar/constituents.c +1836 -0
  226. data/ext/link_grammar/link-grammar/constituents.h +26 -0
  227. data/ext/link_grammar/link-grammar/corpus/.DS_Store +0 -0
  228. data/ext/link_grammar/link-grammar/corpus/.deps/cluster.Plo +1 -0
  229. data/ext/link_grammar/link-grammar/corpus/.deps/corpus.Plo +1 -0
  230. data/ext/link_grammar/link-grammar/corpus/Makefile +527 -0
  231. data/ext/link_grammar/link-grammar/corpus/Makefile.am +46 -0
  232. data/ext/link_grammar/link-grammar/corpus/Makefile.in +527 -0
  233. data/ext/link_grammar/link-grammar/corpus/README +17 -0
  234. data/ext/link_grammar/link-grammar/corpus/cluster.c +286 -0
  235. data/ext/link_grammar/link-grammar/corpus/cluster.h +32 -0
  236. data/ext/link_grammar/link-grammar/corpus/corpus.c +483 -0
  237. data/ext/link_grammar/link-grammar/corpus/corpus.h +46 -0
  238. data/ext/link_grammar/link-grammar/count.c +828 -0
  239. data/ext/link_grammar/link-grammar/count.h +25 -0
  240. data/ext/link_grammar/link-grammar/disjunct-utils.c +261 -0
  241. data/ext/link_grammar/link-grammar/disjunct-utils.h +27 -0
  242. data/ext/link_grammar/link-grammar/disjuncts.c +138 -0
  243. data/ext/link_grammar/link-grammar/disjuncts.h +13 -0
  244. data/ext/link_grammar/link-grammar/error.c +92 -0
  245. data/ext/link_grammar/link-grammar/error.h +35 -0
  246. data/ext/link_grammar/link-grammar/expand.c +67 -0
  247. data/ext/link_grammar/link-grammar/expand.h +13 -0
  248. data/ext/link_grammar/link-grammar/externs.h +22 -0
  249. data/ext/link_grammar/link-grammar/extract-links.c +625 -0
  250. data/ext/link_grammar/link-grammar/extract-links.h +16 -0
  251. data/ext/link_grammar/link-grammar/fast-match.c +309 -0
  252. data/ext/link_grammar/link-grammar/fast-match.h +17 -0
  253. data/ext/link_grammar/link-grammar/idiom.c +373 -0
  254. data/ext/link_grammar/link-grammar/idiom.h +15 -0
  255. data/ext/link_grammar/link-grammar/jni-client.c +779 -0
  256. data/ext/link_grammar/link-grammar/jni-client.h +236 -0
  257. data/ext/link_grammar/link-grammar/liblink-grammar-java.la +42 -0
  258. data/ext/link_grammar/link-grammar/liblink-grammar.la +41 -0
  259. data/ext/link_grammar/link-grammar/link-features.h +37 -0
  260. data/ext/link_grammar/link-grammar/link-features.h.in +37 -0
  261. data/ext/link_grammar/link-grammar/link-grammar-java.def +31 -0
  262. data/ext/link_grammar/link-grammar/link-grammar.def +194 -0
  263. data/ext/link_grammar/link-grammar/link-includes.h +465 -0
  264. data/ext/link_grammar/link-grammar/link-parser.c +849 -0
  265. data/ext/link_grammar/link-grammar/massage.c +329 -0
  266. data/ext/link_grammar/link-grammar/massage.h +13 -0
  267. data/ext/link_grammar/link-grammar/post-process.c +1113 -0
  268. data/ext/link_grammar/link-grammar/post-process.h +45 -0
  269. data/ext/link_grammar/link-grammar/pp_knowledge.c +376 -0
  270. data/ext/link_grammar/link-grammar/pp_knowledge.h +14 -0
  271. data/ext/link_grammar/link-grammar/pp_lexer.c +1920 -0
  272. data/ext/link_grammar/link-grammar/pp_lexer.h +19 -0
  273. data/ext/link_grammar/link-grammar/pp_linkset.c +158 -0
  274. data/ext/link_grammar/link-grammar/pp_linkset.h +20 -0
  275. data/ext/link_grammar/link-grammar/prefix.c +482 -0
  276. data/ext/link_grammar/link-grammar/prefix.h +139 -0
  277. data/ext/link_grammar/link-grammar/preparation.c +412 -0
  278. data/ext/link_grammar/link-grammar/preparation.h +20 -0
  279. data/ext/link_grammar/link-grammar/print-util.c +87 -0
  280. data/ext/link_grammar/link-grammar/print-util.h +32 -0
  281. data/ext/link_grammar/link-grammar/print.c +1085 -0
  282. data/ext/link_grammar/link-grammar/print.h +16 -0
  283. data/ext/link_grammar/link-grammar/prune.c +1864 -0
  284. data/ext/link_grammar/link-grammar/prune.h +17 -0
  285. data/ext/link_grammar/link-grammar/read-dict.c +1785 -0
  286. data/ext/link_grammar/link-grammar/read-dict.h +29 -0
  287. data/ext/link_grammar/link-grammar/read-regex.c +161 -0
  288. data/ext/link_grammar/link-grammar/read-regex.h +12 -0
  289. data/ext/link_grammar/link-grammar/regex-morph.c +126 -0
  290. data/ext/link_grammar/link-grammar/regex-morph.h +17 -0
  291. data/ext/link_grammar/link-grammar/resources.c +180 -0
  292. data/ext/link_grammar/link-grammar/resources.h +23 -0
  293. data/ext/link_grammar/link-grammar/sat-solver/.DS_Store +0 -0
  294. data/ext/link_grammar/link-grammar/sat-solver/.deps/fast-sprintf.Plo +1 -0
  295. data/ext/link_grammar/link-grammar/sat-solver/.deps/sat-encoder.Plo +1 -0
  296. data/ext/link_grammar/link-grammar/sat-solver/.deps/util.Plo +1 -0
  297. data/ext/link_grammar/link-grammar/sat-solver/.deps/variables.Plo +1 -0
  298. data/ext/link_grammar/link-grammar/sat-solver/.deps/word-tag.Plo +1 -0
  299. data/ext/link_grammar/link-grammar/sat-solver/Makefile +527 -0
  300. data/ext/link_grammar/link-grammar/sat-solver/Makefile.am +29 -0
  301. data/ext/link_grammar/link-grammar/sat-solver/Makefile.in +527 -0
  302. data/ext/link_grammar/link-grammar/sat-solver/clock.hpp +33 -0
  303. data/ext/link_grammar/link-grammar/sat-solver/fast-sprintf.cpp +26 -0
  304. data/ext/link_grammar/link-grammar/sat-solver/fast-sprintf.hpp +7 -0
  305. data/ext/link_grammar/link-grammar/sat-solver/guiding.hpp +244 -0
  306. data/ext/link_grammar/link-grammar/sat-solver/matrix-ut.hpp +79 -0
  307. data/ext/link_grammar/link-grammar/sat-solver/sat-encoder.cpp +2811 -0
  308. data/ext/link_grammar/link-grammar/sat-solver/sat-encoder.h +11 -0
  309. data/ext/link_grammar/link-grammar/sat-solver/sat-encoder.hpp +381 -0
  310. data/ext/link_grammar/link-grammar/sat-solver/trie.hpp +118 -0
  311. data/ext/link_grammar/link-grammar/sat-solver/util.cpp +23 -0
  312. data/ext/link_grammar/link-grammar/sat-solver/util.hpp +14 -0
  313. data/ext/link_grammar/link-grammar/sat-solver/variables.cpp +5 -0
  314. data/ext/link_grammar/link-grammar/sat-solver/variables.hpp +829 -0
  315. data/ext/link_grammar/link-grammar/sat-solver/word-tag.cpp +159 -0
  316. data/ext/link_grammar/link-grammar/sat-solver/word-tag.hpp +162 -0
  317. data/ext/link_grammar/link-grammar/spellcheck-aspell.c +148 -0
  318. data/ext/link_grammar/link-grammar/spellcheck-hun.c +136 -0
  319. data/ext/link_grammar/link-grammar/spellcheck.h +34 -0
  320. data/ext/link_grammar/link-grammar/string-set.c +169 -0
  321. data/ext/link_grammar/link-grammar/string-set.h +16 -0
  322. data/ext/link_grammar/link-grammar/structures.h +498 -0
  323. data/ext/link_grammar/link-grammar/tokenize.c +1049 -0
  324. data/ext/link_grammar/link-grammar/tokenize.h +15 -0
  325. data/ext/link_grammar/link-grammar/utilities.c +847 -0
  326. data/ext/link_grammar/link-grammar/utilities.h +281 -0
  327. data/ext/link_grammar/link-grammar/word-file.c +124 -0
  328. data/ext/link_grammar/link-grammar/word-file.h +15 -0
  329. data/ext/link_grammar/link-grammar/word-utils.c +526 -0
  330. data/ext/link_grammar/link-grammar/word-utils.h +152 -0
  331. data/ext/link_grammar/link_grammar.c +202 -0
  332. data/ext/link_grammar/link_grammar.h +99 -0
  333. data/grammar_cop.gemspec +24 -0
  334. data/lib/.DS_Store +0 -0
  335. data/lib/grammar_cop.rb +9 -0
  336. data/lib/grammar_cop/.DS_Store +0 -0
  337. data/lib/grammar_cop/dictionary.rb +19 -0
  338. data/lib/grammar_cop/linkage.rb +30 -0
  339. data/lib/grammar_cop/parse_options.rb +32 -0
  340. data/lib/grammar_cop/sentence.rb +36 -0
  341. data/lib/grammar_cop/version.rb +3 -0
  342. data/test/.DS_Store +0 -0
  343. data/test/grammar_cop_test.rb +27 -0
  344. metadata +407 -0
@@ -0,0 +1,152 @@
1
+ /*************************************************************************/
2
+ /* Copyright (c) 2004 */
3
+ /* Daniel Sleator, David Temperley, and John Lafferty */
4
+ /* All rights reserved */
5
+ /* */
6
+ /* Use of the link grammar parsing system is subject to the terms of the */
7
+ /* license set forth in the LICENSE file included with this software, */
8
+ /* and also available at http://www.link.cs.cmu.edu/link/license.html */
9
+ /* This license allows free redistribution and use in source and binary */
10
+ /* forms, with or without modification, subject to certain conditions. */
11
+ /* */
12
+ /*************************************************************************/
13
+
14
+ #ifndef _LINK_GRAMMAR_WORD_UTILS_H_
15
+ #define _LINK_GRAMMAR_WORD_UTILS_H_
16
+
17
+ //#include <link-grammar/api-types.h>
18
+ #include "api-types.h"
19
+
20
+ /* Exp utilities ... */
21
+ void free_Exp(Exp *);
22
+ void free_E_list(E_list *);
23
+ int size_of_expression(Exp *);
24
+ Exp * copy_Exp(Exp *);
25
+ /* int exp_compare(Exp * e1, Exp * e2); */
26
+ /* int exp_contains(Exp * super, Exp * sub); */
27
+
28
+
29
+ /* X_node utilities ... */
30
+ X_node * catenate_X_nodes(X_node *, X_node *);
31
+ void free_X_nodes(X_node *);
32
+
33
+
34
+ /* Connector utilities ... */
35
+ Connector * connector_new(void);
36
+ Connector * init_connector(Connector *c);
37
+ void free_connectors(Connector *);
38
+ void exfree_connectors(Connector *);
39
+ Connector * copy_connectors(Connector *);
40
+ Connector * excopy_connectors(Connector * c);
41
+
42
+ /* Link utilities ... */
43
+ Link * excopy_link(Link *);
44
+ void exfree_link(Link *);
45
+
46
+
47
+ /* Connector-set utilities ... */
48
+ Connector_set * connector_set_create(Exp *e);
49
+ void connector_set_delete(Connector_set * conset);
50
+ int match_in_connector_set(Sentence, Connector_set *conset, Connector * c, int d);
51
+ int word_has_connector(Dict_node *, const char *, int);
52
+
53
+
54
+ /* Dictionary utilities ... */
55
+ int word_contains(Dictionary dict, const char * word, const char * macro);
56
+ Dict_node * list_whole_dictionary(Dict_node *, Dict_node *);
57
+
58
+ static inline int string_hash(const char *s)
59
+ {
60
+ unsigned int i;
61
+
62
+ /* djb2 hash */
63
+ i = 5381;
64
+ while (*s)
65
+ {
66
+ i = ((i << 5) + i) + *s;
67
+ s++;
68
+ }
69
+ return i;
70
+ }
71
+
72
+ /**
73
+ * This hash function only looks at the leading upper case letters of
74
+ * the connector string, and the label fields. This ensures that if two
75
+ * strings match (formally), then they must hash to the same place.
76
+ */
77
+ static inline int connector_hash(Connector * c)
78
+ {
79
+ const char *s;
80
+ unsigned int i;
81
+
82
+ if (-1 != c->hash) return c->hash;
83
+
84
+ /* For most situations, both hashes are very nearly equal;
85
+ * sdbm seems to be about 5% faster than djb2, hard to say.
86
+ * In either case, realize that the connector string is
87
+ * very very short - usually one or two letters, so we have
88
+ * probably only 8 or 10 bits total entropy coming in! */
89
+ #if 0
90
+ /* djb2 hash */
91
+ i = 5381;
92
+ i = ((i << 5) + i) + (0xff & c->label);
93
+ s = c->string;
94
+ while (isupper((int) *s)) /* connector tables cannot contain UTF8, yet */
95
+ {
96
+ i = ((i << 5) + i) + *s;
97
+ s++;
98
+ }
99
+ i += i>>14;
100
+
101
+ #else
102
+ /* sdbm hash */
103
+ i = (0xff & c->label);
104
+ s = c->string;
105
+ while (isupper((int) *s)) /* connector tables cannot contain UTF8, yet */
106
+ {
107
+ i = *s + (i << 6) + (i << 16) - i;
108
+ s++;
109
+ }
110
+ #endif
111
+
112
+ c->prune_string = s;
113
+ c->hash = i;
114
+ return i;
115
+ }
116
+
117
+ /**
118
+ * hash function. Based on some tests, this seems to be an almost
119
+ * "perfect" hash, in that almost all hash buckets have the same size!
120
+ */
121
+ static inline int pair_hash(int log2_table_size,
122
+ int lw, int rw,
123
+ const Connector *le, const Connector *re,
124
+ int cost)
125
+ {
126
+ int table_size = (1 << log2_table_size);
127
+ unsigned int i = 0;
128
+
129
+ #if 0
130
+ /* hash function. Based on some tests, this seems to be
131
+ * an almost "perfect" hash, in that almost all hash buckets
132
+ * have the same size! */
133
+ i += 1 << cost;
134
+ i += 1 << (lw % (log2_table_size-1));
135
+ i += 1 << (rw % (log2_table_size-1));
136
+ i += ((unsigned int) le) >> 2;
137
+ i += ((unsigned int) le) >> log2_table_size;
138
+ i += ((unsigned int) re) >> 2;
139
+ i += ((unsigned int) re) >> log2_table_size;
140
+ i += i >> log2_table_size;
141
+ #else
142
+ /* sdbm-based hash */
143
+ i = cost;
144
+ i = lw + (i << 6) + (i << 16) - i;
145
+ i = rw + (i << 6) + (i << 16) - i;
146
+ i = ((unsigned long) le) + (i << 6) + (i << 16) - i;
147
+ i = ((unsigned long) re) + (i << 6) + (i << 16) - i;
148
+ #endif
149
+
150
+ return i & (table_size-1);
151
+ }
152
+ #endif /* _LINK_GRAMMAR_WORD_UTILS_H_ */
@@ -0,0 +1,202 @@
1
+ #include <locale.h>
2
+ #include <stdio.h>
3
+ #include <string.h>
4
+ #include <limits.h>
5
+ #include <math.h>
6
+
7
+ #include "link_grammar.h"
8
+
9
+ void Init_link_grammar() {
10
+ VALUE lg = rb_define_module("LinkGrammar");
11
+ rb_define_module_function(lg, "create_dictionary", create_dictionary, 1);
12
+ rb_define_module_function(lg, "delete_dictionary", delete_dictionary, 1);
13
+ rb_define_module_function(lg, "dictionary_path_set", dictionary_path_set, 1);
14
+ rb_define_module_function(lg, "create_parse_options", create_parse_options, 0);
15
+ rb_define_module_function(lg, "delete_parse_options", delete_parse_options, 1);
16
+ rb_define_module_function(lg, "linkage_limit_set", linkage_limit_set, 2);
17
+ rb_define_module_function(lg, "linkage_limit_get", linkage_limit_get, 1);
18
+ rb_define_module_function(lg, "short_length_set", short_length_set, 2);
19
+ rb_define_module_function(lg, "short_length_get", short_length_get, 1);
20
+ rb_define_module_function(lg, "create_sentence", create_sentence, 2);
21
+ rb_define_module_function(lg, "parse_sentence", parse_sentence, 2);
22
+ rb_define_module_function(lg, "delete_sentence", delete_sentence, 1);
23
+ rb_define_module_function(lg, "create_linkage", create_linkage, 3);
24
+ rb_define_module_function(lg, "delete_linkage", delete_linkage, 1);
25
+ rb_define_module_function(lg, "print_linkage_diagram", print_linkage_diagram, 1);
26
+ rb_define_module_function(lg, "linkage_count_sublinkages", linkage_count_sublinkages, 1);
27
+ rb_define_module_function(lg, "linkage_count_num_words", linkage_count_num_words, 1);
28
+ rb_define_module_function(lg, "linkage_count_num_links", linkage_count_num_links, 1);
29
+ }
30
+
31
+ //functions for retrieving pointers from ruby VALUE wrapper
32
+ DictionaryPtr *retrieve_dictionary(VALUE dict) {
33
+ DictionaryPtr *ptr;
34
+ Data_Get_Struct(dict, DictionaryPtr, ptr);
35
+ return ptr;
36
+ }
37
+
38
+ ParseOptionsPtr *retrieve_parse_options(VALUE opts) {
39
+ ParseOptionsPtr *ptr;
40
+ Data_Get_Struct(opts, ParseOptionsPtr, ptr);
41
+ return ptr;
42
+ }
43
+
44
+ SentencePtr *retrieve_sentence(VALUE sentence) {
45
+ SentencePtr *ptr;
46
+ Data_Get_Struct(sentence, SentencePtr, ptr);
47
+ return ptr;
48
+ }
49
+
50
+ LinkagePtr *retrieve_linkage(VALUE link) {
51
+ LinkagePtr *ptr;
52
+ Data_Get_Struct(link, LinkagePtr, ptr);
53
+ return ptr;
54
+ }
55
+
56
+ //custom routines for freeing memory pointers
57
+ void free_dictionary_ptr(DictionaryPtr *ptr) {
58
+ dictionary_delete(ptr->dict);
59
+ free(ptr);
60
+ }
61
+
62
+ void free_parse_options_ptr(ParseOptionsPtr *ptr) {
63
+ parse_options_delete(ptr->opts);
64
+ free(ptr);
65
+ }
66
+
67
+ void free_sentence_ptr(SentencePtr *ptr) {
68
+ sentence_delete(ptr->sentence);
69
+ free(ptr);
70
+ }
71
+
72
+ void free_linkage_ptr(LinkagePtr *ptr) {
73
+ linkage_delete(ptr->linkage);
74
+ free(ptr);
75
+ }
76
+
77
+ VALUE dictionary_path_set(const VALUE self, VALUE dict_path) {
78
+ char *pathstr = StringValuePtr(dict_path);
79
+ dictionary_set_data_dir(pathstr);
80
+ return Qnil;
81
+ }
82
+
83
+ VALUE create_dictionary(const VALUE self, volatile VALUE lang) {
84
+ Dictionary dict = dictionary_create_lang(StringValuePtr(lang));
85
+ DictionaryPtr *ptr = ALLOC(DictionaryPtr);
86
+ ptr->dict = NULL;
87
+ ptr->dict = dict;
88
+ return Data_Wrap_Struct(self, 0, free_dictionary_ptr, ptr);
89
+ }
90
+
91
+ VALUE delete_dictionary(const VALUE self, VALUE dict) {
92
+ DictionaryPtr *ptr = retrieve_dictionary(dict);
93
+ free_dictionary_ptr(ptr);
94
+ return Qnil;
95
+ }
96
+
97
+ VALUE create_parse_options(const VALUE self) {
98
+ Parse_Options options = parse_options_create();
99
+ ParseOptionsPtr *ptr = ALLOC(ParseOptionsPtr);
100
+ ptr->opts = NULL;
101
+ ptr->opts = options;
102
+ return Data_Wrap_Struct(self, 0, free_parse_options_ptr, ptr);
103
+ }
104
+
105
+ VALUE delete_parse_options(const VALUE self, VALUE opts) {
106
+ ParseOptionsPtr *ptr = retrieve_parse_options(opts);
107
+ //int a = parse_options_delete(ptr->opts);
108
+ free_parse_options_ptr(ptr);
109
+ //return INT2FIX(a);
110
+ return Qnil;
111
+ }
112
+
113
+ VALUE linkage_limit_set(const VALUE self, VALUE opts, volatile VALUE limit) {
114
+ ParseOptionsPtr *ptr = retrieve_parse_options(opts);
115
+ int l = NUM2INT(limit);
116
+ parse_options_set_linkage_limit(ptr->opts, l);
117
+ return Qnil;
118
+ }
119
+
120
+ VALUE linkage_limit_get(const VALUE self, VALUE opts) {
121
+ ParseOptionsPtr *ptr = retrieve_parse_options(opts);
122
+ int l = parse_options_get_linkage_limit(ptr->opts);
123
+ return INT2FIX(l);
124
+ }
125
+
126
+ VALUE short_length_set(const VALUE self, VALUE opts, volatile VALUE length) {
127
+ ParseOptionsPtr *ptr = retrieve_parse_options(opts);
128
+ int l = NUM2INT(length);
129
+ parse_options_set_short_length(ptr->opts, l);
130
+ return Qnil;
131
+ }
132
+
133
+ VALUE short_length_get(const VALUE self, VALUE opts) {
134
+ ParseOptionsPtr *ptr = retrieve_parse_options(opts);
135
+ int l = parse_options_get_short_length(ptr->opts);
136
+ return INT2FIX(l);
137
+ }
138
+
139
+ VALUE create_sentence(const VALUE self, volatile VALUE str, VALUE dict) {
140
+ char *text = StringValuePtr(str);
141
+ DictionaryPtr *dict_ptr = retrieve_dictionary(dict);
142
+ Sentence sentence = sentence_create(text, dict_ptr->dict);
143
+ SentencePtr *sent_ptr = ALLOC(SentencePtr);
144
+ sent_ptr->sentence = NULL;
145
+ sent_ptr->sentence = sentence;
146
+ return Data_Wrap_Struct(self, 0, free, sent_ptr);
147
+ }
148
+
149
+ VALUE parse_sentence(const VALUE self, VALUE sentence, VALUE opts) {
150
+ SentencePtr *sent_ptr = retrieve_sentence(sentence);
151
+ ParseOptionsPtr *opts_ptr = retrieve_parse_options(opts);
152
+ int num_linkages = sentence_parse(sent_ptr->sentence, opts_ptr->opts);
153
+ return INT2FIX(num_linkages);
154
+ }
155
+
156
+ VALUE delete_sentence(const VALUE self, VALUE sentence) {
157
+ SentencePtr *ptr = retrieve_sentence(sentence);
158
+ sentence_delete(ptr->sentence);
159
+ //free_sentence_ptr(ptr);
160
+ return Qnil;
161
+ }
162
+
163
+ VALUE create_linkage(const VALUE self, volatile VALUE k, VALUE sentence, VALUE opts) {
164
+ int ck = NUM2INT(k);
165
+ SentencePtr *sent_ptr = retrieve_sentence(sentence);
166
+ ParseOptionsPtr *opts_ptr = retrieve_parse_options(opts);
167
+ Linkage linkage = linkage_create(ck, sent_ptr->sentence, opts_ptr->opts);
168
+ LinkagePtr *link_ptr = ALLOC(LinkagePtr);
169
+ link_ptr->linkage = NULL;
170
+ link_ptr->linkage = linkage;
171
+ return Data_Wrap_Struct(self, 0, free_linkage_ptr, link_ptr);
172
+ }
173
+
174
+ VALUE delete_linkage(const VALUE self, VALUE link) {
175
+ LinkagePtr *link_ptr = retrieve_linkage(link);
176
+ free_linkage_ptr(link_ptr);
177
+ return Qnil;
178
+ }
179
+
180
+ VALUE print_linkage_diagram(const VALUE self, VALUE link) {
181
+ LinkagePtr *link_ptr = retrieve_linkage(link);
182
+ char *diagram = linkage_print_diagram(link_ptr->linkage);
183
+ return rb_str_new2(diagram);
184
+ }
185
+
186
+ VALUE linkage_count_sublinkages(const VALUE self, VALUE link) {
187
+ LinkagePtr *link_ptr = retrieve_linkage(link);
188
+ int cnt = linkage_get_num_sublinkages(link_ptr->linkage);
189
+ return INT2FIX(cnt);
190
+ }
191
+
192
+ VALUE linkage_count_num_words(const VALUE self, VALUE link) {
193
+ LinkagePtr *link_ptr = retrieve_linkage(link);
194
+ int cnt = linkage_get_num_words(link_ptr->linkage);
195
+ return INT2FIX(cnt);
196
+ }
197
+
198
+ VALUE linkage_count_num_links(const VALUE self, VALUE link) {
199
+ LinkagePtr *link_ptr = retrieve_linkage(link);
200
+ int cnt = linkage_get_num_links(link_ptr->linkage);
201
+ return INT2FIX(cnt);
202
+ }
@@ -0,0 +1,99 @@
1
+ #include "link-grammar/api.h"
2
+ #include "link-grammar/api.c" //need ifndef
3
+ #include "link-grammar/analyze-linkage.h"
4
+ #include "link-grammar/analyze-linkage.c"
5
+ #include "link-grammar/and.h"
6
+ #include "link-grammar/and.c"
7
+ #include "link-grammar/build-disjuncts.h"
8
+ #include "link-grammar/build-disjuncts.c"
9
+ #include "link-grammar/count.h"
10
+ #include "link-grammar/count.c"
11
+ #include "link-grammar/disjunct-utils.h" //ifndef guard
12
+ #include "link-grammar/disjunct-utils.c"
13
+ #include "link-grammar/disjuncts.h"
14
+ #include "link-grammar/disjuncts.c"
15
+ #include "link-grammar/error.h"
16
+ #include "link-grammar/error.c"
17
+ #include "link-grammar/extract-links.h"
18
+ #include "link-grammar/extract-links.c"
19
+ #include "link-grammar/fast-match.h"
20
+ #include "link-grammar/fast-match.c"
21
+ #include "link-grammar/idiom.h"
22
+ #include "link-grammar/idiom.c" //rename is_number to is_number_idiom line 61 and 82 (same function name as tokenize)
23
+ #include "link-grammar/massage.h"
24
+ #include "link-grammar/massage.c"
25
+ #include "link-grammar/pp_knowledge.h"
26
+ #include "link-grammar/pp_knowledge.c"
27
+ #include "link-grammar/pp_lexer.h"
28
+ #include "link-grammar/pp_lexer.c"
29
+ #include "link-grammar/pp_linkset.h"
30
+ #include "link-grammar/pp_linkset.c"
31
+ #include "link-grammar/post-process.h"
32
+ #include "link-grammar/post-process.c"
33
+ #include "link-grammar/preparation.h"
34
+ #include "link-grammar/preparation.c"
35
+ #include "link-grammar/print-util.h"
36
+ #include "link-grammar/print-util.c"
37
+ #include "link-grammar/print.h"
38
+ #include "link-grammar/print.c"
39
+ #include "link-grammar/prune.h"
40
+ #include "link-grammar/prune.c" //comment out line 20 to 27 (same as disjunct-util line87). Can also use ifndef
41
+ #include "link-grammar/resources.h"
42
+ #include "link-grammar/resources.c"
43
+ #include "link-grammar/read-dict.h"
44
+ #include "link-grammar/read-dict.c"
45
+ #include "link-grammar/read-regex.h"
46
+ #include "link-grammar/read-regex.c"
47
+ #include "link-grammar/regex-morph.h"
48
+ #include "link-grammar/regex-morph.c"
49
+ #include "link-grammar/string-set.h"
50
+ #include "link-grammar/string-set.c"
51
+ #include "link-grammar/tokenize.h"
52
+ #include "link-grammar/tokenize.c" //put ifndef around spellcheck.h
53
+ #include "link-grammar/utilities.h" //define DICTIONARY_DIR "../../../data/"
54
+ #include "link-grammar/utilities.c"
55
+ #include "link-grammar/word-utils.h"
56
+ #include "link-grammar/word-utils.c"
57
+ #include "link-grammar/word-file.h"
58
+ #include "link-grammar/word-file.c"
59
+
60
+ #include "ruby.h"
61
+
62
+ //pointer wrappers containing Dictionary, Parse_Options, Sentence objects
63
+ typedef struct dictionary_ptr {
64
+ Dictionary dict;
65
+ } DictionaryPtr;
66
+
67
+ typedef struct parse_options_ptr {
68
+ Parse_Options opts;
69
+ } ParseOptionsPtr;
70
+
71
+ typedef struct sentence_ptr {
72
+ Sentence sentence;
73
+ } SentencePtr;
74
+
75
+ typedef struct linkage_ptr {
76
+ Linkage linkage;
77
+ } LinkagePtr;
78
+
79
+ VALUE dictionary_path_set(const VALUE self, volatile VALUE dict_path);
80
+ VALUE create_dictionary(const VALUE self, volatile VALUE lang);
81
+ VALUE delete_dictionary(const VALUE self, VALUE dict);
82
+
83
+ VALUE create_parse_options(const VALUE self);
84
+ VALUE delete_parse_options(const VALUE self, VALUE opts);
85
+ VALUE linkage_limit_set(const VALUE self, VALUE opts, volatile VALUE limit);
86
+ VALUE linkage_limit_get(const VALUE self, VALUE opts);
87
+ VALUE short_length_set(const VALUE self, VALUE opts, volatile VALUE length);
88
+ VALUE short_length_get(const VALUE self, VALUE opts);
89
+
90
+ VALUE create_sentence(const VALUE self, volatile VALUE str, VALUE dict);
91
+ VALUE parse_sentence(const VALUE self, VALUE sentence, VALUE opts);
92
+ VALUE delete_sentence(const VALUE self, VALUE sentence);
93
+
94
+ VALUE create_linkage(const VALUE self, volatile VALUE k, VALUE sentence, VALUE opts);
95
+ VALUE delete_linkage(const VALUE self, VALUE link);
96
+ VALUE print_linkage_diagram(const VALUE self, VALUE link);
97
+ VALUE linkage_count_sublinkages(const VALUE self, VALUE link);
98
+ VALUE linkage_count_num_words(const VALUE self, VALUE link);
99
+ VALUE linkage_count_num_links(const VALUE self, VALUE link);