Аллегрографическое рассуждение
Я знакомлюсь с магазинами RDF на примере Allegrograph. Одна из частей, которые меня интересуют, это рассуждение. Я взял пример отсюда: https://franz.com/agraph/support/documentation/6.4.3/agraph-introduction.html и пытаюсь заставить его работать. Из графика видно следующую логическую цепочку:
- Предикат "Имеет питомца" применим к объектам "Млекопитающее". Например, если есть тройной предикат, будет еще один другой тройной rdf: тип выведен. Это определяется тройной rdfs: диапазон
- Предикат "Имеет питомца" является под-свойством "Owns". Например, если есть тройка, будет еще одна тройка. Это определяется тройной rdfs:subPropertyOf
- Предикат "Owns" применим к объектам "Human". Например, если есть тройка, будет другая тройка rdf:type inferred. Это определяется тройной rdfs: домен
Итак, я создал график, показанный на веб-странице 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"
Из этих данных я ожидал, что по крайней мере два факта будут выведены:
- Робби млекопитающее
- Янс это человек
Но это не дошло до этого. Я не могу сказать, что рассуждения не работали вообще. По крайней мере, я видел:
- У Янса есть домашнее животное Робби
- Джанс владеет Робби
- Мистер Асман имеет питомца Робби
- Мистер Асман владеет Робби
- Собака это животное
Почему это не выводит типы? Это ожидаемое поведение?
1 ответ
Это не ожидаемое поведение. Кажется, что в динамическом рассуждении AllegroGraph RDFS++ отсутствуют некоторые выводы, которые можно сделать, следуя цепочкам субпредприятий и инверсий.
Я подал ошибку (bug25588) для вас с Францем и работаю над исправлением, которое появится в v6.5.0.
В то же время, вы можете использовать Материализатор, чтобы найти все предполагаемые тройки. Вы можете сделать это в AGWebView или через один из клиентских API. Если у вас есть дополнительные вопросы, лучше всего написать по электронной почте allegrograph-support@franz.com, чтобы мы могли создать заявку в службу поддержки.
Мы не смогли получить эти исправления в AllegroGraph v6.4.5. Если вы подаете запрос в службу поддержки у нас, мы можем обязательно уведомить вас о выходе версии 6.5.0.