הרעיון הוא לבנות מודול שינהל מאגר נתונים קטן ויעיל של קישורים בין דפים. בכוונתנו לשלב את זה בדברים הבאים (אם יש למישהו רעיונות נוספים אז בבקשה הציעו אותם):
- מה חדש - הצגת רק דפים שמקושרים מדף מסויים (מה שמאפשר לכל אחד לעשות רשימה של דפים שמעניינים אותו ולראות רק שינויים בהם), או רק דפים שמקשרים אל דף מסויים (מה שמאפשר לכל אחד לראות רק דפים בהם הוא כתב).
- מחיקת דף - עד כה לא איפשרנו למשתמשים למחוק דפים בעצמם בגלל העדר ממשק משתמש מתאים. בעזרת מאגר נתוני הקישורים אפשר יהיה להציג למשתמש רשימה של דפים אשר מקושרים אל דף שהוא רוצה למחוק, וכך לאפשר לו לטפל בקישורים לפני המחיקה.
- שינוי שם לדף - כנ"ל.
- דפים מבוקשים - רשימה של קישורים הקיימים באתר אשר לא קיימים דפים עבורם, מסודרים בסדר יורד של כמות הקישורים.
- דפים יתומים - רשימה של דפים אשר אינם מקושרים מדפים אחרים באתר.
- חיפוש - מיון תוצאות החיפוש לפי כמות הקישורים אליהם (בדומה ל-Google).
- בדיקת כיסוי - הצגת כמות (ואחוז) הדפים באתר אשר מקושרים מדף מסויים (לדוגמא, גריינים בצ'יק צ'ק או דף פתיחה).
- הפניות לכאן - בדומה למה שקיים כיום, אבל עם מנגנון מהיר יותר המבוסס על מאגר נתוני הקישורים.
- המאגר יכלול רק קישורים פנימיים (כלומר, מלים מחוברות בקו תחתי) ולא קישורים חיצוניים (כלומר, URL).
- כמות קישורים נתמכת: אלפים; מקסימום 20000.
- מנגנון עדכון מאגר הנתונים יופעל כל פעם עם דף אחד שעבר שינוי (כלומר, לאחר חדש, הוספה, עריכה, מחיקה, או שינוי שם), באופן הבא:
- לאחר חדש, הוספה או עריכה יקרא מנגנון העדכון עם שני נתונים: שם הדף המתעדכן, ורשימה של קישורים שמופיעים בתוך הדף לאחר העדכון.
- לאחר מחיקה או שינוי שם יקרא מנגנון העדכון עם שני נתונים: שם הדף הקודם, ושם הדף החדש (ריק במקרה של מחיקת דף).
- מנגנון האחזור:
- האחזור צריך להתבצע במהירות (ואם אפשר ללא תלות במספר הקישורים שבמאגר) גם קדימה (קישורים מדף מסויים) וגם אחורה (קישורים אל דף מסויים).
- מנגנון האחזור יקרא עם שלושה נתונים:
- סוף - מספר שלם. חיובי אומר קדימה, שלילי אומר אחורה. המספר אומר את מספר הצעדים המבוקש. כלומר: 1 אומר כל הדפים שמקושרים בצעד אחד קדימה, 2 אומר כל הדפים שמקושרים לדפים שבצעד 1, וכו'. 1- אומר כל הדפים שמקושרים בצעד אחד אחורה. 0 אומר ללא צעד, כלומר פשוט הדפים עצמם.
- התחלה - אותו דבר כמו סוף, אבל מציין מאיזה שלב צריך להתחיל לכלול את הדפים בפלט. לדוגמא: התחלה=0 סוף=1 כולל את כל הדפים שבקלט ואת כל הדפים שמקושרים מהם. התחלה=1 סוף=1 כולל רק את הדפים שמקושרים מהדפים שבקלט. התחלה=1- סוף=1 כולל את כל הדפים שבקלט, ואת כל הדפים שמקושרים מהם או מקושרים אליהם. וכיו"ב. התחלה יכול להיות קטן או גדול מ-סוף.
- רשימה של קישורים מהם מתחילים את החיפוש. הרשימה תהיה ריקה אם מחפשים דפים יתומים (התחלה=1 סוף=1) או דפים מבוקשים (התחלה=1- סוף=1-). (דפים יתומים הם דפים שהוזנו אבל שאין אליהם קישורים משום דף אחר באתר; דפים מבוקשים הם דפים שלא הוזנו אף פעם, או דפים שהיו ונמחקו, ושיש קישורים אליהם.)
- מנגנון האחזור צריך להחזיר שתי רשימות:
- רשימה של קישורים ללא חזרות, ממויינת בסדר יורד לפי מספר הפעמים שכל קישור הופיע.
- רשימה מקבילה של מספר הפעמים שכל קישור הופיע.
- מאגר הנתונים: אפשר להשתמש עם כל מה שבא עם Perl 5.6, אבל לא לסמוך על התקנות נוספות (יש לנו נסיון רע עם זה).
אפשר לכתוב כאן או בדואל ל-roysharon@hotmail.com.