Nashev / TextBrain

experiments with AI;
http://innenashev.narod.ru
4 stars 1 forks source link

RDF — только вперёд, ни шагу назад #136

Open Nashev opened 6 years ago

Nashev commented 6 years ago

Хранить триплеты записями в папках/файлах субъекта, держа в них пары предикат-объект (свойство-значение) для этого субъекта.

Для задач поиска субъекта по объекту (значению) генерировать (подразумевать, inference) предикат, обратный искомому, и для объекта генерировать триплеты с такими предикатами и субъектами в качестве объекта.

То есть, например:

Вася - Носит - Валенки Валенки - _ххх - Вася _ххх - Обратный предикат к - Носит

Для задач поиска триплетов с данным предикатом можно использовать реификацию. Например:

Вася - Субъект у - _ааа Носит - Предикат у - _ааа Валенки - Объект у - _ааа

_ааа - _ссс - Вася _ааа - _ппп - Носит _ааа - _ооо - Валенки

_ссс - Обратный предикат к - Субъект у _ппп - Обратный предикат к - Предикат у _ооо - Обратный предикат к - Объект у

Используя подобный подход можно не делать ходьбы назад по триплетам, не делать специальный механизм для индексов по предикатам и объектам и т.п. Тем самым упростить логику хранения за счёт логики подразумевания, которая всё равно должна быть очень развита.

Заодно упростить логику отображения сведений о любом субъекте — показывать только «его собственные» предикаты и объекты, и про них тоже только их собственные предикаты и объекты, и т.п. Только вперёд, ни шагу назад, даже если по кругу.

Поддержать лишь подразумевание (генерирование подразумеваемого) для обратных предикатов, и при визуализации их показывать их через тот предикат, к которому этот обратный, с какой-нибудь припиской или декором типа стрелки, цвета, значка...

Nashev commented 6 years ago

предикат "Обратный предикак к" - это owl:inverseOf (см. например https://www.infowebml.ws/rdf-owl/inverseOf.htm)