Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Form Filling

Revision as of 17:01, 26 July 2010 by Ptrevithick.gmail.com (Talk | contribs) (Data Structures)

{{#eclipseproject:technology.higgins|eclipse_custom_style.css}}
Higgins logo 76Wx100H.jpg

Introduction

This document describes how the Persona Data Model 2.0 can be used to support a Javascript form filling application (app-card) making API calls into the PDS Client of an active client. We will illustrate by walking through the following scenario rom a cold start (i.e. a clean install of a browser-integrated active client):

  1. Alice points her browser at staples.com and proceeds to try to buy a stapler. She eventually arrives at a checkout page
  2. Alice fills in the form and submits it
  3. Active client builds persona structures from what it has observed
  4. Alice points her browser at bestbuy.com and proceeds to buy a new CD
  5. Active client attempts to assist Alice in filling the form from persona data
  6. Alice edits/corrects form elements and submits it
  7. Active client builds persona structures from what it has observed

Data structures at start

Root Context

Contents of the RootContext: the context itself, and the RootMe p:Persona:

Alice step 1.png

Note: no other contexts exist!

Step 1

Alice eventually ends up at this form:

Staples.com checkout.png

The form filling Javascript will make a getExAttributes() call into the PDS Client API (of the active client) passing (among other parameters) the above form's submit URL. This causes the PDS Client to instantiate a new ProfileContext whose name is derived from the form submit URL (and Alice's id) and whose schema (ontology) is "staples.com.owl" (which in turn is based on PDM (persona.owl)). This staples.com.owl ontology includes the mapping rules to map staples-specific HTML form elements into the PDM.

Alice's staples ProfileContext is (other than the ontology definitions) empty.

Data Structures

The root context is unchanged. We now have a second context, a ProfileContext that has no instance data in it:

Alice step 2.png


Note: the "containedBy" links are only to illustrate that objects are contained in contexts. These links are not explicitly represented in the actual data structures, and only a selected few are shown.

Step 2

Alice fills in the form and submits it.

Step 3

The active client builds persona structures from what it has observed.

The Form Filler calls setAttributes() and records the values Alice entered. These data are mapped into the PDM by mapping rules defined by the staples.com ontology. The result is a populated ProfileContext.

Data Structures

Here are the resulting data objects. For clarity we omitted the entire "shipping" data objects and show only the "billing" objects. We also omitted the class objects shown in the diagram above.

Alice step 3c.png

The top two objects live in the root context, all below live in the alice-staples-ProfileContext_1.

Back to the top