Я разрабатываю приложение Java, которое управляет очень большой моделью сущностей и их отношениями. Например, "A использует B", "B реализуется в C", "C находится в D". Все эти объекты и их свойства хранятся в базе данных noSQL.
То, что я хотел бы сделать, это иметь логические предикаты, такие как:
Затем, когда пользователь открывает экран подробных данных для A, он не только видит все свойства A, но также видит:
Я могу жестко кодировать все эти предикаты, но я хотел бы иметь возможность настроить его. Кто-нибудь знает, как подойти к этому?
Я не могу использовать SQL. У меня нет чего-то вроде Prolog для вызова. Для Java существует пролог-эмулятор, но я боюсь, что он хочет сначала загрузить всю базу данных в память, прежде чем оценивать предикаты.
Любая помощь приветствуется.
Существует несколько реализаций Java Prolog (например, Lean Prolog, JIProlog, tuProlog, Jekejeke Prolog, Minerva,...). Некоторые из них обеспечивают двунаправленный интерфейс между Prolog и Java. По крайней мере один из них, JIProlog, поддерживает внешние базы данных Prolog, которые, по-видимому, позволяют использовать эти предложения без загрузки их всех в память. Если экспортировать данные из базы данных noSQL в файл Prolog, это возможный вариант, это может быть полезным решением.