초록
객체 데이타베이스를 위해 최근에 제안된 VOQL(Visual Object Query Language)은 경로식과 집합 관련 조건을 시각화하고 형식 시맨틱을 제공하는데 성공적이었다. 그러나 기존의 VOQL은 몇가지 문제들이 있다. VOQL에서는 집합 관련 조건만이 허용되고, 변수 개념을 위한 명시적인 언어 구문이 없어서 질의문들은 종종 어색하고 직관적이지 못하다. 본 논문에서는 이러한 문제들을 극복하도록 VOQL을 확장한 VOQL*를 제안한다. 시각변수 개념을 도입하고 이에 기초하여 VOQL의 문법과 시맨틱을 수정하였다. VOQL*의 언어 구문들은 OOPC의 문법을 반영하도록 조심스럽게 정의되어서, 시각변수, 시각요소, VOQL* 단순 텀(term), VOQL* 구조 텀, VOQL* 기본 포뮬라(formula), VOQL* 포뮬라, VOQL* 질의문 등의 VOQL* 구문들이 OOPC 구문들처럼 계층적이고 귀납적으로 구성되어 있다. 가장 중요한 것은 VOQL*의 각 구문의 시맨틱이 OOPC를 사용하여 재귀적 방법을 통한 형식 정의가 이루어진다는 점이다. 잘 정의된 문법과 시맨틱으로 말미암아, VOQL*의 질의문들은 명확하고 간결하고 직관적이다. 또한 VOQL* 질의문을 OOPC 질의문으로 번역하는 효과적인 절차를 제공한다. VOQL*는 로직의 문법적 구조를 반영하는 잘 정의된 문법과 귀납적 방법으로 형식 시맨틱을 제공하는 첫번째 시각 질의어이다.
The Visual Object Query Language (VOQL) recently proposed for object databases has been successful in visualizing path expressions and set-related conditions, and providing formal semantics. However, VOQL has several problems. Due to unrealistic assumptions, only set-related conditions can be represented in VOQL. Due to the lack of explicit language construct for the notion of variables, queries are often awkard and less intuitive. In this paper, we propose VOQL*, which extends VOQL to remove these drawbacks. We introduce the notion of visual variables and refine the syntax and semantics of VOQL based on visual variables. We carefully design the language constructs of VOQL* to reflect the syntax of OOPC, so that the constructs such as visual variables, visual elements, VOQL* simple terms, VOQL* structured terms, VOQL* basic formulas, VOQL* formulas, and VOQL* query expressions are hierarchically and inductively constructed as those of OOPC. Most important, we formally define the semantics of each language construct of VOQL* by induction using OOPC. Because of the well-defined syntax and semantics, queries in VOQL* are clear, concise, and intuitive. We also provide an effective procedure to translate queries in VOQL* into those in OOPC. We believe that VOQL* is the first visual query language with the well-defined syntax reflecting the syntactic structure of logic and semantics formally defined by induction.