שילוב SQL & Keywords ממילות-חיפוש לטפסי-חיפוש מוטי פורת.

Slides:



Advertisements
Similar presentations
Completeness and Expressiveness. תזכורת למערכת ההוכחה של לוגיקה מסדר ראשון : אקסיומות 1. ) ) (( 2. )) ) (( )) ( ) ((( 3. ))) F( F( ( 4. ) v) ( ) v ((
Advertisements

1 Formal Specifications for Complex Systems (236368) Tutorial #4 Refinement in Z: data refinement; operations refinement; their combinations.
חיפוש בינה מלאכותית אבי רוזנפלד. סוגי חיפוש כלליים UNINFORMED SEARCH -- חיפושים לא מיודעים במרחי מצבים – BFS – DFS INFORMED SEARCH – חיפושים מיודעים –
©Silberschatz, Korth and Sudarshan4.1Database System Concepts סכימה לדוגמא.
טבלאות סמלים נכתב ע"י אלכס קוגן סמסטר חורף, תשס"ח.
לומדה לשימוש ב Google Scholar en&tab=ws.
עיבוד תמונות ואותות בעזרת מחשב
הדרכה בשימוש בקטלוג הספרייה מפגש מס ' 2 תשס " ח. מטרת ההדרכה  איתור חומר מתוך הסילבוס  איתור חומר בנושא מבוקש.
אקסס מבוא למערכות מידע.
מתמטיקה בדידה תרגול 3.
לא רק תחת הפנס: דרכים חדשניות לחיפוש ואחזור מידע איכותי Taly Sharon and Ariel Frank INFO April 2008.
רקורסיות נושאי השיעור פתרון משוואות רקורסיביות שיטת ההצבה
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
Bar Ilan Library System מערך הספריות והמידע של אוניברסיטת בר אילן הספרייה המרכזית ע”ש וורצוויילר. מדור ההדרכה חיפוש מתקדם.
רקורסיות נושאי השיעור מהן רקורסיות פתרון רקורסיות : שיטת ההצבה שיטת איטרציות שיטת המסטר 14 יוני יוני יוני 1514 יוני יוני יוני 1514.
ספר סקיצות ספר סקיצות קלאסי עם יכולות ממוחשבות. ספר סקיצות רגיל  יתרונות : נוח לנשיאה, מהיר ונוח לעבודה, עמיד.  חסרונות : הכול ידני, קשה לקבל דיוקים.
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
בהסתברות לפחות למצא בעיה במודל PAC עבור בהסתברות ε הפונקציה f טועה מודל ONLINE 1. אחרי כל טעות הפונקציה משתפרת 2. מספר הטעיות קטן.
ממשק המשתמש שימושיות או בעצם תכליפאניות?. ISO9241 Web usability is the extent to which a web site enables users, in a given context of use, to achieve.
שאילת שאלות שאלת חקר המפתח למנעול 1. שאילת שאלות – שאלת חקר מה ניתן לשנות ? :  בתנאים : טמפ ' או לחץ או הכלים, או הציוד  בחומרים : איכות או כמות או.
עיבוד תמונות ואותות במחשב אלכסנדר ברנגולץ דואר אלקטרוני : שיטות קידוד שיטות קידוד אורך מלת קוד ואנטרופיה אורך מלת קוד ואנטרופיה קידוד.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
Formal Specifications for Complex Systems (236368) Tutorial #6 appendix Statecharts vs. Raphsody 7 (theory vs. practice)
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
השוואה בין מערכות למסדי נתונים בשקפים אלו נשווה בין מסד הנתונים של רכבת ישראל למסד של רכבת גרמניה. בהרבה מקרים, המסד של מערכת הרכבות הישראלית לא יכול למצוא.
ערכים עצמיים בשיטות נומריות. משוואה אופינית X מציין וקטור עצמי מציינת ערך עצמי תואם לוקטור.
תיוג באינטרנט: הכוח עובר למשתמש ד"ר ג'ני ברונשטיין כנס Multi ידע בפברואר 2008.
מבני בקרה לולאות. שאלה #1 שאלה ב' – תכתוב תוכנה הכותבת את תפריט הבאה Type 1 to find the area of a circle Type 2 to find the circumference of a circle.
The Cyclic Multi-peg Tower of Hanoi מעגלי חד-כווני סבוכיות הפתרון בגרסאות עם יותר מ-3 עמודים.
Data Structures, CS, TAU, Perfect Hashing 1 Perfect Hashing בעיה : נתונה קבוצה S של n מפתחות מתחום U השוואה ל - Hash : * טבלה קבועה (Hash רגיל - דינאמי.
1 Data Structures, CS, TAU, Perfect Hashing בעיה: נתונה קבוצה S של n מפתחות מתחום U השוואה ל- Hash : * טבלה קבועה (Hash רגיל - דינאמי) * רוצים זמן קבוע.
עקרון ההכלה וההדחה.
תחשיב היחסים (הפרדיקטים)
Markov Decision Processes (MDP) תומר באום Based on ch. 14 in “Probabilistic Robotics” By Thrun et al. ב"הב"ה.
A. Frank File Organization Introduction to Pile File.
עצים בינאריים - תזכורת דרגת צומת שורש עלה צומת פנימי מרחק בין 2 צמתים
A. Frank File Organization Hardware Size Parameters.
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
חיפוש כתבי עת בקטלוג האוניברסיטה. חיפוש בסיסי לכתב עת אלקטרוני בקטלוג המאוחד לכתבי עת אלקטרוניים של האוניברסיטה, ניתן לבצע חיפוש עבור כתבי עת אלקטרוניים.
Safari On-line books. מה זה ספארי ספארי זו ספריה וירטואלית בנושא מחשבים היא כוללת יותר מ כותרים כל הספרים הם בטקסט מלא ניתן לחפש ספר בנושא מסוים.
Points on a perimeter (Convex Hull) קורס – מבוא לעבוד מקבילי מבצעים – אריאל פנדלר יאיר ברעם.
1 מבוא למדעי המחשב backtracking. 2 מוטיבציה בעיית n המלכות: נתון: לוח שחמט בגודל. המטרה: לסדר על הלוח n מלכות כך שאף אחת לא תאיים על השנייה. דוגמא: עבור.
בקרה תומר באום ב"הב"ה. סוגי בקרה חוג פתוח Open-loop control : אנו מכוונים את הרובוט למצב הבא שהוא אמור להיות בו לפי מודל מסוים, כמו שעשינו בקינמטיקה הפוכה.
WEB OF SCIENCE. WEB OF SCIENCE  Science Citation Index ExpandedTM  Social Sciences Citation Index®  Art & Humanities Citation Index®
Kashrut is a mitzvah in the Torah and has been passed on through generations. Kashrut is a chok. this means that we don’t know why we do it but we.
פיתוח מערכות מידע Class diagrams Aggregation, Composition and Generalization.
תכנות אסינכרוני, תקשורת ופיתוח אפליקציות ל- Windows 8.1 ואפליקציות ל- Windows Phone 8 Control (Part II)
Costs and Filters Dr. Avi Rosenfeld Department of Industrial Engineering Jerusalem College of Technology
File Systems Motivation SQL (Structured Query Language) MapReduce 1 תרגול 1.
Data Structures Hanoch Levi and Uri Zwick March 2011 Lecture 3 Dynamic Sets / Dictionaries Binary Search Trees.
2003B Q5 Suppliers(sid, sname, city) Select sid from suppliers where city=‘jerusalem’ or sname like ‘%Smith’ Select sid from suppliers where city=‘jerusalem’
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site:
Formal Specifications for Complex Systems (236368) Tutorial #1
מבוא למדעי המחשב סיבוכיות.
SQL בסיסי – הגדרה אינדוקטיבית
הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353)
עבודה עם נתונים באמצעות ADO.NET
ממשקים - interfaces איך לאפשר "הורשה מרובה".
מבוא ל - SQL מטרות הקורס: להבין מהו בסיס נתונים (או מסד נתונים)?
תיאוריית תכנון סכמות למסדי נתונים יחסיים חלק 4
Data Structures, CS, TAU, Splay Tree
Marina Kogan Sadetsky –
למה.
Based on the lecture notes of Prof. Sagiv
Compendex שימוש במאגר הביבליוגרפי
בסיסי נתונים ושפת SQL הרצאה #6
טבלאות מדומות (Views).
מן הספרות ערכה והביאה לדפוס: ד"ר אדווה מרגליות
מבוא למערכות מידע בשילוב ACCESS
Presentation transcript:

שילוב SQL & Keywords ממילות-חיפוש לטפסי-חיפוש מוטי פורת

From Keywords To Search Forms

מטרת - העל חיפוש במידע מובנה.

סכמה לדוגמא - DBLife persontopicpublication organization conference related_topic write_pub related_personco_author related_organization give_org_talk give_conf_talk give_tutorial serve_conf

חיפוש במידע מובנה למה לא לשפוך הכל לקובץ טקסט? כדי לנצל את המבניות בזמן השאילתא (תנאים על שדות). כדי לראות את המבניות בתוצאות (לראות ישויות).

עוד מטרה : 100% recall בגוגל מחפשים בשביל מטרה מסוימת, לכן מספיק לקבל מעט דפים טובים. אצלנו המשתמש שואל מגוון של שאלות על הנתונים. לכן רוצים למצוא את כל המופעים של מילות החיפוש. (אולי עם aggregate). אנו מחפשים מעל מסד נתונים נתון. כלומר, המטרה היא כמו של SQL, אך תוך נסיון להקל את הפעולה למשתמש הפשוט.

סיפור אישי מערכת מידע עם הרבה סוגי ישויות. מסכי חיפוש: חיפוש מהיר: איך? צרוב בקוד...

יתרונות בדרכים הקיימות למה מסך חיפוש (טופס)?  מציג כבר חלק מהפתרון.  מנצל את מבניות המידע. למה מילות חיפוש?  לפעמים יותר קל ומהיר.  יכול לכסות הרבה סוגי ישויות.

מוטיבציה מטרה 1: לנצל את היתרונות של מערכת טפסים. בעיה: במסד עם סכמה מורכבת (עשרות ישויות), מגוון הטפסים הוא עצום. מטרה 2: לאפשר שאילתות אד-הוק. המשתמש אולי לא יודע אילו טפסים וטבלאות קיימים.

הפתרון נחפש טפסים ע"י מילות מפתח! חיפוש מילים התוצאה: רשימת טפסים.

מערכות ומחקרים קיימים מילות חיפוש מעל מסד רלציוני מוצא את הטבלאות עם המילים הרצויות ויודע לעשות join. אבל... איך לשלוף רק את הטיסות שבהן היעד הוא ניו-יורק? age>18? aggregates? אפשרי, אם יודעים שמות שדות. רק טפסים (QBE – Query By Example) יש מעט טפסים במסד ולכן קל לבחור אחד מהם.

תכנון ביצוע שאילתא הצגת התוצאות

הבחנה טריוויאלית טופס הוא שאילתת SQL עם פרמטרים.

החלטה עיצובית לשמור במסד הנתונים את כל הטפסים האפשריים, כאילו "טופס" הוא ישות. מותר שיהיו הרבה טפסים אפשריים – הרי מחפשים ביניהם ע"י מילות חיפוש ולא ידנית. אבל איך "נמציא" טפסים?

שלבי התכנון : אילו טפסים להציע 1. נגדיר תת-שפה של SQL. 2. נבנה שאילתות-שלד – אחת לכל טבלה. 3. "שיפוץ" – הרחבת מגוון השאילתות. 4. בניית הטפסים עצמם ע"י כלי GUI אוטומטי. לטבלת ישות לטבלת קשר ידני, מעלה התלבטויות... אוטומטי פעם בחיים

" שיפוץ " ( הגדלת מגוון השאילתות ): התלבטות 1 עבור כל טבלה, האם להציע טופס אחד עם כל השדות, או מספר טפסים עם מעט שדות בכ"א?  אחד - יותר קל למצוא ברשימת הטפסים  אבל יותר קשה למילוי ע"י משתמש טיפש. בחירת המחברים: אחד.

" שיפוץ ": התלבטות 2 האם להציע טפסים עם מידע צרוב:  יתרון: הטופס ידורג גבוה אם מילות החיפוש יהיו בדיוק אלה.  חסרון: כמות אדירה של טפסים שצריך לשמור מראש ולתחזק. בחירת המחברים: לא.

" שיפוץ ": התלבטות 3 כמה joins בין קשרים להציע: דוגמא: במאגר DBLife יש 9 סוגי קשרים עם person. האם נציע טופס לחיפוש אנשים שגם העבירו הרצאה בכנס מסוים וגם עובדים בארגון מסוים? וגם... בחירת המחברים: join של עד שתי טבלאות קשר.  דוגמא נגדית:

" שיפוץ ": אפשרויות נוספות group & aggregate – על אילו שדות? union, intersection

תכנון ביצוע שאילתא הצגת התוצאות

כללי סמנטיקה (בחיפוש מילים): מימוש: Naïve-ANDNaïve-OR DI-AND DI-OR DIJ ANDOR

Naïve פשוט נחפש במאגר הטפסים את המילים שהמשתמש ביקש. הבעיה: טפסים הם שאילתות SQL; John אינו איבר-סכמה (שם של טבלה או עמודה).  והחלטנו לא לצרוב קבועים מהמידע בתוך השאילתות.

DI-OR צריך להוסיף לשאילתא את שמות הטבלאות כדי שנמצא טפסים שמאפשרים שליפה מהן. לכל מילת חיפוש נמצא את כל שמות הטבלאות שמכילות אותה בתוכנן.

DI-OR Rewrite the user’s query Q into R like so: For each word q i  Q: DataIndex(q i ) returns { : of tuples containing q i } Add q i and all the table-name to R. FormIndex(R, “any”) returns { form-id : of forms containing any word from R } e.g.: john papers vldb john person papers vldb topic publication conference

DI-AND Rewrite the user’s query Q into R like so: For each word q i  Q: DataIndex(q i ) returns { : of tuples containing q i } Add q i and all the table-name to R. FormIndex(R, “all”) returns { form-id : of forms containing all words of R } e.g.: ?

DI-AND Build from the user’s query Q a set of buckets {S i }: For each word q i  Q: DataIndex(q i ) returns { : of tuples containing q i } S i = {q i }  {the table-name} For each combination C=(w 1, …,w n )  S 1  …  S n FormIndex(C, “all”) returns { form-id : of forms containing all words of C } Return all the forms (that is, union of the above).

DI-AND לכל מילת חיפוש נמצא את כל שמות הטבלאות שמכילות אותה בתוכנן. נוסיף את שמות הטבלאות ל"דלי" של המילה. נבצע את כל השאילתות: בתוך כל אחת AND, אבל בין התוצאות שלהן – איחוד. vldb topic publication conference papersjohn person john papers vldb john papers topic john papers publication john papers conference person papers vldb person papers topic person papers publication person papers conference

תזכורת החיפוש מוצא את כל הטפסים שמכילים את המילים. לכן john papers vldb (והחיפוש הנגזר ממנו) יציע למשתמש לא רק את הטופס לחיפוש מאמרים של אנשים, אלא גם טפסים לחיפוש מאמרים של אנשים שהיו בכנס X, מאמרים של אנשים שעובדים בארגון Y וכו'.

DIJ – סילוק טפסים מתים אפשר לסלק מראש טפסים שבוודאות יתנו תוצאה ריקה. אם john מופיע בטבלה person עם pid=12345, אבל בטבלה person_organization אין אף שורה עם pid אלו, אז נפסול את כל הטפסים איתה. בעזרת Data Index תוספת בדיקה לאלגוריתם DI-AND.

DIJ For each word q i  Q: DataIndex(q i ) returns { : of tuples containing q i } S i = {q i }  {the table-name} For each combination C=(w 1, …,w n )  S 1  …  S n FormIndex(C, “all”) returns { form-id : of forms containing all words of C } Return all the forms For each table-name T (from the above set): For each table T2 (in the DB) that has a foreign-key to T: If T2 does not refer to any relevant tuple in T, mark T2 as forbidden. that don’t use forbidden tables. תזכורת: DI-AND

תכנון ביצוע שאילתא הצגת התוצאות

דירוג הטפסים מתייחסים לטפסים (כלומר, שאילתות ה-SQL שבהם) כטקסט, ומדרגים אותם בדרך מקובלת לדירוג טקסט. כל מערכת החיפוש – כולל הדירוג – היא ע"י מנוע Lucene. אין התייחסות לפרטי המידע (כגון כמה רשומות של John כל טופס אמור לשלוף).

קיבוץ הטפסים רשימת הטפסים היא בעצם עץ, שבו מקבצים את הטפסים שנגזרו מאותה שאילתת-שלד. התיאורים הוזנו ידנית בשלב התכנון.

תוצאות

הניסוי משימות נתונות שאילתות שנחקר מסוים כתב

תוצאות של נחקר אחד במאגר יש 196 טפסים = 14 טבלאות * 14 טפסים לכל טבלה

זמני העבודה של המשתמשים ממוצע על כל הקבוצה

תוצאות של קבוצת הנחקרים הדרגה של הטופס הנכון ברשימת הטפסים ושל הקבוצה עם הטופס הנכון, ברשימת הקבוצות.  במקרה הכי טוב, הכי גרוע והחציון

תוצאות עם יותר טפסים במאגר כנ"ל, אך במאגר עם 700 טפסים  שכוללים את כל ה-join-ים בין שלוש טבלאות קשר. כל שאילתא מחזירה בממוצע 27.8% מהטפסים במאגר – בדיוק אותו אחוז כמו עם המאגר הקודם.

שאלות ? יאללה הביתה