Oracle8i Visual Information Retrieval Java Client User's Guide and Reference
Release 8.1.5

A67300-01

Library

Product

Contents

Index

Prev Next

1
Introduction

Oracle8i Visual Information Retrieval is an extension to Oracle8i Enterprise Edition that provides image storage, content-based retrieval, and format conversion capabilities through an object type. The capabilities of this product encompass the storage, retrieval, and manipulation of image data managed by the Oracle8i Enterprise Edition database server. This product supports image storage using binary large objects (BLOBs) and references to image data residing externally in binary files (BFILEs) or URLs.

Visual Information Retrieval is a building block for various imaging applications, rather than being an end-user application in itself. It consists of an object type (OrdVir) along with related methods for managing and processing image data.

Refer to Oracle8i Visual Information Retreival User's Guide and Reference for information about how visual information retrieval works.


Note:

Many of the methods mentioned in this chapter are described in the Oracle8i interMedia Audio, Image, and Video Java Client User's Guide and Reference. This guide describes only methods that are unique or changed from the superclass definition.  


1.1 Relationship with Oracle8i interMedia Image

You may already be familiar with Oracle8i interMedia Image, either as a component of Oracle8i interMedia or in a previous release as Oracle8 Image Cartridge. The base Image option and Visual Information Retrieval both let you store an image as an object in the database or as a reference to an external file or URL. Both products let you store and query on the following attributes:

Understanding the base Image option is important because the Visual Information Retrieval object type is defined as the Image object plus a signature attribute.

The main differences between the Image option and the Visual Information Retrieval product are that Visual Information Retrieval lets you create and use indexes, and perform content-based retrieval. Content-based retrieval lets you perform queries based on intrinsic visual attributes of the image (color, structure, texture), rather than being limited to keyword searches in textual annotations or descriptions. The underlying technology was developed by Virage, Inc., a leader in content-based retrieval.

Visual Information Retrieval can also be used for facial image recognition when used in conjunction with software from Viisage Technology, Inc. Facial image recognition has applications ranging from security, by determining if the holder of an ATM card is the owner of the card, to movie casting, by determining which actor looks most like a particular historical figure.

1.2 Client-Side Support

Visual Information Retrieval lets you store image data in a database table. The Java client aspect of the product lets you develop client-side Java applications to manipulate and/or modify image data stored in a network-accessible (server-side) database.

You can connect to a server-side object, copy that object from the server side to the client side, perform various operations on the client-side object, and transfer the new object back to the server side.

For situations where you do not have permission to modify the server-side object, Visual Information Retrieval Java Client can retrieve the image from the server side for display purposes only.

1.3 Client/Server Similarities and Differences

Client-side objects have many similarities to server-side objects of the same type.

For each client-side object, there must be a corresponding server-side object. The objects are identical, and the client-side object contains all the APIs that the server-side object does.

However, there are some architectural differences between the two. Visual Information Retrieval Java Client makes use of Java inheritance to build the OrdVir class from the OrdImage and OrdMultiMedia superclasses.

There are a number of attributes that are included on the client side that are not on the server side. These include the following:

The client side also includes some APIs that are not included on the server side. These APIs are used to do the following:

1.4 Client/Server Interaction

The client/server interaction described in this section assumes that you have created an OrdVir object on the client side.

The following steps describe the process of modifying an OrdVir object using a client/server model.

  1. Make a connection from the client to the server with the setConnection( ) method.

  2. Bind a client-side object to a matching server-side object based on the tableName, columnName, and condition variables.

  3. Refresh the client-side object. The server sends information about the server-side object to the client-side object. The client-side object is then updated to exactly match the server-side object.

    It is possible to refresh in two different modes: for read-only purposes and for updating purposes. The difference between the two is the lock value. If the lock value is false, then you do not have permission to make changes to the object. If the lock value is true, then you have permission to make changes to the object.

  4. Perform some server-side image processing operations from the client-side object. Note that if you execute a method that operates on the server-side object and it changes the state of the server-side object, you must explicitly refresh the client-side object to reflect that change.

  5. Flush the client-side object. Once you finish using the client-side object, the client sends information about the client-side object to the server-side object. The server-side object is then updated to exactly match the client-side object.

    Note that if you execute a method that operates on the client-side object and it changes the state of only the client-side object, you must explicitly flush the server-side object to reflect that change on the server side.

  6. If you set a lock, it is not automatically released upon flushing. You must release the lock manually using the setLock( ) method.

If Table 1-1 indicates that a method operates on both sides, this means that the method operates on the server side, but afterward, it synchronizes with the attributes on the client side.

Table 1-1 Client/Server Interactions for OrdVir and Superclass Methods
Method   OrdVir Object Location  

analyze  

Client, Server  

checkProperties  

Server  

clearLocal  

Client  

convert  

Server  

convert (static)  

Server  

copy  

Server  

deleteContent  

Server  

getAllAttributesAsString  

Client  

getBFILE  

Server  

getCompressionFormat  

Client  

getContent  

Client, Server  

getContentFormat  

Client  

getContentLength  

Client  

getData (2 methods)  

Server  

getDataInFile  

Server  

getDataInStream  

Server  

getFormat  

Client  

getHeight  

Client  

getMimeType  

Client  

getSignature  

Client  

getSource  

Client  

getSourceLocation  

Client  

getSourceName  

Client  

getSourceObject  

Client  

getSourceType  

Client  

getUpdateTime  

Client  

getWidth  

Client  

importData  

Server  

importFrom  

Server  

isLocal  

Client  

loadData (2 methods)  

Server  

process  

Server  

processCopy  

Server  

score  

Operates on the server side against the client-side signature  

score (static)  

Operates on the server side against the client-side signature  

setFormat  

Client  

setLocal  

Client  

setMimeType  

Client  

setProperties  

Client, Server  

setProperties(String)  

Client, Server  

setSignature  

Client  

setSource  

Client  

setSourceInformation  

Client  

setUpdateTime  

Client, Server  

similar  

Operates on the server side against the client-side signature  

similar (static)  

Operates on the server side against the client-side signature  




Prev

Next
Oracle
Copyright © 1999 Oracle Corporation.

All Rights Reserved.

Library

Product

Contents

Index