General utility methods that operate on RDF resources, but which are not specific to a given model.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionmaximalLowerElements(Collection<T> resources, Property rel, boolean inverse) Answer the maximal lower elements of the given collection, given the partial orderingrel.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.Answer a list of lists, which is a partition of the given input list of resources.static ModelreachableClosure(Resource root) Answer a model that contains all of the resources reachable from a given resource by any property, transitively.removeEquiv(List<T> l, Property p, Resource ref) Remove from the given list l ofResources, any Resource that is equivalent to the reference resourcerefunder the relationp.static ResourcerenameResource(Resource old, String uri) Answer a new resource that occupies the same position in the graph as the current resourceold, but that has the given URI.
-
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. SeemaximalLowerElements(Iterator, Property, boolean)for details.- Parameters:
resources- A collection of resourcesrel- A property defining a partial-ordering onresourcesinverse- 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
resourcesare 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
xis excluded from the return value if there is another resourceyin the input collection such thaty Rel xholds.- Parameters:
resources- An iterator over a collection of resourcesrel- A property defining a partial-ordering onresourcesinverse- 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
resourcesare not greater than another resource under the partial order.
-
removeEquiv
Remove from the given list l of
Resources, any Resource that is equivalent to the reference resourcerefunder the relationp. Typically,pwill beowl:subClassOforowl:subPropertyOfor some similar predicate. A resource R is defined to be equivalent torefiffR p refis true andref p Ris true.The equivalent resources are removed from list
lin 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 removedp- An equivalence predicateref- A reference resource- Returns:
- A list of the resources removed from the parameter list l
-
partition
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
aandbwill be in the same partition iff(a p b) && (b p a).- Type Parameters:
T-- Parameters:
l- A list of resourcesp- An equivalence predicate- Returns:
- A list of lists which are the partitions of
lunderp
-
renameResource
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 tooldare 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
oldis 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 modeluri- A new URI for resource old, ornullto 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
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.
-