2009-11-17 3 views
10

나는 질의하고 싶은 생물학 데이터베이스를 가지고있다. 또한 형식화 할 수있는 술어가있는 액세스 할 수있는 주어진 용어 은행이 있습니다. 언급 한 술어를 사용하여이 DB에 대한 쿼리 언어를 작성하고 싶습니다. 어떻게 생각하세요? 내 솔루션은 다음도메인 별 쿼리 언어는 어떻게 작성합니까?

  1. ANTLR 또는 다른 도구를 사용하여 특정 언어 빌드
  2. 쿼리 언어로 번역 술어 (SQL은, SPARQL, 따라 다름)
  3. 을 공식화
  4. 는 3에서 번역 2.

이 방법이 유효합니까? 더 좋은 것들이 있습니까? 모든 포인터가 많이 감사 할 것입니다.

+0

Irony.NET 흥미로운 프로젝트처럼 소리. –

+0

당신의 성은 정말로 Thunk입니까? 하스켈에 자연 친화감이 있어야합니다;) http://stackoverflow.com/a/6274016/443219 –

답변

4

BNF를 사용하면 언어 의미 체계에 착수 할 수 있습니다 .GoldParser는 의미 및 구문 (여기에 링크 : http://www.devincook.com/)을 가지고 노는 것으로 도움이 될 것입니다. 일단 BNF 의미가 분류되면 입력을 기반으로 액션을 구축 할 수 있습니다 (예 : bnf 문법 섹션에서 사지의 유전 메이크업 분류 구성 추출하기) (이것이 존재하는지, 추상적인지 예를 들어 여기에 있지만 당신은 요지를 얻는다.) ... 특정 쿼리에 대해 ... '사지가 다리가있는 사지에 통계 가져 오기', 그리고 사전에 정의 된 테이블에서 열 별칭이나 이름에 대해 SQL select를 실행합니다. 접근법에 잘못 될 수 있습니다 ... 희망이 도움이 될까요?

+0

그래서 dsl 구문을 먼저 정의한 다음 나머지 구문을 정의하는 것이 좋습니다. 어쩌면 이것이 올바른 길 일지, 나머지 노력을 안내 할 것입니다. 그게 네거야? 감사! –

+0

네, 그게 내 걸릴 것입니다. 도와 줘서 기뻐! :) – t0mm13b

2

환자 데이터베이스 용 그래픽 쿼리 언어 및 쿼리 엔진 플랫폼 인 i2b2 framework을 살펴 보시기 바랍니다.

CRC 셀이나 웹 서비스를 처음부터 모두 살펴보기는 어렵지만 임상 그래픽 쿼리 언어에서 흥미로운 방식으로 SQL 생성에 접근 한 방법을 볼 수 있습니다 (성능은 그렇지는 않지만). 친절한 :))

-1

여기에서 Irony.NET 사용을 고려 :

+0

언어 관련 질문이 아닙니다. –