Class ResourceUtils

java.lang.Object
org.apache.jena.util.ResourceUtils

public class ResourceUtils extends Object

General utility methods that operate on RDF resources, but which are not specific to a given model.

  • Constructor Details

    • ResourceUtils

      public ResourceUtils()
  • Method Details

    • maximalLowerElements

      public static <T extends Resource> List<T> maximalLowerElements(Collection<T> resources, Property rel, boolean inverse)

      Answer the maximal lower elements of the given collection, given the partial ordering rel. See maximalLowerElements(Iterator, Property, boolean) for details.

      Parameters:
      resources - A collection of resources
      rel - A property defining a partial-ordering on resources
      inverse - If true, we invert the given property (by reversing the order of the arguments), which allows us to use eg subClassOf as a partial order operator for both sub-class and super-class relationships
      Returns:
      The collection that contains only those resources are not greater than another resource under the partial order.
    • maximalLowerElements

      public static <T extends Resource> List<T> maximalLowerElements(Iterator<T> resources, Property rel, boolean inverse)

      Given a collection of resources, and a relation defining a partial order over those resources, answer the sub-collection that contains only those elements that appear in the maximal generator of the relation. Specifically, a resource x is excluded from the return value if there is another resource y in the input collection such that y Rel x holds.

      Parameters:
      resources - An iterator over a collection of resources
      rel - A property defining a partial-ordering on resources
      inverse - If true, we invert the given property (by reversing the order of the arguments), which allows us to use eg subClassOf as a partial order operator for both sub-class and super-class relationships
      Returns:
      The list that contains only those resources are not greater than another resource under the partial order.
    • removeEquiv

      public static <T extends Resource> List<T> removeEquiv(List<T> l, Property p, Resource ref)

      Remove from the given list l of Resources, any Resource that is equivalent to the reference resource ref under the relation p. Typically, p will be owl:subClassOf or owl:subPropertyOf or some similar predicate. A resource R is defined to be equivalent to ref iff R p ref is true and ref p R is true.

      The equivalent resources are removed from list l in place, the return value is the list of removed resources.

      Parameters:
      l - A list of resources from which the resources equivalent to ref will be removed
      p - An equivalence predicate
      ref - A reference resource
      Returns:
      A list of the resources removed from the parameter list l
    • partition

      public static <T extends Resource> List<List<T>> partition(List<T> l, Property p)

      Answer a list of lists, which is a partition of the given input list of resources. The equivalence relation is the predicate p. So, two resources a and b will be in the same partition iff (a p b) && (b p a).

      Type Parameters:
      T -
      Parameters:
      l - A list of resources
      p - An equivalence predicate
      Returns:
      A list of lists which are the partitions of l under p
    • renameResource

      public static Resource renameResource(Resource old, String uri)

      Answer a new resource that occupies the same position in the graph as the current resource old, but that has the given URI. In the process, the existing statements referring to old are removed. Since Jena does not allow the identity of a resource to change, this is the closest approximation to a rename operation that works.

      Renaming a resource to its own URI is a no-op. Resources in the predicate position of statements are not renamed. Intermediate store for the triples mentioning old is required.

      NoteThis implementation is a general and simple approach, and in given applications it may be possible to do this operation more efficiently.

      Parameters:
      old - An existing resource in a given model
      uri - A new URI for resource old, or null to rename old to a bNode
      Returns:
      A new resource that occupies the same position in the graph as old, but which has the new given URI.
    • reachableClosure

      public static Model reachableClosure(Resource root)

      Answer a model that contains all of the resources reachable from a given resource by any property, transitively. The returned graph is the sub-graph of the parent graph of root, whose root node is the given root. Cycles are permitted in the sub-graph.

      Parameters:
      root - The root node of the sub-graph to extract
      Returns:
      A model containing all reachable RDFNodes from root by any property.