Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [higgins-dev] IdAS: One attribute per type per DS

Jim wrote:
> 
> >>> Valery Kokhan <vkokhan@xxxxxxxxxxxxxx> 4/27/07 9:22 AM >>>
> >Jim,
> >
> >As I can remember our original assumption was that main difference
> >between attributes and values is that attributes *can* hold metadatas
> >while values *can not*. Regardless from the fact that I do not see any
> >way to model metadata on values using .owl I believe that our original
> >assumption was 100% correct and just leave it at this.
> >
> >Now about multiple attributes of the same type on any digital subject.
> >
> >Take into consideration above assumption I personally believe that on
> >API level we should allow both approach: multiple attributes of the
> >same type and multiple values in single attribute.
> 
> So, historically at first the API allowed one attribute per type.  Then we
> decided we needed to allow metadata to differ on same-typed attributes,
> and thus introduced the ability to have multiple attributes per type.
> This led to much confusion and rendered the IDigitalSubject.getAttribute
> method fairly useless. Why?  Because now we have to indicate the
> attribute's type along with all it's metadata to distinguish it from other
> attributes of the same type. Otherwise, which occurrence of that attribute
> should the CP return?
> 
> So, a couple of phone calls ago, we agreed to revert back to allowing only
> one attribute per type, and at that time I believe we decided to allow
> metadata to be placed on values.

Which aligns perfectly with higgins.owl. [As I mentioned I propose we rename
higgins:Attribute to higgins:ValueWithMetadata.] 

What Jim is proposing is allowing only one attribute per type. Which could
be fine and convenient from the IdAS POV. It is handled (as always) from the
HOWL POV using multiple higgins:attributes each with ONE value and each
value with some optional metadata.

> 
> >As a use case for multiple attributes of the same type I'd consider
> >attribute like "relationship" where we need to keep track of when or
> >by whom each particular relationship was created or modified.
> 
> In this case, we could put the metadata on the values.

Correct. And in HOWL each SubjectRelationship instance (the "value") has its
its own metadata. We're aligned.

> 
> >As a use case for multiple values in single attribute I see attribute
> >like "favoriteDrinks" where we don't care of when each particular
> >value was modified by still want to know when entire list was changed.
> <snip>

Jim, this/Valery's use case IS important. We need the ability to put
metadata (e.g. timestamp of when the list was changed) on the entire list of
values. 

I'll leave it to you to consider the IdAS API POV.

But from the HOWL POV perhaps we could introduce Lists as first class
objects and solve the problem that way? We'd still have one attribute per
type, but the value might be a List (List of values). This List could itself
have metadata on it. 

This would involve changing the HOWL to introduce a few new collection
classes, like say, higgins:List, higgins:Set, etc. A List, for example,
would be a kind of higgins:Attribute [what I'd prefer to call
higgins:ValueWithMetadata]). I have to think about it some more, but it
might be workable.





Back to the top