Re: bug#26308: [PATCH -v2] services: dict.scm: Support more dicod configuration
On Sun, Apr 2, 2017 at 6:12 AM, Ludovic Courtès wrote: > Hello, > > "Huang, Ying" skribis: > >> l...@gnu.org (Ludovic Courtès) writes: > > [...] > >>> While I was at it, I wrote a simple test for the dicod service: >>> >>> >>> https://git.savannah.gnu.org/cgit/guix.git/commit/?id=985a8599ed742053b52ac85f753c4feb54af93cb >>> >>> It uses the example handler that you gave in the doc, but I think this >>> handler actually does nothing because WordNet does not provide data in >>> the dict.org format AIUI (and its data is under “/dict” anyway.) Is >>> that correct? >>> >>> Do you have another example in mind that could use a dict.org-formatted >>> database? >> >> There are dict.org dict for wordnet and foldoc in Debian. Some >> conversion tool is needed to convert the dict database file. > > OK. Any idea of a DICT database file that we could use as an example > and as a test? I found there is freedict database file, for example, https://downloads.sourceforge.net/project/freedict/English%20-%20French/0.1.4/freedict-eng-fra-0.1.4.tar.bz2?r=https%3A%2F%2Fsourceforge.net%2Fprojects%2Ffreedict%2Ffiles%2FEnglish%2520-%2520French%2F0.1.4%2Ffreedict-eng-fra-0.1.4.tar.bz2%2Fdownload&ts=1491090445&use_mirror=excellmedia The home page is http://freedict.org/en/, the github page is http://freedict.org/en/, according to https://github.com/freedict/fd-dictionaries/blob/master/eng-fra/COPYING, the database file is released with GPL. Best Regards, Huang, Ying > Thanks, > Ludo’.
Re: bug#26308: [PATCH -v2] services: dict.scm: Support more dicod configuration
Hello, "Huang, Ying" skribis: > l...@gnu.org (Ludovic Courtès) writes: [...] >> While I was at it, I wrote a simple test for the dicod service: >> >> >> https://git.savannah.gnu.org/cgit/guix.git/commit/?id=985a8599ed742053b52ac85f753c4feb54af93cb >> >> It uses the example handler that you gave in the doc, but I think this >> handler actually does nothing because WordNet does not provide data in >> the dict.org format AIUI (and its data is under “/dict” anyway.) Is >> that correct? >> >> Do you have another example in mind that could use a dict.org-formatted >> database? > > There are dict.org dict for wordnet and foldoc in Debian. Some > conversion tool is needed to convert the dict database file. OK. Any idea of a DICT database file that we could use as an example and as a test? Thanks, Ludo’.
Re: bug#26308: [PATCH -v2] services: dict.scm: Support more dicod configuration
l...@gnu.org (Ludovic Courtès) writes: > Hello, > > Huang Ying skribis: > >> * gnu/services/dict.scm (): Add handlers to configure >> handlers (module instances). >> (): Add new record type to describe handler (module >> instance). >> (): Add more fields. >> (dicod-configuration-file): Support convert handlers and enhanced databases >> configuration to config file. >> >> * doc/guix.text: Add description of newly added dicod configuration. > > I’ve committed with a few adjustments to the commit log and cosmetic > changes: > > > https://git.savannah.gnu.org/cgit/guix.git/commit/?id=9af7ecd9591b4eff41389291bbc586dcf09e2665 > >> +@example >> +(dicod-service #:config >> + (dicod-configuration >> + (handlers >> + (list >> +(dicod-handler >> + (name "wordnet") >> + (module "dictorg") >> + (options >> + '("dbdir=/gnu/store/-wordnet") > > I’ve changed this to use a real example instead of “xxx”. > >> (define-record-type* >>dicod-database make-dicod-database >>dicod-database? >>(namedicod-database-name) >> - (module dicod-database-module) >> + (handler dicod-database-handler) >> + (complex dicod-database-complex(default #f)) > > I changed that to ‘complex?’, to make it clear that it’s a Boolean. > > While I was at it, I wrote a simple test for the dicod service: > > > https://git.savannah.gnu.org/cgit/guix.git/commit/?id=985a8599ed742053b52ac85f753c4feb54af93cb > > It uses the example handler that you gave in the doc, but I think this > handler actually does nothing because WordNet does not provide data in > the dict.org format AIUI (and its data is under “/dict” anyway.) Is > that correct? > > Do you have another example in mind that could use a dict.org-formatted > database? There are dict.org dict for wordnet and foldoc in Debian. Some conversion tool is needed to convert the dict database file. Best Regards, Huang, Ying > Thank you! > > Ludo’.
Re: bug#26308: [PATCH -v2] services: dict.scm: Support more dicod configuration
Hello, Huang Ying skribis: > * gnu/services/dict.scm (): Add handlers to configure > handlers (module instances). > (): Add new record type to describe handler (module > instance). > (): Add more fields. > (dicod-configuration-file): Support convert handlers and enhanced databases > configuration to config file. > > * doc/guix.text: Add description of newly added dicod configuration. I’ve committed with a few adjustments to the commit log and cosmetic changes: https://git.savannah.gnu.org/cgit/guix.git/commit/?id=9af7ecd9591b4eff41389291bbc586dcf09e2665 > +@example > +(dicod-service #:config > + (dicod-configuration > + (handlers > + (list > +(dicod-handler > + (name "wordnet") > + (module "dictorg") > + (options > + '("dbdir=/gnu/store/-wordnet") I’ve changed this to use a real example instead of “xxx”. > (define-record-type* >dicod-database make-dicod-database >dicod-database? >(namedicod-database-name) > - (module dicod-database-module) > + (handler dicod-database-handler) > + (complex dicod-database-complex(default #f)) I changed that to ‘complex?’, to make it clear that it’s a Boolean. While I was at it, I wrote a simple test for the dicod service: https://git.savannah.gnu.org/cgit/guix.git/commit/?id=985a8599ed742053b52ac85f753c4feb54af93cb It uses the example handler that you gave in the doc, but I think this handler actually does nothing because WordNet does not provide data in the dict.org format AIUI (and its data is under “/dict” anyway.) Is that correct? Do you have another example in mind that could use a dict.org-formatted database? Thank you! Ludo’.
[PATCH -v2] services: dict.scm: Support more dicod configuration
* gnu/services/dict.scm (): Add handlers to configure handlers (module instances). (): Add new record type to describe handler (module instance). (): Add more fields. (dicod-configuration-file): Support convert handlers and enhanced databases configuration to config file. * doc/guix.text: Add description of newly added dicod configuration. --- doc/guix.texi | 57 ++- gnu/services/dict.scm | 52 ++ 2 files changed, 96 insertions(+), 13 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 57595b95e..f1a063581 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -14370,25 +14370,49 @@ This is the list of IP addresses and ports and possibly socket file names to listen to (@pxref{Server Settings, @code{listen} directive,, dico, GNU Dico Manual}). +@item @code{handlers} (default: @var{'()}) +List of @code{} objects denoting handlers (module instances). + @item @code{databases} (default: @var{(list %dicod-database:gcide)}) List of @code{} objects denoting dictionaries to be served. @end table @end deftp -@deftp {Data Type} dicod-database -Data type representing a dictionary database. +@deftp {Data Type} dicod-handler +Data type representing a dictionary handler (module instance). @table @asis @item @code{name} -Name of the database, will be used in DICT commands. +Name of the handler (module instance). -@item @code{module} -Name of the dicod module used by this database +@item @code{module} (default: @var{#f}) +Name of the dicod module of the handler (instance). If it is @code{#f}, +the module has the same name as the handler. (@pxref{Modules,,, dico, GNU Dico Manual}). @item @code{options} List of strings or gexps representing the arguments for the module handler +@end table +@end deftp + +@deftp {Data Type} dicod-database +Data type representing a dictionary database. + +@table @asis +@item @code{name} +Name of the database, will be used in DICT commands. + +@item @code{handler} +Name of the dicod handler (module instance) used by this database (@pxref{Handlers,,, dico, GNU Dico Manual}). + +@item @code{complex} (default: @var{#f}) +Whether the database configuration complex. The complex configuration +will need a corresponding @code{} object, otherwise not. + +@item @code{options} +List of strings or gexps representing the arguments for the database +(@pxref{Databases,,, dico, GNU Dico Manual}). @end table @end deftp @@ -14397,6 +14421,29 @@ A @code{} object serving the GNU Collaborative International Dictonary of English using the @code{gcide} package. @end defvr +The following is an example @code{dicod-service} configuration. + +@example +(dicod-service #:config + (dicod-configuration + (handlers + (list +(dicod-handler + (name "wordnet") + (module "dictorg") + (options + '("dbdir=/gnu/store/-wordnet") + (databases + (list +(dicod-database + (name "wordnet") + (complex #t) + (handler "wordnet") + (options + '("database=wn"))) +%dicod-database:gcide +@end example + @subsubsection Version Control The @code{(gnu services version-control)} module provides the following services: diff --git a/gnu/services/dict.scm b/gnu/services/dict.scm index 303067037..596f901f3 100644 --- a/gnu/services/dict.scm +++ b/gnu/services/dict.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Sou Bunnbu ;;; Copyright © 2016 Ludovic Courtès +;;; Copyright © 2017 Huang Ying ;;; ;;; This file is part of GNU Guix. ;;; @@ -32,6 +33,7 @@ #:export (dicod-service dicod-service-type dicod-configuration +dicod-handler dicod-database %dicod-database:gcide)) @@ -46,21 +48,30 @@ (dicodicod-configuration-dico (default dico)) (interfaces dicod-configuration-interfaces ;list of strings (default '("localhost"))) - (databases dicod-configuration-databases - ;; list of + (handlersdicod-configuration-handlers ;list of + (default '())) + (databases dicod-configuration-databases ;list of (default (list %dicod-database:gcide +(define-record-type* + dicod-handler make-dicod-handler + dicod-handler? + (namedicod-handler-name) + (module dicod-handler-module (default #f)) + (options dicod-handler-options (default '( + (define-record-type* dicod-database make-dicod-database dicod-database? (namedicod-database-name) - (module dicod-database-module) + (handler dicod-database-handler) + (complex dicod-database-complex(default #f)) (options dicod-database-options(default '( (define %dicod-database:gcide (dicod-database (name "gcide") - (module "gcide") + (handler "gcide") (options (list