سؤال

أحاول سباركل واستخدام الاستلزام.

كمثال استخدمته http://www.w3.org/TR/2010/WD-sparql11-entailment-20100126/#t112

أحاول أن أضعهم في جينا.

     OntClass book1= model.createClass(NS+"book1");
     OntClass book2=model.createClass(NS+"book2");
     OntClass book3=model.createClass(NS+"book3");
     OntClass publication=model.createClass(NS+"publication");
     OntClass article=model.createClass(NS+"article");
     OntClass mit=model.createClass(NS+"MIT");

     ObjectProperty a = model.createObjectProperty(NS+"a");
     ObjectProperty publishes = model.createObjectProperty(NS+"publishes");

     book1.addProperty(a, publication);
     book2.addProperty(a, article);
     publication.addSubClass(article);

     publishes.addRange(publication);
     mit.addProperty(publishes, book3);

حيث النموذج هو نوع OntModel.

واستخدمت الاستعلام المشابه للمشكلة

     "PREFIX table: "I have correct namespace here"+
     "SELECT *"+
    "WHERE"+
    "{"+
    " ?x ?y table:publication  ."+
    "}";

تم إنشاء النموذج على هذا النحو.نأمل أن يكون OntModelSpec على ما يرام.

OntModel m = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM_RDFS_INF, null);

أحصل على نتائج من الاستعلام


 x                                                           y               
| http://www.example.com/ontologies/sample.owl#publishes   | rdfs:range                                       |
| http://www.example.com/ontologies/sample.owl#article     | rdfs:subClassOf                                  |
| http://www.example.com/ontologies/sample.owl#book1       | http://www.example.com/ontologies/sample.owl#a |
| http://www.example.com/ontologies/sample.owl#publication | rdfs:subClassOf                                  |
| http://www.example.com/ontologies/sample.owl#book3       | rdf:type                                         |   

هل يمكن لأي شخص أن يعطيني مثالاً، مع أو بدون استلزام، لذلك لا يمكن تجربة الكود، ويمكنه الحصول على النتائج الصحيحة.

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

المحلول

علم الوجود الخاص بك يبدو مريبًا بعض الشيء.

book1, book2, book3 و mit ليسوا طبقات، بل هم أفراد.يجب عليك استخدام model.createIndividual(NS + "bookX", publication) للكتب، وقم بإنشاء فصل لـ "التنظيم" أو ما شابه، ثم قم بإنشاءه mit كفرد من تلك الفئة.لاحظ أن createIndividual يعتني بالفعل بتعيين النوع للفرد، لذلك لا تحتاج إلى العبث بـ "a" ملكية.يجب عليك إصلاح هذه الأشياء أولاً ثم المحاولة مرة أخرى وتحديث سؤالك.

حول الاستحقاق:انظر إلى السطر الأخير من نتيجة الاستعلام الخاص بك.أنت لم تقل ذلك في أي مكان book3 هو كتاب، ولكن البيان هناك على أي حال.وذلك لأنه كان متضمنًا في العبارات الأخرى، ولهذا السبب يجعل محرك الاستدلال RDFS العبارة مرئية عند الاستعلام عن النموذج.البيان مستلزم بسبب النطاق publishes:كل ما يتم نشره يجب أن يكون من النوع publication.

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