Sapience Architecture
The following figure illustrates the various components within the sapience framework:
An annotation is actually a rather simple construct mapping from an local element in a XML or XML Schema document to an external element. The local element is identified by its context, the document, and its location encoded as XPath statement. We refer to this combination as the local element key. The external source is preferably encoded in RDF, but here also XML or any other dialect could be supported which allows for the unique identification of the individual elements. Each of these elements must have globally accessible (and resolvable) URL. A URI which does not resolve to a URL is technically also plausible, but makes theoretically no sense. The idea of annotations is to retrieve global, formerly unknown, external documentation. The sapience architecture includes the Web Service concepts-service, which serves RDF based documents providing this external documentation in form of, for example, OWL ontologies. Its difference to other RDF repositories is it strict handling of URIs as URLs. Every element within the vocabularies needs to have an resolvable identifiers.
Finding the annotations can be considered to be a simple lookup, which returns the URL mapped to the local element key. This lookup can either be performed locally using the component annotations-lookup directly, or globally by using the REST-enabled interface of the component annotations-service.
