qsac metadata

A qsac is created by PUTing RDF metadata to the SAC's intended URL, as described in the SAC interface documentation. The metadata uploaded here is unconstrained, but will most typically include Dublin Core information about the SAC's purpose, maintainer, and so on.

The SAC metadata may also be used to configure the SAC, by making additional assertions about the SAC URI. In the following documentation, the following prefix declaration is assumed:

@prefix quaestor: <http://ns.eurovotech.org/quaestor#>.

For example, a SAC, named by a URI you decide, might be created and set up for delegation by PUTting the following metadata to the URI for the new SAC:

@prefix dc: <http://purl.org/dc/elements/1.1/>.
@prefix quaestor: <http://ns.eurovotech.org/quaestor#>.

<> dc:description "My SAC";
   quaestor:delegatesTo <http://foo/myothersac>.

When the metadata is being parsed, the base URI is always taken to be the name of the SAC being created. Thus, as in this example, you may always refer to the SAC itself by the resource <>, or about="" in RDF/XML syntax.

Delegating SACs

SACs support a simple form of query delegation. A SAC can be configured, using the property quaestor:delegatesTo, to forward queries to another SAC.

The delegation is rather simple-minded. If the metadata of a SAC A includes a triple of the form <A> quaestor:delegatesTo <B>, then when a query is made against SAC A, the same query is made against B (and against any other objects of the same property relation) and the results of the queries against A and B are concatenated. This works adequately if the SACs have similar and independent information, but it fails to answer queries where the relevant triples are in the union of the SACs A and B, but not in either SAC separately.

SAC persistence

Depending on its (server-side) configuration, the claims in a SAC may or may not be persistent, and persist beyond server restarts. Typically, however, multi-SACs are configured to make the SACs they contain persistent ones. If you need to override this, and force a SAC to be non-persistent (perhaps for testing reasons), then you should use the SAC metadata to declare that the SAC is a quaestor:TransientModel, by including a statement such as the following in the SAC metadata:

@prefix quaestor: <http://ns.eurovotech.org/quaestor#>.
<> a quaestor:TransientModel.
The SKUA project, release 0.4.1, 2010 October 22