Overview:
the View Factory

[Back to Architecture]   [View definition]   [View creation]

The View Factory updates the cache adding more structure (classes, attributes, methods) and data.

Given the following information:

the View Factory computes the view definition.

[TOP]

View definition

Our view definitions are simple since our actual conceptual representation is flat (there is no subclassing relationship between concept classes). Intuitively, when a concept class is expressed in the user's query, then it has to be defined in the schema of the cache specialized with the attributes necessary to answer the query. A view definition results from a translation of the target structure into a view-expression. The view-expressions are either of the form: Suppose that the user is asking "What are the conferences with a submission deadline in 1998?", as a first query. The query can be expressed as:
      select x.name 
      from   x in Conference
      where  x.submission_deadline.year=1998
and the target structure extracted by the Dispatcher consists of two classes Conference and Date combined with the attribute submission_deadline. The View Factory checks the current schema, which is empty, since it is the first query, and generates the following view-definition.
     e_1 = Conference <= Specialization_{(name, Conference->string),
                                         (submission_deadline, Conference->Date)}(),
           Date       <= Specialization_{(month, Date->integer), 
                                         (day, Date->integer), 
                                         (year, Date->integer)}()

Both classes Conference and Date are defined from scratch (always specialized by their corresponding key attributes).

Suppose now that the user asks a second query (refinement) such as "What are the conferences located in Paris?", expressed by:

      select x.name 
      from   x in Conference
      where  x.location.city="Paris"
The target structure extracted by the Dispatcher consists of two classes Conference and Location combined with the attribute location. The current schema has two classes Conference and Date combined with the attribute submission_deadline. The View Factory generates the the following view-definition.
     e_2 = Conference <= Specialization_{(location, Conference->Location)}(),
           Location   <= Specialization_{(city, Location->string), 
                                         (state, Location->string), 
                                         (country, Location->string)}()

Class Conference is already defined, but has to be specialized by a new attribute location. Class Location has to be defined.

[TOP]

View creation

When the view-expression is generated, the cache can be updated.

Updating the schema

The view mechanism is based on object-oriented inheritance. Refining (or specializing) a class, means extending it (in the OO sense).

Updating the data

Once the new schema has been built, the task is now to migrate the objects of the cache. The migration is done in two steps: (1) we copy the information that already exists and (2) we compute the missing information. Each instance of a class in the AKIRA cache can build itself out of an instance of a super class. An instance of Conference_ (defined by the extension e_2 of e_1) is created from an instance of Conference (defined by the extension e_1). When migrating from Conference to Conference_, the system automatically uses information extraction agents for location.

[TOP]


Copyright AKIRA Project, University of Pennsylvania
Department of Computer and Information Science, Institute for Research in Cognitive Science