5

“Open Source” Μηχανές Αναζήτησης

Η αναζήτηση είναι μέρος της βασικής υποδομής του Διαδικτύου. Και προς το παρών είναι προβληματική

Γιατί είναι προβληματική; Για τον ίδιο λόγο που το ιδιόκτητο λογισμικό θα είναι πάντα προβληματικό: έλλειψη ελευθερίας, έλλειψη της κοινότητας, έλλειψη υπευθυνότητας, έλλειψη διαφάνειας.

Το παραπάνω κείμενο προέρχεται από την πρώτη σελίδα του έργου Grub. Και με βρίσκει απόλυτα σύμφωνο. Χωρίς την αναζήτηση το Διαδίκτυο είναι απλά σχεδόν άχρηστο. Η πληροφορία θα βρίσκεται εκεί, αλλά εάν δεν μπορείς να την προσπελάσεις σου είναι άχρηστη. Η αναζήτηση στο διαδίκτυο έχει αλλάξει πολύ τα τελευταία χρόνια και η παροχή αυτής έχει έρθει σχεδόν ολοκληρωτικά στα χέρια της Google.

Μπορεί το μοτο της Google να είναι "don't be evil" αλλά ας μην εθελοτυφλούμε. Η Google παρουσιάζει απίστευτο συγκεντρωτισμό ενώ τα τελευταία χρόνια γίνεται "evil" όλο και περισσότερο. Θα αναφέρω μόνο δύο παραδείγματα: To φιλτράρισμα των αποτελεσμάτων που με χαρά προσφέρει το Google China στην Κινεζική κυβέρνηση (και ποιος ξέρει τι γίνεται με τον "δυτικό" κόσμο) και το γεγονός ότι το Google αποθηκεύει τις αναζητήσεις και την IP μας για 9 μήνες (πρόσφατα ήταν 18-24 μήνες!).

Όμως η Google κάνει απλά την δουλειά της, όπως θα έκανε και οποιαδήποτε άλλη εταιρία στη θέση της. Το ζητούμενο είναι οι κοινότητες Ελεύθερου Λογισμικού και Ελευθερίας του Διαδικτύου να αναπτύξουν τις κοινοτικές υποδομές αναζήτησης που θα εξυπηρετούν τις ανάγκες μας στο μέλλον. Έτσι ώστε να μπορούμε να έχουμε ένα μέσο από την κοινότητα για την κοινότητα, που θα έχει διαφανή λειτουργία και θα είναι ελεύθερο.

Υπάρχουν ήδη κάποιες προσπάθειες προς αυτή την κατεύθυνση. Αφιέρωσα χρόνο σε δύο: το Yacy και το Grub / Wikia Search

Το Yacy είναι μία μηχανή αναζήτησης με την λογική P2P. Οι χρήστες μπορούν να τρέχουν το λογισμικού που θα κάνει το crawling (δηλαδή θα επισκέπτονται σελίδες και θα τις αποθηκεύουν) και στην συνέχεια το indexing, στον υπολογιστή τους. Επίσης ο κάθε υπολογιστής του δικτύου παρέχει, μέσω ενός web interface, την δυνατότητα αναζήτησης. Σε κάθε αναζήτηση επιστρέφονται αποτελέσματα από το indexing που έχει γίνει τοπικά όπως και από το indexing που έχουν κάνει άλλοι κόμβοι του δικτύου αυτού.

Εξαιτίας της P2P φύσης του, το Yacy είναι λίγο αργό στην επιστροφή των αποτελεσμάτων, γιατί πρέπει να επικοινωνήσει με άλλους κόμβους. Ωστοσό τα αποτελέσματα του είναι σχετικά καλά. Το πρόβλημα του Yacy είναι ότι δεν υποστηρίζει ελληνικά (και πιθανώς όλους τους non-latin χαρακτήρες) στην αναζήτησή του! Παρόλες τις ερωτήσεις τις ερωτήσεις που κάναμε στα forums του yacy, δεν πήραμε καν απάντηση γιατί συμβαίνει αυτό. Οπότε το yacy, που φαινόταν ενδιαφέρον και με δυνατό interface, είναι απλά άχρηστο. :( (Update! Στο forum post που γκρινιάζαμε για το support, υπάρχουν πλέον απαντήσεις ότι το Yacy δουλεύει και με ελληνικά και με όλες τις γλώσσες! ;) )

Δοκιμάστε το Yacy!

Το δεύτερο έργο που κοίταξα είναι το Grub / Wikia Search. Στην πραγματικότητα είναι δύο έργα. Το Grub είναι ένας κατανεμημένος crawler, ενώ το Wikia Search είναι μία μηχανή αναζήτησης με δυνατότητες παρέμβασης του χρήστη που χρησιμοποιεί δεδομένα από το Grub.

Η λογική του Grub είναι απλή: Θα κατανείμουμε το crawling σε πολλούς χρήστες και θα συγκεντρώνουμε τα αποτελέσματα. Κάθε χρήστης πρέπει να τρέχει έναν client που συνδέεται με τον dispatch server του Grub και παίρνει ένα πακέτο σελίδων που πρέπει να επισκευτεί. Στη συνέχεια επισκέπτεται τις σελίδες και τις αποθηκεύει με ένα ειδικό format σε ένα αρχείο. Το τελικό αρχείο αποστέλλεται πάλι πίσω στο Grub. Υπενθυμίζω ότι το Grub δεν κάνει indexing και επομένως δεν είναι μηχανή αναζήτησης. Προσφέρει όμως απλόχερα τα αποτελέσματα του crawling σε όποιον θέλει να κάνει!

Εδώ έρχεται το Wikia Search. Το wikia search, θέλει να κάνει τον χρήστη μέρος της αναζήτησης, προσφέροντας την δυνατότητα σε αυτόν να επεξεργαστεί, να διαγράψει, να σχολιάσει και "προωθήσει" αποτελέσματα. Προσπαθεί τόσο πολύ να σε κάνει μέρος του site που μπορείς να μεταφράσεις on-the-fly το site τους στην γλώσσα σου! (Μερικά από τα ελληνικά είναι δικά μου ;) Βοηθήστε να το τελειώσουμε!)

Επίσης στην κατηγορία fun υπάρχουν αρκετά ενδιαφέροντα πράγματα που μπορείς να κάνεις με τα αποτελέσματα μιας αναζήτησης, όπως το Faviconnery (που συγκεντώνει τα fav icons από όλες τις σελίδες των αποτελεσμάτων). Επίσης μπορείτε να δείτε ζωντανά από ποιούς γίνεται οι τελευταίες προσθήκες στην μηχανή. Μάλιστα, η wikia προσφέρει υπό την άδεια CC-BY-SA 3.0 το index που χρησιμοποιεί για την αναζήτηση!

Δοκιμάστε το Wikia Search!

Τα αποτελέσματα και τον δύο μηχανών δεν μπορούν ακόμη να συγκριθούν με τα πολύ καλά αποτελέσματα άλλων μηχανών, όπως η Google. Είναι όμως προσπάθειες προς την σωστή κατεύθυνση της ελευθερίας και της διαφάνειας και είναι και έργα ελεύθερου λογισμικού. Οπότε είναι απλά θέμα χρόνου το πότε θα κερδίσουμε!

Ήδη δουλεύω σε έναν python based grub client και τώρα που το Yacy υποστηρίζει ελληνικά θα πρέπει να στήσω ξανά ένα node! :)

  1. tumbler says:

    your wrong. you dont know better than google , I doubt that you are qualified to even discuss better than google scenarios , if it wasnt for google youd be a lot less than what you are today. google employs people like Bill joy for example , that is , the father of java , the father of solaris , father of simple things too like utf8. Google employs thousands of people like bill joy , and if you really think about it , they know better than you. They probably laugh at posts like these. If you have an idea , throw it at them – dont start your post with SEARCH ENGINES ARE PROBLEMATIC. Also have some faith in Google because their privacy protection is of the best in the world today. Want problematic services with privacy issues? Try facebook which is run by a 21 year old :)

    And please dont be insulted but if you look at research papers , something like yacy has been done time and time again in research and it failed.

    Bye now :)

  2. seadog says:

    @tumbler

    Προτιμώ η συζήτηση σε ένα blog post στα ελληνικά να γίνεται στα ελληνικά.

    Προφανώς και η Google είναι εργοδότης πολλών και σοβαρών ανθρώπων. Είναι μάλιστα και εργοδότης του Van Rossum, πατέρα της python, που εκτιμώ πολύ από το έργο του. Επίσης έχει ρίξει πολλά λεφτά και προγραμματιστές σε διάφορα έργα ΕΛΛΑΚ. Αλλά αυτό δεν βλέπω τι σχέση έχει με το εάν η μηχανή αναζήτησης είναι διαφανής, ελεύθερη και βασισμένη στην κοινότητα…

    Δεν έθιξα τους τεχνολογικούς όρους, αλλά τους όρους ελευθερίας των μηχανών αναζήτησης και σε αυτό έχω κάθε δικαίωμα και είμαι αρκετά qualified ως χρήστης αυτών, να τις σχολιάζω και να τις θεωρώ προβληματικές.

    Και φυσικά το Facebook είναι μία απαράδεκτη privacy τρύπα η οποία όμως έχει τους λόγους ύπαρξής της και δεν είναι έτσι απλά επειδή το 21 χρόνο είναι αφελές. Αλλά και πάλι το ότι υπάρχουν χειρότερα παραδείγματα από το Google δεν σημαίνει ότι το Google είναι εντάξει. Το ζήτημα με το Google είναι ότι παρέχει την αναζήτηση του Διαδικτύου και πιστεύω ότι σε αυτό δεν μπορούμε να είμαστε καθόλου ελαστικοί, ούτε να έχουμε απλά ‘πίστη’.

    Όπως και να έχει, πιστεύω ότι είναι σαφές ότι επιμένω στην ελευθερία και όχι στην τεχνολογία στο συγκεκριμένο post και πιστεύω ότι project σαν το yacy και το wikia search έχουν καλό ‘κάρμα’.

    Και με την ευκαιρία μην πεις σε κανέναν που έχει γράψει utf parser ότι το utf είναι απλό πράγμα γιατί θα σε πάρει στο κυνήγι! ;)

    Ευχαριστώ για το σχόλιο,
    Γιώργος

  3. Markos says:

    Ενδιαφέρον,

    κατα καιρους εχω δοκιμασει διαφορες μηχανες αναζητησης απο το http://en.wikipedia.org/wiki/List_of_search_engines

    Πολλες απο αυτες εχουν χαρακτηριστικα που δεν συναντας στις γνωστες μηχανες και ναι, η χρηση τους ειναι πιο ευχαριστη!

    Το θεμα ομως που θιγεις (ελευθερια/διαφανεια) ειναι πολυ σημαντικο και δεν εχει δεχτει τη σημασια που θα επρεπε..

  4. Petros says:

    Πολύ ενδιαφέρον το θέμα αλλά και η κάλυψή του Γιώργο! Είναι ένα ακόμη θέμα όπου η συμμετοχικότητα και η συνεισφορά (p2p) μπορεί να δώσει λύσεις σε θέματα σχετικά με την ασφάλεια, την αντικειμενικότητα αλλά και το scaling …

    • seadog says:

      Ευχαριστώ για το σχόλιο Πέτρο. Θα είχε ενδιαφέρον να αφιερώναμε κάποιο μηχάνημα στο Πολυτεχνείο για να το συνδέσουμε με το yacy δίκτυο. Θα μπορούσαμε να κάνουμε index ένα κομμάτι (εάν δεν μπορούμε όλο ?) του ελληνικού web βελτιώνοντας δραματικά τα αποτελέσματα για τους ελληνόφωνους. Τι λες;