Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Org.eclipse.higgins.js.pds.client API usage example"

(Final State)
(Execution)
Line 72: Line 72:
 
* context := getConnectionContext ()
 
* context := getConnectionContext ()
 
** result: context == http://azigo.com/ptrevithick/nytimes.com
 
** result: context == http://azigo.com/ptrevithick/nytimes.com
* template := getConnectionTemplate
+
* template := getConnectionTemplate ()
 
** result: template == http://azigo.com/sys/template/nytimes.com
 
** result: template == http://azigo.com/sys/template/nytimes.com
* Loop(0): p=(http://nytimes.com#bFirstName, "Alice")
+
* Since ''context'' doesn't exist, create it from ''template''
 +
* newPersonRole := value of ''role'' attribute of Participant ContextPrototype
 +
** result: newPersonRole == p:Ecommerce
 +
* attributes[] := extractAttributes ()
 +
** result: attributes[] == (http://nytimes.com#phone, http://nytimes.com#bFirstName)
 +
* rolesAtts[] := findRoles()
 +
** result: rolesAtts[] == ((p:Byer, http://nytimes.com#phone), (p:Ecommerce, http://nytimes.com#bFirstName))
 +
* sortByRole
 +
** result: rolesAtts[] == ((p:Byer, http://nytimes.com#phone), (p:Ecommerce, http://nytimes.com#bFirstName))
 +
* person := http://azigo.com/ptrevithick/nytimes.com#me
 +
* Since ''person'' doesn't exist we create the statements:
 +
** (subj=:me pred=rdf:type obj=persona:Person) in ''context''
 +
** (subj=:me pred=p:role obj=(''newPersonRole''==persona:Ecommerce)) in ''context''
 +
* Loop(0) ra==(p:Ecommerce, http://nytimes.com#phone) // Loop: For every pair ra in rolesAtts..
 +
** targetPersons[] := findPersonsByRole (person, p:Ecommerce)
 +
*** result: targetPersons[0] == <:me person created above>; targetPersons[] is of size == 1
 +
**
 +
 
 
** class := getNamespace(http://nytimes.com#bFirstName)
 
** class := getNamespace(http://nytimes.com#bFirstName)
 
*** result: class == http://nytimes.com
 
*** result: class == http://nytimes.com
Line 83: Line 100:
 
** newPerson := '''pushEvalRule''' (context=http://azigo.com/ptrevithick/nytimes.com, rule, value="Alice")
 
** newPerson := '''pushEvalRule''' (context=http://azigo.com/ptrevithick/nytimes.com, rule, value="Alice")
 
*** result: a new Person node named "#me" ...
 
*** result: a new Person node named "#me" ...
 
 
  
 
== Final State ==
 
== Final State ==
  
 
[[Image:Setattributes final state 2.0.103.png|center]]
 
[[Image:Setattributes final state 2.0.103.png|center]]

Revision as of 12:46, 20 September 2011

{{#eclipseproject:technology.higgins|eclipse_custom_style.css}}

We show an example of calling getAttributes, calling setAttributes and then calling getAttributes a second time. In all cases we read/write the same two attributes in the nytimes.com namespace, bFirstName and phone.

Initial State

Contexts

Pdsclient example 2.0.101.png

NYTimes template

The template context http://azigo.com/sys/templates/nytimes.com contains (among other things) the following mapping rules:

 :NYTimesPerson
     a       owl:Class ;
     rdfs:subClassOf <http://www.eclipse.org/higgins/ontologies/2010/6/higgins#Person> ;

rule #1:

     map:nameRule
             [ a       map:roleSameAs ;
               map:equivalentAttribute
                       fp:givenName ;
               map:predicate :bFirstName ;
               map:role <http://www.eclipse.org/higgins/ontologies/2010/6/persona#Buyer>
             ] ;

rule #2:

     map:telephoneRule
             [ a       map:roleSameAs ;
               map:equivalentAttribute
                       fp:phone ;
               map:predicate :phone ;
               map:role <http://www.eclipse.org/higgins/ontologies/2010/6/persona#Ecommerce>
             ] .

call getAttributes()

Call

Example call to getAttributes (domain, audience, attributes[], where[], future)

Execution

  • context := getConnectionContext ()
  • call findRoles()
    • result:
      • ((p:eCommerce, (nytimes.com#bFirstName, nil, nil))
      • (p:Buyer, (nytimes.com#phone, nil, nil)))
  • call sortByRole()
    • result:
      • ((p:eCommerce, (nytimes.com#bFirstName, nil, nil))
      • (p:Buyer, (nytimes.com#phone, nil, nil)))
  • Try to pull attributes from #me person in the nytimes.com
    • result: no result: the nytimes.com context doesn't yet exist
  • Try to pull attributes from #me person in root context
    • call findPersonByRole()
    • result: nil (no persons found that match role)
    • result: no attribute/values found

call setAttributes()

Call

Example call to setAttributes (domain, attributes[])

Execution

Final State

Setattributes final state 2.0.103.png

Back to the top