gnu: r-gamlss: Update to 5.2-0.
[jackhill/guix/guix.git] / gnu / packages / language.scm
CommitLineData
fc436dba 1;;; GNU Guix --- Functional package management for GNU
a2190ccc 2;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org>
9aba9b12 3;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
3c986a7d 4;;; Copyright © 2018 Nikita <nikita@n0.is>
410387ad 5;;; Copyright © 2019 Alex Vong <alexvong1995@gmail.com>
1f6f0b6b 6;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
fa76fb63 7;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu>
fc436dba
EB
8;;;
9;;; This file is part of GNU Guix.
10;;;
11;;; GNU Guix is free software; you can redistribute it and/or modify it
12;;; under the terms of the GNU General Public License as published by
13;;; the Free Software Foundation; either version 3 of the License, or (at
14;;; your option) any later version.
15;;;
16;;; GNU Guix is distributed in the hope that it will be useful, but
17;;; WITHOUT ANY WARRANTY; without even the implied warranty of
18;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19;;; GNU General Public License for more details.
20;;;
21;;; You should have received a copy of the GNU General Public License
22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
23
24(define-module (gnu packages language)
25 #:use-module (gnu packages)
899784fb 26 #:use-module (gnu packages autotools)
fa76fb63 27 #:use-module (gnu packages audio)
410387ad 28 #:use-module (gnu packages glib)
58ac9289 29 #:use-module (gnu packages gtk)
8205fe44 30 #:use-module (gnu packages java)
fa76fb63 31 #:use-module (gnu packages linux)
899784fb
RG
32 #:use-module (gnu packages llvm)
33 #:use-module (gnu packages man)
c2810523 34 #:use-module (gnu packages ocr)
fc436dba 35 #:use-module (gnu packages perl)
410387ad 36 #:use-module (gnu packages pkg-config)
fa76fb63 37 #:use-module (gnu packages pulseaudio)
410387ad 38 #:use-module (gnu packages python)
5ccde207 39 #:use-module (gnu packages perl-check)
410387ad 40 #:use-module (gnu packages swig)
899784fb 41 #:use-module (gnu packages texinfo)
d7de0883 42 #:use-module (gnu packages web)
8205fe44 43 #:use-module (gnu packages xml)
58ac9289 44 #:use-module (gnu packages xorg)
fc436dba 45 #:use-module (guix packages)
3ed30b88 46 #:use-module (guix build-system gnu)
fc436dba 47 #:use-module (guix build-system perl)
410387ad 48 #:use-module (guix build-system python)
c2810523 49 #:use-module ((guix licenses)
e4f72a58 50 #:select
8205fe44 51 (bsd-3 gpl2 gpl2+ gpl3 gpl3+ lgpl2.1 lgpl2.1+ lgpl3+ perl-license zpl2.1))
c2810523 52 #:use-module (guix download)
e4f72a58 53 #:use-module (guix git-download)
c2810523 54 #:use-module (guix utils))
fc436dba 55
899784fb
RG
56(define-public liblouis
57 (package
58 (name "liblouis")
59 (version "3.14.0")
60 (source
61 (origin
62 (method git-fetch)
63 (uri
64 (git-reference
65 (url "https://github.com/liblouis/liblouis.git")
66 (commit (string-append "v" version))))
67 (file-name (git-file-name name version))
68 (sha256
69 (base32 "0v6w8b9r994mkkbm2gqgd7k5yfmdhgbabh0j1gmn375nyvhy4qqh"))))
70 (build-system gnu-build-system)
71 (outputs '("out" "bin" "doc" "python"))
72 (arguments
73 `(#:configure-flags
74 (list
75 "--disable-static"
76 "--enable-ucs4")
77 #:phases
78 (modify-phases %standard-phases
79 ;; To install the sub-package "python".
80 (add-after 'install 'install-python-extension
81 (lambda* (#:key outputs #:allow-other-keys)
82 (with-directory-excursion "python"
83 (invoke "python" "setup.py" "install"
84 (string-append "--prefix="
85 (assoc-ref outputs "python"))
86 "--root=/")))))))
87 (native-inputs
88 `(("autoconf" ,autoconf)
89 ("automake" ,automake)
90 ("clang-format" ,clang)
91 ("help2man" ,help2man)
92 ("libtool" ,libtool)
93 ("libyaml" ,libyaml)
94 ("makeinfo" ,texinfo)
95 ("perl" ,perl)
96 ("pkg-config" ,pkg-config)
97 ("python" ,python-wrapper)))
98 (synopsis "Braille translator and back-translator")
99 (description "Liblouis is a braille translator and back-translator named in
100honor of Louis Braille. It features support for computer and literary braille,
101supports contracted and uncontracted translation for many languages and has
102support for hyphenation. New languages can easily be added through tables that
103support a rule- or dictionary based approach. Tools for testing and debugging
104tables are also included. Liblouis also supports math braille, Nemeth and
105Marburg.")
106 (home-page "http://liblouis.org/")
107 (license
108 (list
109 ;; Library
110 lgpl2.1+
111 ;; Tools
112 gpl3+))))
113
8205fe44
RG
114(define-public liblouisutdml
115 (package
116 (name "liblouisutdml")
117 (version "2.8.0")
118 (source
119 (origin
120 (method git-fetch)
121 (uri
122 (git-reference
123 (url "https://github.com/liblouis/liblouisutdml.git")
124 (commit (string-append "v" version))))
125 (file-name (git-file-name name version))
126 (sha256
127 (base32 "11xxky3crjm8bidfljzpqaz1m1i1m1yskmdpavf9b4jpf87nzjj2"))
128 (patches
129 (search-patches "liblouisutdml-fix-tests.patch"))))
130 (build-system gnu-build-system)
131 (outputs '("out" "bin" "doc"))
132 (arguments
133 `(#:configure-flags
134 (list
135 "--disable-static")))
136 (native-inputs
137 `(("autoconf" ,autoconf)
138 ("automake" ,automake)
139 ("help2man" ,help2man)
140 ("jdk" ,icedtea "jdk")
141 ("libtool" ,libtool)
142 ("makeinfo" ,texinfo)
143 ("pkg-config" ,pkg-config)))
144 (inputs
145 `(("libxml2" ,libxml2)))
146 (propagated-inputs
147 `(("liblouis" ,liblouis)
148 ("liblouis:bin" ,liblouis "bin")))
149 (synopsis "Braille transcription services")
150 (description "Liblouisutdml is a library providing complete braille
151transcription services for xml, html and text documents. It translates into
152appropriate braille codes and formats according to its style sheet and the
153specifications in the document.")
154 (home-page "http://liblouis.org/")
155 (license
156 (list
157 ;; Library
158 lgpl3+
159 ;; Tools
160 gpl3+))))
161
a29eb739
RG
162(define-public libstemmer
163 (package
164 (name "libstemmer")
165 (version "2.0.0")
166 (source
167 (origin
168 (method url-fetch)
169 (uri "https://snowballstem.org/dist/libstemmer_c.tgz")
170 (sha256
171 (base32 "1z2xvrjsaaypc04lwz7dg8mjm5cq1gzmn0l544pn6y2ll3r7ckh5"))))
172 (build-system gnu-build-system)
173 (arguments
174 `(#:tests? #f ; No tests exist
175 #:make-flags
176 (list
177 (string-append "CC=" ,(cc-for-target))
178 "CFLAGS=-fPIC")
179 #:phases
180 (modify-phases %standard-phases
181 (delete 'configure)
182 (replace 'install
183 (lambda* (#:key outputs #:allow-other-keys)
184 (let* ((out (assoc-ref outputs "out"))
185 (out-bin (string-append out "/bin"))
186 (out-include (string-append out "/include"))
187 (out-lib (string-append out "/lib")))
188 (install-file "stemwords" out-bin)
189 (install-file "include/libstemmer.h" out-include)
190 (rename-file "libstemmer.o" "libstemmer.a")
191 (install-file "libstemmer.a" out-lib)
192 #t))))))
193 (synopsis "Stemming Library")
194 (description "LibStemmer provides stemming library, supporting several
195languages.")
196 (home-page "https://snowballstem.org/")
197 (license bsd-3)))
198
0c32bf01
EB
199(define-public perl-lingua-en-findnumber
200 (package
201 (name "perl-lingua-en-findnumber")
84f06e54 202 (version "1.32")
0c32bf01
EB
203 (source
204 (origin
205 (method url-fetch)
206 (uri (string-append "mirror://cpan/authors/id/N/NE/NEILB/"
207 "Lingua-EN-FindNumber-" version ".tar.gz"))
208 (sha256
209 (base32
84f06e54 210 "015ximzdp42v824llwlg2pd77vd0d172lb4xs55q9f9zhqf6s5qx"))))
0c32bf01
EB
211 (build-system perl-build-system)
212 (propagated-inputs
213 `(("perl-lingua-en-words2nums" ,perl-lingua-en-words2nums)))
9aba9b12 214 (home-page "https://metacpan.org/release/Lingua-EN-FindNumber")
0c32bf01
EB
215 (synopsis "Locate (written) numbers in English text ")
216 (description "This module provides a regular expression for finding
217numbers in English text. It also provides functions for extracting and
218manipulating such numbers.")
2f3108ad 219 (license perl-license)))
0c32bf01 220
57ff0e04
EB
221(define-public perl-lingua-en-inflect
222 (package
223 (name "perl-lingua-en-inflect")
ce0be1bc 224 (version "1.903")
57ff0e04
EB
225 (source
226 (origin
227 (method url-fetch)
228 (uri (string-append "mirror://cpan/authors/id/D/DC/DCONWAY/"
229 "Lingua-EN-Inflect-" version ".tar.gz"))
230 (sha256
231 (base32
ce0be1bc 232 "0j8d1f1wvmgc11d71pc8xp8fv5a1nb2yfw1dgd19xhscn1klpvzw"))))
57ff0e04 233 (build-system perl-build-system)
a2190ccc 234 (native-inputs `(("perl-module-build" ,perl-module-build)))
9aba9b12 235 (home-page "https://metacpan.org/release/Lingua-EN-Inflect")
57ff0e04
EB
236 (synopsis "Convert singular to plural")
237 (description "Lingua::EN::Inflect provides plural inflections,
238\"a\"/\"an\" selection for English words, and manipulation of numbers as
239words. Plural forms of all nouns, most verbs, and some adjectives are
240provided. Where appropriate, \"classical\" variants (for example: \"brother\"
241-> \"brethren\", \"dogma\" -> \"dogmata\", etc.) are also provided.")
2f3108ad 242 (license perl-license)))
57ff0e04 243
4812a813
EB
244(define-public perl-lingua-en-inflect-number
245 (package
246 (name "perl-lingua-en-inflect-number")
e2fb341f 247 (version "1.12")
4812a813
EB
248 (source
249 (origin
250 (method url-fetch)
251 (uri (string-append "mirror://cpan/authors/id/N/NE/NEILB/"
252 "Lingua-EN-Inflect-Number-" version ".tar.gz"))
253 (sha256
254 (base32
e2fb341f 255 "1gxccynkaqav43ww43jp4rzkyr36x97jd03yb5f6yx0jhn1k7yv6"))))
4812a813
EB
256 (build-system perl-build-system)
257 (propagated-inputs
258 `(("perl-lingua-en-inflect" ,perl-lingua-en-inflect)))
9aba9b12 259 (home-page "https://metacpan.org/release/Lingua-EN-Inflect-Number")
4812a813
EB
260 (synopsis "Force number of words to singular or plural")
261 (description "This module extends the functionality of Lingua::EN::Inflect
262with three new functions for determining plurality of a word and forcefully
263converting a word to singular or plural.")
2f3108ad 264 (license perl-license)))
4812a813 265
cfed969c
EB
266(define-public perl-lingua-en-inflect-phrase
267 (package
268 (name "perl-lingua-en-inflect-phrase")
cd75b642 269 (version "0.20")
cfed969c
EB
270 (source
271 (origin
272 (method url-fetch)
273 (uri (string-append "mirror://cpan/authors/id/R/RK/RKITOVER/"
274 "Lingua-EN-Inflect-Phrase-" version ".tar.gz"))
275 (sha256
276 (base32
cd75b642 277 "1a6y1l2pjim2242wcpgz066di4pbzfgsjjdl7vg5a5wzm48qj1am"))))
cfed969c
EB
278 (build-system perl-build-system)
279 (native-inputs
280 `(("perl-test-nowarnings" ,perl-test-nowarnings)))
281 (propagated-inputs
282 `(("perl-lingua-en-findnumber" ,perl-lingua-en-findnumber)
283 ("perl-lingua-en-inflect" ,perl-lingua-en-inflect)
284 ("perl-lingua-en-inflect-number" ,perl-lingua-en-inflect-number)
285 ("perl-lingua-en-number-isordinal" ,perl-lingua-en-number-isordinal)
286 ("perl-lingua-en-tagger" ,perl-lingua-en-tagger)))
9aba9b12 287 (home-page "https://metacpan.org/release/Lingua-EN-Inflect-Phrase")
cfed969c
EB
288 (synopsis "Inflect short English phrases")
289 (description "This module attempts to pluralize or singularize short
290English phrases.")
2f3108ad 291 (license perl-license)))
cfed969c 292
930768b3
EB
293(define-public perl-lingua-en-number-isordinal
294 (package
295 (name "perl-lingua-en-number-isordinal")
5b5b4edf 296 (version "0.05")
930768b3
EB
297 (source
298 (origin
299 (method url-fetch)
300 (uri (string-append "mirror://cpan/authors/id/R/RK/RKITOVER/"
301 "Lingua-EN-Number-IsOrdinal-" version ".tar.gz"))
302 (sha256
303 (base32
5b5b4edf 304 "1mhqjvh2ad30gjab5b3a6mbr4aysyrscp4wp42yy5x6001a6km98"))))
930768b3
EB
305 (build-system perl-build-system)
306 (native-inputs
307 `(("perl-try-tiny" ,perl-try-tiny)
308 ("perl-test-fatal" ,perl-test-fatal)))
309 (propagated-inputs
310 `(("perl-lingua-en-findnumber" ,perl-lingua-en-findnumber)))
9aba9b12 311 (home-page "https://metacpan.org/release/Lingua-EN-Number-IsOrdinal")
930768b3
EB
312 (synopsis "Detect if English number is ordinal or cardinal")
313 (description "This module will tell you if a number, either in words or as
314digits, is a cardinal or ordinal number.")
2f3108ad 315 (license perl-license)))
930768b3 316
d7de0883
EB
317(define-public perl-lingua-en-tagger
318 (package
319 (name "perl-lingua-en-tagger")
35e4e359 320 (version "0.30")
d7de0883
EB
321 (source
322 (origin
323 (method url-fetch)
324 (uri (string-append "mirror://cpan/authors/id/A/AC/ACOBURN/"
325 "Lingua-EN-Tagger-" version ".tar.gz"))
326 (sha256
327 (base32
35e4e359 328 "0nrnkvsf9f0a7lp82sanmy89ms2nqq1lvjqicvsagsvzp513bl5b"))))
d7de0883
EB
329 (build-system perl-build-system)
330 (propagated-inputs
331 `(("perl-memoize-expirelru" ,perl-memoize-expirelru)
332 ("perl-lingua-stem" ,perl-lingua-stem)
333 ("perl-html-parser" ,perl-html-parser)
334 ("perl-html-tagset" ,perl-html-tagset)))
9aba9b12 335 (home-page "https://metacpan.org/release/Lingua-EN-Tagger")
d7de0883
EB
336 (synopsis "Part-of-speech tagger for English natural language processing")
337 (description "This module is a probability based, corpus-trained tagger
338that assigns part-of-speech tags to English text based on a lookup dictionary
339and a set of probability values. The tagger assigns appropriate tags based on
340conditional probabilities - it examines the preceding tag to determine the
341appropriate tag for the current word. Unknown words are classified according
342to word morphology or can be set to be treated as nouns or other parts of
343speech. The tagger also extracts as many nouns and noun phrases as it can,
344using a set of regular expressions.")
345 (license gpl3)))
346
fc436dba
EB
347(define-public perl-lingua-en-words2nums
348 (package
349 (name "perl-lingua-en-words2nums")
350 (version "0.18")
351 (source
352 (origin
353 (method url-fetch)
354 (uri (string-append "mirror://cpan/authors/id/J/JO/JOEY/"
355 "Lingua-EN-Words2Nums-" version ".tar.gz"))
356 (sha256
357 (base32
358 "118xx8qr1zbx30psv7ic55w65h15mc1vz6zicshfm96jgiwmcrb8"))))
359 (build-system perl-build-system)
9aba9b12 360 (home-page "https://metacpan.org/release/Lingua-EN-Words2Nums")
fc436dba
EB
361 (synopsis "Convert English text to numbers")
362 (description "This module converts English text into numbers. It supports
363both ordinal and cardinal numbers, negative numbers, and very large numbers.")
2f3108ad 364 (license perl-license)))
9b446711
EB
365
366(define-public perl-lingua-pt-stemmer
367 (package
368 (name "perl-lingua-pt-stemmer")
8895a968 369 (version "0.02")
9b446711
EB
370 (source
371 (origin
372 (method url-fetch)
e8409dd2 373 (uri (string-append "mirror://cpan/authors/id/N/NE/NEILB/"
9b446711
EB
374 "Lingua-PT-Stemmer-" version ".tar.gz"))
375 (sha256
376 (base32
8895a968 377 "17c48sfbgwd2ivlgf59sr6jdhwa3aim8750f8pyzz7xpi8gz0var"))))
9b446711 378 (build-system perl-build-system)
9aba9b12 379 (home-page "https://metacpan.org/release/Lingua-PT-Stemmer")
9b446711
EB
380 (synopsis "Portuguese language stemming")
381 (description "This module implements a Portuguese stemming algorithm
382proposed in the paper A Stemming Algorithm for the Portuguese Language by
383Moreira, V. and Huyck, C.")
2f3108ad 384 (license perl-license)))
df11e052 385
9766e4fe
EB
386(define-public perl-lingua-stem
387 (package
388 (name "perl-lingua-stem")
389 (version "0.84")
390 (source
391 (origin
392 (method url-fetch)
393 (uri (string-append "mirror://cpan/authors/id/S/SN/SNOWHARE/"
394 "Lingua-Stem-" version ".tar.gz"))
395 (sha256
396 (base32
397 "12avh2mnnc7llmmshrr5bgb473fvydxnlqrqbl2815mf2dp4pxcg"))))
398 (build-system perl-build-system)
a2190ccc
EB
399 (native-inputs
400 `(("perl-module-build" ,perl-module-build)))
9766e4fe
EB
401 (propagated-inputs
402 `(("perl-lingua-pt-stemmer" ,perl-lingua-pt-stemmer)
403 ("perl-lingua-stem-fr" ,perl-lingua-stem-fr)
404 ("perl-lingua-stem-it" ,perl-lingua-stem-it)
405 ("perl-lingua-stem-ru" ,perl-lingua-stem-ru)
406 ("perl-lingua-stem-snowball-da" ,perl-lingua-stem-snowball-da)
407 ("perl-snowball-norwegian" ,perl-snowball-norwegian)
408 ("perl-snowball-swedish" ,perl-snowball-swedish)
409 ("perl-text-german" ,perl-text-german)))
9aba9b12 410 (home-page "https://metacpan.org/release/Lingua-Stem")
9766e4fe
EB
411 (synopsis "Stemming of words in various languages")
412 (description "This routine applies stemming algorithms to its parameters,
413returning the stemmed words as appropriate to the selected locale.")
2f3108ad 414 (license perl-license)))
9766e4fe 415
df11e052
EB
416(define-public perl-lingua-stem-fr
417 (package
418 (name "perl-lingua-stem-fr")
419 (version "0.02")
420 (source
421 (origin
422 (method url-fetch)
423 (uri (string-append "mirror://cpan/authors/id/S/SD/SDP/"
424 "Lingua-Stem-Fr-" version ".tar.gz"))
425 (sha256
426 (base32
427 "0vyrspwzaqjxm5mqshf4wvwa3938mkajd1918d9ii2l9m2rn8kwx"))))
428 (build-system perl-build-system)
9aba9b12 429 (home-page "https://metacpan.org/release/Lingua-Stem-Fr")
df11e052
EB
430 (synopsis "Porter's stemming algorithm for French")
431 (description "This module uses a modified version of the Porter Stemming
432Algorithm to return a stemmed French word.")
2f3108ad 433 (license perl-license)))
6afe5959
EB
434
435(define-public perl-lingua-stem-it
436 (package
437 (name "perl-lingua-stem-it")
438 (version "0.02")
439 (source
440 (origin
441 (method url-fetch)
442 (uri (string-append "mirror://cpan/authors/id/A/AC/ACALPINI/"
443 "Lingua-Stem-It-" version ".tar.gz"))
444 (sha256
445 (base32
446 "1207r183s5hlh4mfwa6p46vzm0dhvrs2dnss5s41a0gyfkxp7riq"))))
447 (build-system perl-build-system)
9aba9b12 448 (home-page "https://metacpan.org/release/Lingua-Stem-It")
6afe5959
EB
449 (synopsis "Porter's stemming algorithm for Italian")
450 (description "This module applies the Porter Stemming Algorithm to its
451parameters, returning the stemmed Italian word.")
2f3108ad 452 (license perl-license)))
95d2eec1
EB
453
454(define-public perl-lingua-stem-ru
455 (package
456 (name "perl-lingua-stem-ru")
a4b7142e 457 (version "0.04")
95d2eec1
EB
458 (source
459 (origin
460 (method url-fetch)
a4b7142e 461 (uri (string-append "mirror://cpan/authors/id/N/NE/NEILB/"
95d2eec1
EB
462 "Lingua-Stem-Ru-" version ".tar.gz"))
463 (sha256
464 (base32
a4b7142e 465 "0a2jmdz7jn32qj5hyiw5kbv8fvlpmws8i00a6xcbkzb48yvwww0j"))))
95d2eec1 466 (build-system perl-build-system)
9aba9b12 467 (home-page "https://metacpan.org/release/Lingua-Stem-Ru")
95d2eec1
EB
468 (synopsis "Porter's stemming algorithm for Russian")
469 (description "This module applies the Porter Stemming Algorithm to its
470parameters, returning the stemmed Russian (KOI8-R only) word.")
2f3108ad 471 (license perl-license)))
30c40044
EB
472
473(define-public perl-lingua-stem-snowball-da
474 (package
475 (name "perl-lingua-stem-snowball-da")
476 (version "1.01")
477 (source
478 (origin
479 (method url-fetch)
480 (uri (string-append "mirror://cpan/authors/id/C/CI/CINE/"
481 "Lingua-Stem-Snowball-Da-" version ".tar.gz"))
482 (sha256
483 (base32
484 "0mm0m7glm1s6i9f6a78jslw6wh573208arxhq93yriqmw17bwf9f"))))
485 (build-system perl-build-system)
9aba9b12 486 (home-page "https://metacpan.org/release/Lingua-Stem-Snowball-Da")
30c40044
EB
487 (synopsis "Porters stemming algorithm for Danish")
488 (description "Lingua::Stem::Snowball::Da is a perl port of the danish
489stemmer at http://snowball.sourceforge.net, it was originally altered from the
490Lingua::Stem::Snowball::Se.")
491 (license gpl2)))
1064abdc
EB
492
493(define-public perl-snowball-norwegian
494 (package
495 (name "perl-snowball-norwegian")
496 (version "1.2")
497 (source
498 (origin
499 (method url-fetch)
500 (uri (string-append "mirror://cpan/authors/id/A/AS/ASKSH/"
501 "Snowball-Norwegian-" version ".tar.gz"))
502 (sha256
503 (base32
504 "0675v45bbsh7vr7kpf36xs2q79g02iq1kmfw22h20xdk4rzqvkqx"))))
505 (build-system perl-build-system)
a2190ccc 506 (native-inputs `(("perl-module-build" ,perl-module-build)))
9aba9b12 507 (home-page "https://metacpan.org/release/Snowball-Norwegian")
1064abdc
EB
508 (synopsis "Porters stemming algorithm for Norwegian")
509 (description "Lingua::Stem::Snowball::No is a perl port of the norwegian
510stemmer at http://snowball.tartarus.org.")
2f3108ad 511 (license perl-license)))
1f4b1129
EB
512
513(define-public perl-snowball-swedish
514 (package
515 (name "perl-snowball-swedish")
516 (version "1.2")
517 (source
518 (origin
519 (method url-fetch)
520 (uri (string-append "mirror://cpan/authors/id/A/AS/ASKSH/"
521 "Snowball-Swedish-" version ".tar.gz"))
522 (sha256
523 (base32
524 "0agwc12jk5kmabnpsplw3wf4ii5w1zb159cpin44x3srb0sr5apg"))))
525 (build-system perl-build-system)
a2190ccc 526 (native-inputs `(("perl-module-build" ,perl-module-build)))
9aba9b12 527 (home-page "https://metacpan.org/release/Snowball-Swedish")
1f4b1129
EB
528 (synopsis "Porters stemming algorithm for Swedish")
529 (description "Lingua::Stem::Snowball::Se is a perl port of the swedish
530stemmer at http://snowball.sourceforge.net.")
2f3108ad 531 (license perl-license)))
2b83abae 532
f3bbbb73
EB
533(define-public perl-string-toidentifier-en
534 (package
535 (name "perl-string-toidentifier-en")
97c79494 536 (version "0.12")
f3bbbb73
EB
537 (source
538 (origin
539 (method url-fetch)
540 (uri (string-append "mirror://cpan/authors/id/R/RK/RKITOVER/"
541 "String-ToIdentifier-EN-" version ".tar.gz"))
542 (sha256
543 (base32
97c79494 544 "12nw7h2yiybhdw0vnnpc7bif8ylhsn6kqf6s39dsrf9h54iq9yrs"))))
f3bbbb73
EB
545 (build-system perl-build-system)
546 (propagated-inputs
547 `(("perl-lingua-en-inflect-phrase" ,perl-lingua-en-inflect-phrase)
548 ("perl-text-unidecode" ,perl-text-unidecode)
549 ("perl-namespace-clean" ,perl-namespace-clean)))
9aba9b12 550 (home-page "https://metacpan.org/release/String-ToIdentifier-EN")
e881752c 551 (synopsis "Convert strings to English program identifiers")
f3bbbb73
EB
552 (description "This module provides a utility method, \"to_identifier\" for
553converting an arbitrary string into a readable representation using the ASCII
554subset of \"\\w\" for use as an identifier in a computer program. The intent
555is to make unique identifier names from which the content of the original
556string can be easily inferred by a human just by reading the identifier.")
2f3108ad 557 (license perl-license)))
f3bbbb73 558
2b83abae
EB
559(define-public perl-text-german
560 (package
561 (name "perl-text-german")
562 (version "0.06")
563 (source
564 (origin
565 (method url-fetch)
566 (uri (string-append "mirror://cpan/authors/id/U/UL/ULPFR/"
567 "Text-German-" version ".tar.gz"))
568 (sha256
569 (base32
570 "1p87pgap99lw0nv62i3ghvsi7yg90lhn8vsa3yqp75rd04clybcj"))))
571 (build-system perl-build-system)
9aba9b12 572 (home-page "https://metacpan.org/release/Text-German")
2b83abae 573 (synopsis "German grundform reduction")
e881752c 574 (description "This module is a rather incomplete implementation of work
2b83abae 575done by Gudrun Putze-Meier.")
2f3108ad 576 (license perl-license)))
410387ad
AV
577
578(define* (tegaki-release-uri proj version
579 #:optional (ext "tar.gz"))
580 (string-append "https://github.com/tegaki/tegaki/releases/download"
581 "/v" version "/" proj "-" version "." ext))
582
583(define remove-pre-compiled-files
584 (lambda exts
585 "Return snippet for removing pre-compiled files matching one of the
586extensions in EXTS."
587 `(begin (for-each delete-file
588 (find-files "."
589 (lambda (name _)
590 (any (cut string-suffix? <> name)
591 (map (cut string-append "." <>)
592 ',exts)))))
593 #t)))
594
595;;; modules required for the above snippet
596(define remove-pre-compiled-files-modules
597 '((guix build utils)
598 (srfi srfi-1)
599 (srfi srfi-26)))
600
601(define-public python2-tegaki-wagomu
602 (package
603 (name "python2-tegaki-wagomu")
604 (version "0.3.1")
605 (source
606 (origin
607 (method url-fetch)
608 (uri (tegaki-release-uri "tegaki-wagomu" version))
609 (sha256
610 (base32
611 "1pzdiq4zy1nyylaj9i6v2h4h0r05klahskzpafpp367p4rysi1x9"))
612 (modules remove-pre-compiled-files-modules)
613 (snippet (remove-pre-compiled-files "pyc"))))
614 (build-system python-build-system)
615 (arguments
616 `(#:python ,python-2 ; only Python 2 is supported
617 #:phases
618 (modify-phases %standard-phases
619 (add-after 'unpack 'fix-recognizer
620 (lambda* (#:key inputs #:allow-other-keys)
621 ;; fix missing module and function
622 (substitute* "tegakiwagomu.py"
623 (("import Results,")
624 "import ")
625 (("def _recognize")
626 "def recognize")
627 (("Results\\(candidates\\)")
628 "candidates"))
629 #t)))))
630 (inputs
631 `(("glib" ,glib)))
632 (native-inputs
633 `(("pkg-config" ,pkg-config)
634 ("swig" ,swig)))
635 (home-page "https://tegaki.github.io/")
636 (synopsis
637 "Chinese and Japanese Handwriting Recognition (Recognition engine)")
638 (description
639 "Tegaki is an ongoing project which aims to develop a free and open-source
640modern implementation of handwriting recognition software, specifically
641designed for Chinese (simplified and traditional) and Japanese, and that is
642suitable for both the desktop and mobile devices.")
643 (license gpl2+))) ; all files
c2810523
AV
644
645(define-public python2-tegaki-python
646 (package
647 (inherit python2-tegaki-wagomu)
648 (name "python2-tegaki-python")
649 (version "0.3.1")
650 (source
651 (origin
652 (method url-fetch)
653 (uri (tegaki-release-uri "tegaki-python" version))
654 (sha256
655 (base32
656 "0x93k7pw9nh0ywd97pr8pm7jv3f94nw044i5k0zvzhdpsjqvak7p"))
657 (modules remove-pre-compiled-files-modules)
658 (snippet (remove-pre-compiled-files "pyc"))))
659 (arguments
660 (substitute-keyword-arguments (package-arguments python2-tegaki-wagomu)
661 ((#:phases _)
662 `(modify-phases %standard-phases
663 (add-after 'unpack 'pre-configure
664 (lambda* (#:key inputs #:allow-other-keys)
665 ;; Always convert string to unicode to avoid the following error
666 ;; when running "tegaki-build" in python2-tegaki-tools:
667 ;;
668 ;; sqlite3.ProgrammingError: You must not use 8-bit bytestrings
669 ;; unless you use a text_factory that can interpret 8-bit
670 ;; bytestrings (like text_factory = str).
671 ;; It is highly recommended that you instead just switch your
672 ;; application to Unicode strings.
673 (substitute* "tegaki/charcol.py"
674 (("sqlite3.OptimizedUnicode")
675 "lambda s: unicode(s, 'utf-8')"))
676 (substitute* "tegaki/engine.py"
677 (("/usr(/local)?")
678 (assoc-ref inputs "python2-tegaki-wagomu")))
679 #t))))))
680 ;; override inherited inputs
681 (inputs '())
682 (native-inputs '())
683 (propagated-inputs
684 `(("python2-tegaki-wagomu" ,python2-tegaki-wagomu)
685 ("python2-zinnia" ,python2-zinnia)))
686 (synopsis
687 "Chinese and Japanese Handwriting Recognition (Base python library)")
688 (license (list gpl2+ ; all files except...
689 bsd-3 ; dictutils.py
690 zpl2.1)))) ; minjson.py
58ac9289
AV
691
692(define-public python2-tegaki-pygtk
693 (package
694 (inherit python2-tegaki-wagomu)
695 (name "python2-tegaki-pygtk")
696 (version "0.3.1")
697 (source
698 (origin
699 (method url-fetch)
700 (uri (tegaki-release-uri "tegaki-pygtk" version))
701 (sha256
702 (base32
703 "1cip0azxhjdj2dg2z85cp1z3lz4qwx3w1j7z4xmcm7npapmsaqs2"))
704 (modules remove-pre-compiled-files-modules)
705 (snippet (remove-pre-compiled-files "pyc"))))
706 (arguments
707 (substitute-keyword-arguments (package-arguments python2-tegaki-wagomu)
708 ((#:phases _)
709 `(modify-phases %standard-phases
710 (add-after 'unpack 'fix-paths
711 (lambda* (#:key inputs #:allow-other-keys)
712 (substitute* "tegakigtk/fakekey.py"
713 (("libX11.so.6" so)
714 (string-append (assoc-ref inputs "libx11") "/lib/" so))
715 (("libXtst.so.6" so)
716 (string-append (assoc-ref inputs "libxtst") "/lib/" so)))
717 #t))))))
718 (inputs ; required for sending key strokes
719 `(("libx11" ,libx11)
720 ("libxtst" ,libxtst)))
721 (native-inputs '()) ; override inherited inputs
722 (propagated-inputs
723 `(("python2-pygtk" ,python2-pygtk)
724 ("python2-tegaki-python" ,python2-tegaki-python)))
725 (synopsis "Chinese and Japanese Handwriting Recognition (Base UI library)")
726 (license gpl2+))) ; all files
dd97a9c4
AV
727
728(define-public python2-tegaki-tools
729 (package
730 (inherit python2-tegaki-wagomu)
731 (name "python2-tegaki-tools")
732 (version "0.3.1")
733 (source
734 (origin
735 (method url-fetch)
736 (uri (tegaki-release-uri "tegaki-tools" version))
737 (sha256
738 (base32
739 "0xxv97ggh2jgldw3r7y59lv3fhz733r6l7mdn6nh4m0gvb0ja971"))
740 (modules remove-pre-compiled-files-modules)
741 (snippet (remove-pre-compiled-files "pyc"))))
742 (arguments
743 (substitute-keyword-arguments (package-arguments python2-tegaki-wagomu)
744 ((#:phases _) '%standard-phases)))
745 (inputs
746 `(("python2-tegaki-pygtk" ,python2-tegaki-pygtk)))
747 ;; override inherited inputs
748 (native-inputs '())
749 (propagated-inputs '())
750 (synopsis "Chinese and Japanese Handwriting Recognition (Advanced tools)")
751 ;; Files in gifenc/ are licensed under gpl3+ while other files are licensed
752 ;; under gpl2+. Therefore, the combined work is licensed under gpl3+.
753 (license gpl3+)))
e4f72a58
AV
754
755(define-public python2-tegaki-recognize
756 (let ((commit "eceec69fe651d0733c8c8752dae569d2283d0f3c")
757 (revision "1"))
758 (package
759 (inherit python2-tegaki-tools)
760 (name "python2-tegaki-recognize")
761 ;; version copied from <https://github.com/tegaki/tegaki/releases>
762 (version (git-version "0.3.1" revision commit))
763 (source
764 (origin
765 ;; We use GIT-FETCH because 'tegaki-recognize.desktop.in' and
766 ;; 'tegaki-recognize.in' are missing in the tarball.
767 (method git-fetch)
768 (uri (git-reference
b0e7b699 769 (url "https://github.com/tegaki/tegaki")
e4f72a58
AV
770 (commit commit)))
771 (sha256
772 (base32
773 "09mw2if9p885phbgah5f95q3fwy7s5b46qlmpxqyzfcnj6g7afr5"))
774 (file-name (git-file-name name version))
775 (modules `((guix build utils)
776 (ice-9 ftw)
777 (srfi srfi-26)
778 ,@remove-pre-compiled-files-modules))
779 (snippet
780 `(begin
781 ;; remove unnecessary files with potentially different license
782 (for-each delete-file-recursively
783 (scandir "."
784 (negate (cut member <> '("tegaki-recognize"
785 "." "..")))))
786 ,(remove-pre-compiled-files "pyc")
787 #t))))
788 (arguments
789 (substitute-keyword-arguments (package-arguments python2-tegaki-tools)
790 ((#:phases _)
791 `(modify-phases %standard-phases
792 (add-after 'unpack 'chdir
793 (lambda _
794 (chdir "tegaki-recognize")
795 #t))
796 ;; 'setup.py' script does not support one of the Python build
797 ;; system's default flags, "--single-version-externally-managed"
798 (replace 'install
799 (lambda* (#:key outputs #:allow-other-keys)
800 (invoke "python" "setup.py" "install"
801 (string-append "--prefix=" (assoc-ref outputs "out"))
802 "--root=/")
803 #t))))))
804 (synopsis "Chinese and Japanese Handwriting Recognition (Main program)")
805 (license gpl2+)))) ; all files
3ed30b88
AV
806
807(define-public tegaki-zinnia-japanese
808 (package
809 (inherit python2-tegaki-wagomu)
810 (name "tegaki-zinnia-japanese")
811 (version "0.3")
812 (source
813 (origin
814 (method url-fetch)
815 (uri (tegaki-release-uri name version "zip"))
816 (sha256
817 (base32
818 "1nmg9acxhcqly9gwkyb9m0hpy76fll91ywk4b1q4xms0ajxip1h7"))
819 (modules remove-pre-compiled-files-modules)
820 (snippet (remove-pre-compiled-files "model"))))
821 (build-system gnu-build-system)
822 (arguments
823 `(#:tests? #f ; no tests
824 #:phases
825 (modify-phases %standard-phases
826 (replace 'configure
827 (lambda* (#:key outputs #:allow-other-keys)
828 (substitute* "Makefile"
829 (("/usr/local")
830 (assoc-ref outputs "out")))
831 #t)))))
832 ;; override inherited inputs
833 (inputs '())
834 (native-inputs
835 `(("python2-tegaki-tools" ,python2-tegaki-tools)))
836 (propagated-inputs '())
837 (native-search-paths
838 (list (search-path-specification
839 (variable "TEGAKI_MODEL_PATH")
840 (files '("share/tegaki/models")))))
841 (synopsis "Chinese and Japanese Handwriting Recognition (Model)")
842 (license lgpl2.1))) ; all files
c8bbd808
AV
843
844(define-public tegaki-zinnia-japanese-light
845 (package
846 (inherit tegaki-zinnia-japanese)
847 (name "tegaki-zinnia-japanese-light")
848 (version "0.3")
849 (source
850 (origin
851 (method url-fetch)
852 (uri (tegaki-release-uri name version "zip"))
853 (sha256
854 (base32
855 "0x0fs29ylqzxd6xvg51h7rigpbisd7q8v11df425ib2j792yfyf8"))
856 (modules remove-pre-compiled-files-modules)
857 (snippet (remove-pre-compiled-files "model"))))
858 (license lgpl2.1))) ; all files
5fd56748
AV
859
860(define-public tegaki-zinnia-japanese-kyoiku
861 (package
862 (inherit tegaki-zinnia-japanese)
863 (name "tegaki-zinnia-japanese-kyoiku")
864 (version "0.3")
865 (source
866 (origin
867 (method url-fetch)
868 (uri (tegaki-release-uri name version "zip"))
869 (sha256
870 (base32
871 "0am94bcpmbzplxdnwn9gk15sgaizvcfhmv13mk14jjvx3419cvvx"))
872 (modules remove-pre-compiled-files-modules)
873 (snippet (remove-pre-compiled-files "model"))))
874 (license lgpl2.1))) ; all files
8955412b
AV
875
876(define-public tegaki-zinnia-japanese-joyo
877 (package
878 (inherit tegaki-zinnia-japanese)
879 (name "tegaki-zinnia-japanese-joyo")
880 (version "0.3")
881 (source
882 (origin
883 (method url-fetch)
884 (uri (tegaki-release-uri name version "zip"))
885 (sha256
886 (base32
887 "1v0j40lzdyiz01ayws0b8r7fsdy2mr32658382kz4wyk883wzx2z"))
888 (modules remove-pre-compiled-files-modules)
889 (snippet (remove-pre-compiled-files "model"))))
890 (license lgpl2.1))) ; all files
e0679464
AV
891
892(define-public tegaki-zinnia-simplified-chinese
893 (package
894 (inherit tegaki-zinnia-japanese)
895 (name "tegaki-zinnia-simplified-chinese")
896 (version "0.3")
897 (source
898 (origin
899 (method url-fetch)
900 (uri (tegaki-release-uri name version "zip"))
901 (sha256
902 (base32
903 "18wq0jccv7lpnrfnzspyc110d6pj2v1i21xcx4fmgzz1lnln3fs5"))
904 (modules remove-pre-compiled-files-modules)
905 (snippet (remove-pre-compiled-files "model"))))
906 (license lgpl2.1))) ; all files
ca1f28bd
AV
907
908(define-public tegaki-zinnia-simplified-chinese-light
909 (package
910 (inherit tegaki-zinnia-japanese)
911 (name "tegaki-zinnia-simplified-chinese-light")
912 (version "0.3")
913 (source
914 (origin
915 (method url-fetch)
916 (uri (tegaki-release-uri name version "zip"))
917 (sha256
918 (base32
919 "0v24yf0w0p03lb7fyx128a75mwzad166bigvlbrzqnad789qg1sr"))
920 (modules remove-pre-compiled-files-modules)
921 (snippet (remove-pre-compiled-files "model"))))
922 (license lgpl2.1))) ; all files
0bfcc29d
AV
923
924(define-public tegaki-zinnia-traditional-chinese
925 (package
926 (inherit tegaki-zinnia-japanese)
927 (name "tegaki-zinnia-traditional-chinese")
928 (version "0.3")
929 (source
930 (origin
931 (method url-fetch)
932 (uri (tegaki-release-uri name version "zip"))
933 (sha256
934 (base32
935 "140nlp6hynrai2svs5670jjfw1za6ayflhyj2dl0bzsfgbk3447l"))
936 (modules remove-pre-compiled-files-modules)
937 (snippet (remove-pre-compiled-files "model"))))
938 (license lgpl2.1))) ; all files
caee9806
AV
939
940(define-public tegaki-zinnia-traditional-chinese-light
941 (package
942 (inherit tegaki-zinnia-japanese)
943 (name "tegaki-zinnia-traditional-chinese-light")
944 (version "0.3")
945 (source
946 (origin
947 (method url-fetch)
948 (uri (tegaki-release-uri name version "zip"))
949 (sha256
950 (base32
951 "1m6yk6a57vs9wg5y50qciwi1ahhmklp2mgsjysbj4mnyzv6yhcr2"))
952 (modules remove-pre-compiled-files-modules)
953 (snippet (remove-pre-compiled-files "model"))))
954 (license lgpl2.1))) ; all files
6b32e91a
AV
955
956(define-public tegaki-wagomu-japanese
957 (package
958 (inherit tegaki-zinnia-japanese)
959 (name "tegaki-wagomu-japanese")
960 (version "0.3")
961 (source
962 (origin
963 (method url-fetch)
964 (uri (tegaki-release-uri name version "zip"))
965 (sha256
966 (base32
967 "0flj5id8xwsn7csrrzqz9prdikswnwm2wms0as2vzdpxzph1az4k"))
968 (modules remove-pre-compiled-files-modules)
969 (snippet (remove-pre-compiled-files "model"))))
970 (license lgpl2.1))) ; all files
ee3dc52b
AV
971
972(define-public tegaki-wagomu-japanese-kyoiku
973 (package
974 (inherit tegaki-zinnia-japanese)
975 (name "tegaki-wagomu-japanese-kyoiku")
976 (version "0.3")
977 (source
978 (origin
979 (method url-fetch)
980 (uri (tegaki-release-uri name version "zip"))
981 (sha256
982 (base32
983 "0v8crfh8rdf6ndp16g52s5jlrrlwh73xp38zjn5i9dlacx8kfqg1"))
984 (modules remove-pre-compiled-files-modules)
985 (snippet (remove-pre-compiled-files "model"))))
986 (license lgpl2.1))) ; all files
7c25904c
AV
987
988(define-public tegaki-wagomu-japanese-joyo
989 (package
990 (inherit tegaki-zinnia-japanese)
991 (name "tegaki-wagomu-japanese-joyo")
992 (version "0.3")
993 (source
994 (origin
995 (method url-fetch)
996 (uri (tegaki-release-uri name version "zip"))
997 (sha256
998 (base32
999 "0wk8shpr963zp328g991qs6abpnacq4242003m687z2d6yp7nph2"))
1000 (modules remove-pre-compiled-files-modules)
1001 (snippet (remove-pre-compiled-files "model"))))
1002 (license lgpl2.1))) ; all files
708c6857
AV
1003
1004(define-public tegaki-wagomu-simplified-chinese
1005 (package
1006 (inherit tegaki-zinnia-japanese)
1007 (name "tegaki-wagomu-simplified-chinese")
1008 (version "0.3")
1009 (source
1010 (origin
1011 (method url-fetch)
1012 (uri (tegaki-release-uri name version "zip"))
1013 (sha256
1014 (base32
1015 "0wqprynigqxqxv128i1smh81gxvmjj056d9qpznxa3n9f5ymlbj6"))
1016 (modules remove-pre-compiled-files-modules)
1017 (snippet (remove-pre-compiled-files "model"))))
1018 (license lgpl2.1))) ; all files
0ed97e69
AV
1019
1020;;; Upstream does not provide the source for tegaki-wagomu-traditional-chinese.
1021;;; Therefore, we use the source for tegaki-zinnia-traditional-chinese and
1022;;; patch the Makefile accordingly.
1023(define-public tegaki-wagomu-traditional-chinese
1024 (package
1025 (inherit tegaki-zinnia-traditional-chinese)
1026 (name "tegaki-wagomu-traditional-chinese")
1027 (arguments
1028 (substitute-keyword-arguments
1029 (package-arguments tegaki-zinnia-traditional-chinese)
1030 ((#:phases phases '%standard-phases)
1031 `(modify-phases ,phases
1032 (replace 'configure
1033 (lambda args
1034 (let ((configure (assq-ref ,phases 'configure)))
1035 (apply configure args))
1036 (substitute* "Makefile"
1037 (("zinnia") "wagomu"))
1038 #t))))))
1039 (license lgpl2.1))) ; all files
1f6f0b6b
RW
1040
1041(define-public link-grammar
1042 (package
1043 (name "link-grammar")
1044 (version "5.7.0")
1045 (source (origin
1046 (method url-fetch)
1047 (uri (string-append "https://www.abisource.com/downloads/"
1048 "link-grammar/" version
1049 "/link-grammar-" version ".tar.gz"))
1050 (sha256
1051 (base32
1052 "0ak1v469k56v3511kxxkxvx1nw6zcxcl0f1kcvc82ffacqbr4y96"))))
1053 (build-system gnu-build-system)
1054 (home-page "https://www.abisource.com/projects/link-grammar/")
1055 (synopsis "Link grammar parser")
1056 (description "The Link Grammar Parser is a syntactic parser of English,
1057Russian, Arabic and Persian (and other languages as well), based on Link
1058Grammar, an original theory of syntax and morphology. Given a sentence, the
1059system assigns to it a syntactic structure, which consists of a set of
1060labelled links connecting pairs of words. The parser also produces a
1061\"constituent\" (HPSG style phrase tree) representation of a sentence (showing
1062noun phrases, verb phrases, etc.).")
1063 (license bsd-3)))
fa76fb63
JL
1064
1065(define-public praat
1066 (package
1067 (name "praat")
1068 (version "6.1.16")
1069 (source (origin
1070 (method git-fetch)
1071 (uri (git-reference
1072 (url "https://github.com/praat/praat")
1073 (commit (string-append "v" version))))
1074 (file-name (git-file-name name version))
1075 (sha256
1076 (base32
1077 "1rx4qvl0dd85x0r6pl0zk4bysx9ykxl05kywjr4pyvv6dvpswkrm"))))
1078 (build-system gnu-build-system)
1079 (arguments
1080 `(#:tests? #f; no test target
1081 #:phases
1082 (modify-phases %standard-phases
1083 (replace 'configure
1084 (lambda _
1085 (copy-file "makefiles/makefile.defs.linux.pulse" "makefile.defs")
1086 #t))
1087 (replace 'install
1088 (lambda* (#:key outputs #:allow-other-keys)
1089 (let* ((out (assoc-ref outputs "out"))
1090 (bin (string-append out "/bin")))
1091 (mkdir-p bin)
1092 (copy-file "praat" (string-append bin "/praat")))
1093 #t)))))
1094 (inputs
1095 `(("alsa-lib" ,alsa-lib)
1096 ("gtk" ,gtk+-2)
1097 ("jack" ,jack-1)
1098 ("publesaudio" ,pulseaudio)))
1099 (native-inputs
1100 `(("pkg-config" ,pkg-config)))
1101 (home-page "http://www.fon.hum.uva.nl/praat/")
1102 (synopsis "Doing phonetics by computer")
1103 (description "Praat is a tool to perform phonetics tasks. It can do speach
1104analysis (pitch, formant, intensity, ...), speach synthesis, labeling, segmenting
1105and manipulation.")
1106 (license gpl2+)))