سؤال

لدي ملف RDF في مشروع الويب الدلالي وأستطيع استخدام OWLEX لمعالجة ذلك. لقد احتاجت لإزالة فرد من RDF، لذلك اعتدت

<RDFDoc instance>.RemoveIndividual(new OwlThing(<individual URI>, <RDFDoc instance>));

مع هذا الرمز، كان لدي فرداني، لكن العقارات لا تزال قائمة. لذلك اكتشفت أنني يجب أن أزيل خصائصها أولا. إلى جانب أنني لم أجد أمر لإزالة جميع الخصائص معا. وبالتالي، السؤال رقم 1: هل هناك طريقة لإزالة الفرد مع كل خصائص؟ أو، هل يمكنني إزالة جميع الخصائص في سطر واحد من التعليمات البرمجية وليس واحدا تلو الآخر؟ وكيف يمكنني إزالة الخصائص مع قيم متعددة. على سبيل المثال، ثلاثة دراسة، في المثال أسفل الصفحة.

من ناحية أخرى، عندما حاولت إزالة خاصية، على سبيل المثال "استخداماتي" من فرد الطالب، حسب هذا الرمز:

student.RemoveuseStudyList(student.useStudyList);

لقد وجدت ملف RDF الخاص بي:

<Ontologyowl:Student rdf:about="ehsanm">
//other properties
    <Ontologyowl:useStudyList>
        <Ontologyowl:StudyList rdf:about="stdl184516"/>
    </Ontologyowl:useStudyList>
</Ontologyowl:Student>

... أصبحت مثل هذا:

<Ontologyowl:Student rdf:about="ehsanm">
    //other properties  

</Ontologyowl:Student>
<Ontologyowl:StudyList rdf:about="stdl184516"/>

وهكذا ألقيت العقار. ليس لدي هذه المشكلة بالخصائص الحرفية. السؤال 2: ما هي المشكلة؟

شكرا لاهتمامكم، والمساعدة، مقدما.

هل كانت مفيدة؟

المحلول

سؤالك لا علاقة له بالورق، لكن مشكلة رسم بيانية نموذجية: إذا قمت بحذف عقدة، إلى أي مدى تتالي بحذف الحذف؟ عند حذف خاصية مع حرفية، تكون القضية سهلة حيث لا يوجد استمرار الرسم البياني. عند حذف خاصية تشير إلى عقدة أخرى يجب أن تحذف العقدة؟ يبدو حذف في مثالك واضحا لأن الرسم البياني الخاص بك يحتوي على مرجع دائري، ولا علاقات مشتركة.

تخيل الرسم البياني التالي: لديك 3 أشخاص: A (ADAM)، B (Bill)، والدهم F (فريد). لديك علاقة Fathership بين A - F و B - F. أنت تحذف العلاقة بين آدم ووالده. يجب أن تحذف عقدة الأب وإحضار الفاتورة إلى حالة غير متناسقة (الأيتام :)؟ الجواب هنا هو "لا". تحذف العلاقة فقط.

في مخططات UML، لديك خيار في علاقة التجميع بالتمييز بين "امتلاك" و "مشترك". يتم التعبير عنها في اللون (أسود أو أبيض) من الماس في نهاية الخط. في قواعد البيانات العلائقية، يمكنك تحديد أو تجاهل "حذف Cascade" على المفاتيح الأجنبية. أنها تمثل نفس المفهوم. لسوء الحظ، لا تقدم RDF هذه البيانات الوصفية الإضافية على الممتلكات. كان لدى RDF هذه المعلومات المتاحة، يمكننا تحديد متى وكيف ينبغي أن ندرك حذف الحذف على الرسم البياني. لكننا لا. يحدد القضية لأخبار سيئة: أنت بمفردك، يمكنك تنفيذ الحذف كما ترى مناسبا.

نصائح أخرى

لقد قمت بإزالة العقار، ومع ذلك كانت هناك بيانات أخرى تتعلق <stdl184516> التي لم تزيل.

فيما يلي البيانات الفعلية التي لديك (تنسيق السلاحف):

<ehsanm> a Ontologyowl:Student .
## Other statements
<ehsanm> Ontologyowl:useStudyList <stdl184516> .
<stdl184516> a Ontologyowl:StudyList .

لذلك فهو المنطقي أن إزالة Ontologyowl:useStudyList المسند لك <ehsanm> الموضوع (والبيان الذي يحتوي عليه) سيغادر التأكيد المتبقي فيما يتعلق <stdl184516>نوع.

السبب في عدم وجود هذه المشكلة مع الحرف اليدوية هو أنه ليس لديك أي حرفي كموضوعات لبيان (فهي كائنات فقط لبيان). لذلك إزالة هذا البيان يزيل الحرفي (وجميع الإشارات إليها). مع وجود موارد ككائن بيان، قد يكون هناك بيانات إضافية تتعلق بهذا المورد (كما هو الحال في مثالك).

تعتبر RDF حرفيا Disfoint، مما يعني أنها تختلف كلها (حتى لو كانت لها نفس القيمة). هذا السبب في إزالة المسند بحرفي (رابط "حرفي إذا كنت ترغب في التفكير في الأمر بهذه الطريقة) يزيل أيضا حرفيا.

تحديث (لإضافة إلى استجابة السيد LAME): من الناحية النظرية، تدور RDF حول الحواف (العلاقات / المسندات) في رسم بياني لعقد (الموارد). مفهوم حذف العقدة يتعارض مع RDF؛ إنه ينطوي على العقدة (الموارد) له معنى عليه. حتى كتابة مورد من خلال تأكيده rdf:type هي عبارة عقدة / حافة / عقدة. تعتبر العقدة URI وحدها غير مبتمة وليس لها دلالات خارج كونها معرف فريد. هذا هو السبب في أن RDF لا يسمح "العقد" (عقدة خارج البيان) - ليس لديهم معنى متأصل.

لتمديد السؤال الذي طرحه Ehsan، فإن حذف العقدة ستحذف فعليا جميع المسندات الواردة / المنتهية ولايته. لا يحدث هذا حقا "حذف" العقدة، فهو يزيل بالفعل جميع البيانات / التأكيدات التي تشير إليها (فكر في الأمر بأنها مخفية "عندما لا توجد بيانات مرجعها).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top