특정 검색 관련 작업을 위해 JPL을 통해 Prolog가 필요한 Java EE 웹 응용 프로그램을 개발하고 싶습니다. 웹 응용 프로그램이 JBoss 응용 프로그램 서버에 배포됩니다. Prolog 엔진은 YAP 또는 SWI (afaik는 현재 JPL과 호환되는 유일한 Prolog 엔진) 일 수 있습니다. Prolog 쿼리는 잠재적으로 큰 데이터베이스에 저장된 정보에 의존합니다. 사람이이 식물 또는 유사한 무언가를 시도 경우Java EE 웹 응용 프로그램에서 JPL (Java + Prolog) 사용
, 당신은 나에게 다음과 같은 질문?
- 프롤로그 엔진에 액세스해야하는 동시 HTTP 세션을 관리하는 가장 좋은 방법은 무엇인가에 대한 피드백을 제공하시기 바랍니다 수 있습니다? 각각의 개별 세션에 Prolog 엔진을 할당하는 것이 바람직할까요? 이 솔루션이 효과가 있다면 '프롤로그 엔진 풀링'과 비슷한 것을 구현하여 프롤로그 엔진을 새 세션에 신속하게 할당 할 수 있습니까? . 또는 최상의 솔루션은 모든 쿼리 요청을 동 기적으로 관리하는 단일 Prolog 엔진을 갖는 것입니다. (그리고 천천히).
- Prolog와 데이터베이스의 상호 작용을 어떻게 관리 할 수 있습니까? 데이터가 데이터베이스에서 자주 변경되고 Prolog가 쿼리를 해결하기 위해이 데이터를 필요로하는 경우 Prolog 엔진의 사실을 데이터베이스의 데이터와 동기화 된 상태로 유지하는 가장 좋은 전략은 무엇입니까? 데이터베이스가 커지면 새 세션 (예 : Prolog 사실로 데이터베이스의 모든 데이터를 다시로드)에서 처음부터 시작하는 해군 옵션은 좋지 않은 것처럼 보입니다.
- 구현 중 java-prolog-database interaction과 관련된 다른 모든 문제점/어려움이 있습니까?
미리 감사드립니다.
질문을 여러 질문으로 나눌 수 있습니다. 웹 서비스를 수행하는 방법 및 영구 데이터를 수행하는 방법에 대한 솔루션은 약간 관련되어 있지만 한 가지 대답에 포함될 때 혼란 스러울 수 있습니다. –
안녕하세요 @ CookieMonster!, 잘게 분할하는 것이 좋은지 확실하지 않습니다. 두 질문 모두 동일한 문맥을 공유하며 아마도 한 질문 (예 : 웹 응용 프로그램의 프롤로그 엔진 관리)에 대한 해결책은 다른 하나에 대한 적절한 해결책 (예 : 프롤로그 엔진을 데이터베이스와 동기화 된 상태로 유지하는 방법)에 영향을줍니다. 문제의 전체적인 그림을 보여 주려고합니다. – Sergio