Class AGValueFactory

All Implemented Interfaces:
ValueFactory

public class AGValueFactory extends SimpleValueFactory
Implements the Sesame ValueFactory interface for AllegroGraph.
  • Field Details

    • PREFIX_FOR_EXTERNAL_BNODES

      public String PREFIX_FOR_EXTERNAL_BNODES
  • Constructor Details

  • Method Details

    • getRepository

      public AGRepository getRepository()
    • getHTTPClient

      public AGHTTPClient getHTTPClient()
    • getBlankNodesPerRequest

      public int getBlankNodesPerRequest()
      Gets the number of blank nodes fetched per request.
      Returns:
      int the number of blank nodes fetched per request
    • setBlankNodesPerRequest

      public void setBlankNodesPerRequest(int amount)
      Sets the number of blank nodes to fetch per request.

      This can be used to control the number and frequency of HTTP requests made when automatically obtaining new sets of blank node ids from the server.

      Defaults to the value of System property com.franz.agraph.repository.blankNodesPerRequest or to 100 if that property has not been set.

      Parameters:
      amount - a positive integer
    • getBlankNodeIds

      public String[] getBlankNodeIds()
      Returns the array of fetched blank node ids

      Primarily for testing purposes, not for use in apps.

      Returns:
      the array of fetched blank node ids
    • createBNode

      public BNode createBNode(String nodeID)
      Returns a new blank node with the given id.

      Consider using createBNode() instead to get an AG-allocated id, it is safer (avoids unintended blank node conflicts) and can be stored more efficiently.

      If id is null or empty, returns a unique BNode with AG-allocated id; otherwise, returns a BNode with the given (a.k.a. "external") id (careful to avoid blank node conflicts). See the javadoc for allowing external blank nodes for more discussion.

      Specified by:
      createBNode in interface ValueFactory
      Overrides:
      createBNode in class SimpleValueFactory
      See Also:
    • createBNode

      public BNode createBNode()
      Returns a new blank node.

      If this value factory is for an AGRepository, returns a new BNode with an AG-allocated id; otherwise, returns a new BNode with an "external" id (using ValueFactoryImpl). See also the javadoc for allowing external blank nodes for more discussion.

      Specified by:
      createBNode in interface ValueFactory
      Overrides:
      createBNode in class SimpleValueFactory
      See Also:
    • asValue

      public Value asValue(Node node)
      Creates an OpenRDF Value from a concrete Jena Node.
      Parameters:
      node - a concrete Jena node
      Returns:
      the corresponding Value
    • isAGBlankNodeId

      public boolean isAGBlankNodeId(String id)
      Returns true iff id looks like an AG blank node id.

      AG blank node ids currently have the following form:

      b[store ID in hex]x[blank node number].

      There is nothing sacrosanct about this but it is unlikely to change.

      Parameters:
      id - the string to be tested
      Returns:
      true iff id looks like an AG blank node id
    • isURIForExternalBlankNode

      public boolean isURIForExternalBlankNode(Value v)
    • asResource

      public Resource asResource(Node node)
    • asURI

      public IRI asURI(Node node)
    • generateURIs

      public IRI[] generateURIs(String namespace, int amount) throws RepositoryException
      Returns unique URIs within the specified encodable namespace.

      The generated URIs will conform to the format that was specified when the encodable namespace was registered, and are guaranteed to be unique for this namespace generator. Note that this does not prevent other parties from independently using URIs that involve this namespace, however.

      If amount cannot be generated, up to amount URIs will be returned, or an exception will be thrown if none are available.

      Parameters:
      namespace - encodable namespace from which the URIs will be generated
      amount - the number of URIs to generate
      Returns:
      a unique URI within the specified namespace.
      Throws:
      RepositoryException - if there is an error with this request
      See Also:
    • generateURI

      public IRI generateURI(String registeredEncodableNamespace) throws RepositoryException
      Returns a unique URI within the specified encodable namespace.

      The generated URI will conform to the format that was specified when the encodable namespace was registered, and is guaranteed to be unique for this namespace generator. Note that this does not prevent other parties from independently using URIs that involve this namespace, however.

      Parameters:
      registeredEncodableNamespace - encodable namespace from which the URI will be generated
      Returns:
      a unique URI within the specified namespace.
      Throws:
      RepositoryException - if there is an error with this request
      See Also: