Class RDFServiceTDB

  • All Implemented Interfaces:
    RDFService

    public class RDFServiceTDB
    extends RDFServiceJena
    An implementation that is based on Jena TDB.
    • Method Detail

      • changeSetUpdate

        public boolean changeSetUpdate​(ChangeSet changeSet)
                                throws RDFServiceException
        Description copied from interface: RDFService
        Performs a series of additions to and or removals from specified graphs in the RDF store. preConditionSparql is executed against the union of all the graphs in the knowledge base before any updates are made. If the precondition query returns a non-empty result, no updates are made made.
        Specified by:
        changeSetUpdate in interface RDFService
        Specified by:
        changeSetUpdate in class RDFServiceJena
        Parameters:
        changeSet - - a set of changes to be performed on the RDF store.
        Returns:
        boolean - indicates whether the precondition was satisfied
        Throws:
        RDFServiceException
      • close

        public void close()
        Description copied from interface: RDFService
        Frees any resources held by this RDFService object The implementation of this method should be idempotent so that multiple invocations do not cause an error.
        Specified by:
        close in interface RDFService
        Overrides:
        close in class RDFServiceJena
      • sparqlConstructQuery

        public void sparqlConstructQuery​(String query,
                                         org.apache.jena.rdf.model.Model model)
                                  throws RDFServiceException
        Description copied from interface: RDFService
        Performs a SPARQL construct query against the knowledge base. The query may have an embedded graph identifier. If the query does not contain a graph identifier the query is executed against the union of all named and unnamed graphs in the store.
        Specified by:
        sparqlConstructQuery in interface RDFService
        Overrides:
        sparqlConstructQuery in class RDFServiceJena
        Parameters:
        query - - the SPARQL query to be executed against the RDF store
        model - - the Model to add the statements to
        Throws:
        RDFServiceException
      • sparqlSelectQuery

        public void sparqlSelectQuery​(String query,
                                      ResultSetConsumer consumer)
                               throws RDFServiceException
        Description copied from interface: RDFService
        Performs a SPARQL select query against the knowledge base. The query may have an embedded graph identifier. If the query does not contain a graph identifier the query is executed against the union of all named and unnamed graphs in the store.
        Specified by:
        sparqlSelectQuery in interface RDFService
        Overrides:
        sparqlSelectQuery in class RDFServiceJena
        Parameters:
        query - - the SPARQL query to be executed against the RDF store
        consumer - - the class to consume the results of the query
        Throws:
        RDFServiceException
      • sparqlAskQuery

        public boolean sparqlAskQuery​(String query)
                               throws RDFServiceException
        Description copied from interface: RDFService
        Performs a SPARQL ASK query against the knowledge base. The query may have an embedded graph identifier. If the query does not contain a graph identifier the query is executed against the union of all named and unnamed graphs in the store.
        Specified by:
        sparqlAskQuery in interface RDFService
        Overrides:
        sparqlAskQuery in class RDFServiceJena
        Parameters:
        query - - the SPARQL ASK query to be executed against the RDF store
        Returns:
        boolean - the result of the SPARQL ASK query
        Throws:
        RDFServiceException
      • serializeAll

        public void serializeAll​(OutputStream outputStream)
                          throws RDFServiceException
        Description copied from interface: RDFService
        Serializes the union of all named and unnamed graphs in the store to the supplied OutputStream, in N-Quads format. This method is designed for exporting data from VIVO, so any filters should be bypassed. If possible, this should be done without buffering in memory, so arbitrarily large graphs can be exported.
        Specified by:
        serializeAll in interface RDFService
        Overrides:
        serializeAll in class RDFServiceJena
        Parameters:
        outputStream - - receives the serialized result.
        Throws:
        RDFServiceException
      • serializeGraph

        public void serializeGraph​(String graphURI,
                                   OutputStream outputStream)
                            throws RDFServiceException
        Description copied from interface: RDFService
        Serializes the contents of the named graph to the supplied OutputStream, in N-Triples format. This method is designed for exporting data from VIVO, so any filters should be bypassed. If possible, this should be done without buffering in memory, so arbitrarily large graphs can be exported.
        Specified by:
        serializeGraph in interface RDFService
        Overrides:
        serializeGraph in class RDFServiceJena
        Parameters:
        graphURI - - the URI of the desired graph. May not be null.
        outputStream - - receives the serialized result.
        Throws:
        RDFServiceException
      • isEquivalentGraph

        public boolean isEquivalentGraph​(String graphURI,
                                         InputStream serializedGraph,
                                         RDFService.ModelSerializationFormat serializationFormat)
                                  throws RDFServiceException
        TDB has a bug: if given a literal of type xsd:nonNegativeInteger, it stores a literal of type xsd:integer. To determine whether this serialized graph is equivalent to what's in TDB, we need to do the same.
        Specified by:
        isEquivalentGraph in interface RDFService
        Overrides:
        isEquivalentGraph in class RDFServiceJena
        Parameters:
        graphURI - - the URI of the graph to test against. May not be null.
        serializedGraph - - the contents to be compared with the existing graph. May not be null.
        serializationFormat - - May not be null.
        Throws:
        RDFServiceException
      • isEquivalentGraph

        public boolean isEquivalentGraph​(String graphURI,
                                         org.apache.jena.rdf.model.Model graph)
                                  throws RDFServiceException
        TDB has a bug: if given a literal of type xsd:nonNegativeInteger, it stores a literal of type xsd:integer. To determine whether this serialized graph is equivalent to what's in TDB, we need to do the same.
        Specified by:
        isEquivalentGraph in interface RDFService
        Overrides:
        isEquivalentGraph in class RDFServiceJena
        Parameters:
        graphURI - - the URI of the graph to test against. May not be null.
        graph - - the contents to be compared with the existing graph. May not be null.
        Throws:
        RDFServiceException