At his presentations Bertrand presented the idea of using a tuple-space so that multiple EnhancementEngines can enhance resources even when depending on the result of another.
I think this can be done with current clerezza instrastructure requiring no additional api: Say we have 3 engines - Pdf2Text - TextAnnotator - geo-enhancer This engines register to the content-graph as listener. Pdf2Text: Listens for triples matching the patter (:Representation :type "appplication/pdf") when one is added that doesn't already have a plain -text representation it creates one TextAnnotator: listens for the addition of type text/plain and annotates them, for example this might create a resource of type geo:Place with label "Salzburg" -the geo-enhancer listens to new resources of type geo:Place and enhances them with their coordinates The most important method to implement this is probably: http://incubator.apache.org/clerezza/mvn-site/org.apache.clerezza.rdf.core/apidocs/org/apache/clerezza/rdf/core/TripleCollection.html#addGraphListener(org.apache.clerezza.rdf.core.event.GraphListener,%20org.apache.clerezza.rdf.core.event.FilterTriple) Cheers, reto
