Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [higgins-dev] Editing multi-valued attributes (was Re: Some changesto IdAS proposal)

I think it would look something like this:
<pwa:Person rdf:about="urn:mary">
  <pwa:postalAdress rdf:resource="urn:homeAddress"/>
  <pwa:postalAdress rdf:resource="urn:workAddress"/>
</pwa:Person>
<pwa:PostalAddress rdf:about="urn:homeAddress">
  <pwa:city>Provo</pwa:city>
  <pwa:country>USA</pwa:country>
  <pwa:postalCode>12345</pwa:postalCode>
  <pwa:state>Utah</pwa:state>
  <pwa:streetAddress>123 Main St.</pwa:streetAddress>
</pwa:PostalAddress>
 
<pwa:PostalAddress rdf:about="urn:workAddress">
  <pwa:city>Provo</pwa:city>
  <pwa:country>USA</pwa:country>
  <pwa:postalCode>12345</pwa:postalCode>
  <pwa:state>Utah</pwa:state>
  <pwa:streetAddress>555 Research Park</pwa:streetAddress>
</pwa:PostalAddress>


>>> "Sergey Lyakhov" <slyakhov@xxxxxxxxxxxxxx> 2/27/07 7:29 AM >>>
Jim,
> For (c), why are we unable to set more than one complex value for an attribute?
Let's assume that we use  http://www.eclipse.org/higgins/ontologies/2006/person-with-address.owl schema. In this case we have one Person with <pwa:postalAddress> complex attribute as below:

<pwa:Person>
    <pwa:postalAddress>
         <pwa:PostalAddress>
              <pwa:city>Provo</pwa:city>
              <pwa:country>USA</pwa:country>
         </pwa:PostalAddress>
    </pwa:postalAddress>
</pwa:Person>
Individual <pwa:PostalAddress> represents the complex value (where <pwa:city> and <pwa:country> are properties of this value). So, to set more than one complex value we need to set for the Person a few individuals of <pwa:PostalAddress> (that is to create a few different attributes) or to set all properties of complex values to the same individual </pwa:PostalAddress> (to mix properties of different values). Is there some other way that I should use?
 
Thanks,
Sergey Lyakhov
----- Original Message -----
Sent: Tuesday, February 27, 2007 1:43 AM
Subject: [higgins-dev] Editing multi-valued attributes (was Re: Some changesto IdAS proposal)

Hey Sergey,
 
I'm going to make threads for each of these

>1. I propose to remove the method getValues() from IProperty interface.
>There are some reasons to do it:
>
>a)    We need to be able to change a value of Attribute (that extends
>IProperty interface), but we can't say exactly which value will be changed
>in case if Attibute has two or more values;
>b)    we can't foreknow which value will be returned by getValue() method if
>Attibute has two or more values;
>c)    this method (getValues()) has no any sense in case of complex value
>because we unable to set more then one complex value for attribute;
For (a), yes, this is a problem with the current way update APIs are defined.  Update APIs need to be fixed.  We've been talking for some time about refactoring update operations such that one can build up sets of modifications.  In such a model, to change a particular value one would perform an update operation on a digital subject, where the update set contained two modifications.  For example, let's say there's an attribute called "phoneNumber" and it has two values "888-525-1111" and "888-332-8471".  One would build an update set like this:
{ delete("phoneNumber", "888-525-1111"), add("phoneNumber", "888-555-1212") }.  This is just an abstraction of the update set argument. The intent is to allow multiple sub-updates to be grouped as an atomic update operation.  It works well because it not only lets us specify *which* value we're working with, it also allows us to assert that a particular value exists prior to being changed.
 
For (b), I don't know that anyone likes this method.  It has been suggested a number of times to just delete it.  I'm beginning to prefer this as well.
 
For (c), why are we unable to set more than one complex value for an attribute?
 
Jim


_______________________________________________
higgins-dev mailing list
higgins-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/higgins-dev

Back to the top