להורדה | ספריא מסונן - מסד נתונים של sqlite
-
@sivan22 כתב בלהורדה | ספריא מסונן - מסד נתונים של sqlite:
בהמשך לפרוייקט של סינון ספריא, אני מעלה כאן קישור למסד הנתונים של ספריא, מסונן, רק עם ספרים בעברית, בפורמט sqlite.
ניתן להוריד קורא קבצי sqlite מכאן.
להלן מידע כללי על תוכן מסד הנתונים:
מספר הספרים הכולל: 5669
מספר קטעי הטקסט: 2,936,539
מספר הקישורים בין קטעי טקסט: 2,655,954הטבלאות
- books - הספרים, שמם באנגלית ובעברית, ומידע נוסף.
- texts - הטסקטים, עם מזהה הספר המקושר לטבלת הספרים, וכן מספור הקטע השורה הדף וכדומה.
- links - הקישורים בין הטסקטים השונים, מזהה טקסט למזהה טקסט, וכן סוג הקשרים.
- nodes - מבנה הספר לספרים מורכבים (ראה להלן). וכן מבנים נוספים לספרים שיש להם חלוקה נוספת (כגון חומש לפרשיות, ירושלמי לדפי וילנא ודפי ונציה
- searchings - אינדקס עבור חיפוש לפי מילים.
מבנה הספרים בספריא
חשוב להבין את מבנה הספרים בספריא:
- ספרים פשוטים - מחולקים לכמה רמות של חלוקה, לדוגמה שס בבלי מחולק לפי עמוד, שורה. רשי על החומש מחולק לפי פרק, פסוק, פירוש. את שמות הקטעים ["פרק", "פסוק"] ניתן למצוא בטבלה books. ואת מספור הקטעים ניתן למצוא בטבלה texts, כאשר level_1 הוא החלוקה הנמוכה ביותר (שורה בגמרא, פירוש ברש"י).
- ספרים מורכבים - מחולקים לחלקים שונים בספר (הקדמה, על אורח חיים, על חושן משפט, נספח) כאשר כל חלק בספר מחולק לרמות שונות של חלוקה כמו ספר פשוט (לדוגמה ההקדמה מחולקת לפסקאות, על אורח חיים מחולק לסימן, סעיף, סעיף קטן).
במסד הנתונים מבנה הספר המורכב נמצא בטבלה nodes. לכל טקסט בטבלה texts ששייך לספר מורכב קיים parentNode שהוא מזהה שמשייך אותו לרשומה בטבלה node בה נמצא שם החלק בספר, ולאותה רשומה ישנו גם כן מאפיין parentNode שמשייך אותו לרמה מעליו, עד לרמה הגבוהה ביותר שם parentNode שווה לאפס.
כמו כן גם לספרים פשוטים קיימים מבנים נוספים של חלוקה, והם מופיעים בטבלה nodes.
ישר כוח גדול
-
@sivan22 כתב בלהורדה | ספריא מסונן - מסד נתונים של sqlite:
בהמשך לפרוייקט של סינון ספריא, אני מעלה כאן קישור למסד הנתונים של ספריא, מסונן, רק עם ספרים בעברית, בפורמט sqlite.
ניתן להוריד קורא קבצי sqlite מכאן.
להלן מידע כללי על תוכן מסד הנתונים:
מספר הספרים הכולל: 5669
מספר קטעי הטקסט: 2,936,539
מספר הקישורים בין קטעי טקסט: 2,655,954הטבלאות
- books - הספרים, שמם באנגלית ובעברית, ומידע נוסף.
- texts - הטסקטים, עם מזהה הספר המקושר לטבלת הספרים, וכן מספור הקטע השורה הדף וכדומה.
- links - הקישורים בין הטסקטים השונים, מזהה טקסט למזהה טקסט, וכן סוג הקשרים.
- nodes - מבנה הספר לספרים מורכבים (ראה להלן). וכן מבנים נוספים לספרים שיש להם חלוקה נוספת (כגון חומש לפרשיות, ירושלמי לדפי וילנא ודפי ונציה
- searchings - אינדקס עבור חיפוש לפי מילים.
מבנה הספרים בספריא
חשוב להבין את מבנה הספרים בספריא:
- ספרים פשוטים - מחולקים לכמה רמות של חלוקה, לדוגמה שס בבלי מחולק לפי עמוד, שורה. רשי על החומש מחולק לפי פרק, פסוק, פירוש. את שמות הקטעים ["פרק", "פסוק"] ניתן למצוא בטבלה books. ואת מספור הקטעים ניתן למצוא בטבלה texts, כאשר level_1 הוא החלוקה הנמוכה ביותר (שורה בגמרא, פירוש ברש"י).
- ספרים מורכבים - מחולקים לחלקים שונים בספר (הקדמה, על אורח חיים, על חושן משפט, נספח) כאשר כל חלק בספר מחולק לרמות שונות של חלוקה כמו ספר פשוט (לדוגמה ההקדמה מחולקת לפסקאות, על אורח חיים מחולק לסימן, סעיף, סעיף קטן).
במסד הנתונים מבנה הספר המורכב נמצא בטבלה nodes. לכל טקסט בטבלה texts ששייך לספר מורכב קיים parentNode שהוא מזהה שמשייך אותו לרשומה בטבלה node בה נמצא שם החלק בספר, ולאותה רשומה ישנו גם כן מאפיין parentNode שמשייך אותו לרמה מעליו, עד לרמה הגבוהה ביותר שם parentNode שווה לאפס.
כמו כן גם לספרים פשוטים קיימים מבנים נוספים של חלוקה, והם מופיעים בטבלה nodes.
למי שיש פרוייקט השו"ת [29], יש ספרים שקיימים בספריא ולא בשו"ת?
-
-
@יעקב11 כתב בלהורדה | ספריא מסונן - מסד נתונים של sqlite:
@לא-מתייאש לא נעים לי לבקש הדרכה, אבל ממש חשוב לי השימוש בספריא, תוכל לזרוק לי כמה מילים, לשימוש בטאבלט?
צריך שמישהו יקים אפליקצייה מבוססת על המאגר נתונים הזה (אוליי אני מי יודע חחח, קודם כל שאתחיל על המחשבים ואח"כ נראה), אבל אין כ"כ הדרכה לזה, זה לא PDF שניתן לקראו אותו דרך אפליקצייה
-
@לא-מתייאש כתב בלהורדה | ספריא מסונן - מסד נתונים של sqlite:
@יעקב11 כתב בלהורדה | ספריא מסונן - מסד נתונים של sqlite:
@sivan22 סליחה על השאלה, אבל זה יכול לבא לידי שימוש באנדרואיד?
וודאי, SQLITE זה הבסיס באנדרואיד
האמת שבדקתי את זה ולמעשה הם לא משתמשים כיום בכלל בsqlite באנדרואיד, אלא בקבצי json כאלו: Genesis.zip
לכל ספר יש אינדקס, וגם כל הלינקים בתוך המקום שלהם בספר!
וזה הקובץ שהוא האינדקס הכללי של הספרים: toc.json
וזה בערך המבנה של הספרייה:
זאת אומרת בסוף הם משתמשים בnoSQL כי הם בנויים לקבל מהשרת את התוצאות, רק שיש גם אפשרות להוריד את הספריה.
-
@sivan22 כתב בלהורדה | ספריא מסונן - מסד נתונים של sqlite:
@לא-מתייאש כתב בלהורדה | ספריא מסונן - מסד נתונים של sqlite:
@יעקב11 כתב בלהורדה | ספריא מסונן - מסד נתונים של sqlite:
@sivan22 סליחה על השאלה, אבל זה יכול לבא לידי שימוש באנדרואיד?
וודאי, SQLITE זה הבסיס באנדרואיד
האמת שבדקתי את זה ולמעשה הם לא משתמשים כיום בכלל בsqlite באנדרואיד, אלא בקבצי json כאלו: Genesis.zip
לכל ספר יש אינדקס, וגם כל הלינקים בתוך המקום שלהם בספר!
וזה הקובץ שהוא האינדקס הכללי של הספרים: toc.json
וזה בערך המבנה של הספרייה:
זאת אומרת בסוף הם משתמשים בnoSQL כי הם בנויים לקבל מהשרת את התוצאות, רק שיש גם אפשרות להוריד את הספריה.
תודה רבה על העבודה המדימה שלך, לא התכוונתי על מה שהם עושים כיום, אלא שבדרך כלל אפליקציות אנדרואיד זה SQLITE, זה בכלל לא NOSQL או קבצי JSON.
-
@תודה-לבורא-עולם אין פה משהו מעשי כרגע
תבדוק את זה: https://mitmachim.top/topic/59148/להורדה-תוסף-חדש-לתורת-אמת-מאגר-הספרים-של-ספריא-ודיקטה -
@אהרן כתב בלהורדה | ספריא מסונן - מסד נתונים של sqlite:
למי שיש פרוייקט השו"ת [29], יש ספרים שקיימים בספריא ולא בשו"ת?
כן!
כרגע אני לא זוכר את כולם, אבל:- חלק מפרשני מדרש רבה.
- כל ספרי הקבלה [חוץ מזוהר הקדוש ופירוש הסולם].
- סידורי תפילה ומחזורים סליחות הגדה של פסח, ופרשניה (כן סידור פשוט - אין בפרוייקט השו"ת).
וישנם עוד כמה ספרים, ואפילו חשובים, אם זה חשוב לך תעדכן אותי, ואני אבדוק.
-
-
@DAVID-3 כתב בלהורדה | ספריא מסונן - מסד נתונים של sqlite:
@sivan22 כתב בלהורדה | ספריא מסונן - מסד נתונים של sqlite:
וזה הקובץ שהוא האינדקס הכללי של הספרים: toc.json
איך אני יכול לחלץ מתוך הקובץ רק את שמות הספרים בעברית ובאנגלית?
(אני רוצה ליצור מפתחות וערכים ("עברית": "אנגלית") של כל הספרים במאגר)זה אפשרי, אבל לדעתי עדיף שתנסה קודם להשתמש בapi לפי הפירוט כאן: https://developers.sefaria.org/reference/get_api-index
למעשה תצטרך קוד מיוחד לזה, לדעתי עדיף להשתמש בnode.j. ממש ממליץ לצרף חלק מהjson לבינה מלאכותית, עדיף קלוד, ולבקש קוד מתאים.
-
@sivan22 כבר ביקשתי מצ'אט GPT והוא נתן לי קוד שלא הועיל
זה הקוד
import json
import osנתיב הקובץ הקיים שסיפקת
input_file_path = r"C:\Users\DAVID\Downloads\sefaria_books.json"
יצירת נתיב לתיקיית ההורדות ולשם הקובץ החדש
downloads_folder = os.path.join(os.path.expanduser("~"), "Downloads")
output_file_path = os.path.join(downloads_folder, "SEFARIA TTTT.json")try:
# קריאת נתונים מהקובץ הקיים
with open(input_file_path, 'r', encoding='utf-8') as input_file:
data = json.load(input_file)# עיבוד והדפסת הנתונים print("מוציא נתונים מהקובץ:") for hebrew, english in data.items(): print(f"{hebrew}: {english}") # שמירת הנתונים לקובץ חדש with open(output_file_path, 'w', encoding='utf-8') as output_file: json.dump(data, output_file, ensure_ascii=False, indent=4) print(f"הנתונים נשמרו בהצלחה בקובץ החדש: {output_file_path}")
except FileNotFoundError:
print(f"שגיאה: הקובץ המקורי לא נמצא בנתיב: {input_file_path}")
except json.JSONDecodeError:
print("שגיאה: הקובץ המקורי אינו בפורמט JSON תקין.")
except Exception as e:
print(f"שגיאה לא צפויה: {e}")
הרצתי את זה בפייתון
וזה התוצאה
^
IndentationError: unindent does not match any outer indentation level# שמירת הנתונים לקובץ חדש with open(output_file_path, 'w', encoding='utf-8') as output_file:
File "<python-input-12>", line 1
with open(output_file_path, 'w', encoding='utf-8') as output_file:
IndentationError: unexpected indentjson.dump(data, output_file, ensure_ascii=False, indent=4)
File "<python-input-13>", line 1
json.dump(data, output_file, ensure_ascii=False, indent=4)
IndentationError: unexpected indentprint(f"הנתונים נשמרו בהצלחה בקובץ החדש: {output_file_path}")
File "<python-input-15>", line 1
print(f"הנתונים נשמרו בהצלחה בקובץ החדש: {output_file_path}")
IndentationError: unexpected indentexcept FileNotFoundError:
File "<python-input-16>", line 1
except FileNotFoundError:
^^^^^^
SyntaxError: invalid syntax
print(f"שגיאה: הקובץ המקורי לא נמצא בנתיב: {input_file_path}")
File "<python-input-17>", line 1
print(f"שגיאה: הקובץ המקורי לא נמצא בנתיב: {input_file_path}")
IndentationError: unexpected indent
except json.JSONDecodeError:
File "<python-input-18>", line 1
except json.JSONDecodeError:
^^^^^^
SyntaxError: invalid syntax
print("שגיאה: הקובץ המקורי אינו בפורמט JSON תקין.")
File "<python-input-19>", line 1
print("שגיאה: הקובץ המקורי אינו בפורמט JSON תקין.")
IndentationError: unexpected indent
except Exception as e:
File "<python-input-20>", line 1
except Exception as e:
^^^^^^
SyntaxError: invalid syntax
print(f"שגיאה לא צפויה: {e}")
File "<python-input-21>", line 1
print(f"שגיאה לא צפויה: {e}")
IndentationError: unexpected indent