Relationship of DVI/VITA to the Person Registry (PR) Module

PR is a GSoC 2009 project being developed by Kethees, and intended to be integrated into the PHP code base in the short term. An overview and the latest ERD and class diagrams are here.

Its purposes do overlap with those of DVI/VITA, which has led to some contentious discussion. A consensus seems to have evolved, that PR will be developed independently of DVI/VITA, primarily because the latter is in the SahanaPy branch and encompasses a larger set of data, a more complex data model and API, a longer full-implementation timeframe, and somewhat different use cases.

There has been considerable discussion about what PR should contain and how best to structure it. For instance, should items be stored in database tables structured for the specific objects (as is the norm), or in more general data storage tables (of the Entity-Attribute-Value (EAV) style) suitable for “sparse” data items? Kethees has developed several iterations of design as discussion has evolved.

Discussion on this topic in the June 11 DVI Chat

One proposal would group functionality involving people-related data into three categories:

Group 1) Minimal data, used by many modules. Should be part of PR.
Group 2) Auxillary data, used by some modules.  Might be part of PR.
Group 3) Data used mainly by 1 module*.  Exclude from PR.
           *or more fully-implemented elsewhere.

If the design of the PR module has one or more general EAV-style tables, then it could be more easily used for (Group 2).

The proposal went on to recommend this sorting of likely functional categories:

Group 1) Should be part of PR:
 "Address Book (physical addresses, phones, emails, web URLs)"
 "Identification IDs"
 "Family Relationships"
Group 2) Might be part of PR:
 "Identification Personal Descriptors"
Group 3) Exclude from PR:
 "Sightings (Timestamped Locations)"
 "Roles"
 "Role Transitions (timestamped)"
 "Tracing/Tracking of Personal Effects"
 "Tracing/Tracking of Documentary Evidence"

Broadly, this would align PR purposes with what is called the People+Groups Database in the VITA Architectural Diagram, and subsequent IRC discussion referred to as “PeopleEntity”.

As for the Group 3 services excluded from PR, the examples shown are largely services provided by the Tracing/Tracking timeline services of DVI (within VITA).

Since it will be a while until there is a Python implementation of DVI, and longer still for PHP, it was thought likely that there will arise a short-term need for certain “VITA Stub” functionality to be implemented in PHP. The latter would be an ad hoc implementation of just those parts of the VITA/DVI specification needed right away for some module, before a full PHP version of VITA/DVI became available.

Thus, though the proposed sorting above would exclude “Sightings” (such as Kethees' “GISLocation” in one iteration of the design) from the scope of PR, it could be within the scope of the “VITA Stub”.


Navigation
QR Code
QR Code dev:vita:dvi_and_pr_relationship (generated for current page)