문제

많이 생각하지 않고, 많은 Prolog의 기능 세트가 관계형 미적분학 (일명 SQL)으로 구현 될 수 있습니다.

프롤로그를 SQL로 자동 변환하는 도구에 대해 들어 본 사람이 있습니까?

도움이 되었습니까?

해결책

추천 :

https://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/prolog/code/io/pl2sql/0.html

내 조언- Eclipse Prolog (http://www.eclipseclp.org/) (여기서는 (여기) Eclipse IDE에서 Prolog와 혼동되지 않음)를 사용하십시오.

나는 4 개의 다른 프롤로그 (!)에서 코드를 컴파일하고 일식에서 컴파일하기 위해 코드를 컴파일하는 데 몇 시간을 보냈습니다.

그것이 효과가있을 때, 그것은 아름다움의 것입니다.

물론 Herr Draxler에게 신용

다른 팁

물론이죠.

회의론자에 대한 전제 : 데이터베이스 이론에 관한 반세기 책 언급 데이터 로그 (이는 프롤로그와 유사하다)와 이론이 관계형 대수 (RA)로/로 변환 할 수 있음을 보여줍니다 (특정 제한에 따라).

SQL은 RA 또는 관계형 미적분학에 충실하지 않지만 Prolog를 지원하기에 충분합니다.

매핑은 그리 좋지 않습니다. 예를 들어 SQL은 역 추적, 통일, 목록 또는 ADHOC 중첩 구조를 수행하지 않습니다.

Prolog는 복합 객체, 인덱스 등을 잘 다루지 않습니다.

나는 그것이 아니라고 말하고 싶습니다.

Prolog에서 SQL 쿼리를 수행하는 것이 더 합리적이며 Prolog Facts로 번역 될 수 있습니다. 예를 들어 Prolog ODBC 라이브러리

이것은 모든 제한을 제거하고 두 언어를 적절한 장소로 분리시킵니다.

번역가를 썼습니다 이는 프롤로그의 서브 세트를 SQL 사용자 정의 함수로 변환합니다.

Prolog 의이 술어는 SQL로 변환 될 수 있습니다.

is_between(A,B,C) :- 
    A<B,B<C.

이것은 MySQL 함수로서 번역기의 출력입니다.

CREATE FUNCTION is_between(A double,B double,C double) RETURNS BIT BEGIN 
    RETURN A>B and B>C;
END

마찬가지로 a가 있습니다 Prolog-to-SQL 컴파일러 SWI-PROLOG의 컴파일러 및 다른 번역가 이로 인해 Datalog의 비 수수선 하위 집합을 SQL로 변환합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top