Хранить триплеты записями в папках/файлах субъекта, держа в них пары предикат-объект (свойство-значение) для этого субъекта.
Для задач поиска субъекта по объекту (значению) генерировать (подразумевать, inference) предикат, обратный искомому, и для объекта генерировать триплеты с такими предикатами и субъектами в качестве объекта.
То есть, например:
Вася - Носит - Валенки
Валенки - _ххх - Вася
_ххх - Обратный предикат к - Носит
Для задач поиска триплетов с данным предикатом можно использовать реификацию. Например:
Вася - Субъект у - _ааа
Носит - Предикат у - _ааа
Валенки - Объект у - _ааа
_ссс - Обратный предикат к - Субъект у
_ппп - Обратный предикат к - Предикат у
_ооо - Обратный предикат к - Объект у
Используя подобный подход можно не делать ходьбы назад по триплетам, не делать специальный механизм для индексов по предикатам и объектам и т.п. Тем самым упростить логику хранения за счёт логики подразумевания, которая всё равно должна быть очень развита.
Заодно упростить логику отображения сведений о любом субъекте — показывать только «его собственные» предикаты и объекты, и про них тоже только их собственные предикаты и объекты, и т.п. Только вперёд, ни шагу назад, даже если по кругу.
Поддержать лишь подразумевание (генерирование подразумеваемого) для обратных предикатов, и при визуализации их показывать их через тот предикат, к которому этот обратный, с какой-нибудь припиской или декором типа стрелки, цвета, значка...
Хранить триплеты записями в папках/файлах субъекта, держа в них пары предикат-объект (свойство-значение) для этого субъекта.
Для задач поиска субъекта по объекту (значению) генерировать (подразумевать, inference) предикат, обратный искомому, и для объекта генерировать триплеты с такими предикатами и субъектами в качестве объекта.
То есть, например:
Вася - Носит - Валенки Валенки - _ххх - Вася _ххх - Обратный предикат к - Носит
Для задач поиска триплетов с данным предикатом можно использовать реификацию. Например:
Вася - Субъект у - _ааа Носит - Предикат у - _ааа Валенки - Объект у - _ааа
_ааа - _ссс - Вася _ааа - _ппп - Носит _ааа - _ооо - Валенки
_ссс - Обратный предикат к - Субъект у _ппп - Обратный предикат к - Предикат у _ооо - Обратный предикат к - Объект у
Используя подобный подход можно не делать ходьбы назад по триплетам, не делать специальный механизм для индексов по предикатам и объектам и т.п. Тем самым упростить логику хранения за счёт логики подразумевания, которая всё равно должна быть очень развита.
Заодно упростить логику отображения сведений о любом субъекте — показывать только «его собственные» предикаты и объекты, и про них тоже только их собственные предикаты и объекты, и т.п. Только вперёд, ни шагу назад, даже если по кругу.
Поддержать лишь подразумевание (генерирование подразумеваемого) для обратных предикатов, и при визуализации их показывать их через тот предикат, к которому этот обратный, с какой-нибудь припиской или декором типа стрелки, цвета, значка...