תפריט

מחולל כתובות טורקיות: סדר נכון של כתובת טורקית לבדיקת טפסים

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

פורסם

  • נתוני בדיקה
  • כתובת
  • טורקיה

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

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

כיצד מסודרת כתובת טורקית?

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

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

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

מה עושות שכבות המחוז, הנפה והשכונה?

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

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

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

מדוע המיקוד והמחוז חייבים להסכים

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

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

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

אילו אותיות טורקיות שוברות שדות כתובת?

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

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

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

כיצד יש לבנות טפסי כתובת טורקית

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

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

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

האם כתובת טורקית מחוללת מתאימה למקום אמיתי

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

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

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

מה יש לבדוק לפני שמסתמכים על מערך נתונים טורקי

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

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

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

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

כל כתובת שמופקת בדרך הזו היא נתוני בדיקה בדיוניים. היא אינה מתארת מקום שקיים, היא אינה שייכת לאדם כלשהו, ואסור להשתמש בה כדי לשלוח דואר, כדי להירשם לשירות אמיתי, כדי להתחזות לתושב או כדי להשיג זכות או מסמך כלשהם.

המשך קריאה

כלים פופולריים ומדריכי שימוש