ספרים וכתבי עת נושאים מזהים שנראים כמו בני דודים ומתנהגים כמו קרובים עם הרגלים שונים. שניהם מסתיימים בתו שמחושב מהתווים שלפניו, ולכן את שניהם אפשר לבדוק ללא רשת; המזהה של הספר עבר שני אורכים במהלך חייו, והמזהה של כתב העת שמר על צורה קצרה וקבועה.
החלק המעניין אינו החשבון, שפועל לפי אותה תבנית של סכום משוקלל שנראית במקומות אחרים, אלא הטיפול בקלט. דפוס, קטלוגים ומערכות ספרייה מסמנים את המספרים האלה באופן בלתי עקבי, והאות שיכולה להופיע במיקום האחרון שוברת כל שגרה שהניחה ספרות בלבד.
כיצד מחושבות ספרות הביקורת של ISBN ו-ISSN?
המנגנון מוכר. כל תו בגוף מקבל משקל שתלוי במיקומו, הערכים המשוקללים מחוברים, והסכום הכולל מצומצם לתו סוגר אחד. קוד עקבי מבחינה פנימית הוא כזה שהתו הסוגר שלו מתאים למה שהגוף מפיק.
מה שנבדל מחשבון הברקודים הוא האלפבית. הגוף של מספר ספר יכול להיות כולו ספרות, אבל התו הסוגר שלו אינו מוגבל לספרות מאפס עד תשע; אחת ממשפחות המזהים האלה שומרת אות למקרה שבו החשבון הפשוט מותיר ערך שספרה אינה יכולה לבטא. התו הבודד הזה מספיק כדי לשבור מימוש שמעביר את הערכים האלה דרך שדה של מספרים שלמים.
את אף אחת מהמשפחות אין לאמת רק בקצה של תהליך. המזהים האלה מועתקים ביד מהגב של דף השער, מודבקים מתוך גיליונות של ספקים ומוקלדים לתוך ממשקי ספרייה, וכל אחד מהשלבים האלה הוא מקום שבו ספרה יכולה להשתנות בלי שהצורה תשתנה.
הערכים המוזכרים במאמר הזה מתוארים לפי הכללים שלהם ולא מצוטטים. שום מספר ספר או כתב עת אמיתי אינו משוחזר, וכלל שמתואר אינו אומר דבר על קיומו של פרסום מסוים.
שתי שיטות המספור של ספרים וההבדל ביניהן
המזהה של הספר עבר שינוי דורי. הצורה הישנה היא הקצרה; הצורה הנוכחית ארוכה יותר, והמיקומים המובילים הנוספים מפנים מקום לקטלוג גדול בהרבה כעת, משהוצאה לאור גדלה.
| תכונה | הצורה הקצרה של מספר הספר | הצורה הארוכה של מספר הספר |
|---|---|---|
| אורך הגוף | פחות מיקומים | יותר מיקומים |
| מיקומים מובילים | נושא קבוצה רשומה קטנה יותר | נפתח בקידומת קבועה |
| תו הביקורת | תו סוגר אחד | תו סוגר אחד |
| היחס ביניהן | עדיין נפוצה במלאי ישן | תקנית בפרסומים חדשים |
שתי הצורות עדיין במחזור. חנות שמוכרת מלאי מיד שנייה, ספרייה שמחזיקה רכישות ישנות ויבואן שמקבל משטחים מעורבים—כולם יפגשו את הצורה הקצרה, ושגרה שמזהה רק את האורך הנוכחי תדחה חומר תקין לחלוטין.
המזהה של כתב העת הוא משפחה נפרדת עם צורה קצרה וקבועה משלה. הוא אינו מספר ספר שהוסרו ממנו מיקומים; החשבון שלו והשקלול שלו שייכים לסכמת כתבי העת, והתייחסות לאחד כאל קיצוץ של האחר מייצרת תווי ביקורת שלעולם אינם מתאימים.
כשהתו הסוגר הוא האות X
האות מופיעה בגלל המודולוס. כשמחלקים במספר גדול מעשר, השארית יכולה לנחות על ערך ששום ספרה בודדת אינה יכולה לשאת. במקום לוותר על השארית הזו, או להזיזה לתוך הטווח החוקי ולאבד את ההבחנה, הסכמה שומרת עבורה אות.
שלוש מסקנות מעשיות נובעות מכך. מאמת חייב לקבל את האות במיקום האחרון ורק במיקום האחרון, כך שגוף שמכיל אות נכשל בסט התווים בעוד אות סוגרת היא חוקית. כל שלב פירוק שמניח ספרות צריך להיות מרופף עבור השדה האחד הזה. ולאות יש רישיות אחת בלבד, משום שהכלל קובע את צורתה; איחוד הרישיות הוא עדיין האינסטינקט הנכון, אבל המיפוי חייב לנחות על הצורה שהסכמה מגדירה.
האחסון הוא הכשל השקט כאן. עמודה של מספרים שלמים אינה יכולה להחזיק אות, ושגרה שמסירה תווים שאינם ספרות לפני הבדיקה תמחק את התו שהיא אמורה לאמת. החזקת מזהים בשדה טקסט מלכתחילה מונעת מעבר מסורבל בהמשך.
מדוע יש להסיר מקפים לפני הבדיקה?
המספרים האלה מודפסים בקבוצות, והמקום שבו נופלים המקפים הוא עניין של תצוגה שמשתנה בין הוצאות לאור, בין מערכות ובין מדינות. הקיבוץ אינו חלק מהמזהה, והוא אינו זהה בכל מקום עבור אותו מספר.
מכיוון שהקבוצות זזות, כל אימות שצורך את המחרוזת כפי שהודפסה ייכשל באופן בלתי צפוי. הכלל הוא לנרמל תחילה: להסיר את המפרידים, להסיר רווחים מסביב, לאחד את הרישיות, ורק אחר כך לבדוק את סט התווים, את האורך ואת התו הסוגר.
זו גם הסיבה שמאמת צריך לשמור את המחרוזת המקורית לצד המנורמלת. המקורית היא מה שהמשתמש קרא מהדף, והיא מה שהוא ישווה מולו כשמתברר שהקלט שגוי. התהליך המתואר לאימות מספרים כללי אומר את אותו דבר: הפרדה בין תצוגה לתוכן באה לפני כל חשבון.
מדוע כותר שמספרו הוחלף צריך להיבדק בשני המספרים?
משום שפרסום שחוצה את החלפת השיטות יכול לשאת שני מזהים כדין, ושניהם עשויים עוד להיות בשימוש במקום כלשהו בשרשרת. רשומת קטלוג שנוצרה לפני השינוי עשויה להחזיק את הצורה הקצרה, בעוד שהרישום הנוכחי של ספק מחזיק את הארוכה, ומערכת שמבינה רק אחד מהם תדווח על אי-התאמה שלא קיימת.
הטיפול בכך הוא בעיית התאמה ולא בעיה חשבונית. בדיקה נכונה של שתי הצורות אומרת שכל מחרוזת עקבית מבחינה פנימית; היא אינה אומרת ששתי המחרוזות מתארות את אותו כותר. כדי לקבוע זאת נדרש מיפוי שמתוחזק בידי מי שהקצה את המספרים, והמצאת המיפוי על ידי קיצוץ מיקומים היא דרך בטוחה למזג שני כותרים שאינם קשורים.
הדפוס מכליל את עצמו לכל מזהה שהונפק מחדש. כשסכמה משנה את אורכה, את כלל הביקורת שלה או את ההקצאה שלה, יש לצפות לתקופה שבה שני הדורות חיים בעת ובעונה אחת, ולתכנן את מודל הנתונים לשני ערכים ולא לאחד.
למפתחים: נרמול והודעות שגיאה
רשימה קצרה של החלטות מכסה את רוב הצרות שהסכמות האלה גורמות.
- יש לנרמל בהסרת מפרידים ובאיחוד רישיות, ואחר כך לבדוק את האלפבית החוקי כולל אות סוגרת מותרת.
- יש לבחור את הכלל לפי מספר הספרות, ולהחזיק בנפרד את הכללים לשני אורכי הספר ולכתבי עת.
- יש להחזיר הודעה שמציינת איזה כלל הופעל, כדי שמשתמש שהדביק מספר מהסוג הלא נכון יוכל לראות זאת.
- יש לאחסן מזהים כטקסט בכל מקום, כולל בעמודות מסד נתונים ובאינדקסים לחיפוש.
- כשערך נכשל, יש להציג את הצורה המנורמלת שמולה נבדק, משום שהיא מה שהחשבון ראה בפועל.
החשבון עצמו שייך לאותה משפחה שמבוססת מודולוס כמו אלה שמושוות בסקירת אלגוריתמי ספרת ביקורת, אם כי האלפבית וכלל האות הסוגרת הופכים את הסכמות האלה לאיברים המסורבלים. ברקודים, שאותה מערכת מחסן או ספרייה מטפלת בהם לעתים קרובות זה לצד זה, מכוסים בספרות ביקורת EAN ו-UPC.
צעדים הבאים
יש לקחת ערך אחד מכל דור של מספר הספר ומספר אחד של כתב עת, ולוודא שהשגרה מקבלת את שלושתם אחרי נרמול ודוחה כל אחד מהם כשמשתנה תו פנימי אחד. כלי אימות המספרים יראה את ניסוח התוצאה, וכדאי לבדוק שהממשק מבדיל בין אי-התאמה בתבנית לבין כשל בבדיקת ספרת הביקורת.