RDFS RDF היא שפה כללית אשר אפשרה לנו לתאר

RDFS RDF היא שפה כללית אשר אפשרה לנו לתאר






RDFS

RDFS

RDF היא שפה כללית אשר אפשרה לנו לתאר משאבים ע"י שימוש באוצר המילים שלנו, RDF לא הניחה שום דבר לגבי היקף אוצר המילים הספציפי שבו בחרנו להשתמש לצורך תיאור משאב מסוים, לצורך הוספת יכולת זו או למעשה לצורך הגבלת "אוצר המילים"- vocabulary אנו נשתמש בRDFS- RDF SCHEMA.

כלומר, למעשה כול מה שעשינו עד עכשיו בRDF היה למעשה תיאור של INSTANCES (מופעים) ספציפיים של משאבים.

לצורך יצירת סכמה אנו למעשה ניצור קובץ RDF מיוחד בו יש להוסיף בתחילתו את המזהה:

Xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#

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

הרעיון הכללי הוא הגדרת מחלקות וקישור בין מופעים ספציפיים למחלקות

כאשר מחלקה היא למעשה קבוצה של דברים עם תכונות/ מאפיינים וכן תחום DOMAIN וטווח RANGE משותפים. נא שימו לב כי תהליך בניית המחלקה שונה לוגית מהתהליך שהיינו עושים ב C# היינו בונים מחלקה ואז מכניסים לתוכנה את כול חלקיה כלומר מלמעלה למטה-top down approach כאן בRDFS הלוגיקה אחרת מתחילים מלמטה למעלה- bottom up approach כלומר מגדירים מחלקות ללא! תכולה ואח"כ מחברים תכונות למחלקות רלוונטיות.

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

מחלקה יכולה להיות קשורהRELATE למחלקה אחרת או יורשת INHERIT ממנה.

להלן טבלת רכיבים חשובים בהגדרת סכמת RDF

שם

משמעות

rdfs:Class

אלמנט אשר מגדיר קבוצה של דברים קשורים שחולקים תכונות תחומים וטווחים

rdfs:label

מאפיין אשר מגדיר תווית קריאה לאדם למחלקה

rdfs:subClassOf

אלמנט אשר מגדיר שמחלקה זו היא למעשה מקרה פרטי SPECIALIZATION של מחלקה יותר כללית

rdf:property

אלמנט אשר מגדיר תכונה של מחלקה ואת טווחו

rdfs:domain

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

rdfs:range

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

rdf:type

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

rdfs:subPropertyOf

תכונה שמגדירה שנושא של תכונה הוא תת תכונה של תכונה אחרת קיימת

rfds:seeAlso

תכונת שירות אשר מאפשרת להגדיר קשר למסמך RDF שכולל מידע רלוונטי נוסף לגבי מרחב השמות הנוכחי

rdfs:isDefinedby

תכונה אשר מגדירה את טווח השמות של נושא זוהי תת תכונה של rdfs:seeAlso בד"כ משתמשים בזה בשביל לקשר למסמך RDFS

rdfs:comment

תכונת שירות אשר מוסיפה מידע תיאורי- הערה על המחלקה ומאפייניה

rdfs:literal

תכונה אשר שמייצגת מחרוזת ערך קבוע

rdfs:XMLiteral

תכונה אשר מייצגת ערך קבוע במבנה XMLי





תהליך העבודה ליצירת קובץ RDFS:

לפני תחילת הכתיבה יש לקבוע מהם המחלקות ומהם התכונות של המחלקה,

בעיקרון נקבע כמחלקה כול דבר שנרצה לדבר עליו בקובץ נתוני RDF כמשאב בקטע rdf:Description אשר בתוכו יהיה קישור למחלקה בעזרת rdf:type , כול שאר הדברים יהיו תכונות של המחלקה.



הערה חשובה:

נניח כי יש לנו פרטי מידע אלו: עמיחי פיגנבוים אשר מזה שלו הוא 1234 מלמד קורס ניהול אתרים מזהה 3586601

כמן כן נתונה לנו מחלקה בשם Course ותכונות של המחלקה: coursename ו istaughtby

ניתן ב2 דרכים לכתוב השימוש בה בRDF:

<rdf:description rdf:ID="crs3586601">

<rdf:type rdf:resource="#Course"/>

<uni:coursename>site admins</uni:coursename>

<uni:istaughtby rdf:resource="#lctr1234"/>

</rdf:description>

או לחילופין במקוצר:

<uni:course rdf:ID="crs3586601" uni:coursename="site admins">

<uni:istaughtby rdf:resource="#lctr1234"/>

</uni:course>

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

דוגמא לשימוש בSUBCLASSOF:

<rdfs:Class rdf:ID="animal" />
<rdfs:Class rdf:ID="horse">
  <rdfs:subClassOf rdf:resource="#animal"/>
</rdfs:Class>

כול יכולות הRDF שהכרנו כגון האוספים, הראיפיקציה גם מוכרים בRDFS



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

מניתוח השאלה עולה לפחות חלוקה זו:

מרצים: שם מרצה

קורס: הפרטים: כותר קורס מרצה ושנה ומזהה

סטודנט: שם משפחה, שם פרטי, אימייל ומזהה

לימודי סטודנט בקורס: מזהה סטודנט, מזהה קורס וציון.

דוגמה למסמך שכולל RDFS וכן נתונים אשר משתמשים בה:

<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:uni="http://www.computing-services.co.il"
xml:base="http://www.computing-services.co.il">

<rdfs:Class rdf:ID="Student">
<rdfs:comment>
the class of Student
</rdfs:comment>
</rdfs:Class>
<rdf:Property rdf:ID="Fname">
<rdfs:comment>
Student first name property of student
</rdfs:comment>
<rdfs:domain rdf:resource="#Student"/>
<rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
</rdf:Property>
<rdf:Property rdf:ID="Lname">
<rdfs:comment>
Student last name property of student
</rdfs:comment>
<rdfs:domain rdf:resource="#Student"/>
<rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
</rdf:Property>
<rdf:Property rdf:ID="Email">
<rdfs:comment>
Student Email property of student
</rdfs:comment>
<rdfs:domain rdf:resource="#Student"/>
<rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
</rdf:Property>

<rdfs:Class rdf:ID="Lecturer">
<rdfs:comment>
the class of Lecture
</rdfs:comment>
</rdfs:Class>
<rdf:Property rdf:ID="Name">
<rdfs:comment>
lecture name property 
</rdfs:comment>
<rdfs:domain rdf:resource="#Lectruer"/>
<rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
</rdf:Property>

<rdfs:Class rdf:ID="Course">
<rdfs:comment>
the class of Course
</rdfs:comment>
</rdfs:Class>
<rdf:Property rdf:ID="Title">
<rdfs:comment>
Course Title property of Course
</rdfs:comment>
<rdfs:domain rdf:resource="#Course"/>
<rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
</rdf:Property>
<rdf:Property rdf:ID="CourseLecturer">
<rdfs:comment>
Course Lecture property of Course
</rdfs:comment>
<rdfs:domain rdf:resource="#Course"/>
<rdfs:range rdf:resource="#Lecturer"/>
</rdf:Property>
<rdf:Property rdf:ID="Year">
<rdfs:comment>
Course Year property of Course
</rdfs:comment>
<rdfs:domain rdf:resource="#Course"/>
<rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
</rdf:Property>

<rdfs:Class rdf:ID="StudentCourses">
<rdfs:comment>
the courses taken by the student
</rdfs:comment>
</rdfs:Class>
<rdf:Property rdf:ID="StudentId">
<rdfs:comment>
Student id  property of Student Courses
</rdfs:comment>
<rdfs:domain rdf:resource="#StudentCourses"/>
<rdfs:range rdf:resource="#Student"/>
</rdf:Property>
<rdf:Property rdf:ID="CourseId">
<rdfs:comment>
Course id property of Student Courses
</rdfs:comment>
<rdfs:domain rdf:resource="#StudentCourses"/>
<rdfs:range rdf:resource="#Course"/>
</rdf:Property>
<rdf:Property rdf:ID="Grade">
<rdfs:comment>
Grade property of Student Courses
</rdfs:comment>
<rdfs:domain rdf:resource="#StudentCourses"/>
<rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
</rdf:Property>

<uni:Student rdf:ID="std01">
<uni:Fname>
ploni
</uni:Fname>
<uni:Lname>
almoni
</uni:Lname>
<!--
<uni:doel>
[email protected]
</uni:doel> --> 
<uni:Email>
[email protected]
</uni:Email>
</uni:Student>

<uni:Lecture rdf:ID="lctr01">
<uni:Name>
Amichai feigenboim
</uni:Name>
</uni:Lecture>

<uni:Course rdf:ID="crs01">
<uni:Title>
Semantic Web
</uni:Title>
<uni:CourseLecturer rdf:resource="#lctr01"/>
</uni:Course>

<uni:StudentCourses rdf:ID="std01crs01">
<uni:StudentId rdf:resource="#std01"/>
<uni:CourseId rdf:resource="#crs01"/>
<uni:Grade>
90
</uni:Grade>
</uni:StudentCourses> 

</rdf:RDF>

תרגיל כיתה 1:

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

  2. נא הוסיפו עוד 2 מרצים, 3 קורסים , יש להוסיף לסטודנט הקיים עוד קורס, ולהוסיף עוד סטודנט עם 3 קורסים





תרגיל כיתה 2:

מצ"ב תרשים מפורט למבנה RDFS ופריט מידע RDF נא ליצר אותו:

RDFS RDF היא שפה כללית אשר אפשרה לנו לתאר



תרגיל כיתה 3:

להלן תרשים ללא פרטים- באילו רכיבים להשתמש נא תרגמו אותו לRDFS בלבד.

RDFS RDF היא שפה כללית אשר אפשרה לנו לתאר





7






Tags: אפשרה לנו, אפשרה, כללית