Оценка логических предикатов в Java

1

Я разрабатываю приложение Java, которое управляет очень большой моделью сущностей и их отношениями. Например, "A использует B", "B реализуется в C", "C находится в D". Все эти объекты и их свойства хранятся в базе данных noSQL.

То, что я хотел бы сделать, это иметь логические предикаты, такие как:

  • B используется A, когда A использует B
  • A зависит от C, когда A использует B и B, реализуется в C

Затем, когда пользователь открывает экран подробных данных для A, он не только видит все свойства A, но также видит:

  • A использует B
  • A зависит от C
  • A звонки D

Я могу жестко кодировать все эти предикаты, но я хотел бы иметь возможность настроить его. Кто-нибудь знает, как подойти к этому?

Я не могу использовать SQL. У меня нет чего-то вроде Prolog для вызова. Для Java существует пролог-эмулятор, но я боюсь, что он хочет сначала загрузить всю базу данных в память, прежде чем оценивать предикаты.

Любая помощь приветствуется.

  • 0
    Какую базу данных NoSql вы используете?
  • 0
    Похоже, идеальный вариант использования для RDF триплетов какой-то.
Показать ещё 5 комментариев
Теги:
predicate

1 ответ

0

Существует несколько реализаций Java Prolog (например, Lean Prolog, JIProlog, tuProlog, Jekejeke Prolog, Minerva,...). Некоторые из них обеспечивают двунаправленный интерфейс между Prolog и Java. По крайней мере один из них, JIProlog, поддерживает внешние базы данных Prolog, которые, по-видимому, позволяют использовать эти предложения без загрузки их всех в память. Если экспортировать данные из базы данных noSQL в файл Prolog, это возможный вариант, это может быть полезным решением.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню