View Single Post
  #1 (permalink)  
Old February 1st, 2002
veniamin's Avatar
veniamin veniamin is offline
Devotee
 
Join Date: December 17th, 2001
Posts: 24
veniamin is flying high
Lightbulb Gnutella AND Boolean Arithmetics

As i know when a client sends a query, the servers respond with files which match all of the words the search string has.

Example: Search String: gnutella pdf
Result: gnutellaprotocol0.4.pdf

This is not always good. If you wanted to find all the files containing the word gnutella and all the files containing the word pdf you should send two queries. One with the word gnutella and the other one with the word pdf. This kind of search could be done easily if Boolean Arithmetics supported by Gnutella Clients. This has nothing to do with the protocol.

The basic boolean arguments like AND, OR, NOT should be supported and maybe some extra. (For example, to make a search based on meta info). Also Case In/Sensitive searches could be implemented for more accurate results.

By using Boolean Arith. their is one more benefit. Almost every Gnutella Client has a small ListBox from where you can select the type of files you want to get as resuilts in a search. (Example: Images or Video, Sound etc.) What is really done in the background is that the client sends a query with your search string and when it receives the results, just filters them and you only see the file types you asked for. So your client gets, maybe, thousands results and finally shows you some hundreds of them. A more appropriate way to make such a search is to use (guess ) Boolean Arith. The User enter the keywords and when selects the file types he wants (let say Sound) the client adds some few keywords in the search string, in this example mp3 OR wav OR ogg NOT voc (which are too old, just an example of what you can do). By this way the traffic of Gnutella Network should decrease and earn more download speed and more accurate results.

Compatibility with older client (which do not support Booleans) it depends by which client sends the query . If an "old" client send a query with Boolean arguments inside a "new" client will understand them and answer with the appropriate way. But if a "new" client sends the query and an "old" client receive it, it will not understand the Boolean arguments (AND, OR, NOT) and try to find filenames containing these words. Probably zero! Or you maybe lucky and get some. The same thing happens if and "old" client send the query to also an "old" client.

Just a thought....
Reply With Quote