* Additional dict server for dictionary.el @ 2008-10-29 21:17 Sven Bretfeld 0 siblings, 0 replies; 5+ messages in thread From: Sven Bretfeld @ 2008-10-29 21:17 UTC (permalink / raw) To: help-gnu-emacs [-- Attachment #1: Type: text/plain, Size: 568 bytes --] Hello to all I'm just discovering dictionary.el. I cannot find instructions on how to add a dict server additionally to the default dict.org. There is a server providing a dictionary I would really like to use, but I don't want to lose access to dict.org. To complicate things, that server uses port 2629 instead of the usual 2628. This is, of course, not working: (setq dictionary-server "indica-et-buddhica.org") (setq dictionary-port 2629) because, then, only the dictionaries on that server are available. What can I do? Greetings Sven [-- Attachment #2: Type: application/pgp-signature, Size: 188 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <mailman.2428.1225315094.25473.help-gnu-emacs@gnu.org>]
* Re: Additional dict server for dictionary.el [not found] <mailman.2428.1225315094.25473.help-gnu-emacs@gnu.org> @ 2008-10-30 22:27 ` Xah 2008-10-30 23:45 ` Xah 0 siblings, 1 reply; 5+ messages in thread From: Xah @ 2008-10-30 22:27 UTC (permalink / raw) To: help-gnu-emacs On Oct 29, 2:17 pm, Sven Bretfeld <sven.bretf...@gmx.ch> wrote: > Hello to all > > I'm just discovering dictionary.el. > > I cannot find instructions on how to add a dict server additionally to > the default dict.org. There is a server providing a dictionary I would > really like to use, but I don't want to lose access to dict.org. To > complicate things, that server uses port 2629 instead of the usual > 2628. This is, of course, not working: > > (setq dictionary-server "indica-et-buddhica.org") > (setq dictionary-port 2629) > > because, then, only the dictionaries on that server are available. > > What can I do? i also use “dictionary.el”, but i haven't several others. In particular, i note there's a http://sourceforge.net/projects/dictem . There are several others last discussed here, you might try emacswiki. If you run customize-group, then “dictionary”, you'll find there's a field to change the server and port. Not sure it can add servers as you asked. i'd like to set the default dict to just WordNet, 1913 Websters, and Moby Thesaurus. However, its documention doesn't mention how. if you run customize-group, there's default dict you can set. But it's not clear what's the available dicts, what's the proper keyword for them, and what's the proper syntax to use. When doing the “[Select Dictionary]” in dictionary-mode, among the lists are: wn: WordNet (r) 2.0 moby-thes: Moby Thesaurus II by Grady Ward, 1.0 so, apparently, “wn” and “moby-thes” are the keywords, however, it seems to be mising the 1913 Webster. (i want the unmodified 1913 Webster, not the “The Collaborative International Dictionary of English” (gcide) that's derived from it. (The “1913 Webster” are often available from other open source dict clients, such as Omni dict on the Mac.)) also, i find it annoying that when you lookup a word, it switches the cursor to the newly created dict panel. This is contrary to conventional behavior. Note: i have: (global-set-key (kbd "<kp-0>") 'dictionary-lookup-definition) (global-set-key (kbd "<S-kp-0>") 'lookup-word-definition-in-w3m) (global-set-key (kbd "<C-kp-0>") 'lookup-wikipedia) -------------- there are few problems with open source dictionaries... • for example, it requires to use the singular form to find the right word. (e.g. try search for “chairs”) This is a major pain. • problem with phonetic system. e.g. it often uses some idiosyncratic made-up pronunciation system (typical of American dicts) as opposed to IPA. (For a comparison of major US dicts on pron system, see: English Phonetics at http://xahlee.org/Periodic_dosage_dir/bangu/voksa_sinxa_ciste.html ) Worse is that ascii is used to emulate pronunciation symbols, makes it hard to understand. • Problem with accented letters. e.g. you can't lookup words with a accented letter such as touché, précis, élan, lycée, passé, ... etc. • also, often there are 2 results from “The Collaborative International Dictionary of English”, apparently of the same version but they differ slightly in content. e.g. lookup “precis”, then it gives: «From The Collaborative International Dictionary of English v.0.48 [gcide]: Pr'ecis \Pr['e]`cis"\ (pr[asl]`s[=e]"), n. [F. See Precise.] A concise or abridged statement or view; an abstract; a summary. [1913 Webster] From The Collaborative International Dictionary of English v.0.48 [gcide]: precis \precis\ v. t. To make a precis of. [WordNet 1.5] » • Of course, the definition quality and vocabulary size is often not comparable to commercial dicts. ----------------- occationally i use wiktionary ( http://en.wiktionary.org/wiki/Wiktionary:Main_Page ) particularly good if you are looking up chinese chars for its traditional/simpified version, english translation, code points, uses in Japanese and Korean, classification of input under several input systems. e.g. http://en.wiktionary.org/wiki/反 does wiktionary support server request? ----------------------- i have some code for looking up references that might be of interest. (defun lookup-wikipedia () "Look up the word's in Wikipedia.\n This command generates a url for Wikipedia.com and switches you to browser. If a region is active (a phrase), lookup that phrase." (interactive) (let (myword myurl) (setq myword (if (and transient-mark-mode mark-active) (buffer-substring-no-properties (region-beginning) (region-end)) (thing-at-point 'symbol))) (setq myword (replace-regexp-in-string " " "_" myword)) (setq myurl (concat "http://en.wikipedia.org/wiki/" myword)) (shell-command (concat "open -a opera " myurl)) ;; (browse-url myurl) )) the following lookup word def in a commercial dict based on the web, using w3m interface. You can modify it so it fires up a browser instead. (advantage using real browser that you get voice recoded pronunciation, easier to read, and faster load etc.) (defun lookup-word-definition-in-w3m () "Look up the word's definition in a emacs-w3m.\n If a region is active (a phrase), lookup that phrase." (interactive) (let (myword myurl) (setq myword (if (and transient-mark-mode mark-active) (buffer-substring-no-properties (region-beginning) (region-end)) (thing-at-point 'symbol))) (setq myword (replace-regexp-in-string " " "%20" myword)) (setq myurl (concat "http://www.answers.com/main/ntquery?s=" myword)) (w3m-browse-url myurl) )) See also: • A Review of 3 Dictionaries http://xahlee.org/Periodic_dosage_dir/bangu/dict_review.html • English vocabulary compendium http://xahlee.org/PageTwo_dir/Vocabulary_dir/vocabulary.html Xah ∑ http://xahlee.org/ ☄ ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Additional dict server for dictionary.el 2008-10-30 22:27 ` Xah @ 2008-10-30 23:45 ` Xah 2008-11-01 10:36 ` Xah 0 siblings, 1 reply; 5+ messages in thread From: Xah @ 2008-10-30 23:45 UTC (permalink / raw) To: help-gnu-emacs PS just played with customize-group and “dictionary”. You can set the default dict to one of “wn”, “web1913” or “moby-thes”. That will lookup using that one particular dict. is there a way to set a list of dicts to use? Xah ∑ http://xahlee.org/ ☄ ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Additional dict server for dictionary.el 2008-10-30 23:45 ` Xah @ 2008-11-01 10:36 ` Xah 2008-11-03 22:43 ` Xah 0 siblings, 1 reply; 5+ messages in thread From: Xah @ 2008-11-01 10:36 UTC (permalink / raw) To: help-gnu-emacs Some more info ... i took a look at the alternative emacs dict client http://sourceforge.net/projects/dictem it turns out that this is merely a wrapper to a real command line client, and is actually orginially based on “dictionary.el”. this is kinda disappointing. I guess it tries to improve “dictionary.el” but throws real meat, the actual real dict client, out. -------------- i wrote to the author of dictionary.el Torsten Hilbrich. Here's what he says: « There is currently no way to use more than one dictionary server. You could however locally modify dictionary-server in a self-written lisp function like: (defun search-in-1913 (word) (interactive (list (read-string "Search word: " (current-word)))) (let ((dictionary-server "dict.org")) (dictionary-search word "web1913"))) Replace dict.org with the server you use for this dictionary. » «Regarding the window change you mentioned in the thread. Here is a function you could use in replacement of dictionary-search to get the behaviour you prefer: (defun dictionary-search-other-window (word &optional dictionary) (interactive (list (read-string "Search word: " (current-word)) (if current-prefix-arg (read-string "Dictionary: " dictionary-default-dictionary) dictionary-default-dictionary))) (let ((dictionary-use-single-buffer t)) (dictionary-search word dictionary) (other-window 1))) It switches back to the original window and also let dictionary use a single window to avoid recreating a new dictionary buffer for each request. » ---------------------------- i did some digging of the source code. So, effectively you can just do this: (dictionary-new-search (cons "fancy" "wn")) ; look up word in WordNet (dictionary-new-search (cons "fancy" "web1913")) ; look up word in webster 1913 or (dictionary-do-search "fancy" "web1913" 'dictionary-display-search- result) the dictionary-display-search-result function will take the result and format it and display in buffer. But i haven't spent enough time to figure out what's the format passed to dictionary-display-search- result. in anycase, here's a code that does lookup on current word. It different than dictionary-lookup-definition in that if you have a text selection, it'll use that phrase to lookup. This is convenient because quite often emacs's (current-word) does not really pickup the word you want. Including phrases or idioms that has a dict entry but has a space in them. The other change is that the cursor remains where it is. (defun lookup-word-def () "Look up the word's definition in Webster 1913 If a region is active (a phrase), lookup that phrase." (interactive) (let (myword myurl) (setq myword (if (and transient-mark-mode mark-active) (buffer-substring-no-properties (region-beginning) (region-end)) (thing-at-point 'symbol))) (require 'dictionary) (dictionary-new-search (cons myword "web1913")) ; (dictionary-new-search (cons "fancy" "moby-thes")) ; (dictionary-new-search (cons "fancy" "wn")) ; (dictionary-do-search "fancy" "web1913" 'dictionary-display-search- result) (other-window 1) )) you could define several of these and assign them each to a shortcut. e.g. the 0 on keypad, shift-0, ctrl+0, for looking up diff dicts... ideally, i would like one press of a key and have the 3 dicts i want (webster 1913, wordnet, moby thes) all combined in one output. This means i'll have to figure out the format used in dictionary-display- search-result... but currently not priority. PS it odd that the dict protocol does not seem to allow client to specify a _list_ of dicts to use, but it has a “*” to mean what i presume ALL dict that's available on the server. Xah ∑ http://xahlee.org/ ☄ ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Additional dict server for dictionary.el 2008-11-01 10:36 ` Xah @ 2008-11-03 22:43 ` Xah 0 siblings, 0 replies; 5+ messages in thread From: Xah @ 2008-11-03 22:43 UTC (permalink / raw) To: help-gnu-emacs i took some time to solve problem about “dictionary.el”. Now, with the following customized command, one can now effectively select a set of dictionaries as the default dicts to lookup, with their results in one pane. The cursor stays in the original pane. And if the word under cursor is plural, e.g. chairs, or a phrase (e.g. “Union Jack”), you can select parts of the word or phrase, and the lookup will use that text selection. Here's the code: (defun lookup-word-def () "Look up current word's definition in WordNet, Webster 1913, Moby Thesaurus. If there is a text selection (a phrase), lookup that phrase. This command needs “dictionary.el” installed." (interactive) (let (myword myurl meat navigText pos) (setq myword (if (and transient-mark-mode mark-active) (buffer-substring-no-properties (region-beginning) (region-end)) (thing-at-point 'symbol))) (require 'dictionary) ;; (dictionary-do-search "fancy" "web1913" 'dictionary-display- search-result) (dictionary-new-search (cons myword "wn")) (setq meat (buffer-substring (point-min) (point-max))) (dictionary-new-search (cons myword "web1913")) (setq meat (concat meat (buffer-substring (point-min) (point- max)))) (dictionary-new-search (cons myword "moby-thes")) (setq meat (concat meat (buffer-substring (point-min) (point- max)))) (switch-to-buffer "*my dict results*") (erase-buffer) (dictionary-mode) (insert meat) (goto-char 1) (next-line 2) (setq pos (point)) (setq navigText (buffer-substring 1 pos)) (goto-char 1) ;; remove navigation text (while (search-forward "[Back] [Search Definition] [Matching words] [Quit] [Select Dictionary] [Select Match Strategy] " nil t ) (replace-match "-----------------------------------------------------------------" t t)) ;; remove message about how many def found. e.g. “1 definition found”. (goto-char 1) (while (search-forward-regexp "[0-9]+ definitions* found\n\n" nil t) (replace-match "" t t)) (goto-char (point-max)) (insert navigText) (goto-char 1) (other-window 1) )) The major content of this thread is now cleaned up and summarized as a tutorial and a essay at: • Dictionary and Reference Lookup with Emacs http://xahlee.org/emacs/emacs_lookup_ref.html • Problems of Open Source Dictionaries http://xahlee.org/Periodic_dosage_dir/bangu/dict_open_source_probs.html Xah ∑ http://xahlee.org/ ☄ ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2008-11-03 22:43 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2008-10-29 21:17 Additional dict server for dictionary.el Sven Bretfeld [not found] <mailman.2428.1225315094.25473.help-gnu-emacs@gnu.org> 2008-10-30 22:27 ` Xah 2008-10-30 23:45 ` Xah 2008-11-01 10:36 ` Xah 2008-11-03 22:43 ` Xah
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.