درسنامه ها و مقالات

چارچوب نحوی RIF-FLD

درسنامه ، مقاله، تحقیق، پروژه | 28 January, 2014 17:58


چارچوب نحوی مکانیزمی برای مشخص کردن انواع ترم ها و قواعد مجاز و چگونگی تخصیص این مکانیزم ها برای تولید گویش های مشخص، تعریف می کند. یک گویش مشخص ممکن است برخی از ترکیبات مشخص نمادها را محدود کرده یا برخی را کنار بگذارد.

در واقع در این چارچوب نحوی، نحو ارائه RIF-FLD معرفی می شود که می توان بر اساس آن، نحوی برای ارائه گویش های منطقی دیگر به دست آورد. 

1- ترم ها

ساختار پایه یک زبان قانون، ترم‌ها هستند. این چارچوب انواع ترم های زیر را تعریف می کند: 

  

ثوابت و متغیر ها: یک ثابت، می تواند به تعدادی individual، چند مجموعه individual  و یا چند مجموعه individual مرتبط اشاره داشته باشد. به مجموعه ای از individual های مرتبط که به صورت مجموعه ای از زوج های مرتب نمایش داده می شوند، اصطلاحا مسند گفته می شود. متغیر ها با استفاده از نماهای الفبایی رقمی که در ابتدای آن نماد ? قرار می گیرد مشخص می شوند، متغیرها به تنهایی به هیچ چیز اشاره ندارند.

 ترم های موضعی/مکانی: اگر t و t1,…,tn ترم باشند، آنگاه t(t1 ... tn) یک ترم مکانی خواهد بود. این ترم ها مشابه ترم های معمول در منطق مرتبه اول هستند، با این تفاوت که نماد ها لزوما به individual ها، توابع یا مسند ها افراز نمی شوند(این محدودیت ها بسته به گویش می توانند متفاوت باشند). به علاوه متغیر ها می توانند در هر جایی که یک ترم می تواند قرار داشته باشد، قرار گیرند. بنابراین یک ترم مکانی می تواند مانند یک ترم hilog  باشد و عباراتی با ساختار زیر می توانند مجاز باشند. ?X(abc ?W)(?Y ?Z(?V 33))

ترم ها با آرگومان های دارای نام: این ترم ها مشابه ترم های مکانی هستند و آرگومان های یک ترم می توانند دارای نام باشند و ترتیب این آرگومان ها نیز در داخل چنین ترم هایی اهمیت ندارد.

ترم های لیست: این ترم ها متناظر با ترم های برنامه نویسی منطق هستند و از آنها در RIF-BLD استفاده می شود. حالت محدودتر آن ها نیز در گویش RIF-Core و RIF-PRD استفاده می شود. ترم های لیست دارای دو نوع هستند: باز و بسته.

لیست های بسته دارای قالب List(t1 ... tm) هستند، به گونه ای که m>=0 و t1,…,tm ترم هستند. لیست های باز دارای قالب List(t1…tm t) هستند که در آن m>0 و t1,…,tm , t ترم هستند. لیست های باز در نحو نمایشی به صورت List(t1 ... tm | t) نمایش داده می شوند. آرگومان  t در انتهای لیست نشان دهنده دنباله لیست بوده و از این رو خود یک لیست می باشد.

 

ترم های تساوی: یک ترم تساوی دارای قالب t=s می باشد که t و s هر دو ترم هستند.

ترم های دسته بندی: این ترم ها از منطق مرتبه اول گرفته شده اند و دارای دو نوع می باشند: ترم های عضویت کلاس(یا بطور ساده ترم های عضویت) و ترم های زیرکلاس. t#s یک ترم عضویت است و نشان می دهد که شئ t یک نمونه یا عضو از شئ کلاس s می باشد. t##s یک ترم زیرکلاس است و نشان می دهد که t زیر کلاس s می باشد.

ترم های قاب : یک ترم قاب، برای توصیف خصیصه های یک شئ استفاده می شود. مشابه ترم های با آرگومان های دارای نام، در ترم های قاب نیز ترتیب خصیصه ها در یک قاب فاقد اهمیت است. نحو فرم ها مشابه با آرگومان های دارای نام است، اما از نظر معنایی با هم تفاوت دارند. یک قاب دارای قالب t[p1àv1 ... pnàvn]  می باشد که در آن t, p1, ..., pn, v1, ..., vn ترم هستند. t مشخص کننده یک شئ، pi ها، خصیصه های آن و vi ها مقادیر مربوط به هر خصیصه می باشند.

ترم های تعریف شده خارجی: از این ترم های برای نمایش توابع و مسند های Built-in استفاده می شود. اگر ترم t یک ثابت، ترم دارای نام، تساوی، دسته بندی یا ترم قاب باشد، آنگاه External(t loc) یک ترم تعریف شده خارجی می باشد. قسمت loc نقش مکان یاب منبعی را دارد که ترم خارجی t را تعریف می کند.

ترم های فرمول: RIF-FLD چندین نوع فرمول تعریف می کند که بیشتر آنها را از منطق های دیگر گرفته شده است.  هر فرمول دارای اجزایی مانند مسند ها، ثوابت، متغیر ها، پرانتز ها و غیره می باشد. فرمول ها می توانند شامل ترکیب های عطفی (AND)، فصلی (OR) و سورهای عمومی و وجودی باشند. این نماد ها، به صورت پیشوندی نمایش داده می شوند. همچنین، ایجاب، در RIF-Core به صورت عبارت if A then B بیان می شود، اما در نحو ارائه RIF-BLD به صورت B :- A نمایش داده می شود. نفی کلاسیک نیز در منطق مرتبه اول با نماد NEG و نفی پیش فرض در برنامه نویسی منطق با نماد NAF نمایش داده می شوند.

ترم های تجمعی: یک ترم تجمعی دارای قالب sym ?V[?X1 ... ?Xn] می باشد که در آن sym نمادی برای نشان دادن تابع تجمعی است. تابع تجمعی می تواند Min، Avg، Sum و... باشد. عبارت  ?V, ?X1, ..., ?X نیز نشان دهنده متغیر ها می باشد.

 

ترم های راه دور: یک ترم راه دور دارای قالب φ@r  می باشد که در آن φ یک ترم بوده و r می تواند ثابت، متغیر، ترم مکانی یا آرگومان دارای نام باشد.  از این ترم ها برای پرس و جو بر روی اسناد RIF راه دور، که ماژول های راه دور نامیده می شوند، استفاده می شود. در واقع r یک ارجاع است که از آن برای شناسایی ماژول راه دور استفاده می شود.

 

2- IRI ها

همان طور که پیش تر گفته شد ثوابت به Individual یا مسند ها اشاره می کنند. ممکن است دو ثابت دارای نام یکسان باشند، اما هنگام استفاده شدن در قوانین ممکن است متعلق به بیش از یک منبع داده باشند و یا معنای متفاوتی داشته باشند، به عبارت دیگر ممکن است به موجودیت های مختلفی اشاره کنند.

در RIF، به منظور رفع ابهام، از IRI ها(شناسه های بین المللی منابع) استفاده می شود. یک IRI، یک آدرس وب است که معمولا شامل اطلاعات در مورد جایی است که ثابت مورد نظر به آن اشاره دارد. 

3-  Directive ها

Directive ها دارای انواع مختلفی هستند که در ادامه تشریح خواهند شد.

 Dialect Directive

یک dialect directive دارای قالب Dialect(D) می باشد که در آن D یک رشته Unicode است که نام گویش را مشخص می کند. این directive مشخص کننده گویش یک سند RIF می باشد. برخی از گویش ها این directive را در کلیه مستنداتشان نیاز دارند، در حالی که برخی دیگر، به ویژه RIF-BLD اجازه استفاده از این Directive را نمی دهند و به نحو های دیگری متکی هستند.

 Base directive

IRI  های پایه با استفاده Base directive مشخص می شوند. یک base directive دارای قالب Base(<iri>;) می باشد، که در آن iri یک رشته  unicodeمی باشد و مشخص کننده یک IRI است. هر سند حداکثر می تواند یک base directive داشته باشد.

 Prefix Directive

نوشتن IRI ها به صورت کامل به ازای هر ثابت، کاری دشوار می باشد، لذا در نحو ارائه، عملیاتی و سایر نحوهای فشرده RIF، از طریق استفاده از اعلان فضاهای نام، می توان IRI ها را با اختصار بیشتر بیان کرد.

یک prefix directive دارای قالب Prefix(p <v>;) می باشد، که در آن p یک رشته الفبایی رقمی است که نام پیشوند را مشخص می کند(فضای نام) و v توسعه ای برای p می باشد، رشته ای که IRI را شکل می دهد. (یک رشته الفبایی رقمی دنباله ای از کاراکتر های اسکی می باشد که می تواند حرف، رقم یا "_" باشند، و با یک حرف شروع می شوند). پس از تعریف فضای نام، نام ثابت به صورت p:v در قوانین به کار می رود.

 

 Import Directive

یک import directive می تواند دارای دو قالب Import(loc) یا Import(loc p) باشد. loc یک مکان یاب است که به طور یکتا، تعدادی سند دیگر را، که در سند مورد نظر، import  شده اند، مشخص می کند. قالب اصلی مکان یاب loc، پروتکلی که مکان یاب ها را با مستندات مرتبط می کند و نئع سند import شده توسط هر گویش مشخص می شود. آرگومان p دنباله ای از کاراکتر های Unicode است که نمایه import نامیده می شود و مشخص می کند چه نوع موجودیتی، تحت چه معنایی می تواند import شود. از اینdirective   برای import کردن موجودیت های غیرRIF، مانند داده های RDF یا هستان شناسی های OWL استفاده می شود.

 Remote module directive

این directive دارای قالب Module(n loc) می باشد، که در آن n، یک ترم فاقد متغیر است، که نام داخلی ماژول راه دوری که به سند پیوند خورده است را، نشان می دهد. این همان نامی است که ماژول تحت آن در سند مورد ارجاع قرار می گیرد. loc، نیز مکان یاب سند است که شامل قوانین و داده های ماژول می باشد.

4- فضاهای نماد

در RIF، هر ثابت به یک فضای نماد تعلق دارد. به عبارت دیگر می توان گفت که فضای نماد، نوع ثابت را مشخص می کند. نمایش یک ثابت در یک فضای نماد RIF خاص، به صورت "literal"^^<symbolSpaceIri> می باشد.

5- حاشیه نویسی

RIF-FLD به ترم ها و فرمول ها این امکان را می دهد تا به صورت اختیاری حاشیه نویسی شوند. حاشیه نویسی دارای قالب (* id φ *) می باشد که در آن id یک ثابت بوده و φ یک فرمول RIF می باشد. هر دو عنصر داخل حاشیه نویسی اختیاری می باشند. قسمت id  نشان دهنده شناسه یک ترم یا فرمول می باشد که حاشیه نویسی به آن ضمیمه[20] شده است. قسمت  φنیز باقیمانده حاشیه نویسی است که RIF-FLD هیچ گونه محدودیت خاصی را به آن اعمال نمی کند. از اینرو φ می تواند شامل متغیر ها، نماد های تابعی، ثابت ها و غیره باشد.

حاشیه نویسی، قبل از ترم یا فرمول مورد نظر قرار می گیرد. به عنوان مثال (* id φ *) t[w -> v]. این مسأله باعث ایجاد ابهام می شود که آیا حاشیه نویسی مربوط به ترم t بوده یا مرتبط با قاب t[w -> v] می باشد. برای رفع ابهام، RIF-FLD حاشیه نویسی را به بزرگ ترین فرمولی نسبت می دهد که در سمت راست حاشیه نویسی قرار دارد. بنابراین در مثال بالا، حاشیه نویسی متعلق به قاب [w -> v] می باشد.

 

در RIF-FLD برای حاشیه نویسی و  افزودن اَبَرداده ها می توان از خصیصه های موجود در Dublin Core، RDFS و OWL مثل owl:versionInfo، rdfs:label، rdfs:comment، rdfs:comment، dc:creator، foaf:maker و غیره استفاده کرد. 

6- ترم های خوش-قالب و امضا ها

یکی از مهمترین راه هایی که RIF-FLD را تبدیل به چارچوبی برای تعریف دیگر گویش ها می کند، از طریق مفهوم امضا است. امضاها ترم ها یا فرمول های خوش-قالب را مشخص می کنند. از انجا که نام های امضا، امضاها را در مجموعه امضاهای منسجم شناسایی می کنند، امضاها به سادگی توسط نام هایشان مورد ارجاع قرار می گیرند. هر تنماد یک امضا برای خود دارد. هر امضا زمینه های نحوی که یک نماد در آن ها مجاز است را تعریف می کند.

از این رو با بهره گیری از امضا ها می توان کنترل کرد که کدام نماد ها می توانند برای مسند ها و کدام یک برای توابع استفاده شوند، حضور متغیر ها در چه مکان هایی مجاز و در چه مکان هایی غیر مجاز می باشد.

یک امضا دارای قالب η{e1, ..., en, ...} می باشد که در آن η نام امضا و {e1, ..., en, ...} مجموعه ای قابل شمارش از عبارات پیکانی است. یک عبارت پیکانی دارای قالب (k1 ... kn) )=> k می باشد که در آن  k و k1 ... kn نام های امضا هستند. یک امضا می تواند صفر تا بی نهایت عبارت پیکانی داشته باشد. تعداد عبارات پیکانی در گویش های مختلف با یکدیگر متفاوت است.

نمادها نیز می توانند تعداد مختلفی از آرگومان ها و نیز انواع مختلفی از آن ها را داشته باشند. از اینرو هر گویش میبایست تعیین کند که چه امضاهایی به چه نماد هایی داده شود و انتساب ها چگونه صورت گیرد.

همانطور که پیش تر گفته شد از امضاها برای کنترل اینکه چه نمادهایی در چه زمینه هایی ظاهر شوند، استفاده می شود. بدین منظور از مفهوم خوش-قالب استفاده می شود. برای تعریف مفهوم خوش-قالب فرض می شود که به هر نماد در الفبای زبان، یک امضای یکتا داده شود. دقت این کار به گویش ها بستگی دارد. برخی گویش ها قوانینی دقیق تر و سختگیرانه تر و برخی دیگر قوانینی با دقت کمتر وضع می کنند.

7- عملگر های ساختاری

برای نوشتن قوانین در RIF دو عملگر Group و Document مورد استفاده قرار می گیرند. عملگر Group، برای گروه بندی مجموعه ای از قوانین در یک سند RIF مورد استفاده قرار می گیرد. از نظر معنایی، عملگر Group معادل با AND کردن قوانین است.

یک سند می تواند شامل تعدادی گروه باشد. از طرفی یک گروه می تواند تنها شامل یک قانون باشد.

هر سند RIF حداقل نیاز به یک عملگر Documnt دارد، چرا که یک سند می تواند اسناد دیگری را import کند. عملگر Documnt معمولا در ابتدای سند قرار می گیرد و پس از آن تعریف پیشوند ها و گروه ها می آید.  

8- نقاط توسعه

نماد های NEWCONNECTIVE، NEWQUANTIFIER، NEWAGGRFUNC  ،   NEWTERMو NEWSYMBOL ، نقاط توسعه RIF-FLD می باشند. هر یک از گویش های RIF در صورت تمایل می توانند این نماد ها را، با اتصال دهنده های جدید، سور های جدید، توابع تجمعی جدید، نماد های واقعی جدید و انواع ترم های جدید، جایگزین کنند. 



نظرات

ارسال نظر
Info

توجه: از ارسال پيام هاي خصوصي در حالت لاگين براي نويسنده وبلاگ اجتناب نماييد.
در صورتی که در فرم ارسال نظر، نام شما توسط سیستم شناسایی شده باشد(در حالت لاگین) نظر شما بلافاصله منتشر خواهد شد.


در غیر اینصورت نظر شما پس از تایید توسط مالک وبلاگ منتشر خواهد شد.

 authimage
 
Accessible and Valid XHTML 1.0 Strict and CSS
Converted to use with ITS. Powered by FUMblog