Spellserver extensions
Spellserver extensions
- Subject: Spellserver extensions
- From: Ondra Cada <email@hidden>
- Date: Tue, 10 May 2005 17:38:26 +0200
Hello,
I am just preparing a Czech spell-checker, whose features somewhat
extend the ones of the standard NSSpellServer interface. Seems to me
it would be reasonable to find, say, some semi-standard API for this,
so that other spell-checkers and other applications can mutually
exploit the extra services (i.e., presumed, for example, a future
cocoASpell release decides to support lexical categories, that
applications which were written to use them with the Czech checker
would be immediately able to use them).
Here is a list of the extensions I am at this moment implementing:
(i) lexical categories: each word, known to the spell-checker, can be
tagged as archaic, colloquial, dialectal, expressive, foreign,
literary, vulgar, or slang (or any combination of them of course).
The goal is to allow the user to choose which categories are to be
considered all right and which not, and also to check which
categories a given word belongs to;
(ii) thesaurus: optionally, the "guess" service can offer synonyms
instead of (or along with) the "real guesses" (incidentally, it looks
almost like a bug one cannot copy from the standard Cmd-^-d
thesaurus, and whilst drag&drop works, it can't be used to replace
the very word in question–but I digress);
(iii) stemmer: this service would not be used directly by the spell-
checker UI (see below for what I would like to do with it), but self-
evidently the spell checker has to offer it to the UI level;
(iv) grammatical categories (whether it is a noun or verb or
whatever...): this is probably the least useable service at the
moment, and perhaps I should omit it altogether on the YAGNI
principle. On the other hand, if the spell-server allows higher
software levels to get this information, they can benefit...
Here is a list of UI improvements which I am at the moment
considering, some of them just allowing the user to exploit the above
services, other independent on them:
(a) possibility to set up the lexical categories and other services
- directly through the standard GUI if necessary ("guessing"
special words, see below for the proposed API)
- conveniently through extended GUI if possible (e.g., by
extending the Spell Panel: http://www.ocs.cz/korektor.jpeg --
although the screenshot comes from Jaguar IIRC, the technique was
already checked to work all right with Tiger)
(b) add a System Preferences pane to control the behaviour: I know
e.g., cocoAspell does this, but I guess users would greatly benefit
if those options which can apply to any language would be shared);
(c) allow the user to choose whether accents and case should be
ignored or not (which is of course the default behaviour);
(d) add services to remove accents (almost trivial, though not
entirely, since e.g., ü without an accent is not 'u' but 'ue') and to
add them (non-trivial, spell-checker has to be used to determine
which is the right way, and the user has to be consulted);
(e) allow–optionally–to switch the dictionary language
automatically depending on the language of the current document
(probably using the selected keyboard for indication which language
is the current one, perhaps along with text analysis);
(f) allow–optionally–for more user dictionaries, allowing the user
to choose between them for a specific document;
(g) extend–again of course optionally–the new "Search All" service
to use stems to select all the occurrences of the same word,
regardless of its actual form;
(h) add a similar extension to Spotlight, possibly searching for
synonyms, too.
I (more or less) know how to, and know which ones can be done a clean
way, and which ones would need some Input Manager tweaking or
similar. Again, my goal and the very reason I am writing this message
is to make sure such extensions are as widely useable as possible:
for example, it would be nice, if the user could exploit the GUI
designed for Czech to find both Müller and Mueller in German, or
perhaps both "lift" and "elevator" in English :)
Let me please know if you are the slightest bit interested; in that
case I shall send you the API design and so forth.
Douglas, you perhaps might let me know which services I should not
implement since they are planned for 10.4.1 :)))
Thanks a lot!
–-
Ondra Čada
OCSoftware: email@hidden http://www.ocs.cz
private email@hidden http://www.ocs.cz/oc
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden