DICTFMT(1) DICTFMT(1)

dictfmt - قالب‌بندی پایگاه‌داده فرهنگ لغت تحت پروتکل DICT

dictfmt  -c5|-t|-e|-f|-h|-j|-p [options]  basename
dictfmt  -i|-I [options]

دستور dictfmt یک پرونده ورودی FILE را از ورودی استاندارد (stdin) دریافت کرده و یک پایگاه‌داده فرهنگ لغت با نام basename.dict سازگار با پروتکل DICT ایجاد می‌کند. همچنین یک پرونده نمایه به نام basename.index تولید می‌نماید. به‌طور پیش‌فرض، نمایه بر اساس محلی‌سازی (locale) C مرتب می‌شود و تنها نویسه‌های الفبایی‌عددی و فاصله‌ها در مرتب‌سازی استفاده می‌شوند؛ هرچند این رفتار با گزینه‌های --locale و --allchars قابل تغییر است. (معمولاً basename متناظر با نام پایه FILE انتخاب می‌شود، اما الزامی نیست.)

مگر در مواردی که پایگاه‌داده بسیار کوچک باشد، اکیداً توصیه می‌شود پرونده basename.dict با استفاده از /usr/bin/dictzip فشرده شده و پرونده basename.dict.dz ایجاد گردد. (ابزار dictzip در بسته مبدا dictd گنجانده شده است.)

پرونده ورودی FILE می‌تواند در هر یک از قالب‌های توصیف‌شده توسط گزینه‌های قالب‌بندی -c5, -t, -e, -f, -h, -j, -p, -i یا -I باشد. دقیقاً یکی از این گزینه‌ها باید داده شود.

دستور dictfmt چندین سرآیند به ابتدای پرونده dict. اضافه می‌کند. سرآیند 00-database-url مقدار گزینه -u را به عنوان نشانی وب سایتی که پایگاه‌داده اصلی از آن به دست آمده ذخیره می‌کند. سرآیند 00-database-short مقدار گزینه -s را به عنوان نام کوتاه لغت‌نامه ثبت می‌کند. (این «نام کوتاه» همان شناسه ارائه‌شده با گزینه "dict -D" است.) اگر گزینه‌های -u یا -s حذف شوند، این مقادیر با "unknown" نمایش داده می‌شوند که برای یک پایگاه‌داده عمومی مطلوب نیست.

تاریخ تبدیل (قالب‌بندی) در سرآیند 00-database-info ذکر می‌شود. تمام متن پرونده ورودی قبل از نخستین سرواژه (headword) (همان‌طور که با گزینه قالب‌بندی مناسب مشخص شده است) به این سرآیند اضافه می‌شود. تمام متن ورودی پس از یک سرواژه تا سرواژه بعدی به‌صورت دست‌نخورده در پرونده dict. کپی می‌شود.

پرونده ورودی FILE به گونه‌ای قالب‌بندی شده است که سرواژه‌ها قبل از خود ۵ یا چند نویسه زیرخط (_) و یک خط خالی دارند. تمام متن تا سرواژه بعدی به عنوان تعریف مدخل در نظر گرفته می‌شود. هر نویسه '@' ابتدایی حذف می‌شود، اما پرونده در سایر موارد دست‌نخورده می‌ماند. این گزینه برای قالب‌بندی کتاب CIA WORLD FACTBOOK 1995 نوشته شده است.
گزینه‌های c5-، --without-info و --without-headword اعمال می‌شوند. از این گزینه زمانی استفاده کنید که پایگاه‌داده ورودی از ابزار dictunformat به دست آمده باشد.
پرونده ورودی FILE در قالب HTML است و سرواژه به‌صورت بولد برچسب‌گذاری شده است (<B>headword - </B>).
این گزینه برای قالب‌بندی فرهنگ لغت انجیل ایستون (EASTON'S 1897 BIBLE DICTIONARY) نوشته شده است. یک مدخل نمونه از ایستون به صورت زیر است:

<A NAME="T0000005">
<B>Abagtha - </B>
one of the seven eunuchs in Ahasuerus's court (Esther 1:10; 2:21).

این مدخل تبدیل می‌شود به:
Abagtha
one of the seven eunuchs in Ahasuerus's court (Esther 1:10; 2:21).

عنوان "<A NAME="T0000005"> حذف شده و سرواژه `Abagtha' نمایه‌سازی می‌شود.

توجه: این گزینه باید با احتیاط استفاده شود. چندین تگ html حذف می‌شوند (به اندازه‌ای که برای قالب‌بندی درست Easton کافی باشد)، اما نه همه آنها. فایل Makefile که در ابتدا برای قالب‌بندی dict-easton نوشته شده بود، از اسکریپت‌های sed برای تغییر برخی تگ‌های ارجاع متقابل استفاده می‌کرد. ممکن است لازم باشد فایل ورودی را از طریق یک اسکریپت sed لوله‌کشی کنید یا سورس‌کد dictfmt را تغییر دهید تا سایر پایگاه‌های داده html به‌درستی قالب‌بندی شوند.

پرونده ورودی FILE به گونه‌ای قالب‌بندی شده است که سرواژه‌ها از ستون 0 آغاز می‌شوند و تعریف در خطوط بعدی حداقل یک فاصله (یا نویسه تب) تورفتگی دارد. سومین خطی که از ستون 0 آغاز می‌شود به عنوان اولین سرواژه در نظر گرفته می‌شود و دو خط نخستِ آغازشده از ستون 0 بخشی از سرآیند 00-database-info تلقی می‌گردند. این گزینه برای قالب‌بندی F.O.L.D.O.C نوشته شده است.
پرونده ورودی FILE به گونه‌ای قالب‌بندی شده است که سرواژه‌ها از ستون 0 آغاز شده، با یک کاما دنبال می‌شوند و تعریف در همان خط ادامه می‌یابد. تمام متن پیش از نخستین خط تک‌نویسه‌ای در سرآیند 00-database-info گنجانده می‌شود، و خطوط تک‌نویسه‌ای از پرونده dict. حذف می‌گردند. نخستین سرواژه در خط پس از اولین خط تک‌نویسه‌ای قرار دارد. سرواژه headword نمایه‌سازی شده و متن پرونده تغییر نمی‌کند. این گزینه برای قالب‌بندی فرهنگ نام‌های انجیل هیچکاک (HITCHCOCK'S BIBLE NAMES DICTIONARY) نوشته شده است.

پرونده ورودی FILE به گونه‌ای قالب‌بندی شده است که سرواژه‌ها از ستون 0 آغاز شده، میان دو دونقطه (:) محصور می‌شوند و سپس تعریف می‌آید. دونقطه‌های اطراف سرواژه حذف می‌شوند و سرواژه نمایه‌سازی می‌گردد. خطوطی که با '*'، '=' یا '-' آغاز می‌شوند نیز حذف می‌گردند. تمام متن قبل از اولین سرواژه در سرآیندها گنجانده می‌شود. این گزینه برای قالب‌بندی JARGON FILE نوشته شده است.
توجه: برخی نسخه‌های اخیر JARGON FILE سه فاصله خالی قبل از نخستین دونقطه در هر سرواژه درج کرده بودند. این فاصله‌ها باید پیش از پردازش با dictfmt حذف شوند (اسکریپت‌های sed برای این منظور استفاده شده‌اند؛ اسکریپت‌های ed، awk یا perl نیز ممکن هستند).
پرونده ورودی FILE به گونه‌ای قالب‌بندی شده است که '%h' در ستون 0، و به دنبال آن یک فاصله و سپس سرواژه قرار دارد و پس از آن می‌تواند خطی شامل '%d' در ستون 0 بیاید. تعریف از خط بعدی آغاز می‌شود. نخستین خط با شروع '%h' و تمام خطوطی که با '%d' شروع می‌شوند از پرونده dict. حذف می‌شوند و پیشوند '%h ' از جلوی سرواژه برداشته می‌شود. تمام متن قبل از اولین سرواژه در سرآیندها قرار می‌گیرد. دومین خطی که با '%h' شروع می‌شود به عنوان اولین سرواژه در نظر گرفته می‌شود.
این گزینه برای قالب‌بندی پایگاه‌داده عناصر Jay Kominek نوشته شده است.
این دو گزینه با سایر گزینه‌های قالب‌بندی تفاوت دارند. هدف آنها مرتب‌سازی مجدد (طبق الزامات dictd ) پرونده index. ارائه‌شده از طریق stdin است. در واقع پرونده dict. اصلاً تولید نمی‌شود و فقط مرتب‌سازی صورت می‌گیرد. ورودی مشابه پرونده نمایه سه‌ستونی یا چهارستونی انتظار می‌رود. گزینه -i آفست و طول را به‌صورت ده‌دهی (decimal) انتظار دارد، در حالی که گزینه -I آن‌ها را در قالب base64 انتظار دارد.

مشخص کردن نشانی اینترنتی (URL) سایتی که پایگاه‌داده خام از آن به دست آمده است. در صورت تعیین این گزینه، سرواژه 00-database-url و تعریف مربوطه نادیده گرفته می‌شوند.
مشخص کردن نام و در صورت تمایل، نسخه و تاریخ پایگاه‌داده. (اگر شامل فاصله باشد، باید درون گیومه قرار گیرد.) در صورت تعیین این گزینه، سرواژه 00-database-short و تعریف مربوطه نادیده گرفته می‌شوند.
نمایش اطلاعات مجوز و حق نشر.
نمایش اطلاعات نسخه.
خروجی اطلاعات اشکال‌زدایی (دیباگ).
نمایش پیام راهنما.
مشخص کردن محلی‌سازی مورد استفاده برای مرتب‌سازی. در صورت عدم تعیین، لوکال "C" استفاده می‌شود. برای استفاده از حالت UTF-8، گزینه utf8-- الزامی است.
--8bit
تولید پایگاه‌داده در حالت ۸ بیتی؛ گزینه --locale را نیز ببینید.
توجه: این گزینه منسوخ شده است. از آن فقط برای ایجاد فرهنگ‌های ۸ بیتی (غیر UTF-8) استفاده کنید. به منظور ایجاد پایگاه‌داده UTF-8، به‌جای آن از گزینه --utf8 استفاده فرمایید.
در صورت تعیین، پایگاه‌داده با کدگذاری UTF-8 ایجاد می‌شود.
تعیین می‌کند که تمام نویسه‌ها برای جستجو استفاده شوند؛ به‌طور پیش‌فرض تنها نویسه‌های الفبایی، عددی و فاصله‌ها در پرونده index. قرار می‌گیرند و برای جستجو به کار می‌روند. این گزینه ورودی ویژه 00-database-allchars را ایجاد می‌کند.
جستجو را حساس به حروف کوچک و بزرگ می‌کند. مدخل ویژه 00-database-case-sensitive را ایجاد می‌نماید.
تنظیم جداکننده سرواژه، که به چند واژه اجازه می‌دهد تعریف یکسانی داشته باشند. برای مثال اگر 'headword-separator %%%--' داده شود و پرونده ورودی شامل 'autumn%%%fall' باشد، هر دو واژه 'autumn' و 'fall' با تعریف یکسان نمایه‌سازی می‌شوند.
تنظیم جداکننده نمایه/داده، که امکان تنظیم مستقل ستون‌های اول و چهارم پرونده index. را می‌دهد. بدین ترتیب ستون اول می‌تواند به عنوان ستون نمایه (جایی که دستور MATCH جستجو می‌کند) و ستون چهارم به عنوان ستون نتیجه (جایی که MATCH داده‌های بازگشتی را دریافت می‌کند) تلقی شوند و کاملاً از یکدیگر مستقل باشند. مقدار پیش‌فرض این جداکننده نماد اسکی " \034" است.
سرواژه‌های چندگانه در خطوط جداگانه در پرونده dict. نوشته خواهند شد. برای استفاده با headword-separator--.
هنگامی که utf-8-- تعیین می‌شود، سرواژه‌ها به حروف کوچک تبدیل شده و نویسه‌های غیرالفبایی‌عددی قبل از ذخیره در فایل index. برای تسهیل جستجو حذف می‌شوند. هنگامی که گزینه index-keep-orig-- استفاده شود، در صورت نیاز ستون چهارمی در پرونده index. ایجاد می‌شود و شامل سرواژه اصلی خواهد بود که توسط دستور MATCH بازگردانده می‌شود. این گزینه برای جلوگیری از تبدیل "AT&T" به "ATT" یا حفظ نام‌های خاص با حرف بزرگ ابتدایی کاربرد دارد.
سرواژه‌ها در پرونده dict. گنجانده نخواهند شد.
سرآیند در مدخل اطلاعات دیتابیس (DB info) کپی نخواهد شد.
نشانی URL در مدخل اطلاعات پایگاه‌داده کپی نخواهد شد.
زمان ایجاد در مدخل اطلاعات دیتابیس کپی نخواهد شد.
به‌طور پیش‌فرض dictfmt یک مدخل ویژه 00-database-dictfmt-X.Y.Z ایجاد می‌کند که نسخه dictfmt را در پرونده dict. نگهداری می‌کند. این گزینه مانع این کار می‌شود.
مدخل اطلاعات دیتابیس ایجاد نمی‌شود. این گزینه زمانی کاربرد دارد که انتظار می‌رود سرواژه 00-database-info از ورودی استاندارد بیاید (مانند خروجی dictunformat).
به‌طور پیش‌فرض dictfmt رشته‌های خوانده‌شده از stdin را در ۷۲ ستون سطرشکنی (wrap) می‌کند. این گزینه پیش‌فرض را تغییر می‌دهد. اگر روی صفر یا مقداری منفی تنظیم شود، سطرشکنی غیرفعال می‌گردد.
تنظیم راهبرد (strategy) جستجوی پیش‌فرض برای پایگاه‌داده. این مقدار به‌جای راهبرد '.' استفاده خواهد شد. مدخل ویژه 00-database-default-strategy به همین منظور ایجاد می‌شود. این گزینه برای نمونه برای لغت‌نامه‌هایی که حاوی عبارت هستند نه تک‌واژه‌ها، مفید است. در هر حال، فقط در صورتی که کاملاً مطمئن هستید از این گزینه استفاده کنید.
هنگامی که کلاینت دستور OPTION MIME را به dictd ارسال می‌کند، تعاریف یافت‌شده در این پایگاه‌داده با سرآیند MIME مشخص‌شده آغاز می‌شوند. این کار مدخل ویژه 00-database-mime-header را ایجاد می‌کند.

ابزار dictfmt توسط Rik Faith (faith@cs.unc.edu) به عنوان بخشی از بسته dict-misc نوشته شد. برنامه dictfmt تحت شرایط مجوز عمومی همگانی گنو (GPL) توزیع می‌شود. اگر مایل به توزیع تحت شرایط دیگری هستید، با نویسنده مکاتبه فرمایید.

این صفحه راهنما توسط Robert D. Hilliard <hilliard@debian.org> نوشته شده است.

dict(1), dictd(8), dictzip(1), dictunformat(1), http://www.dict.org, RFC 2229

25 December 2000