use of org.apache.stanbol.ontologymanager.registry.api.model.Registry in project stanbol by apache.
the class RegistryManagerImpl method computeBestCandidate.
/**
* @deprecated with each library having its own cache, load balancing is no longer necessary
* @return
*/
protected Registry computeBestCandidate(Library lib) {
Map<IRI, Float> loadFactors = computeLoadFactors();
IRI current = null;
float lowest = 1.0f;
for (RegistryItem item : lib.getParents()) {
IRI iri = item.getIRI();
if (loadFactors.containsKey(iri)) {
float f = loadFactors.get(iri);
if (f < lowest) {
lowest = f;
current = iri;
}
}
}
return (Registry) (population.get(current));
}
use of org.apache.stanbol.ontologymanager.registry.api.model.Registry in project stanbol by apache.
the class RegistryManagerImpl method populateRegistry.
protected Registry populateRegistry(OWLOntology registry) throws RegistryContentException {
log.debug("Populating registry content from ontology {}", registry);
Registry reg = riFactory.createRegistry(registry);
Set<OWLOntology> closure = registry.getOWLOntologyManager().getImportsClosure(registry);
// Just scan all individuals. Recurse in case the registry imports more registries.
for (OWLIndividual ind : registry.getIndividualsInSignature(true)) {
// We do not allow anonymous registry items.
if (ind.isAnonymous())
continue;
RegistryItem item = null;
// IRI id = ind.asOWLNamedIndividual().getIRI();
Type t = RegistryUtils.getType(ind, closure);
if (t == null) {
log.warn("Undetermined type for registry ontology individual {}", ind);
continue;
}
switch(t) {
case LIBRARY:
log.debug("Found library for individual {}", ind);
// Create the library and attach to parent and children
item = populateLibrary(ind.asOWLNamedIndividual(), closure);
reg.addChild(item);
item.addRegistryContentListener(this);
break;
case ONTOLOGY:
log.debug("Found ontology for individual {}", ind);
// Create the ontology and attach to parent
item = populateOntology(ind.asOWLNamedIndividual(), closure);
item.addRegistryContentListener(this);
// We don't know where to attach it within this method.
break;
default:
break;
}
}
try {
reg.addRegistryContentListener(this);
log.info("Registry {} added.", reg.getIRI());
population.put(reg.getIRI(), reg);
} catch (Exception e) {
log.error("Invalid identifier for library item " + reg, e);
return null;
}
return reg;
}
use of org.apache.stanbol.ontologymanager.registry.api.model.Registry in project stanbol by apache.
the class RegistryUtils method containsOntologyRecursive.
/**
* Utility method to recurse into registry items.
*
* TODO: move this to main?
*
* @param item
* @param ontologyId
* @return
*/
public static boolean containsOntologyRecursive(RegistryItem item, IRI ontologyId) {
boolean result = false;
if (item instanceof RegistryOntology) {
// An Ontology MUST have a non-null URI.
try {
IRI iri = item.getIRI();
result |= iri.equals(ontologyId);
} catch (Exception e) {
return false;
}
} else if (item instanceof Library || item instanceof Registry)
// Inspect children
for (RegistryItem child : item.getChildren()) {
result |= containsOntologyRecursive(child, ontologyId);
if (result)
break;
}
return result;
}
Aggregations