سؤال

ولدي بعض الطبقات البومة التي لديها حالات. لديها هذه الفئات أيضا الخصائص التي لها قيمة لكل مثيل. لقد قدمت لي الأنطولوجيا التي كتبها Protege3.4، وقدم ج # المكتبة من قبل Rowlex منها.
على سبيل المثال الطبقة "برنامج"، لديه مثيل 'البرمجيات' والممتلكات "atGrade. قيمة العقار لهذه الحالة هو 'الدكتوراه' (atGrade هو خاصية الكائن الذي خرائط المجال إلى الدرجة العلمية). هذا هو OWL:

<owl:Class rdf:about="http://www.owl-ontologies.com/Ontology1243411901.owl#Program">
    <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
    <owl:disjointWith rdf:resource="http://www.owl-ontologies.com/Ontology1243411901.owl#Student"/>
    <owl:disjointWith rdf:resource="http://www.owl-ontologies.com/Ontology1243411901.owl#Teacher"/>
    <owl:disjointWith rdf:resource="http://www.owl-ontologies.com/Ontology1243411901.owl#Rank"/>
    <rdfs:subClassOf>
        <owl:Restriction>
            <owl:onProperty>
                <owl:ObjectProperty rdf:about="http://www.owl-ontologies.com/Ontology1243411901.owl#atGrade"/>
            </owl:onProperty>
            <owl:allValuesFrom rdf:resource="http://www.owl-ontologies.com/Ontology1243411901.owl#Grade"/>
        </owl:Restriction>
    </rdfs:subClassOf>
    <owl:disjointWith rdf:resource="http://www.owl-ontologies.com/Ontology1243411901.owl#Course"/>
    <owl:disjointWith>
        <owl:Class rdf:about="http://www.owl-ontologies.com/Ontology1243411901.owl#LearningResource"/>
    </owl:disjointWith>
    <owl:disjointWith rdf:resource="http://www.owl-ontologies.com/Ontology1243411901.owl#Note"/>
    <owl:disjointWith rdf:resource="http://www.owl-ontologies.com/Ontology1243411901.owl#ClassOfCourse"/>
    <owl:equivalentClass>
        <owl:Class>
            <owl:oneOf rdf:parseType="Collection">
                <Program rdf:about="http://www.owl-ontologies.com/Ontology1243411901.owl#Management">
                    <atGrade rdf:resource="http://www.owl-ontologies.com/Ontology1243411901.owl#PHD"/>
                </Program>
                <Program rdf:about="http://www.owl-ontologies.com/Ontology1243411901.owl#Literature">
                    <atGrade rdf:resource="http://www.owl-ontologies.com/Ontology1243411901.owl#PHD"/>
                </Program>
                <Program rdf:about="http://www.owl-ontologies.com/Ontology1243411901.owl#Software">
                    <atGrade rdf:resource="http://www.owl-ontologies.com/Ontology1243411901.owl#MasterOfResearch"/>
                </Program>
                <Program rdf:about="http://www.owl-ontologies.com/Ontology1243411901.owl#Information_Technology">
                    <atGrade rdf:resource="http://www.owl-ontologies.com/Ontology1243411901.owl#MasterOfScience"/>
                </Program>
            </owl:oneOf>
        </owl:Class>
    </owl:equivalentClass>
    <owl:disjointWith>
        <owl:Class rdf:about="http://www.owl-ontologies.com/Ontology1243411901.owl#Project"/>
    </owl:disjointWith>
    <owl:disjointWith rdf:resource="http://www.owl-ontologies.com/Ontology1243411901.owl#Grade"/>
    <owl:disjointWith rdf:resource="http://www.owl-ontologies.com/Ontology1243411901.owl#ResourceType"/>
    <owl:disjointWith rdf:resource="http://www.owl-ontologies.com/Ontology1243411901.owl#Language"/>
    <rdfs:comment xml:lang="en">Study branch in which the members are working (e.g. MBA)</rdfs:comment>
    <owl:disjointWith>
        <owl:Class rdf:about="http://www.owl-ontologies.com/Ontology1243411901.owl#Discussion"/>
    </owl:disjointWith>
    <owl:disjointWith rdf:resource="http://www.owl-ontologies.com/Ontology1243411901.owl#Question"/>
</owl:Class>

ويتم تعريف الملكية atGrade أيضا في الأنطولوجيا:

<owl:ObjectProperty rdf:about="http://www.owl-ontologies.com/Ontology1243411901.owl#atGrade">
    <rdfs:range rdf:resource="http://www.owl-ontologies.com/Ontology1243411901.owl#Grade"/>
    <rdfs:domain>
        <owl:Class>
            <owl:unionOf rdf:parseType="Collection">
                <owl:Class rdf:about="http://www.owl-ontologies.com/Ontology1243411901.owl#Program"/>
                <owl:Class rdf:about="http://www.owl-ontologies.com/Ontology1243411901.owl#Teacher"/>
                <owl:Class rdf:about="http://www.owl-ontologies.com/Ontology1243411901.owl#Project"/>
                <owl:Class rdf:about="http://www.owl-ontologies.com/Ontology1243411901.owl#Course"/>
                <owl:Class rdf:about="http://www.owl-ontologies.com/Ontology1243411901.owl#Student"/>
            </owl:unionOf>
        </owl:Class>
    </rdfs:domain>
</owl:ObjectProperty>

والآن عندما جعل واحدة من الحالات في ج #، على سبيل المثال:

Program prog = new Program("http://www.owl-ontologies.com/Ontology1243411901.owl#Management", new RdfDocument());

والممتلكات atGrade ترجع فارغة. فعلت ما يلي، ولكن لم تحل المشكلة:
-made فئة كاملة (برنامج جديد _ (...))
-entered ملف RDF القائمة: برنامج جديد (أوري، RdfDocument الجديدة (أوري))
-deleted و"rdfs: subClassOf. سمة من الأنطولوجيا

أي أفكار كيف يمكن حل هذه المشكلة؟
ربما ينبغي لي أن حذف الحالات من الأنطولوجيا وإدراجها في RDF، ثم استردادها من هناك؟

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

المحلول

وأنت تصف في الأنطولوجيا الخاصة بك أن ما يتوافق الأفراد إلى الطبقة البرنامج الخاص بك. الفرد هو "البرنامج" إذا URI التي هي واحدة من تلك الخاصة المذكورة ولها خاصية atGrade المناسبة.

وعند إنشاء RdfDocument وإنشاء مثيل برنامج جديد، كل ما سوف تحصل على هو ثلاثة أضعاف مثل "myUri تشير typeof برنامج". سوف ROWLEX لا ملء التخلف وإضافة خاصية atGrade إضافية كما هو متوقع. هذا هو السبب في أن تحصل لاغية عند استرداد الممتلكات. وسوف تحتاج إلى إضافة الخاصية atGrade للأفراد، وإلا فإنه لم يتم حتى مثيل برنامج صالح.

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