Йена производит различных режимов логического следствия

Я пробую 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                                         |   

Может любой давать мне пример, с и без логического следствия, таким образом, код попытки наклона, может разобраться в результатах.

1
задан blueomega 9 June 2010 в 16:20
поделиться

1 ответ

Ваша онтология выглядит немного подозрительно.

book1 , book2 , book3 и mit не классы, это индивидуумы. Вы должны использовать model.createIndividual (NS + «bookX», публикация) для книг и создать класс для «организации» или аналогичный, а затем создать mit как отдельное лицо из этот класс. Обратите внимание, что createIndividual уже позаботится о присвоении типа человеку, поэтому вам не нужно возиться со своим свойством « a ». Вы должны сначала исправить эти вещи, а затем повторить попытку и обновить свой вопрос.

О следствии: посмотрите на последнюю строку результата вашего запроса. Вы нигде не сказали, что book3 - это книга, но утверждение все равно там есть. Это потому, что это было вызвано другими операторами, и поэтому механизм вывода RDFS делает оператор видимым, когда вы запрашиваете модель. Утверждение вытекает из диапазона публикуемых : Все, что публикуется, должно относиться к типу публикации .

2
ответ дан 2 September 2019 в 23:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: