Expressing complex query expressions in a concise and intuitive way has been a challenge in the design of object-oriented query languages. Since class hierarchies are usually represented as graphs, many graph-based Visual query languages have been proposed. However, partly due to lack of well-defined syntax and semantics of languages and partly due to improper representation of their visual constructs, those approaches fail to meet the challenge. In this paper, we propose a graph-based, visual object-oriented query language called Visual Object Query Language (VOQL). VOQL has such good features as simple and intuitive syntax. well- defined semantics, and excellent expressive power for sets. which few visual languages have. Basic visual constructs of the language are blobs, subblobs, binding edges, and flattening edges. Blobs and subblobs are used to denote sets of objects that path expressions represent. Binding edges and flattening edges are designed to visually simulate the notion of variable binding and the notion of dot functions in path expressions. Based on the basic visual constructs, VOQL terms, VOQL formulas, and VOQL expressions are defined in a way as in tuple relational calculus. Their semantics are provided by syntax directed translation to corresponding counterparts in Object-Oriented Predicate Calculus (OOPC).