Fedora Resource Index

The Fedora Resource Index service is described in http://www.fedora-commons.org/confluence/display/FCR30/Resource+Index

The resource index is queried by iTQL. A guide to iTQL can be found on http://docs.mulgara.org/itqlcommands/select.html

This has a graphical user interface, which it very helpful to users, but not programmatically useful. The interface is described here:

http://www.fedora-commons.org/confluence/display/FCR30/Resource+Index+Search

For programs, there are two interfaces, neither of which is very optimal.

The first is the REST-based interface, defined in

http://www.fedora-commons.org/confluence/display/FCR30/Resource+Index+Search#ResourceIndexSearch-ApplicationInterface

The second is the Fedora client, which has a method getTuples(). See

http://www.fedora-commons.org/documentation/3.0/javadocs/index.html?fedora/client/FedoraClient.html.

It has the javadoc

    /**
     * Get tuples from the remote resource index. The map contains
     * <em>String</em> values for parameters that should be passed to the
     * service. Two parameters are required: 1) lang 2) query Two parameters to
     * the risearch service are implied: 1) type = tuples 2) format = sparql See
     * http://www.fedora.info/download/2.0/userdocs/server/webservices/risearch/#app.tuples
     */

which is nicely outdated.This method, returns an org.trippi.TupleIterator which parses the sparql result. The javadoc for this can be found on http://trippi.sourceforge.net/api/org/trippi/TupleIterator.html Note that the page is not updated either, the releases can be found in the svn, and has reached version 1.4. Fedora use 1.3.2, which is unknown, but 1.3.1 can be checked out. Look at http://sourceforge.net/svn/?group_id=123675 to od this.

The result consist of a list of maps. The iterator iterates through this list, returning maps. The iterator has a method, names, giving the keys to each map. The values in the maps are of type Node, http://jrdf.sourceforge.net/0.3.4/doc/javadoc/org/jrdf/graph/Node.html

In practice each node will always be a Literal node or a URI reference Node or a Blank node,

http://jrdf.sourceforge.net/0.3.4/doc/javadoc/org/jrdf/graph/URIReference.html,

http://jrdf.sourceforge.net/0.3.4/doc/javadoc/org/jrdf/graph/Literal.html ,

http://jrdf.sourceforge.net/0.3.4/doc/javadoc/org/jrdf/graph/BlankNode.html