public class ResourceUtils extends Object
General utility methods that operate on RDF resources, but which are not specific to a given model.
| Constructor and Description |
|---|
ResourceUtils() |
| Modifier and Type | Method and Description |
|---|---|
static <T extends Resource> |
maximalLowerElements(Collection<T> resources,
Property rel,
boolean inverse)
Answer the maximal lower elements of the given collection, given the partial
ordering
rel. |
static <T extends Resource> |
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.
|
static <T extends Resource> |
partition(List<T> l,
Property p)
Answer a list of lists, which is a partition of the given
input list of resources.
|
static Model |
reachableClosure(Resource root)
Answer a model that contains all of the resources reachable from a given
resource by any property, transitively.
|
static <T extends Resource> |
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. |
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. |
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.
resources - A collection of resourcesrel - A property defining a partial-ordering on resourcesinverse - 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 relationshipsresources are not
greater than another resource under the partial order.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.
resources - An iterator over a collection of resourcesrel - A property defining a partial-ordering on resourcesinverse - 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 relationshipsresources are not
greater than another resource under the partial order.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.
l - A list of resources from which the resources equivalent to ref will be removedp - An equivalence predicateref - A reference resourcepublic 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).
T - l - A list of resourcesp - An equivalence predicatel
under ppublic 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.
old - An existing resource in a given modeluri - A new URI for resource old, or null to rename old to a bNodepublic 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.
root - The root node of the sub-graph to extractLicenced under the Apache License, Version 2.0