طرح‌واره آردی‌اف

طرح‌واره آردی‌اف (به انگلیسی: RDF Schema) (یا طرح‌واره چارچوب توصیف منبع، با کوته‌نوشت‌های RDFS RDF(S) ،RDF-S، یا RDF/S) مجموعه‌ای از کلاس‌ها و ویژگی‌های معین است که از مدل داده نمایش دانش گسترش‌پذیر RDF استفاده می‌کند. هدف از RDFS فراهم کردن عناصر اساسی برای توصیف هستی‌شناسی‌ می‌باشد. RDFS از دایره واژه‌های RDF که برای سازماندهی به منابع RDF در نظرگرفته شده‌اند، استفاده می‌کند. RDF و RDFS را می‌توان در یک تریپل‌استور ذخیره کرد، و سپس با استفاده از یک زبان پرسمان مثل اسپارکل اطلاعات خاصی را استنتاج نمود.

اولین انتشار RDFS در آوریل ۱۹۹۸ و توسط ائتلاف وب جهان‌گستر رخ داد، و آخرین انتشار آن در فوریه ۲۰۱۴ می‌باشد. بیشتر مولفه‌های RDFS در «زبان هستی‌شناسی وب» یا OWL (که یک زبان پبچبده‌تر است) هم وارد شده‌اند.

ساختارهای اصلی RDFS 
ساختارهای RDFS همان «کلاس‌ها» و «ویژگی‌ها» آن هستند، همچنین شامل «ویژگی‌های کاربردی» است که بر اساس دایره واژه محدود RDF ساخته شده‌اند.

کلاس‌ها 
 rdfs:Resource کلاسی برای همه چیز است. هر چیزی که توسط RDF توصیف شود، «منبع» نام دارد.
 rdfs:Class اعلام می‌کند که یک منبع کلاسی برای منابع دیگر است.

یک مثال معمول برای rdfs:Class، کلاس foaf:Person در دایره واژه آشنای یک آشنا (FOAF) است. یک نمونه از foaf:Person، یک منبع است، که از طریق ویژگی rdf:type به کلاس foaf:Person پیوند داده شده‌است، مثلاً موقعی که در یک جمله از زبان طبیعی می‌گوییم «آقای جان یک انسان است» توسط عبارت صوری اینگونه بیان می‌شود:

ex:John➞➞ rdf:type➞➞ foaf:Person

تعریف rdfs:Class یک تعریف بازگشتی است، یعنی rdfs:Class کلاسی از کلاس‌ها است و بنابراین نمونه ای از خودش است.

rdfs:Class➞➞ rdf:type➞➞ rdfs:Class

در زیر دیگر کلاس‌هایی که توسط مشخصات RDF و RDFS توصیف شده‌اند، آمده‌است:
 rdfs:Literal: شامل مقادیر راستین‌نمادی مثل رشته یا عدد صحیح است. مقادیر ویژگی (مثل رشته‌های متنی)، مثال‌هایی از راستین‌نماد RDF هستند. راستین‌نمادها می‌توانند ساده یا نوع‌دار باشند.
 rdfs:Datatype: همان کلاس نوع‌داده است. کلاس rdfs:Datatype هم نمونه و هم زیر کلاسی از rdfs:Class است. هر نمونه از rdfs:Datatype زیرکلاسی از rdfs:Literal هم هست.
 rdf:XMLLiteral: کلاسی برای مقادیر راستین‌نماد XML است. rdf:XMLLiteral نمونه‌ای از rdfs:Datatype و همچنین نمونه‌ای از rdfs:Literal می‌باشد.
 rdf:Property: همان کلاس ویژگی‌ها است.

ویژگی‌ها 
ویژگی‌ها نمونه‌هایی از کلاس rdf:Property هستند، و توصیف کننده یک رابطه بین منابع «فاعل» و «مفعول» هستند. در هنگام استفاده، این ویژگی‌ها «گزاره»  نامیده می‌شوند (جسمیت بخشی به RDF را ببینید).
 rdfs:domain برای یک rdf:Property، کلاس «فاعل» را در یک سه‌تایی اعلام می‌کند، که این ویژگی، «گزاره» آن است.
 rdfs:range برای یک rdf:Property، کلاس یا نوع‌داده «مفعول» را در یک سه‌تایی اعلام می‌کند، که این ویژگی «گزاره» آن است.

در مثال زیر، دو اعلامیه آمده‌است که از آن برای اعلام آنکه ویژگی ex:employer یک فاعل از نوع foaf:Person را به یک مفعول از نوع foaf:Organization مرتبط می‌کند:
''ex:employer➞ rdfs:domain ➞ foaf:Person''

''ex:employer➞ rdfs:range➞ foaf:Organization''
اگر دو اعلامیه قبل را داشته باشیم، از سه‌تایی زیر:
''ex:John➞➞ ex:employer➞ ex:CompanyX''
می‌توان استنتاج کرد که ex:John از نوع foaf:Person است و ex:CompanyX از نوع foaf:Organization است.
 rdf:type یک ویژگی است که از آن برای بیان آنکه یک منبع نمونه‌ای از یک کلاس است، استفاده می‌شود. یک شایسته‌نام بسیار معروف برای این ویژگی، "a" است.
 rdfs:subClassOf به ما امکان اعلام سلسله‌مراتبی از کلاس‌ها را می‌دهد.

مثال زیر جمله «هر انسان یک عامل است» را اعلام می‌کند:

foaf:Person➞ rdfs:subClassOf➞ foaf:Agent

در سلسله‌مراتب کلاس‌ها، ارث‌بری «دامنه و برد» ویژگی، از یک کلاس به زیرکلاس‌هایش، حفظ می‌شود (تعاریف بخش بعد را ببینید).
 rdfs:subPropertyOf نمونه‌ای از rdf:Property است که از آن برای بیان آنکه هر دو منبع مرتبط با یک ویژگی توسط دیگری هم مرتبط است استفاده می‌شود.
 rdfs:label یک نمونه از rdf:Property است، که از آن برای ایجاد ورژن انسان-خواندنی از نام منبع استفاده می‌شود.
 rdfs:comment نمونه ای از rdf:Property است که از آن برای ایجاد یک توصیف انسان-خواندنی از یک منبع استفاده می‌شود.

ویژگی‌های کاربردی 
 rdfs:seeAlso نمونه‌ای از rdf:Property است که از آن برای اعلام آنکه یک منبع، که ممکن است «اطلاعات اضافی» دربارهٔ منبع فاعل بدهد، استفاده می‌شود.
 rdfs:isDefinedBy یک نمونه از rdf:Property است که از آن برای اعلام آنکه یک منبع «تعریف کننده» منبع فاعل است استفاده می‌شود. از این ویژگی می‌توان برای اعلام یک دایره واژه RDF، که توسط آن یک منبع توصیف می‌شود، استفاده کرد.

مثال‌هایی از دایره‌واژه RDF 
دایره واژه‌های مردمی RDF که توسط RDF نمایش می‌یابد شامل:
 FOAF: منبع آن صفحه http://xmlns.com/foaf/spec/ که یک RDFS است که در نحو RDFa نوشته شده‌است.
 Dublin Core: یک منبع RDFS است که در چندین نحو در دسترس است.
 Schema.org: منبع صفحه http://schema.org/docs/schema_org_rdfa.html یک RDFS است که توسط نحو RDFa نوشته شده‌است.
 Simple Knowledge Organization System یا SKOS: در صفحه http://www.w3.org/TR/skos-reference/skos-xl.rdf که یک هستی‌شناسی OWL برای دایره واژه SKOS است، که از نحو OWL RDF/XML استفاده می‌کند، و از این نظر، از تعدادی از کلاس‌ها و ویژگی‌های RDFS استفاده می‌کند.

پیامد منطقی در RDFS 
یک نظام پیامد منطقی، با استفاده از RDFS (یا OWL و غیره)، نه تنها تعیین‌کننده نوع رابطه پیامد منطقی استفاده شده‌است، بلکه تعیین می‌کند که کدام پرسمانها یا گراف‌ها برای این نظام، خوش-فرم هستند. پیامد منطقی در RDFS، یک «رابطه پیامد منطقی استاندارد» در وب معنایی است.

کدهای مثال زیر اعلام می‌کنند که «Dog1 یک حیوان است»، «Cat1 یک گربه است»، «باغ‌وحش محل حیوانات است»، و «در zoo1 گربه Cat2 موجود است»:
ex:dog1 rdf:type ex:animal
ex:cat1 rdf:type ex:cat
zoo:host rdfs:range ex:animal
ex:zoo1 zoo:host ex:cat2
اما این گراف خوش-فرم نیست، زیرا این سامانه نمی‌تواند حدس بزند که "گربه یک حیوان است". اگر ما اعلامیه «گربه‌ها حیوان هستند» را اضافه کنیم، یک گراف خوش-فرم را خواهیم ساخت:
ex:cat rdfs:subClassOf ex:animal
در زیر مثال صحیح آمده‌است:

اگر تریپل‌استور (یا پایگاه داده RDF) نظام پیامد منطقی را برای RDF و RDFS پیاده‌سازی کرده باشد، پرسمان اسپارکل زیر (که در آن کلیدواژه "a" معادل rdf:type در اسپارکل است):
PREFIX ex: <http://example.org/>
SELECT ?animal
WHERE
  { ?animal a ex:animal . }نتیجه زیر را به دست می‌دهد: (دقت کنید که cat1 نیز در آن موجود هست، زیرا نوع Cat، نوع Animal را به ارث می‌برد)

پانویس

منابع 
 

آردی‌اف
استانداردهای وب
زبان‌های نمایش دانش
وب معنایی
استانداردهای ائتلاف وب جهان‌گستر