Знакомлюсь с магазинами RDF на примере Allegrograph. Одна из частей, которая меня интересует, это рассуждения. Я взял пример отсюда: https://franz.com/agraph/support/documentation/6.4.3/agraph-introduction.html и пытаемся заставить его работать. Из графика вырисовывается следующая логическая цепочка:
- Предикат «Имеет домашнее животное» применим к объектам «Млекопитающее». Например. если есть тройной предикат, будет выведен еще один тройной rdf:type. Он определяется тройным rdfs:range
- Предикат «Имеет домашнее животное» является подсвойством «Владеет». Например. если есть тройка, будет выведена другая тройка. Он определяется тройкой rdfs:subPropertyOf
- Предикат «владеет» применим к объектам «человек». Например. если есть тройка, будет выведена еще одна тройка rdf:type. Он определяется тройкой rdfs:domain
Итак, я создал график, показанный на веб-странице Franz.
s,p,o
"test://Animal","rdf:type","rdf:class"
"test://Mammal","rdfs:subClassOf","test://Animal"
"test://Dog","rdfs:subClassOf","test://Mammal"
"test://hasPet","rdfs:range","test://Mammal"
"test://hasPet","rdfs:subPropertyOf","test://owns"
"test://owns","rdfs:domain","test://Human"
"test://owns","rdf:type","rdf:Property"
"test://petOf","owl:inverseOf","test://hasPet"
"test://Robbie","test://petOf","test://Jans"
"test://MrAasman","owl:sameAs","test://Jans"
Я ожидал, что из этих данных можно будет сделать вывод по крайней мере о двух фактах:
- Робби — млекопитающее
- Янс - человек
Но до этого не дошло. Не могу сказать, что рассуждения совсем не работали. По крайней мере, я видел:
- У Янс есть питомец Робби
- Янс владеет Робби
- У мистера Асмана есть домашний питомец Робби
- Мистер Асман владеет Робби
- Собака это животное
Почему он не выводит типы? Это ожидаемое поведение?