Re: bug#26308: [PATCH -v2] services: dict.scm: Support more dicod configuration

2017-04-02 Thread huang ying
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

2017-04-01 Thread Ludovic Courtès
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

2017-04-01 Thread Huang, Ying
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

2017-03-31 Thread Ludovic Courtès
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

2017-03-30 Thread Huang Ying
* 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