Enter Garlic. Garlic will provide a way to link together heterogeneous, multimedia systems so that problems like that of our advertising executive are easy to solve. This picture shows the basic ideas. At the bottom are the independent storage systems. These can be of any type and any number (though as the number gets large, issues of scale will need to be addressed). Above each of these repositories is a `wrapper' which serves as the plug for connecting the repository to Garlic. The wrapper describes the contents and capabilities of the repository in the Garlic Data Model (the wrapper schema) and translates queries against that schema into whatever language or API the repository understands. Above the wrapper is the heart of Garlic, a middleware query processor which provides the user with a unified object view of all the data within the system. It can take object-oriented queries against this global Garlic schema and break them into pieces to be executed by the various repositories involved. Finally, there are two ways to access the Garlic system: through a C++ API, or using a Query/Browse tool specifically designed for Garlic.
Of course, an average advertising exec (or doctor, or interior designer) will not normally want to write queries. For these types of users, Garlic will provide a powerful and easy-to-use Query/Browse application. In the screen below, our ad exec has been browsing through Campaigns, a collection of objects described in the Garlic schema.
She brought up the associated financial report by clicking on the Report field, and the first of the set of associated images by clicking on the Stills field. She can now flip through the images belonging to her campaign by clicking on the Next button of the Stills window, or she can move on to other campaigns by clicking Next on the Campaign window. This would automatically change the contents of the Report and Stills windows to match the new Campaign. However, in this screen, our exec has indicated that she wishes to ask a query, by clicking on the 'Q' query button on the Campaigns window.
In the screen below, the executive is in the process of entering her query. The 'Q' buttons are blue, indicating that a query is active. Our exec has indicated that she doesn't know the name of the campaign or the company for which the campaign was developed but she does know that the campaign was developed after 1989, and according to the financial report, it earned over $250,000. She has just clicked on the Q in the Stills window, indicating that she wants to put a restriction on that aspect of Campaigns. Since Stills are images, a window has popped up asking what type of image query she would like. Our exec chose `Scene' query. There is a `DO IT' button waiting to be pressed whenever she is done composing the query.
In the screen below, our exec completes her query using a powerful image GUI to specify the image predicate (akin to QBIC).
Then she selects the `DO IT' button. The screen below shows the result: a set of campaigns meeting the given conditions. Now the exec can scroll through them using the Next and Previous buttons until she finds the one she wanted.