Mike,
I've completed a set of changes necessary to support app-cards being able to dynamically generate contexts. But I designed a solution that supports more than just that need. The general notion of a context having a pointer to a multi-purpose "control" context (e.g. to contain template data for new context instances, to provide a common access control policy for "instance" contexts, to provide schema mapping rules (used by all "instance" contexts) and other purposes) is put forward. Here is a summary of the changes:
Higgins Data Model Changes * Added a h:control attribute to h:Context class here. See [1, 2].
Persona Data Model Changes * The PDM assumes that the above-mentioned HDM h:control link points to an instance of a TemplateContext (new class). * You can see the h:control displayed here [3] * Entirely new vocabulary: template.owl [6]. This is the heart of the change. TemplateContexts hold several kinds of "control" information about a "regular" context. (i) They can be used (a) in RDF N3 format as the value of an AppCard's "app-card:template" attribute (see [7]). As such they contain everything needed to dynamically generate a context (e.g. an AppData Context) (ii) They can hold AttributeMaps --in other words what we were calling a MappingContext is really just a degenerate/subset of a TemplateContext (iii) They can can be the target of the h:control attribute and as such define access control policies (albeit super-simple ones!) and more control-related info described below. * To get a sense of what's in a TemplateContext see [8]. * For a concrete example of a TemplateContext see [11].
Related changes: * A new vocabulary (template.owl) is imported into persona.owl as mentioned here [4] * I worked with the Eclipse webmaster and now we have "Most recently published" versions of our vocabularies (as shown here [5]). The SVN versions are still the only truly up-to-date versions, but at least we are able to publish our vocabularies to the website again * It was convenient to make a small alteration to app-data.owl [9]: The AppDataContext has an app-data:appData attribute that points to an instance of AppData (whereas before all of the AppData attributes were directly attached to the context). I updated the app-data example here [10] to reflect this change
--Paul
|