<div dir="ltr">Strong&#39;s numbers are padded by 0, which is why they currently sort properly.<br><br>Such a sort order sounds a good idea (though perhaps not for the developers ;). <br>Modules produced in such a way wouldn&#39;t be compatible with Sword &lt;= 1.5.11, though.<br>
<br>I still suspect that sorting isn&#39;t quite as easy as specifying a simple sort order such as you suggested. <br>Once diacritics enter into it (especially non-composed diacritics), things could get a little more difficult.<br>
Perhaps allowing the delimiter separated variables to be longer than 1 character long might help.<br><br>This still won&#39;t catch everything, but it would be a good thing to have - I think I&#39;ve seen english dictionaries which put &quot;St. Something&quot; entries at the start of S...<br>
<br>As for the example &#39;tis, you can&#39;t catch everything. This is when you want to do a search on the keys of the dictionary.<br><br clear="all">God Bless,<br>Ben<br>-------------------------------------------------------------------------------------------<br>
The Lord is not slow to fulfill his promise as some count slowness,<br>but is patient toward you, not wishing that any should perish,<br>but that all should reach repentance.<br>2 Peter 3:9 (ESV)<br>
<br><br><div class="gmail_quote">2008/9/18 Greg Hellings <span dir="ltr">&lt;<a href="mailto:greg.hellings@gmail.com">greg.hellings@gmail.com</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d">On Wed, Sep 17, 2008 at 10:38 PM, Daniel Owens &lt;<a href="mailto:dhowens@pmbx.net">dhowens@pmbx.net</a>&gt; wrote:<br>
&gt;<br>
&gt;<br>
&gt; Greg Hellings wrote:<br>
&gt;<br>
&gt; On Wed, Sep 17, 2008 at 9:56 PM, Daniel Owens &lt;<a href="mailto:dhowens@pmbx.net">dhowens@pmbx.net</a>&gt; wrote:<br>
&gt;<br>
&gt;<br>
&gt; Ben,<br>
&gt;<br>
&gt; Thanks for the explanation. It seems to me that setting up dictionaries to<br>
&gt; use key retrieval from an uncompressed file with one key per line (ordered<br>
&gt; as the module creator orders it) makes the most sense to me. If that helps<br>
&gt; increase efficiency and preserves the order of dictionary entries, then that<br>
&gt; is what we want.<br>
&gt;<br>
&gt;<br>
&gt; Would it also be possible to put a space-delimited (or anything else<br>
&gt; delimited) list of the order that characters ought to be arranged in<br>
&gt; for a given dictionary? &nbsp;Then the module creator could put them in<br>
&gt; whatever is desired in the import file, and the ordering can be based<br>
&gt; off of the configuration file. &nbsp;Sorting would be as simple as<br>
&gt; replacing the characters in each entry with an integer and sorting the<br>
&gt; resulting vectors. &nbsp;In the absence of a sort-field, then the module<br>
&gt; import file&#39;s order could default (or the current behavior, whichever<br>
&gt; is deemed better)?<br>
&gt;<br>
&gt;<br>
&gt; --Greg<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; What if one of the TEI elements were an integer (much like Strong&#39;s)? The<br>
&gt; dictionary could be sorted by that integer but entries would not display the<br>
&gt; integer but rather the actual word entry.<br>
<br>
</div>I would suppose, in that case, the sorting could be left in the<br>
default mode of sorting based on the document&#39;s type. &nbsp;Alternatively<br>
two config entries could be devised.<br>
Sorting=None|Default|Config<br>
SortOrder=a b c d e...<br>
<br>
The Sorting=None would be sorting left in the order of the import<br>
file, Default would be the current (and default) behavior and Config<br>
would indicate to follow the sorting order listed in SortOrder, which<br>
could be completely arbitrary, based on the module creator&#39;s<br>
preferences. &nbsp;For a language or a listing which used numerals, like<br>
Strongs, they would not be perturbed by either the original scheme or<br>
this expanded suggestion. &nbsp;Since the characters of the Strongs entries<br>
are distinct from integers, and the mapping would take characters into<br>
integers for the sorting process, then back into their original<br>
characters, no violence would be done to the Strongs numbers<br>
themselves. &nbsp;If there was a mixture of letters and numbers, it still<br>
wouldn&#39;t be a problem, and the module creator could include the<br>
integers wherever they wanted in the SortOrder listing.<br>
<font color="#888888"><br>
--Greg<br>
</font><div><div></div><div class="Wj3C7c"><br>
&gt;<br>
&gt; Daniel<br>
&gt;<br>
&gt; I will agree that the sorted order is not as important in BPBible because of<br>
&gt; the lookup feature, but that breaks down when you need to browse further<br>
&gt; within a range of entries. Furthermore, the example of &quot;&#39;tis&quot; suggests that,<br>
&gt; even in English, code pointing disturbs the natural order of the dictionary,<br>
&gt; making it harder to browse for the right entry. Unless you type in the<br>
&gt; apostrophe, you won&#39;t find &quot;&#39;tis&quot; because it will not be near &quot;t&quot; but be at<br>
&gt; the top of the dictionary, which is very far away. In BibleDesktop, which<br>
&gt; doesn&#39;t yet have the lookup feature yet, you have to browse for any<br>
&gt; dictionary entry (except Strongs, where the key is a number and therefore in<br>
&gt; printed order!), so the ordering really does matter. Also, frankly, a<br>
&gt; dictionary out of alphabetical order just looks silly. In Vietnamese it&#39;s<br>
&gt; chaotic when dictionaries are ordered by code point. Who ever heard of a<br>
&gt; dictionary where &quot;d&quot; comes after &quot;z&quot;? That&#39;s what happens in Vietnamese.<br>
&gt;<br>
&gt; Daniel<br>
&gt;<br>
&gt; Ben Morgan wrote:<br>
&gt;<br>
&gt; Hi Daniel,<br>
&gt;<br>
&gt; Code points are not the only way to sort it.<br>
&gt; However, there does need to be a comparison function defined, which will<br>
&gt; compare two words and give which is bigger.<br>
&gt; This needs to be used consistently, from module creation to frontend. There<br>
&gt; could be a library of defined comparators provided by SWORD - but you would<br>
&gt; need one for each sort order you wanted (which approaches one per language).<br>
&gt;<br>
&gt; Personally, I don&#39;t find that sorted order is particularly important in<br>
&gt; dictionaries - I would type in a word, and then hope that if it is a<br>
&gt; different form of the word it would be relatively close. Some frontends may<br>
&gt; not give the ability to type in words, though.<br>
&gt;<br>
&gt; But I haven&#39;t used dictionaries in other languages, so it may be different<br>
&gt; for them - especially once diacritics are involved.<br>
&gt;<br>
&gt; The reasons why dictionaries are different from bibles are:<br>
&gt; 1) Bibles have a known structure, which is hardcoded in the key type (this<br>
&gt; is going to be able to change soon, for alternate versification, though -<br>
&gt; probably leading to less efficient modules)<br>
&gt; 2) Dictionaries can be much, much larger - Websters is a 14Mb download<br>
&gt; compressed, as compared to the WEB&#39;s ~1.5Mb<br>
&gt;<br>
&gt; That&#39;s not to say the dictionaries can&#39;t be done more efficiently than they<br>
&gt; are currently. Looking at the code, they could be quicker for the (common?)<br>
&gt; case of incrementing a module. Currently they do a binary search for every<br>
&gt; increment.<br>
&gt; Further, they could probably be optimized for key retrieval - which is the<br>
&gt; really important thing here. (For example by storing the keys separately,<br>
&gt; uncompressed, 1 key per line)<br>
&gt;<br>
&gt; God Bless,<br>
&gt; Ben<br>
&gt; -------------------------------------------------------------------------------------------<br>
&gt; The Lord is not slow to fulfill his promise as some count slowness,<br>
&gt; but is patient toward you, not wishing that any should perish,<br>
&gt; but that all should reach repentance.<br>
&gt; 2 Peter 3:9 (ESV)<br>
&gt;<br>
&gt;<br>
&gt; On Thu, Sep 18, 2008 at 11:21 AM, Daniel Owens &lt;<a href="mailto:dhowens@pmbx.net">dhowens@pmbx.net</a>&gt; wrote:<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; &nbsp;Is code point order the ONLY way to sort dictionary entries? Surely there<br>
&gt; is a solution which would retain the printed or intended order of dictionary<br>
&gt; entries without giving up lots of efficiency. If not, I think users would<br>
&gt; find a correctly ordered but slower dictionary to one which is fast but<br>
&gt; jumbled up.<br>
&gt;<br>
&gt; At the very least, even if dictionaries aren&#39;t sorted by the printed order,<br>
&gt; they should AT LEAST be in alphabetical order. To me that is a<br>
&gt; non-negotiable for a dictionary--people depend on dictionaries being in the<br>
&gt; right order, and code point order disturbs that for some languages. Here are<br>
&gt; a couple of ideas:<br>
&gt; &nbsp; &nbsp; - Could a configuration file of some sort be created to define a<br>
&gt; sorted order for a given language that would actually be in alphabetical<br>
&gt; order?<br>
&gt; &nbsp; &nbsp; - Could a dictionary index be created to handle large dictionaries<br>
&gt; which allows for the retention of the correct order of entries (whether that<br>
&gt; is the printed order or alphabetical order)?<br>
&gt; &nbsp; &nbsp; - Bibles are not ordered by code point, and we are able to search them<br>
&gt; fairly quickly. Do dictionaries need to be compiled in a fashion similar to<br>
&gt; Bibles?<br>
&gt;<br>
&gt; As it stands, dictionaries are NOT displayed in alphabetical order (at<br>
&gt; least not Vietnamese, and apparently Farsi), which at best looks silly to<br>
&gt; the user and at worst means you have to manually hunt around to find the<br>
&gt; right entry, making a Genbook more efficient for the user in the end. But<br>
&gt; then you lose the dictionary lookup feature.<br>
&gt;<br>
&gt; Daniel<br>
&gt;<br>
&gt; Ben Morgan wrote:<br>
&gt;<br>
&gt; The issue with ordering as I understand it is that if it is in (some form<br>
&gt; of) sorted order, you can use binary search to find entries.<br>
&gt; If you want order retained, it is best to use a genbook - but it won&#39;t be as<br>
&gt; efficient, and may not have as good UI support.<br>
&gt; With huge english dictionaries (like Webster&#39;s, for instance) this becomes<br>
&gt; very important.<br>
&gt;<br>
&gt; &gt;From BPBible&#39;s perspective, dictionary handling is done as follows:<br>
&gt; 1. Read the index of the dictionary and divide by 4 or 6 to get the length<br>
&gt; (depending on the driver)<br>
&gt; 2. Set the virtual list length to the dictionary length<br>
&gt; 3. When any item is displayed in the virtual list, it retrieves it from the<br>
&gt; module.<br>
&gt; 4. When the user starts typing in the text box above, it does a binary<br>
&gt; search to find which item to display.<br>
&gt;<br>
&gt; 4 is already quite slow enough on big dictionaries - by having it unsorted,<br>
&gt; it would make it quite a lot slower, I imagine.<br>
&gt; All the keys from the module would have to be read in, which takes a while.<br>
&gt;<br>
&gt; God Bless,<br>
&gt; Ben<br>
&gt; ------------------------------------------------------------------------------------------<br>
&gt; -<br>
&gt; The Lord is not slow to fulfill his promise as some count slowness,<br>
&gt; but is patient toward you, not wishing that any should perish,<br>
&gt; but that all should reach repentance.<br>
&gt; 2 Peter 3:9 (ESV)<br>
&gt;<br>
&gt;<br>
&gt; On Thu, Sep 18, 2008 at 12:43 AM, Daniel Owens &lt;<a href="mailto:dhowens@pmbx.net">dhowens@pmbx.net</a>&gt;<br>
&gt; &lt;<a href="mailto:dhowens@pmbx.net">dhowens@pmbx.net</a>&gt; wrote:<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; &nbsp;mention that byte ordering does some strange things to Vietnamese<br>
&gt; dictionaries. The Vietnamese script is a Latin script, but because it uses<br>
&gt; some odd characters code point ordering results in illogical and<br>
&gt; non-alphabetical entry ordering. For example, the &quot;d&quot; with a line through it<br>
&gt; (ð) gets relegated to near the end of the dictionary instead of after the<br>
&gt; regular &quot;d&quot; or anything with an apostrophe at the beginning of a word or<br>
&gt; phrase gets moved to the top of the list regardless of the first letter<br>
&gt; (such as &#39;tis). I am supportive of the IIRC general opinion. Let the module<br>
&gt; creator worry about the ordering. Otherwise you get some very strange<br>
&gt; dictionary behavior.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; ------------------------------<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; sword-devel mailing list:<br>
&gt; sword-devel@crosswire.orghttp://<a href="http://www.crosswire.org/mailman/listinfo/sword-devel" target="_blank">www.crosswire.org/mailman/listinfo/sword-devel</a><br>
&gt; Instructions to unsubscribe/change your settings at above page<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; PMBX license 1502<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; sword-devel mailing list: <a href="mailto:sword-devel@crosswire.org">sword-devel@crosswire.org</a><br>
&gt; <a href="http://www.crosswire.org/mailman/listinfo/sword-devel" target="_blank">http://www.crosswire.org/mailman/listinfo/sword-devel</a><br>
&gt; Instructions to unsubscribe/change your settings at above page<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; ________________________________<br>
&gt; _______________________________________________<br>
&gt; sword-devel mailing list: <a href="mailto:sword-devel@crosswire.org">sword-devel@crosswire.org</a><br>
&gt; <a href="http://www.crosswire.org/mailman/listinfo/sword-devel" target="_blank">http://www.crosswire.org/mailman/listinfo/sword-devel</a><br>
&gt; Instructions to unsubscribe/change your settings at above page<br>
&gt;<br>
&gt; --<br>
&gt; PMBX license 1502<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; sword-devel mailing list: <a href="mailto:sword-devel@crosswire.org">sword-devel@crosswire.org</a><br>
&gt; <a href="http://www.crosswire.org/mailman/listinfo/sword-devel" target="_blank">http://www.crosswire.org/mailman/listinfo/sword-devel</a><br>
&gt; Instructions to unsubscribe/change your settings at above page<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; sword-devel mailing list: <a href="mailto:sword-devel@crosswire.org">sword-devel@crosswire.org</a><br>
&gt; <a href="http://www.crosswire.org/mailman/listinfo/sword-devel" target="_blank">http://www.crosswire.org/mailman/listinfo/sword-devel</a><br>
&gt; Instructions to unsubscribe/change your settings at above page<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; PMBX license 1502<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; sword-devel mailing list: <a href="mailto:sword-devel@crosswire.org">sword-devel@crosswire.org</a><br>
&gt; <a href="http://www.crosswire.org/mailman/listinfo/sword-devel" target="_blank">http://www.crosswire.org/mailman/listinfo/sword-devel</a><br>
&gt; Instructions to unsubscribe/change your settings at above page<br>
&gt;<br>
_______________________________________________<br>
sword-devel mailing list: <a href="mailto:sword-devel@crosswire.org">sword-devel@crosswire.org</a><br>
<a href="http://www.crosswire.org/mailman/listinfo/sword-devel" target="_blank">http://www.crosswire.org/mailman/listinfo/sword-devel</a><br>
Instructions to unsubscribe/change your settings at above page<br>
</div></div></blockquote></div><br></div>