سؤال

لدي RDF التالية:

<?xml version="1.0" encoding="UTF-8"?>
<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:ppl="http://www.blah.com/people#">

    <rdfs:Class rdf:ID="Person">
        <ppl:Name/>
        <ppl:LastName/>
    </rdfs:Class>

    <rdfs:Class rdf:ID="John">
        <rdfs:subClassOf rdf:resource="#Person"/>
        <ppl:name>John</ppl:name>
        <ppl:LastName>Smith</ppl:LastName>
    </rdfs:Class>
</rdf:RDF>

هذا يبدو جيدًا ، لكنني أود تجنب إمكانية القيام بفئة فرعية من جون. على سبيل المثال ، لا ينبغي أن يعمل هذا:

<?xml version="1.0" encoding="UTF-8"?>
<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:ppl="http://www.blah.com/people2#">

    <rdfs:Class rdf:ID="Person">
        <ppl:Name/>
        <ppl:LastName/>
    </rdfs:Class>

    <rdfs:Class rdf:ID="John">
        <rdfs:subClassOf rdf:resource="#Person"/>
        <ppl:name>John</ppl:name>
        <ppl:LastName>Smith</ppl:LastName>
    </rdfs:Class>

    <rdfs:Class rdf:ID="Peter">
        <rdfs:subClassOf rdf:resource="#John"/>
        <ppl:name>Peter</ppl:name>
        <ppl:LastName>Smith</ppl:LastName>
    </rdfs:Class>
</rdf:RDF>

كيف يمكنني إضافة هذا التقييد؟

تعديل:

بعد، بعدما إجابة Cygri حاولت نهجًا مختلفًا:

<rdf:Description ID="John">
    <rdf:type rdf:resource="#Person"/>
    <ppl:name>John</ppl:name>
    <ppl:LastName>Smith</ppl:LastName>
</rdf:Description>

<rdf:Description ID="Peter">
    <rdf:type rdf:resource="#John"/>
    <ppl:name>Peter</ppl:name>
    <ppl:LastName>Smith</ppl:LastName>
</rdf:Description>

لكن هذا لا يزال يعمل :(

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

المحلول

لست متأكدًا مما تحاول القيام به. نماذجك تبدو غريبة بالنسبة لي ، لماذا جون فئة؟ يجب أن يكون جون فردًا من النوع. (ولا يمكن أن يكون لديك فئات فرعية من الأفراد ، لذا فإن تغيير جون إلى فرد يجيب على سؤالك حول منع التصنيف الفرعي أيضًا.)

محدث: RDF على هذا النحو لا يمنعك من قول الأشياء غير المنطقية. لذلك لا يزال بإمكانك تحليل بياناتك وتسلسلها والاستعلام عنها حتى لو كانت هراء. ولكن يمكنك استخدام مدقق تناسق البومة للتحقق من صحة الأنطولوجيا الخاصة بك. في هذه الحالة بالذات ، يجب عليك التحقق من أن الأنطولوجيا في OWL DL. (البومة DL هي البومة التي تقدم القيود التي لا يمكن للأفراد الحصول على فئات فرعية ، من بين أشياء أخرى. بكامل البومة ، سيتم السماح بذلك ، ما لم تضيف قيدًا بأنه Class الفصل مفكك مع Person صف دراسي.

نصائح أخرى

ما زلت تعامل جون كصف. تريد شيئًا كهذا:

<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:ppl="http://www.blah.com/people#">

    <rdfs:Class rdf:ID="Person" />

    <rdf:Description rdf:ID="John">
        <rdf:type rdf:resource="#Person"/>
        <ppl:name>John</ppl:name>
        <ppl:LastName>Smith</ppl:LastName>
    </rdf:Description>

</rdf:RDF>

RDFs: الفئة الفرعية و RDF: النوع هي أنواع مختلفة من العلاقات.

RDFs: الفئة الفرعية مفيدة للذكر أن جميع الناس هم من الثدييات ، وجميع الثدييات حيوانات.

RDF: يستخدم النوع للذكر أن جون هو شخص (وجون هو ثدييات وحيوان لهذه المسألة).

لما يستحق ، يعد Semanticoverflow.com مكانًا جيدًا لطرح الأسئلة المتعلقة بـ RDF.

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