RE: [sword-devel] Accusations...
> Kekchi > Xhosa -- apparently from OLB; like it says, further info unknown Kek'chi is the language of a people group of Maya descent that is still in use today in the highlands of Guatemala, Central America. Being so, the most probable translators would be Summer Institute of Linguistics (I think that's its name in English?), as it would need someone versed in a very particular language and the name of the Deity is translated as "Dios," the same as in Spanish. Hope that helps. God bless, Jorge --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.435 / Virus Database: 244 - Release Date: 12/30/2002
[sword-devel] Question for Optimization / speed experts
Hi! Some questiosn for optimizations experts :) I'm working on a piece of code in BibleTime which gives me headaches. BibleTime supports displaying different lexicons side by side, it offers only the keys which are available in all of the chosen lexicons. The function which creates the list of entries which are available in all modules is ways too slow and too CPU consuming. I implemented it the following way: 1. Sort the modules by number of entries (from small to large) 2. Use the modules with the fewest entries and go through all of it's entries: 3. Is the entry in all other modules? Add the entry to a list of good entries it it is, otherwise continue with the next entry of the smallest list and compare it with all other chosen modules. Assume the user selected BDB together with StrongsHebrew. Each of the modules has around 1 entries. So the outer loop would have 1 iterations, the inner loop would have another 1 iterations. So we get 10.000*10.000=100.000.000 = one hunred million iterations. This is ways too slow and ways too much. This needs on my 1.2GHz Atlon with 512 MB Ram more then five seconds. If there are three, four or even five modules side by side we get much more loops. Are the other ways to do such a task? Since the entry lists are sorted by the alaphabet this would be a good point to start. But I don't know how to do it best. I'd be really glad for help with this case! Thank you! Joachim -- Joachim Ansorg www.bibletime.info www.ansorgs.de
Re: [sword-devel] Accusations...
> > GerElb1871 -- dunno Came from OLB, user contributed. As far as I know it's out of copyright and AFAIK the OLB guys did not enter the text. The Elb 1905 module is out of copyright now, too. I'll try to find some more infos on the net. Joachim -- Joachim Ansorg www.bibletime.info www.ansorgs.de
Re: [sword-devel] Question for Optimization / speed experts
Joachim Ansorg wrote: Hi! Some questiosn for optimizations experts :) I'm working on a piece of code in BibleTime which gives me headaches. BibleTime supports displaying different lexicons side by side, it offers only the keys which are available in all of the chosen lexicons. The function which creates the list of entries which are available in all modules is ways too slow and too CPU consuming. I implemented it the following way: 1. Sort the modules by number of entries (from small to large) 2. Use the modules with the fewest entries and go through all of it's entries: 3. Is the entry in all other modules? Add the entry to a list of good entries it it is, otherwise continue with the next entry of the smallest list and compare it with all other chosen modules. Assume the user selected BDB together with StrongsHebrew. Each of the modules has around 1 entries. So the outer loop would have 1 iterations, the inner loop would have another 1 iterations. So we get 10.000*10.000=100.000.000 = one hunred million iterations. This is ways too slow and ways too much. This needs on my 1.2GHz Atlon with 512 MB Ram more then five seconds. If there are three, four or even five modules side by side we get much more loops. Are the other ways to do such a task? Since the entry lists are sorted by the alaphabet this would be a good point to start. But I don't know how to do it best. I'd be really glad for help with this case! Thank you! Joachim My thoughts: initialise a marker to the first entry in each module FOR each entry in module A flag the entry as (potentially) good FOR each other module WHILE the marked entry in module is BEFORE the marked entry in A move the marker forward an entry IF the marked entry is AFTER the marked entry in A flag the entry as bad EXIT inner loop IF the entry is not flagged as bad add entry to list of good entries move marker in module A forward an entry This will iterate exactly once through each entry in each module. It depends on the modules being sorted, but I understand that's a given anyway. Glen
[sword-devel]
Happy New Year! I would like to develop a general book that can be included into the SWORD program similar to Josephus’ book. I wonder if anyone has instruction how to do it? God Bless Paul Khoi X Pham Stone & Webster 281-368-3012
[sword-devel]
Happy new Year! I downloaded the latest Windows version of SWORD 1.5.5. and tried to compile with C++ Builder 6. I got the Swordlib.lib compiled, but got an error when compiling sword.cpp. The message is: [C++ Fatal Error] Sword.cpp (143): F1013 Error Writing Output file. I checked the Help file it tells me that I may not have enough space in my hard driver. However, I have more than 16GB on my hard driver. What can I do to compile this? Please help! Paul Khoi X Pham Stone & Webster 281-368-3012
Re: [sword-devel] Question for Optimization / speed experts
C++ has a standard algorithm called set_intersection - found in the header . Given two sorted sequences, it will output the items that are found in both sequences. This function is very efficient, and with use of it, I think your problem should become trivial. Documentation for this algorithm can be found at http://www.sgi.com/tech/stl/set_intersection.html Of course, to use it, your sequences will need to have standards-conforming iterators. If you need any help using the function, let me know. -David. - Original Message - From: "Joachim Ansorg" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Tuesday, January 07, 2003 12:46 AM Subject: [sword-devel] Question for Optimization / speed experts > Hi! > Some questiosn for optimizations experts :) > > I'm working on a piece of code in BibleTime which gives me headaches. > BibleTime supports displaying different lexicons side by side, it offers only > the keys which are available in all of the chosen lexicons. > > The function which creates the list of entries which are available in all > modules is ways too slow and too CPU consuming. > I implemented it the following way: > > 1. Sort the modules by number of entries (from small to large) > 2. Use the modules with the fewest entries and go through all of it's > entries: > 3. Is the entry in all other modules? Add the entry to a list of good > entries it it is, otherwise continue with the next entry of the smallest list > and compare it with all other chosen modules. > > Assume the user selected BDB together with StrongsHebrew. Each of the modules > has around 1 entries. So the outer loop would have 1 iterations, the > inner loop would have another 1 iterations. So we get > 10.000*10.000=100.000.000 = one hunred million iterations. This is ways too > slow and ways too much. > This needs on my 1.2GHz Atlon with 512 MB Ram more then five seconds. > > If there are three, four or even five modules side by side we get much more > loops. > > Are the other ways to do such a task? Since the entry lists are sorted by the > alaphabet this would be a good point to start. But I don't know how to do it > best. > > I'd be really glad for help with this case! > > Thank you! > Joachim > -- > Joachim Ansorg > www.bibletime.info > www.ansorgs.de > > >
Re: [sword-devel]
> I downloaded the latest Windows version of SWORD 1.5.5. and tried to compile with >C++ Builder 6. I got the Swordlib.lib compiled, but got an error when compiling >sword.cpp. The message is: > > [C++ Fatal Error] Sword.cpp (143): F1013 Error Writing Output file. Maybe write-protected directory? (In NT, 2000 and XP these exist). Maybe unexisting output directory. BTW, "disk drive", not "disk driver" which means are different thing. -- Victor Porton ([EMAIL PROTECTED])
Re: [sword-devel] Question for Optimization / speed experts
BibleTime supports displaying different lexicons side by side, it offers only the keys which are available in all of the chosen lexicons. Some ideas for this: - You don't have to build the whole list at once. Build e.g. a list of 20 or 30 items, then calculate more as the user scrolls up/down. You might even calculate the list using an idle thread. - Personally, I would find a list of *all* keys more desirable (that is, list any key that is found in any of the chosen lexicons). I took a look at Bibleworks when visiting my brother (he is teaching OT) and noticed it has a feature where instead of having a window per dictionary, you have one window displaying the definitions in a list of selected dictionaries, like this: x Dictionaries ---* | Yaddayadda | | ... | | | | BDB | | ... | | | | Websters| | ... | | | * * It is a nice feature I would like to see in sword as well. - Your algorithm is O(m * n), which explains the runtime. The algorithm proposed by Glen looks good, especially as it runs in linear time (ie, looks at each entry exactly once). However, it can still be optimized: If an element is > the currently active item, you use that one to continue your search. Also, you can step the marker more often. I implemented the algorithm in perl (just for fun), but tried to not use perl-specific optimizations. I put some code into subroutines so the main algorithm reads better. --- 8< --- 8< --- # Calculate intersection of sets. 20030106 [EMAIL PROTECTED] use strict; use warnings; my @sets = ([ 0, 1, 2, 3, 7, 8, 9, 10, 11, 12, 13, 14, 15,], [ 0, 3, 7, 8,10, 11, 13, 14,16, ], [ 0, 1, 2, 3,5,7, 8,10, 11, 12, 13, 14,16, ], [ 2, 3, 4,6, 7, 8,10, 11, 12, 14,16, ], [ 0, 1, 2, 3, 7, 8, 9, 10, 11, 13, 14, 15,]); my $numSets = scalar @sets; # $numsets = 5; my @intersection = (); my $currentSet = 0; my @marker = (0, 0, 0, 0, 0); my $currentItem; # helper functions sub stepMarker { $marker[$currentSet]++; if ($marker[$currentSet] >= scalar @{$sets[$currentSet]}) { # we are at the end of the current set # => abort, there cannot be any more common items last MAIN; } } sub nextSet { $currentSet++; $currentSet %= $numSets; } sub getCurrentItem { return $sets[$currentSet]->[$marker[$currentSet]]; } # main intersection algorithm my $activeItem = getCurrentItem; my $isPresent = 1; MAIN: while (1) { stepMarker(); nextSet; while (($currentItem = getCurrentItem()) < $activeItem) { stepMarker(); } if ($currentItem > $activeItem) { $activeItem = $currentItem; $isPresent = 1; } else { $isPresent++; if ($isPresent == $numSets) { # item has been found present in all sets push @intersection, $activeItem; stepMarker(); $activeItem = getCurrentItem; $isPresent = 1; } } } print "Common items in the $numSets sets: @intersection\n"; --- 8< --- 8< --- If you want to combine all items present in any list, you could use Mergesort. It's only O(n * log n) for two lists. Greetings, Christian -- [EMAIL PROTECTED] - http://www.web42.com/crenz/ - http://www.web42.com/ "Few are those who can see with their own eyes and hear with their own hearts." -- Albert Einstein
Re: [sword-devel]
> [C++ Fatal Error] Sword.cpp (143): F1013 Error Writing Output file. > > I checked the Help file it tells me that I may not have enough space in > my hard driver. However, I have more than 16GB on my hard driver. > > What can I do to compile this? I think you need to create an empty directory called obj in the BibleCS directory, where it will write object files. --Chris
Re: [sword-devel]
On Mon, 6 Jan 2003, Pham, Khoi wrote: > Happy new Year! > > I downloaded the latest Windows version of SWORD 1.5.5. and tried to compile with >C++ Builder 6. I got the Swordlib.lib compiled, but got an error when compiling >sword.cpp. The message is: > > [C++ Fatal Error] Sword.cpp (143): F1013 Error Writing Output file. > > I checked the Help file it tells me that I may not have enough space in my hard >driver. However, I have more than 16GB on my hard driver. > > What can I do to compile this? It could be that you have too much free space. At times I have seen applications under various windows version go wild when there is plenty of disk space. The mst common was the 2GB barrier. I think you have to put the question to a group that knows the compiler to see if this might in fact be the case. Hugo. -- All email sent to me is bound to the rules described on my homepage. [EMAIL PROTECTED]http://hvdkooij.xs4all.nl/ Don't meddle in the affairs of sysadmins, for they are subtle and quick to anger.
RE: [Fwd: [sword-devel] FACTS]
> Both of these guys seem to think they get a copyright for being first to > put these PD works into electronic form. I'm not sure, but I believe this works like translations of pd works. The _translation_ is copyrightable. Of course, you have to include the copyright notice in your work.
Re: [sword-devel] Question for Optimization / speed experts
David, thank you for you help! It works great and is really fast! Because programmers are lazy using the STL is preferred :) Glen, I think the STL function works almost the same way as you suggestion. Good work! Christian, thank you for your suggestion. If it's still too slow for the users (although I don't think so) I'll use some of them. It's great to get so much help in a very short time! Joachim > C++ has a standard algorithm called set_intersection - found in the header > . Given two sorted sequences, it will output the items that are > found in both sequences. This function is very efficient, and with use of > it, I think your problem should become trivial. Documentation for this > algorithm can be found at http://www.sgi.com/tech/stl/set_intersection.html > > Of course, to use it, your sequences will need to have standards-conforming > iterators. If you need any help using the function, let me know. > > -David. > > - Original Message - > From: "Joachim Ansorg" <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Sent: Tuesday, January 07, 2003 12:46 AM > Subject: [sword-devel] Question for Optimization / speed experts > > > Hi! > > Some questiosn for optimizations experts :) > > > > I'm working on a piece of code in BibleTime which gives me headaches. > > BibleTime supports displaying different lexicons side by side, it offers > > only > > > the keys which are available in all of the chosen lexicons. > > > > The function which creates the list of entries which are available in > > all modules is ways too slow and too CPU consuming. > > I implemented it the following way: > > > > 1. Sort the modules by number of entries (from small to large) > > 2. Use the modules with the fewest entries and go through all of it's > > entries: > > 3. Is the entry in all other modules? Add the entry to a list of good > > entries it it is, otherwise continue with the next entry of the smallest > > list > > > and compare it with all other chosen modules. > > > > Assume the user selected BDB together with StrongsHebrew. Each of the > > modules > > > has around 1 entries. So the outer loop would have 1 iterations, > > the > > > inner loop would have another 1 iterations. So we get > > 10.000*10.000=100.000.000 = one hunred million iterations. This is ways > > too > > > slow and ways too much. > > This needs on my 1.2GHz Atlon with 512 MB Ram more then five seconds. > > > > If there are three, four or even five modules side by side we get much > > more > > > loops. > > > > Are the other ways to do such a task? Since the entry lists are sorted by > > the > > > alaphabet this would be a good point to start. But I don't know how to do > > it > > > best. > > > > I'd be really glad for help with this case! > > > > Thank you! > > Joachim > > -- > > Joachim Ansorg > > www.bibletime.info > > www.ansorgs.de -- Joachim Ansorg www.bibletime.info www.ansorgs.de
RE: [Fwd: [sword-devel] FACTS]
On Mon, 6 Jan 2003, Keith Ralston wrote: > > Both of these guys seem to think they get a copyright for being first to > > put these PD works into electronic form. > > I'm not sure, but I believe this works like translations of pd works. The > _translation_ is copyrightable. Of course, you have to include the > copyright notice in your work. Copyright is granted for creative works (for the purpose of encouraging the production of additional creative works). Translations are copyrighted because they are creative works, requiring lots of right-hemispheric cognitive work. Electronic editions of PD works are still PD. Changing the format like this does not require creativity, just good OCR or untiring fingers. Adding markup is likewise not creative if it approximates that of the original. Essentially the only way to make a PD work copyrightable by making an electronic edition is to make changes to it that are creative (i.e. to make a bad copy). In that situation, only the additions are copyrighted and the underlying text remains PD (and may be retrieved by rolling back alterations). This is similar to works in a collection. If you collect a bunch of PD texts and put them in a collection (in print, on CD, or whatever) you do get a copyright for the collection--after all it took some creativity to decide which texts should be included and how to order them. However, the texts themselves remain PD. For more info from the source, I would recommend reading through the US Copyright Office circular 14, regarding derivative works, which is available online at http://www.copyright.gov/circs/circ14.pdf . --Chris
Re: [Fwd: [sword-devel] FACTS]
Thus spake "Keith Ralston"> : >> Both of these guys seem to think they get a copyright for being first to >> put these PD works into electronic form. > > I'm not sure, but I believe this works like translations of pd works. The > _translation_ is copyrightable. Of course, you have to include the > copyright notice in your work. I don't think this is the case. There has been a lot of controversy about this, but generally speaking derived works are only considered copyrightable if they involve significant artistic input by the creator. Sometimes, this is taken to ridiculous lows: for example, sheet music has the type-setting copyrighted! However, the information itself cannot be copyrighted - if I were to take a copy of Chopin sheet music and play it, the fact that I got it from copyrighted typesetting would be irrelevant, since the information I used was public domain. I would thus own the rights to the performance. In this case, the information extracted from most modules is all in the public domain. The exceptions might be the strongs-numbered modules. The bottom line is that the OLB files are generally NOT creative works, but databases containing public domain works. (All this silliness is a perfect example of why copyright law needs to be completely revamped. Intellectual "property" is a ridiculous concept.) Patrick -- Patrick Narkinsky - Apprentice Pastor, Hope Community Church "Fairy tales are more than true: not because they tell us that dragons exist, but because they tell us that dragons can be beaten." - Chesterton
Re[2]: [Fwd: [sword-devel] FACTS]
It's pretty clear that minor alterations to scanned material do not constitute a derivative work and do not transfer ownership of the text away from the public to the scanner. Further, if someone believes they have created a new work of authorship, shouldn't they at least change the name of the text? Say Joe Smoe scans a commentary, then edits it so much that it qualifies for copyright -- shouldn't it now be "Shmoe's Commentary?" Monday, January 6, 2003, 5:50:14 PM, [EMAIL PROTECTED] wrote: > On Mon, 6 Jan 2003, Keith Ralston wrote: >> > Both of these guys seem to think they get a copyright for being first to >> > put these PD works into electronic form. >> >> I'm not sure, but I believe this works like translations of pd works. The >> _translation_ is copyrightable. Of course, you have to include the >> copyright notice in your work. > Copyright is granted for creative works (for the purpose of encouraging > the production of additional creative works). > Translations are copyrighted because they are creative works, requiring > lots of right-hemispheric cognitive work. > Electronic editions of PD works are still PD. Changing the format like > this does not require creativity, just good OCR or untiring fingers. > Adding markup is likewise not creative if it approximates that of the > original. Essentially the only way to make a PD work copyrightable by > making an electronic edition is to make changes to it that are creative > (i.e. to make a bad copy). In that situation, only the additions are > copyrighted and the underlying text remains PD (and may be retrieved by > rolling back alterations). > This is similar to works in a collection. If you collect a bunch of PD > texts and put them in a collection (in print, on CD, or whatever) you do > get a copyright for the collection--after all it took some creativity to > decide which texts should be included and how to order them. However, the > texts themselves remain PD. > For more info from the source, I would recommend reading through the US > Copyright Office circular 14, regarding derivative works, which is > available online at http://www.copyright.gov/circs/circ14.pdf . > --Chris - Brandon Staggs ___ Composed for [EMAIL PROTECTED] at 8:20:08 PM on Monday, January 06, 2003
[sword-devel] new list services
Hey guys, We've just successfully (I think) migrated sword-devel over from [EMAIL PROTECTED] to mailman. You can now modify your list settings yourself at the following url: http://www.crosswire.org/mailman/listinfo/sword-devel mailman generated unique passwords for your new accounts. You can request that your password be mailed to you somewhere at that url. Please let me know if you have any troubles. Praise God for an easy migration, -Troy. ___ sword-devel mailing list [EMAIL PROTECTED] http://www.crosswire.org/mailman/listinfo/sword-devel