معماری نوع‌دهی اطلاعات داروینی

**معماری نوع‌دهی اطلاعات داروینی**  با کوته‌نوشت **دی‌تا**  یک مدل داده XML است و مجموعه‌ای از «انواع سند» را برای نوشتن، انتشار، و سازمان‌دهی به اطلاعات عنوان‌گرا تعریف می‌کند، همچنین یک مجموعهٔ سازوکار برای ادغام، گسترش و محدودسازی «انواع سند» تعریف می‌کند. DITA یک استاندارد آزاد است، و توسط کمیته فنی دی‌تا اوای‌سیس (OASIS) تعریف و نگهداری می‌شود.
نام دی‌تا از این مؤلفه‌ها مشتق شده‌است:
* داروین: از اصول خصوصی‌سازی و ارث‌بری استفاده می‌کند، این موضوع مشابه مفهوم سازگاری تکاملی چارلز داروین است.
* نوع‌دهی اطلاعات: یعنی هر عنوان دارای ساختار و هدف اساسی از قبل تعریف‌شده‌ است (فرایند، ورودی واژه‌نامه، اطلاعات عیب‌یابی)
* معماری: دی‌تا مجموعه‌ای از ساختارهای قابل گسترش است.

## ویرایش‌ها
مشخصات دی‌تا در سه ویرایش می‌باشد، که برای مخاطب‌های متفاوت، بهینه‌سازی شده‌اند. هر ویرایش شامل «مشخصات»، «فایل‌های گرامر XML»، و «منابع دی‌تا» است.

### ویرایش مبنا
ویرایش مبنا شامل عنوان، نگاشت، و نگاشت برنامه موضوع است. این ویرایش کوچک‌ترین نوع دی‌تا است، و برای توسعه‌دهندگان برنامه کاربردی و کاربرانی طراحی شده‌است که فقط به قطعه‌های اساسی تر چارچوب دی‌تا نیاز دارند.

### ویرایش محتوای فنی
ویرایش محتوای فنی شامل معماری مبنا و خصوصی‌سازی‌هایی است که توسط مکاتب‌های فنی استفاده می‌شوند: مفاهیم، فعالیت، عناوین ارجاع، فعالیت‌های صنعت ماشین، عنوان عیب‌یابی، نگاشت کتاب، واژه‌نامه‌ها، و نگاشت رده‌بندی. این یک نگاشت با سایز متوسط است، و برای نویسنده‌هایی طراحی شده‌است که از نوع‌دهی اطلاعات، و ابزارها و کاربردهای سندی پیچیده استفاده می‌کنند: مثل نرم‌افزار، سخت‌افزار، ابزارهای پزشکی، و ماشین آلات و دیگر موارد استفاده می‌کنند.

### ویرایش فراگیر کلی
ویرایش فراگیر شامل مشخصات معماری مبنا، قطعات محتوای فنی، و مشخصات یادگیری و آموزش است. این ویرایش بزرگ‌ترین نوع است، و برای پیاده‌سازهایی طراحی شده‌است که به همه مشخصات تأیید‌شده OASIS نیاز دارند، و همچنین کاربرانی که موارد یادگیری و آموزش را توسعه می‌دهند.

## ویژگی‌ها و محدودیت‌ها
### استفاده مجدد از محتوا
عناوین را می‌توان در بین چندین انتشار استفاده مجدد کرد. بخش‌های محتوا در داخل عناوین را از طریق استفاده از ارجاع‌های محتوا (*conref* یا *conkeyref*) استفاده مجدد کرد، که به آن سازوکار تراگنجانش گفته می‌شود.

### نوع دهی به اطلاعات
آخرین ویرایش دی‌تا (دی‌تا ۱٫۳) شامل پنج نوع عنوان خصوصی‌سازی شده‌است: وظیفه (Task)، مفهوم (Concept)، ارجاع (Reference)، ورودی واژه‌نامه (Glossary Entry) و عیب‌یابی (Troubleshooting). همه این پنج نوع عنوان یک اختصاصی‌سازی از نوع عنوان همگانی Topic هستند، که شامل یک عنصر «عنوان»، یک عنصر «پرولوگ برای فراداده»، و یک عنصر «بدنه» است. عنصر بدنه شامل عناصر پاراگراف، جدول و لیست است (همانند HTML معمول).
* یک عنوان Task برای فرایندی در نظر گرفته شده‌است که نحوه انجام یک وظیفه را توصیف می‌کند. این عنوان شامل تعدادی گام است که کاربران برای ایجاد نتیجه مورد نظرشان باید از آن پیروی کنند. این گام‌ها در یک عنصر taskbody قرار دارند، که نوع اختصاصی عنصر همگانی body است. عنصر steps یک خصوصی‌سازی از عنصر ordered list است.
* اطلاعات *Concept* واقع‌گرایانه‌تر است و شامل تعاریف، قواعد، و راهبردها می‌باشد.
* عنوان *Reference* برای عنوانی است که توصیف‌کننده نحو دستور، دستورالعمل برنامه‌نویسی، و دیگر موارد ارجاعی است، و معمولاً شامل موارد جزئی و واقعی است.
* یک عنوان *Glossary Entry* برای تعریف یک معنی منفرد برای یک واژه استفاده می‌شود. علاوه بر شناسایی واژه و تهیه تعریف برای آن، این نوع عنوان می‌تواند شامل اطلاعات اصطلاح‌شناسی اساسی داشته باشد، همچنین مخفف‌ها یا گسترش مخفف، که ممکن است به آن‌ها اعمال گردد.
* عنوان *Troubleshooting* توصیف‌کننده شرایطی است که خواننده ممکن است بخواهد آن را درست کند، که در ادامه آن در آن توصیف‌هایی برای علت آن، و درمان‌هایی پیشنهاد شده‌است.

### نگاشت‌ها
یک نگاشت DITA شامل عناوینی است که از آن برای «تبدیل» «مجموعه‌ای از محتوا» به یک «انتشار» استفاده می‌شود. در آن ترتیب و ساختار عناوین موجود است. یک نگاشت می‌تواند شامل جداول ارتباطی (reltables) باشد که فراپیوند (هایپرلینک)های بین عناوین را تعریف می‌کند. این نگاشت‌ها می‌تواند تودرتو باشند و همچنین می‌توانند عناوین یا دیگر نگاشت‌ها را ارجاع دهند و می‌توانند شامل انواع مختلفی از نوع محتوا و فراداده باشند.

### فراداده
DITA هم در سطح عنوان و هم در داخل عناصر، شامل عناصر و ویژگی‌های فراداده گسترش‌پذیر است. یک متن شرطی به ما امکان تصفیه و سبک‌دهی محتوا را بر اساس ویژگی‌ها برای مخاطب، بن‌سازه، محصول و دیگر ویژگی‌ها می‌دهد. از یک نمایه پردازش شرطی (فایل .ditaval) استفاده می‌شود تا تعیین کنیم که از کدام مقادیر باید برای پردازش شرطی استفاده شود.

### خصوصی‌سازی
DITA امکان اضافه کردن عناصر و ویژگی‌های جدید را از طریق خصوصی‌سازی عناصر و ویژگی‌های مبنای DITA را می‌دهد. از طریق خصوصی‌سازی، DITA می‌تواند نوع عنوان، نوع عنصر، و ویژگی جدید را در موقع لازم، برای صنایع و شرکت‌های خاص بسازد. خصوصی‌سازی DITA برای صنایع خاص، مثل صنعت نیمه‌هادی‌ها، توسط کمیته‌ها یا زیرکمیته‌های فنی OASIS استانداردسازی می‌شوند. بسیاری از سازمان‌هایی که از DITA استفاده می‌کنند، نیز خصوصی‌سازی خاص خودشان را توسعه داده‌اند.

گسترش‌پذیری DITA به سازمان‌ها امکان خصوصی‌سازی DITA را می‌دهند این کار از طریق تعریف ساختارهای اطلاعاتی خاص انجام می‌شود، که هنوز از ابزارهای استاندارد برای کار با آن‌ها استفاده می‌شود. توانایی تعریف معماری اطلاعات شرکت خاص، به شرکت‌ها امکان استفاده از DITA را برای غنی‌سازی محتوا با فراداده می‌دهد، که برای آن‌ها معنی‌دار است، و قواعد شرکت به‌خصوص را روی ساختار سند تحمیل می‌کند.

### جهت‌گیری عنوانی
محتوای DITA به‌صورت عنوان‌ها ساخته می‌شود، که هر کدام یک فایل XML منفرد است. معمولاً هر عنوان شامل یک موضوع خاص با یک هدف منفرد است، برای مثال، یک عنوان مفهومی که یک دیدکلی را تهیه می‌بیند، یا یک عنوان فرایندی که توضیح می‌دهد چگونه یک وظیفه باید انجام شود. محتوا باید ساختارمند باشد تا مشابه ساختار فایلی باشد که در آن قرار دارد.

## ساخت محتوا در DITA
نگاشت DITA و اسناد عنوان، فایل‌های XML می‌باشند. مشابه با HTML، هر تصویر، فایل ویدیویی، یا دیگر فایل‌ها که باید در خروجی نمایش بیابند، از طریق ارجاع‌ها (reference) داخل می‌شوند. از هر ویرایش‌گر XML یا ویرایش‌گر متنی می‌توان برای نوشتن محتوای DITA استفاده کرد، و این بستگی به مرحله پشتیبانی دارد که در زمان نوشتن لازم می‌باشد. کمک به نوشتن، که در ویرایش‌گرهای اختصاصی موجود است شامل ارائه پیش‌نمایش ویزی‌ویگ، درستی‌سنجی، و تجمیع با یک پردازش‌گر DITA، مثل DITA-OT یا ditac می‌باشد.

## انتشار محتوای نوشته شده به DITA
DITA به‌صورت یک معماری سر-به-سر طراحی شده‌است. علاوه بر نشان دادن آن‌که کدام عنصر، ویژگی، و قاعده بخشی از زبان DITA هستند، مشخصات DITA شامل قواعدی برای انتشار محتوای DITA به HTML، راهنمای دیجیتال، پرینت، بن‌سازه تحویل محتوا و دیگر قالب‌ها می‌باشد.

برای مثال، مشخصات DITA نشان می‌دهد که اگر ویژگی *conref* برای عنصر A شامل یک مسیر به عنصر B باشد، محتوای عنصر B در محل عنصر A نمایش خواهد یافت. راه‌حل‌های انتشار سازگار با DITA، که به آن‌ها پردازش‌گر DITA هم می‌گویند، باید ویژگی conref رابر اساس رفتار تعیین شده رسیدگی کند. قواعدی هم برای پردازش دیگر ویژگی‌های غنی، مثل متن شرطی، نشان‌گذار فهرست، و پیوندهای عنوان-به-عنوان وجود دارد. به برنامه‌های کاربردی که محتوای DITA را به دیگر فرمت‌ها تبدیل می‌کند، و همچنین نیازمندی‌های مشخصات DITA را برای تفسیر نشانه‌گذاری DITA برآورده می‌کنند، «*پردازش‌گر DITA*» گفته می‌شود.

### بومی‌سازی
DITA پشتیبانی برای ترجمه را فراهم می‌کند، این کار از طریق گروه ویژگی localisation انجام می‌شود. می‌توان ویژگی عناصر را برای نشان دادن آن‌که آیا محتوای عنصر باید ترجمه شود، تنظیم کرد. زبان محتوای عنصر را می‌توان تعیین نمود، همچنین جهت نوشتن، فیلتر کردن نمایه، و بعضی از اصطلاح‌ها که موقع انتشار به فرمت نهایی تزریق می‌شوند. می‌توان یک پروژه DITA را به فایل XLIFF تبدیل نمود و سپس به نگاشت‌ها و عناوین اصلی بازگرداند، این کار از طریق ابزار رفت و برگشت DITA-XLIFF برای DITA-OT و نیز ابزارهای ترجمه به کمک رایانه (CAT)، مثل ویرایش‌گر ترجمه سووردفیش با مدیر ترجمه DITA فلورنت انجام می‌شود. ابزار آخری برای پیاده‌سازی جریان کار ترجمه که توسط مقاله «استفاده از XLIFF برای ترجمه پروژه‌های DITA» طراحی شده‌است، می‌باشد، و توسط DITA Adoption TC در OASIS منتشر شده‌است.

## نمونه کد
### نمونه فابل Ditamap (جدول محتوا)

```xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE map PUBLIC "-//OASIS//DTD DITA Map//EN%22 "map.dtd">
<map id="map" xml:lang="en">
  <topicref format="dita" href="sample.dita" navtitle="Sample" type="topic"/>
</map>
```


### Hello World (برای DTD عنوان)

```xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Topic//EN%22 "topic.dtd">
<topic xml:lang="en" id="sample">
  <title>Sample</title>
  <body>
  <p>Hello World!</p>
  </body>
</topic>
```


### نمونه فایل .ditaval (برای متن شرطی)

```xml
<?xml version="1.0" encoding="utf-8"?>
<val>
  <prop att="audience" val="novice" action="include"/>
  <prop att="audience" val="expert" action="exclude"/>
</val>
```
مثالی از متن شرطی در زیر آمده‌است:
```xml
<p>
  This is information useful for all audiences.
</p>
<p audience="novice">
  This is information useful for a novice audience.
</p>
<p audience="expert">
  This is information useful for an expert audience.
</p>
```


## پانویس

## منابع
* 

رده:ارتباطات فنی
رده:استانداردهای اکس‌ام‌ال-مبنا
رده:استانداردهای سند محور اکس‌ام‌ال-مبنا
رده:اکس‌ام‌ال
رده:زبان‌های نشانه‌گذاری
رده:قالب‌های آزاد