Джена Влияние различных трехвлеченных режимов

StackOverflow https://stackoverflow.com/questions/3007742

  •  26-09-2019
  •  | 
  •  

Вопрос

Я пытаюсь Sparql и использование влечения.

Как пример я использовал 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