Query processing is done on Query Processing Server, which is a multi-threaded server side component that listens to a configured TCP port and accepts incoming clients. Clients send queries in XML-based BilVideoQuery format. When the query execution is completed, the query results are sent back to the originating client in XML-based BilVideoResult format which contains video segments (video name, start time, end time) in ranked order.
We need a query language for the communication between the clients and server. MPEG-7 uses XML as its Description Definition Language (DDL). Therefore, it is most appropriate to use an XML-based query language. This language is transparent to the user, since queries are formulated on the Visual Query Interface.
Here is the format of the XML-based query language used to send queries to the Query Processing server.
VideoSegments describe the video segments in the query by Text, Location, Color, Texture, Shape, Motion descriptors.
Spatial specifies the spatial queries between video segments that are described by VideoSegments.
Temporal specifies the temporal queries between video segments that are described by VideoSegments.
TOC is used for Video Table of Contents queries.
XQuery is used to perform queries on the database directly using standard XQuery expressions.
The "subquery options" attributes contain options for each subquery, such as the weights and thresholds.
The output of the MPEG-7 compatible video feature extraction and annotation tool is an XML file for each video. Conceptually, there are two different ways to store XML documents in a database. The first way is to map the data model of the XML document to a database model and convert XML data according to this mapping. The second way is to map the XML model into a fixed set of persistent structures (a set of tables for elements, attributes, text, etc.) designed to hold any XML document. Databases that support the former method are called XML-enabled databases, whereas databases that support the latter are called native XML databases (NXD). XML-enabled databases map instances of the XML data model to instances of their own data model (relational, hierarchical, etc). Native XML databases use the XML data model directly. As a result, it is more convenient and natural to use a native XML database to store the MPEG-7 descriptions. BilVideo-7 uses a native XML database (Tamino) along with the standard XQuery to execute queries in the database.