org.jscience.bibliography
Interface BibRefSupport


public interface BibRefSupport

An interface defining supporting utilities for working with bibliographic repositories, mainly how to access controlled vocabularies. It is modelled according to the BQS CORBA interface BibRefUtilities.

The implementations are advised to used the following constructor:

    public NameOfAnImplementation (String[] args, Hashtable props) {...}
 
where both args and props contain implementation specific parameters and properties. However, some properties are more probable to be used - the suggested names for them are defined also in this interface (e.g. INIT_PROP_LOG).


Field Summary
static java.lang.String ATTR_FORMAT
           
static java.lang.String ATTR_PROPERTIES
           
static java.lang.String ATTR_SCOPE
           
static java.lang.String ENTRY_PROPERTIES
           
static java.lang.String GENERIC_PROVIDER
           
static java.lang.String INIT_PROP_LOG
          A property name ("log").
static java.lang.String INIT_PROP_SUPPORT
          A property name ("bibrefsupport").
static java.lang.String JOURNAL_ABBREV
           
static java.lang.String JOURNAL_TITLES
           
static java.lang.String LANGUAGES
           
static java.lang.String PROVIDER_ORGANISATION
           
static java.lang.String PROVIDER_PERSON
           
static java.lang.String PROVIDER_SERVICE
           
static java.lang.String REPOSITORY_SUBSETS
           
static java.lang.String RESOURCE_TYPES
           
static java.lang.String ROLE_ATTR_QUERYABLE
           
static java.lang.String ROLE_ATTR_RETRIEVABLE
           
static java.lang.String SUBJECT_HEADINGS
           
static java.lang.String TYPE_ARTICLE
           
static java.lang.String TYPE_BOOK
           
static java.lang.String TYPE_BOOK_ARTICLE
           
static java.lang.String TYPE_JOURNAL_ARTICLE
           
static java.lang.String TYPE_PATENT
           
static java.lang.String TYPE_PROCEEDING
           
static java.lang.String TYPE_TECH_REPORT
           
static java.lang.String TYPE_THESIS
           
static java.lang.String TYPE_WEB_RESOURCE
           
 
Method Summary
 void connect()
          *********************************************************************** Make a connection to an object providing the supporting utilities, or/and make initialization steps needed to further communication.
 void disconnect()
          *********************************************************************** Disconnect from the utility object.
 BiblioCriterion[] getSupportedCriteria()
          *********************************************************************** Return all supported searching and sorting criteria for the whole bibliographic repository
 BiblioCriterion[] getSupportedCriteria(java.lang.String repositorySubset)
          *********************************************************************** Return all supported searching and sorting criteria in the given repository subset
 embl.ebi.CandyShare.CandyVocabulary getSupportedValues(java.lang.String resourceType, java.lang.String attrName)
          *********************************************************************** Return a controlled vocabulary containing all possible values of the attribute 'attrName' in the context of 'resourceType'.
 embl.ebi.CandyShare.CandyFinder getVocabularyFinder()
          *********************************************************************** Return an object representing a central place where all controlled vocabularies can be received from and shared by all users.
 boolean isReady()
          *********************************************************************** Check if a utility object is available.
 BibRefQuery union(BibRefQuery[] collections, java.util.Hashtable properties)
          ********************************************************************** Merge all given collections together.
 

Field Detail

RESOURCE_TYPES

static final java.lang.String RESOURCE_TYPES
See Also:
Constant Field Values

REPOSITORY_SUBSETS

static final java.lang.String REPOSITORY_SUBSETS
See Also:
Constant Field Values

SUBJECT_HEADINGS

static final java.lang.String SUBJECT_HEADINGS
See Also:
Constant Field Values

LANGUAGES

static final java.lang.String LANGUAGES
See Also:
Constant Field Values

JOURNAL_TITLES

static final java.lang.String JOURNAL_TITLES
See Also:
Constant Field Values

JOURNAL_ABBREV

static final java.lang.String JOURNAL_ABBREV
See Also:
Constant Field Values

ENTRY_PROPERTIES

static final java.lang.String ENTRY_PROPERTIES
See Also:
Constant Field Values

TYPE_BOOK

static final java.lang.String TYPE_BOOK
See Also:
Constant Field Values

TYPE_ARTICLE

static final java.lang.String TYPE_ARTICLE
See Also:
Constant Field Values

TYPE_BOOK_ARTICLE

static final java.lang.String TYPE_BOOK_ARTICLE
See Also:
Constant Field Values

TYPE_JOURNAL_ARTICLE

static final java.lang.String TYPE_JOURNAL_ARTICLE
See Also:
Constant Field Values

TYPE_PATENT

static final java.lang.String TYPE_PATENT
See Also:
Constant Field Values

TYPE_THESIS

static final java.lang.String TYPE_THESIS
See Also:
Constant Field Values

TYPE_PROCEEDING

static final java.lang.String TYPE_PROCEEDING
See Also:
Constant Field Values

TYPE_TECH_REPORT

static final java.lang.String TYPE_TECH_REPORT
See Also:
Constant Field Values

TYPE_WEB_RESOURCE

static final java.lang.String TYPE_WEB_RESOURCE
See Also:
Constant Field Values

PROVIDER_PERSON

static final java.lang.String PROVIDER_PERSON
See Also:
Constant Field Values

PROVIDER_ORGANISATION

static final java.lang.String PROVIDER_ORGANISATION
See Also:
Constant Field Values

PROVIDER_SERVICE

static final java.lang.String PROVIDER_SERVICE
See Also:
Constant Field Values

GENERIC_PROVIDER

static final java.lang.String GENERIC_PROVIDER
See Also:
Constant Field Values

ATTR_PROPERTIES

static final java.lang.String ATTR_PROPERTIES
See Also:
Constant Field Values

ATTR_SCOPE

static final java.lang.String ATTR_SCOPE
See Also:
Constant Field Values

ATTR_FORMAT

static final java.lang.String ATTR_FORMAT
See Also:
Constant Field Values

ROLE_ATTR_QUERYABLE

static final java.lang.String ROLE_ATTR_QUERYABLE
See Also:
Constant Field Values

ROLE_ATTR_RETRIEVABLE

static final java.lang.String ROLE_ATTR_RETRIEVABLE
See Also:
Constant Field Values

INIT_PROP_LOG

static final java.lang.String INIT_PROP_LOG
A property name ("log"). Used by various classes to pass an instance of a Log class.

See Also:
Constant Field Values

INIT_PROP_SUPPORT

static final java.lang.String INIT_PROP_SUPPORT
A property name ("bibrefsupport"). Used by various classes to pass an instance of a class implementing this interface.

See Also:
Constant Field Values
Method Detail

connect

void connect()
             throws BQSException
*********************************************************************** Make a connection to an object providing the supporting utilities, or/and make initialization steps needed to further communication.

Throws:
BQSException

isReady

boolean isReady()
*********************************************************************** Check if a utility object is available. The semantic of availabledepends on the implementation. ***********************************************************************


disconnect

void disconnect()
*********************************************************************** Disconnect from the utility object. Implementations may choose to use this method for freeing resources needed to acces the repository. ***********************************************************************


getVocabularyFinder

embl.ebi.CandyShare.CandyFinder getVocabularyFinder()
                                                    throws BQSException
*********************************************************************** Return an object representing a central place where all controlled vocabularies can be received from and shared by all users.

The controlled vocabularies are used for finding names of all available attributes of the given bibliographic repository, for finding all possible values of some attributes, and for specifying availability of the ordering and searching criteria.

Returns:
an instance implementing a CandyFinder interface
Throws:
BQSException - if the cocabulary finder cannot be found ***********************************************************************

getSupportedValues

embl.ebi.CandyShare.CandyVocabulary getSupportedValues(java.lang.String resourceType,
                                                       java.lang.String attrName)
                                                       throws BQSException
*********************************************************************** Return a controlled vocabulary containing all possible values of the attribute 'attrName' in the context of 'resourceType'. It's up to the implementation to define the context.

Specifically, for 'attrName' equals to ATTR_PROPERTIES it returns a vocabulary containing attribute names available for the given citation type (also called 'dynamic properties').

Parameters:
resourceType - is usually a name of a citation type (e.g. "Book", "JournalArticle"), see TYPE_BOOK, etc., but can define other contexts as well (e.g. "Person")
attrName - a name of an attribute whose values should be available from the returned vocabulary
Returns:
a controlled vocabulary
Throws:
BQSException

getSupportedCriteria

BiblioCriterion[] getSupportedCriteria(java.lang.String repositorySubset)
                                       throws BQSException
*********************************************************************** Return all supported searching and sorting criteria in the given repository subset. ***********************************************************************

Throws:
BQSException

getSupportedCriteria

BiblioCriterion[] getSupportedCriteria()
                                       throws BQSException
*********************************************************************** Return all supported searching and sorting criteria for the whole bibliographic repository. ***********************************************************************

Throws:
BQSException

union

BibRefQuery union(BibRefQuery[] collections,
                  java.util.Hashtable properties)
                  throws BQSException
********************************************************************** Merge all given collections together. The result should eliminate redundancy - which usually means removing the same citations.

The merging process can be influenced by specifying some properties (but they are not defined by this interface, they depend on the implementation).

Note that the merging is independent on the repository, or repositories where the collections come from. The main raison d'etre is actually to allow to merge collections from different repositories. But it opens the question what to do with the resulting collection (how to query it, for example, if it is a "virtual" collection). So it can be quite difficult to implement this method :-(. Perhaps in the future we may decide to move it to BibRefQuery?

Parameters:
collections - to be merged together
properties - define features how to do merging
Returns:
a merged collection
Throws:
BQSException - if merging failed (which may also happen when any of the collection is too large) ***********************************************************************