• 0
samer985

(الانتولوجيا ) Ontology

سؤال

بســم الله الـرحمــن الرحيــم

السلام عليكم و رحمة الله و بركاته

من دون مقدمات :

أريد بناء ontology بسيطة حول أي موضوع كيف يمكن الاستفادة من java في ذلك و هل من حلول أخرى

لكم جزيل الشكر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

54 إجابة على هذا السؤال .

  • 0

السلام عليكم

هناك مكتبة تدعى jena للتعامل مع الأونتولوجيات المكتوبة بلغات RDF/S و OWL

RDF Tutorial

http://bat710.univ-lyon1.fr/~champin/rdf-tutorial/

Tutorial on OWL

http://www.cs.man.ac.uk/~horrocks/ISWC2003/Tutorial/

Jena

http://jena.sourceforge.net/

An Introduction to RDF and the Jena RDF API

http://jena.sourceforge.net/tutorial/RDF_API/index.html

Jena Ontology API

http://jena.sourceforge.net/ontology/index.html

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بســم الله الـرحمــن الرحيــم

كل الشكر لك أخ أبو خالد السوري

الرجاء أن تكمل معروفك

أريد مثال بسيط على بناء أنطولوجيا مع الأدوات اللازمة و كل ما لديك عن الموضوع

كل الشكر مرة ثانية

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ياليت لو تكتب لنا نبذة اخي سامر عن ontology ؟ (اريدها من وجهه نظرك انت الشخصية وليس من الانترنت)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكــم ورحمـة الله وبركاتــه

الأخ العزيز مجلد جديد

هل الغاية من هذا السؤال هي الأستفهام أم الاختبار أم الاستنكار

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكــم ورحمـة الله وبركاتــه

بســم الله الـرحمــن الرحيــم

الأونتولوجيا هي توصيف رسمي (formal) لمجال معين (domain) من خلال تحديد المفاهيم الخاصة به (concepts) و صفاتها (attributes) و العلاقات بين هذه المفاهيم (relations). تكون المفاهيم عادة منظمة بشكل هرمي (hierarchy) بحسب علاقة التعميم و التخصيص (generalization/specialization) بين هذه المفاهيم. في هذه الهرمية يكون المفهوم الخاص ابناً للمفهوم الأعم منه. مثلاً : "الطالب" هو "إنسان" و "الإنسان" هو "كائن حي" (المفهوم "طالب" هو ابن المفهوم "إنسان" و الذي بدوره ابن المفهوم "كائن حي"). جميع المفاهيم هي ضمناً أبناء للمفهوم "شيء" Thing.

لنأخذ مثال بسيط جداً للأونتولوجيا المبينة بالشكل التالي. هذه الأونتولوجيا تتكون من خمس مفاهيم:

Person, Student, Professor, Diploma, Module

المفهومان Student و Professor هما ابنان للمفهوم Person

المفهوم Person له الواصفات التالية: الاسم personName (من النمط string) و العمر age (من النمط integer) و البريد الالكتروني email (من النمط string)

في الأونتولوجيا صفات الآباء يرثها الأبناء. و بالتالي واصفات Person يرثها أبناؤه Student و Professor ضمنياً.

المفهوم Student يملك واصفة إضافية هي studentNumber .

المفهوم Module يملك الواصفة moduleName . المفهوم Diploma يملك الواصفة diplomaName .

المفهوم Student يرتبط بالمفهوم Diploma من خلال العلاقة enrolledIn (مُسجل في). يسمى المفهوم Student منطلق (domain) العلاقة enrolledIn في حين أن مستقرها (range) هو المفهوم Diploma .

الواصفات أيضاً لها منطلق و مستقر. المنطلق هو المفهوم المالك للواصفة و المستقر هو نمط بيانات هذه الواصفة (datatype).

العلاقة teach تربط بين Professor و Module أي تحدد لكل مدرس المقررات التي يدرسها, بينما العلاقة taughtBy هي معاكسة لها (inverse) و هي تربط بين Module و Professor و تحدد لكل مقرر من هم المدرسون الذين يدرسونه.

أخيراً العلاقة hasModule تربط المفهوم Diploma بالمفهوم Module (تحدد لكل شهادة المقررات التي تتضمنها).

post-152370-1234569552_thumb.png

هناك لغات عديدة لوصف الأونتولوجيا. أحدثها و أشهرها و أكثرها استخداماً هي OWL (Web Ontology Language).

http://www.w3.org/TR/owl-features/

لن أدخل في تفاصيل هذه اللغة لأنها واسعة جداً.

أريد فقط الإشارة إلى أن المفهوم يعبر عنه باستخدام owl:Class

الواصفة يعبر عنها باستخدام owl:DatatypeProperty

العلاقة يعبر عنها باستخدام owl:ObjectProperty

علاقة الابن بأبيه يعبر عنها باستخدام rdfs:subClassOf

المنطلق يشار له باستخدام rdfs:domain

و المستقر يشار له باستخدام rdfs:range

owl:FunctionalProperty هي حالة خاصة من العلاقات يكون فيها لكل عنصر من المنطلق مقابل واحد على الأكثر في المستقر (هي نفسها التابع أو الدالة في الرياضيات) .

فيما يلي ترميز الأونتولوجيا السابقة بلغة OWL :

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:my="http://www.something.com/myontology#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:daml="http://www.daml.org/2001/03/daml+oil#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<owl:Ontology rdf:about="http://www.something.com/myontology"/>
<owl:Class rdf:about="http://www.something.com/myontology#Student">
<rdfs:subClassOf>
<owl:Class rdf:about="http://www.something.com/myontology#Person"/>
</rdfs:subClassOf>
</owl:Class>
<owl:Class rdf:about="http://www.something.com/myontology#Diploma"/>
<owl:Class rdf:about="http://www.something.com/myontology#Module"/>
<owl:Class rdf:about="http://www.something.com/myontology#Professor">
<rdfs:subClassOf rdf:resource="http://www.something.com/myontology#Person"/>
</owl:Class>
<owl:ObjectProperty rdf:about="http://www.something.com/myontology#hasModule">
<rdfs:range rdf:resource="http://www.something.com/myontology#Module"/>
<rdfs:domain rdf:resource="http://www.something.com/myontology#Diploma"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="http://www.something.com/myontology#teach">
<owl:inverseOf>
<owl:ObjectProperty rdf:about="http://www.something.com/myontology#taughtBy"/>
</owl:inverseOf>
<rdfs:range rdf:resource="http://www.something.com/myontology#Module"/>
<rdfs:domain rdf:resource="http://www.something.com/myontology#Professor"/>
</owl:ObjectProperty>
<owl:DatatypeProperty rdf:about="http://www.something.com/myontology#email">
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
<rdfs:domain rdf:resource="http://www.something.com/myontology#Person"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="http://www.something.com/myontology#studentNumber">
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
<rdfs:domain rdf:resource="http://www.something.com/myontology#Student"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="http://www.something.com/myontology#diplomaName">
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
<rdfs:domain rdf:resource="http://www.something.com/myontology#Diploma"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="http://www.something.com/myontology#moduleName">
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
<rdfs:domain rdf:resource="http://www.something.com/myontology#Module"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="http://www.something.com/myontology#personName">
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
<rdfs:domain rdf:resource="http://www.something.com/myontology#Person"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="http://www.something.com/myontology#age">
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/>
<rdfs:domain rdf:resource="http://www.something.com/myontology#Person"/>
</owl:DatatypeProperty>
<owl:FunctionalProperty rdf:about="http://www.something.com/myontology#enrolledIn">
<rdfs:domain rdf:resource="http://www.something.com/myontology#Student"/>
<rdfs:range rdf:resource="http://www.something.com/myontology#Diploma"/>
</owl:FunctionalProperty>
</rdf:RDF>

من أشهر الأدوات مفتوحة المصدر لبناء الأونتولوجيا هي Protégé من جامعة ستانفورد - كاليفورنيا

http://protege.stanford.edu/

لست هنا بصدد الحديث عن هذه الأداة , و لكن فيما يلي درس تعليمي عنها بشكل مختصر و مفيد:

http://protege.stanford.edu/publications/o...ontology101.pdf

من أجل بناء الأونتولوجيا في java باستخدام مكتبة Jena , يجب أولاً تحميلها من الموقع التالي :

http://jena.sourceforge.net/downloads.html

و من ثم تضمين كل ملفات jar في برنامج الـ java .

فيما يلي برنامج java لبناء الأونتولوجيا السابقة باستخدام Jena :

import java.io.StringWriter;

import com.hp.hpl.jena.ontology.DatatypeProperty;
import com.hp.hpl.jena.ontology.ObjectProperty;
import com.hp.hpl.jena.ontology.OntClass;
import com.hp.hpl.jena.ontology.OntModel;
import com.hp.hpl.jena.ontology.OntModelSpec;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.vocabulary.OWL;
import com.hp.hpl.jena.vocabulary.XSD;

public class JenaTest {

public static void main(String[] args) {

OntModel model = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM);

String uriBase = "http://www.something.com/myontology";
model.createOntology(uriBase);

model.setNsPrefix("my",uriBase+"#");

// create classes
OntClass person = model.createClass(uriBase+"#Person");
OntClass module = model.createClass(uriBase+"#Module");
OntClass diploma = model.createClass(uriBase+"#Diploma");
OntClass student = model.createClass(uriBase+"#Student");
OntClass professor = model.createClass(uriBase+"#Professor");

// set sub-classes
person.addSubClass(student);
person.addSubClass(professor);

// create datatype properties
DatatypeProperty personName = model.createDatatypeProperty(uriBase+"#personName");
personName.setDomain(person); personName.setRange(XSD.xstring);

DatatypeProperty age = model.createDatatypeProperty(uriBase+"#age");
age.setDomain(person); age.setRange(XSD.integer);

DatatypeProperty email = model.createDatatypeProperty(uriBase+"#email");
email.setDomain(person); email.setRange(XSD.xstring);

DatatypeProperty studentNumber = model.createDatatypeProperty(uriBase+"#studentNumber");
studentNumber.setDomain(student); studentNumber.setRange(XSD.xstring);

DatatypeProperty diplomaName = model.createDatatypeProperty(uriBase+"#diplomaName");
diplomaName.setDomain(diploma); diplomaName.setRange(XSD.xstring);

DatatypeProperty moduleName = model.createDatatypeProperty(uriBase+"#moduleName");
moduleName.setDomain(module); moduleName.setRange(XSD.xstring);

// create object properties
ObjectProperty teach = model.createObjectProperty(uriBase+"#teach");
teach.setDomain(professor); teach.setRange(module);

ObjectProperty taughtBy = model.createObjectProperty(uriBase+"#taughtBy");
taughtBy.setDomain(module); taughtBy.setRange(professor);

ObjectProperty enrolledIn = model.createObjectProperty(uriBase+"#enrolledIn");
enrolledIn.setDomain(student); enrolledIn.setRange(diploma);

ObjectProperty hasModule = model.createObjectProperty(uriBase+"#hasModule");
hasModule.setDomain(diploma); hasModule.setRange(module);

// set inverse properties
teach.setInverseOf(taughtBy);

// set functional properties
enrolledIn.setRDFType(OWL.FunctionalProperty);

// write out the model
model.write(System.out,"RDF/XML-ABBREV");

// write the model to a string
StringWriter sw = new StringWriter();
model.write(sw,"RDF/XML-ABBREV");
String owlCode = sw.toString();
// ...
}

}

4

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
السلام عليكــم ورحمـة الله وبركاتــه

الأخ العزيز مجلد جديد

هل الغاية من هذا السؤال هي الأستفهام أم الاختبار أم الاستنكار

:D

لا اخي العزيز ، الغاية ليست الاختبار ولا الاستنكار :)

اردت فقط ان اخذ فكرة بسيطة عن ontology منك انت ، لانه غالبا عندما يسأل احد بمثل هذه النوعية من الاسئلة فان الجواب يكون رابط لموقع او wikipedia ويكون الجواب مفصل جداً ولا استطيع قراءة كاملاً.

فاردت ان اخذ منك اجابة صغيرة عن ontology :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بســم الله الـرحمــن الرحيــم

مشكور اخ أبو خالد السوري .... بالسوري (الله يعطيك العافيه)

الأخ مجلد جديد وصلك الرد و عذرا على الأسلوب السابق

الأسبوع الماضي ما كان عندي نت و أسف على التأخر في الرد

يتبـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــع

كيف يمكن تكييف مفهوم oop في خدمة ال ontology

هل البرمجة غرضية التوجه هي الأساس الذي بني عليه مفهوم الأنتولوجيا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

كيف يمكن تكييف مفهوم oop في خدمة ال ontology

هل البرمجة غرضية التوجه هي الأساس الذي بني عليه مفهوم الأنتولوجيا

One point to note is that ontology is not equivalent to object-oriented programming. Although the terms in OOP have been derived from research in AI, the OOP environment is suited for programming and is thus built according to programming conventions and practice.

http://www.cs.bilkent.edu.tr/~erayo/ontolo...background.html

بالرغم من أن كلا المفهومين : الأونتولوجيا و البرمجة غرضية التوجه متشابهان من حيث أسلوب النمذجة ..

حيث كليهما يعتمدان على الصفوف و الأغراض و الوراثة ..

إلا أنهما مفهومان مختلفان تماماً .. من حيث الغاية و الهدف و التفاصيل ..

الغاية من الأونتولوجيا هي مجرد توصيف لمجال مفاهيمي معين بشكل مستقل عن أي تطبيق (لا علاقة لها بالبرمجة) .. و بالتالي الهدف منها هو فهم هذا المجال و عناصره بشكل متفق عليه من قبل عدة أطراف ..

البرمجة غرضية التوجه هي أسلوب في البرمجة , و الغاية منها هي بناء البرامج بشكل غرضي التوجه بالاعتماد على تغليف الإجرائيات (الوظائف) في صفوف .. أي أن الهدف هو برنامج .. أي تطبيق .. أي تنفيذ لعمليات معينة ..

في الأونتولوجيا ليس هناك وجود لمفهوم الوظائف أو التنفيذ ..

بل يمكنك اعتبارها نموذج بيانات ساكن (static data model) مبني بشكل واضح و صريح ..

الأونتولوجيا هي أقرب لأن تكون قاعدة بيانات أكثر من أن تكون أسلوب في البرمجة ..

كمبرمج يمكنك تصور الأونتولوجيا على أنها قاعدة بيانات بدون بيانات (أو بكمية صغيرة جداً من البيانات) .. إذ أن الغاية منها توصيف المعلومات و ليس تخزينها ( كقاعدة البيانات) و ليس معالجتها (كالبرمجة) ..

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بســم الله الـرحمــن الرحيــم

ألف شكر الأخ العزيز أبو خالد ... ممكن لمحة عن عملك و شهاداتك .

الرد منطقي و كنت أحاول ايجاد العلاقة بين oop و ontology كمفهوم عام و أسلوب للعمل

ما مدى معرفتك بموضوع الانطولوجيا و منذ متى

هل يوجد لديك تطبيق بسيط يقوم بالاستفادة من الانطولوجيا المبنية سابقا

في protege هل يمكن تصدير الانطولوجيا المبنية الى صيغة jena

عذرا على الاطالة و انتظر الرد

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
ممكن لمحة عن عملك و شهاداتك .

http://raji.ghawi.free.fr/index.html

ما مدى معرفتك بموضوع الانطولوجيا و منذ متى

موضوع رسالة الدكتوراة التي أعمل عليها (من ثلاث سنوات و نصف) هو تعاون نظم المعلومات بالاعتماد على الأونتولوجيا

.. للاطلاع على موضوع البحث يمكنك الإطلاع على المقالة التالية :

http://raji.ghawi.free.fr/files/publications/OWSCIS.pdf

هل يوجد لديك تطبيق بسيط يقوم بالاستفادة من الانطولوجيا المبنية سابقا

لا ..

على كل حال .. خذ وقتك في قراءة المقالة التالية للتعرف على الاستخدامات الرئيسية للأونتولوجيا ..

http://ebiz.u-aizu.ac.jp/~paikic/lecture/2...logies-AiAi.pdf

في protege هل يمكن تصدير الانطولوجيا المبنية الى صيغة jena

لا أعتقد ..

هناك محاولات لمكاملة jena مع protégé :

http://protege.stanford.edu/plugins/owl/je...ntegration.html

و لكن هذه المحاولات لا يمكنها تصدير الأونتولوجيا إلى jena

على كل حال يمكنك في protégé الحصول على ترميز الأونتولوجيا بلغة OWL

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ألأخ العزيز أبو خالد بعد التحية و السلام

وجدت مايلي... لذا أرجو الإطلاع و التفضل بالرد و لكم كل التقدير و الاحترام

The table below clarifies concepts used with

object-oriented programming languages and frame-based ontology languages.

Programming languages Ontology languages

software development ontologization

programmer ontologist

class class, category, frame

variable property, attribute, slot, field

object instance, individual

value of variable value of property, attribute, slot, field

type of variable range or facet of property, attribute, slot, field

class that contains the variable domain of property, attribute, slot, field

Ontology-Based Image Annotation and Retrieval

Avril Styrman

pdf

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

و الله شي بيرفع الراس ياابو خالد

أتمنى لكم كل التوفيق

و العودة القريبة إلى الوطن إنشاالله مع شهادة دكتوراه بأحسن تقدير

على فكرة انا طالب سنة خامسة في كلية الهندسة المعلوماتية و أتمنى التواصل الدائم

سلام

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

تصحيح الرد السابق خطأ في التنسيق

The table below clarifies concepts used with

object-oriented programming languages and frame-based ontology languages.

Programming languages Ontology languages

software development ontologization

programmer ontologist

class class, category, frame

variable property, attribute, slot, field

object instance, individual

value of variable value of property, attribute, slot, field

type of variable range or facet of property, attribute, slot, field

class that contains the variable domain of property, attribute, slot, field

Ontology-Based Image Annotation and Retrieval

Avril Styrman

pdf

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أين انت يا ابو خالد

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أهلاً بك أخي سامر

شكراً لك .. و أنا بدوري أتمنى لك التوفيق في دراستك ..

و أن شاء الله بنشوفك قريباً مهندس قد الدنيا ..

آسف على التأخر في الرد ..

post-152370-1235911184_thumb.png

كما هو واضح الكاتب يقابل بين عناصر لغات البرمجة و عناصر لغات الأونتولوجيا ..

تطوير البرمجية يقابل تطوير الأونتولوجيا

المبرمج يقابل مهندس الأونتولوجيا (ontologist)

الصف في البرمجة يقابل المفهوم في الأونتولوجيا (يسمى صف, فئة , أو إطار)

المتحول في البرمجة يقابل الواصفة في الأونتولوجيا (تسمى خاصية, أو حقل)

الأغراض في البرمجة تقابل الأفراد في الأونتولوجيا

قيمة المتحول تقابل قيمة الواصفة

نمط المتحول يقابل مستقر الواصفة

الصف الحاوي للمتحول يقابل منطلق الواصفة

- على ما يبدو ما يقصده الكاتب بالمتحول ليس المتحول بالمعنى العام في البرمجة .. و إنما صفات الصف (attributes) ..

- لم يشر الكاتب في هذه المقارنة إلى العلاقات بين المفاهيم (object properties) ..

هذه العلاقات تقابل في البرمجة الغرضية التوجه الصفة من صفات الصف التي يكون نمطها هو صف آخر ..

بناءاً على ما سبق يمكننا التعبير عن أونتولوجيتنا السابقة بالبرمجة الغرضية التوجه (java) بالشكل التالي :

class Person {
String personName;
int age;
String email;
}
class Student extends Person {
String studentNumber;
Diploma enrolledIn;
}
class Professor extends Person {
Module teach;
}
class Diploma {
String diplomaName;
Module hasModule;
}
class Module {
String moduleName;
Professor taughtBy;
}

من الملاحظ أنه ليس هناك في الـ oop ما يسمح بالتعبير عن كون علاقتين متعاكستين ..

مثلاً .. لا يمكننا التعبير أنه إذا كان البروفسور X يدرس المادة Y فإن المادة Y تُدرس من قبل X

بينما يمكننا التعبير عن هذا في الأونتولوجيا باستخدام inverseOf

ينبغي الانتباه أيضاً إلى أن العلاقات بين المفاهيم في الأونتولوجيا هي علاقات متعددة القيم (multi-valued) .. إذا لم يشار إلى عكس ذلك صراحة (single-valued) من خلال التصريح عن العلاقة باستخدام FunctionalProperty بدلاً من ObjectProperty ..

هذا يعني على سبيل المثال أن المدرس X يدرس عدة مواد و ليس مادة واحدة فقط .. و أن المادة Y تدرس من قبل عدة مدرسين و ليس مدرس واحد فقط .. و بالتالي هذا يفرض علينا إعادة كتابة الصفوف السابقة و استبدال الصفات المعبرة عن العلاقات متعددة القيم بمصفوفة أو متجهة ..

class Person {
String personName;
int age;
String email;
}

class Student extends Person {
String studentNumber;
Diploma enrolledIn;
}

class Professor extends Person {
Vector<Module> teach;
}

class Diploma {
String diplomaName;
Vector<Module> hasModule;
}

class Module {
String moduleName;
Vector<Professor> taughtBy;
}

ملاحظة أخيرة هي أن لغة OWL ترتكز على فرضية العالم المفتوح (open world assumption) .. أي أننا لا يمكننا افتراض أننا نعرف كل المعلومات عن المجال. و بالتالي عدم توفر معلومة معينة لا يعني نفيها ..

مثلاً إذا لم نكن قادرين على إثبات أن X هو فرد (individual) من الصف Y .. فهذا لا يعني أنه ليس فرداً منه ..

مثال آخر : التصريح عن صفين مختلفين X و Y لا يعني بالضرورة أنهما منفصلان (disjoint) .. ( منفصلين يعني أنهما لا يمتلكان أفراد مشتركة ) ..

في أونتولوجيتنا السابقة لا يمكننا القول أن المدرس لا يمكن أن يكون طالب لأننا لم نصرح أن هذين المفهومين منفصلين

للقيام بذلك (للتصريح أن Professor وStudent مفهومان منفصلان) نستخدم owl:disjointWith

<owl:Class rdf:ID="Professor">
<rdfs:subClassOf rdf:resource="#Person"/>
<owl:disjointWith rdf:resource="#Student"/>
</owl:Class>

بالمقابل , قواعد البيانات و البرمجة الغرضية التوجه ترتكزان على فرضية العالم المغلق (closed world assumption) أو النفي عند الفشل (negation as failure) .. هذا يعني أننا نفترض أننا نعرف كل المعلومات عن المجال. و بالتالي عدم توفر معلومة معينة يعني نفيها ..

مثلاً في البرمجة , إذا كان x غرضاً من الصف Professor فهذا يعني بشكل افتراضي أنه ليس غرضاً من Student ..

و الله أعلم

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بالمناسبة

ما هي طبيعة العلاقة بين دراستك أو عملك بالأونتولوجيا ؟

أي ماذا تحتاج بالضبط من الأونتولوجيا ؟؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

جاري الرد....جاري الرد

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الخ العزيز أبو خالد

بعد التحية و السلام:

في البداية أنا لا أدافع عن فكرة التطابق بين الأنتولوجيا و البرمجة غرضية التوجهةكل ما احاول

البحث عنه محاولة الاستفادة من المفهوم الغرضي التوجيه لتسهيل فهم الانتولوجيا على المبرمجين

جميعا . فعندما تتحدث عن الانتولوجيا و تشرحها للوهلة الأولى تكون صعبة الفهم و لكن عندما تبني

على معارف الشخص السابقة و التي هي البرمجة غرضية التوجه تبدو الأمور أكثر ألفة.

كما أشرت بداية لست مدافعا ولكن مستفسرا أقول ما قلت و أتمنا منكم الصبر على ضحالة معلوماتي

في هذا الموضوع فقد بدأت به منذ ثلاث أسابيع و نصف...

المثالين المذكورين جميلين و نسهل الفهم على الجميع عندما نقول الأنتولوجيا مشابه للمفهوم غرضي التوجه

و فيها بعض الإضافات مثل التعبير عن علاقتين متعاكسين و التعبير عن العلاقة المتعددة و التي يمكن التغلب

عليها من خلال الوراثة في البرمجة غرضية التوجه....

من خلال معلوماتي المتواضعة في التعليم و التعلم و نظرياتها المتعددة أرى أنه من السهل و الممتع الاستفادة

من معرفة سابقة من اجل اكساب معرفة جديدة و التي تكون على شكل هرم مقلوب...

؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

المهم

هل هناك IDE بيئة تطوير متكاملة تجعلني أكتب أنتولوجي باستخدام rdf و من ثم اترجمها مثل باقي لغات البرمجة

و تدلني على مواقع الخطأ

أي كيف اتعلم rdf وowl من الصفر

أيضا:

كيف يمكن القيام بمساوات و دمج و تكامل و تقسيم ال ontologys

مع كل التقدير...

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكــم ورحمـة الله وبركاتــة ،،

هل هناك IDE بيئة تطوير متكاملة تجعلني أكتب أنتولوجي باستخدام rdf و من ثم اترجمها مثل باقي لغات البرمجة

و تدلني على مواقع الخطأ

أي كيف اتعلم rdf وowl من الصفر

(1) مع Protégé يمكنك :

1- بناء أونتولوجيا (rdf أو owl) بشكل يدوي أي إنشاء المفاهيم و العلاقات بينها ..

ثم استعراض الكود ..

2- بناء أونتولوجيا من خلال تحميل كود rdf أو owl مكتوب سلفاً ..

(يمكنك استخدام هذه الطريقة للتدرب على كتابة كود rdf و owl ..

حيث يمكنك التأكد من صحة الكود الذي كتبته من خلال تحميله في protégé )

في كلا الحالاتين يتيح protégé الاستعراض البياني للأونتولوجيا من خلال الـ plugin المسماة Jambalaya

post-152370-1235995012_thumb.png

(2) يمكنك كتابة كود rdf في أي محرر نصوص (في notepad مثلاً)

ثم التأكد من صحته .. و معرفة الأخطاء إن وجدت .. من خلال تفحصه online عبر خدمة RDF Validation Service من منظمة W3C

http://www.w3.org/RDF/Validator/

أنصح بالاطلاع على الكتاب التالي .. ففيه كل تفاصيل لغتي RDF و OWL

Ontological Engineering

By: Asuncion Gomez-Perez, Oscar Corcho, Mariano Fernandez-Lopez

ISBN: 1852335513

Publisher: Springer - 2004

انظر الصفحات 62 - 66 و 259 - 267 بخصوص RDF

و الصفحات 75 - 81 و 283 - 294 بخصوص OWL

----

الكتاب التالي قد يكون مفيداً أيضاً (لم أطلع عليه) ..

Practical RDF

By: Shelley Powers

ISBN: 0596002637

Publisher: O'Reilly Media - 2003

------------------------------

يتبع ..

كلمة السر gigapedia

:wink:

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم و رحمة الله و بركاته

أرجو المساعدة في تحميل ال plugin

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الـ plugin مدمج مع protégé

لاستعراضه اختر الأمر configure من القائمة project

post-152370-1236123014_thumb.png

ثم اختر الـ plugin الذي تريد من التبويب tab widget

post-152370-1236123028_thumb.jpg

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
كيف يمكن القيام بمساواة و دمج و تكامل و تقسيم ال ontologys

بدأنا ندخل في الجد

هذه المسائل واسعة جداً و لا تزال مفتوحة أمام الباحثين ..

سنستعرض إن شاء الله موضوع مساواة / مقابلة الأونتولوجيا

ontology matching أو ontology mapping

ثم موضوع دمج و تكامل الأونتولوجيا

ontology merging أو ontology integration

أما تقسيم الأونتولوجيا

فلم أسمع بشيء بهذا الاسم !!

تم تعديل بواسطه أبو خالد السوري
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

المقابلة بين الأونتولوجيات

ontology matching / ontology mapping

المقابلة بين أونتولوجيتين هي عملية تحديد التوافقات (correspondances) بين المكونات (المفاهيم , الواصفات , العلاقات) المتقاربة دلالياً في هاتين الأونتولوجيتين ..

و بالتالي هي عملية مد جسور دلالية (semantic bridges)

من مكونات الأونتولوجيا الأولى إلى مكونات الأونتولوجيا الثانية ..

كما في الشكل التالي :

post-152370-1236124100_thumb.jpg

عادة ما تكون الغاية من هذه العملية تحويل (transform) أفراد (individuals/instances) أونتولوجيا مصدرية (source ontology) إلى أفراد في أونتولوجيا هدف (target ontology)

للجسر الدلالي عدة أبعاد :

1) البعد الكائناتي (entity dimension) :

يحدد طبيعة الكائنات على طرفي الجسر .. هل هي مفاهيم (جسر بين مفهومين) أم واصفات أم علاقات ..

2) البعد العددي (cardinality dimension)

يحدد عدد الكائنات على طرفي الجسر ..

و بالتالي هناك جسور واحد لواحد (one-to-one) ,

واحد لكثير (one-to-many) , (مثلاً الجسر بين الواصفة name و واصفتين first_name و last_name)

و كثير لكثير (many-to-many)

3) البعد البنيوي (structural dimension)

يحدد طبيعة العلاقة بين الجسر و الجسور الأخرى ..

و التي قد تكون علاقة تخصيص (specialization) (الجسر X حالة خاصة من الجسر Y , أي ابن له)

أو تجريد (abstraction) أو تركيب (composition) (الجسر X مركب من جسرين Y و Z)

4) بعد القيود (constraint dimension)

يحدد طبيعة القيود المطبقة على الجسر (شروط منطقية)

مثلاً الجسر بين X و Y يتم تطبيقه في حال تحقق الشرط Z

5) بعد التحويلات (transformation dimension)

يحدد طبيعة التحويلات (الدوال) المطبقة على طرف الجسر الأول للحصول على الطرف الثاني

مثلاً الجسر الواصل بين الواصفتين temperature في أونتولوجيتين الأولى تعتمد مقياس Fahrenheit و الثانية مقياس Celsius سيحوي دالة التحويل التالية :

Celsius = ( 5 / 9 ) * ( Fahrenheit - 32 )

في الأدبيات , غالبية الطرق المقترحة لحل مشكلة المقابلة بين الأونتولوجيات هي طرق يدوية (manual) ..

أي الوصل اليدوي بين مكونات الأونتولوجيا الأولى و مقابلاتها من مكونات الأونتولوجيا الثانية ..

و القليل منها طرق شبه أوتوماتيكية (semi-automatic)

تبدأ بحساب / تخمين التشابه بين مكونات الأونتولوجيا الأولى و مكونات الأونتولوجيا الثانية ..

هذا التشابه يعتمد على النواحي الدلالية (semantic) و البنيوية (structural) و اللغوية (lexical)

و من ثم اقتراح الجسور الدلالية الممكنة من خلال اختيار ثنائيات المكونات الأكثر تشابهاً ..

هنا يتدخل الخبير لتأكيد أو نفي كل من الجسور المقترحة ..

مراجع

RDFT: A Mapping Meta-Ontology for Business Integration
Borys Omelayenko (2002)

Ontology Mapping - An Integrated Approach
Marc Ehrig and York Sure (2004)

MAFRA - An Ontology MApping FRAmework for Distributed Ontologies
A Maedche, B Motik, N Silva, R Volz (2002)

Service-Oriented Ontology Mapping System
Nuno Silva and Joao Rocha (2003)

Semantic Web Complex Ontology Mapping
Silva N. and Rocha, J. (2003)

A Conceptual Modeling Approach for building semantics-driven enterprise applications
Motik B., Maedche, A., and Volz, R. (2002)

An Instance Mapping Ontology for the Semantic Web
Yuangui Lei (2005)

Ontology mapping: the state of the art
Kalfoglou, Y. and Schorlemmer, M. (2003)

----------------------

يتبع

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

التقسيم أو التجزئة هي عملية تحويل أنطولوجي كبيرة إلى عدد من ال ontologys الصغيرة المتخصصة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكــم ورحمـة الله وبركاتــة ،،

بعرف انو زودناها شوي و لكن ما باليد حيلة

وجدت هذا الكتاب و هو بنظري هام و بسيط هل يمكن الحصول على الجزئين الباقيين منه

Tutorial on ontological engineering

Riichiro Mizoguchi

The Institute of Scientific and Industrial Research, Osaka University

انظر المرفق.....

؟؟؟؟؟؟؟؟؟

كيف يمكن التأكد من صحة كود

rdf

باستخدام

protege

Part1_pdf2.pdf

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .