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 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 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 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 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 p
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.
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