Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [higgins-dev] IdAS notes

> I think #2 is pretty cool...
 
I and Valery agree with you.
 
Thanks,
Sergey Lyakhov
----- Original Message -----
Sent: Monday, June 04, 2007 11:27 PM
Subject: Re: [higgins-dev] IdAS notes

I think I agree with everything except I have one comment about the last paragraph.
 
When an attribute model is accessed via a digital subject model, I think it's probably ok for the attribute model to contain settings that apply to it as it relates to the digital subject model from which it was accessed.  However, there is a way of accessing attribute models which builds no association with any particular digital subject model.  For example: IContextModel.getModel(URI) may be used to access any attribute model.  In this case, isRequired wouldn't make sense (nor would any other setting that is associated with that attribute as used on a particular subject type) because of the lack of association.
 
I can see three things to do here:
1) document that certain methods (like IAttributeModel.isRequired) produce indeterminate results when the attribute model is not associated with any digital subject.
2) say that attribute models can have "default" behaviors that may accessed when an attribute model is not associated with any digital subject, and may be overridden if accessed when the attribute model is associated with a digital subject model
3) move these methods to digital subject model.
 
I think #2 is pretty cool, but I worry that it could be confusing. I don't like #1.  #3 seems like an ok middle ground.
 
Jim
 


>>> "Sergey Lyakhov" <slyakhov@xxxxxxxxxxxxxx> 6/4/07 8:07 AM >>>
> On #5, why do we need the cardinality methods on IAttributeModel? 
> Is it so we can say whether the attribute is optional or required on a subject type?
 
Yes, if  min cardinality > 0, it will be a required Attriburte.
 
But there also are some other cases:
 
If max cardinality = 1, than it is SingleValuedAttribute.
Moreower, usging min- max- cardinality restrictions we can define how many values can attribute have (for example, at least 3 values but not more then 5).
 
If so, it might make more sense to have two lists of attribute models on an IDigitalSubjectModel.  Like getRequiredAttributeModels() and getOptionalAttributeModels().
 
You are thinking in terms of LDAP and I am thinking in terms of OWL schema. Perhaps we need to add the following methods:
 
a) List getRequiredAttributeModels() and List getOptionalAttributeModels() to IDigitalSubjectModel;
b) boolean isSingleValued() and boolean isRequired() to IAttributeModel.
 
But we also need cardinality methods.
 
I think we need to use the following rules in case of LDAP provider (and other non-owl based):
 
a) If there is no any restrictions (optional and multivalued), getXXXCardinality() should return -1;
a) If Attribute is multivalued, getMaxCardinality() should return -1 (as in previous case);
b) If Attribute is required, getMinCardinality() should return 1;
b) If Attribute is SingleValued, getMaxCardinality() should return 1.
 
I say this because an IAttributeModel itself shouldn't dictate whether it's always required or always optional. THat should be specified on the IDigitalSubjectModel.
 
Yes, when we set any cardinality restrictions, we do it for some specific DigitalSubject. But, in fact, IAttribute is some abstraction. So, regardless of the fact that different subjects (complex values) are able to have the same type of value, it looks useful to add such methods to IAttributeModel (for example, two different DigitalSubjects can have the same type of attribute, but for first DS this attribute can be singlevalued and required, and for second DS the same attribute can be multivalued and optional).
 
Thanks,
Sergey Lyakhov
----- Original Message -----
Sent: Saturday, June 02, 2007 1:15 AM
Subject: Re: [higgins-dev] IdAS notes

On #5, why do we need the cardinality methods on IAttributeModel?  Is it so we can say whether the attribute is optional or required on a subject type?
 
If so, it might make more sense to have two lists of attribute models on an IDigitalSubjectModel.  Like getRequiredAttributeModels() and getOptionalAttributeModels().  I say this because an IAttributeModel itself shouldn't dictate whether it's always required or always optional. THat should be specified on the IDigitalSubjectModel.
 
Jim

>>> "Sergey Lyakhov" <slyakhov@xxxxxxxxxxxxxx> 6/1/07 8:00 AM >>>
Jim,

There are some additional proposals:

6.  IMetadata interface has two methods - getID() - returns HOWL type, and
get Type() - returns xml type of data. We need the same methods for
ISimpleValue, because it also has two such types. In addition, (it is not
principal), I think it will be more correct to use the same name of methods
which return the HOWL type of objects (subject, attribute, values etc.). So,
I propose to use getType() name for methods which return HOWL type (of
subject, attribute, value, metadata) and getXMLType() to return xml type of
simple value and metadata.

7. There are some methods in IAttribute (addValue(URI), addSimpleValue(URI,
Object) and addComplexValue(URI)), which require URI type of new value. This
URI parameter is redundant, because Attribute can have only one type of
value (type of values is equal to the type of attribute).

8. Perhaps it will be useful to add ISingleValuedAttribute
getSingleValuedAttribute(URI attrID) method to IHasAttributes interface.

9. We need to add cancelUpdates() method to IContext interface. This method
should be used by user to cancel all changes made after last invocation of
applyUpdates(). I am sure it is very important method.

Thanks,
Sergey Lyakhov

----- Original Message -----
From: Sergey Lyakhov
To: higgins-dev@xxxxxxxxxxx
Sent: Thursday, May 24, 2007 8:49 PM
Subject: Re: [higgins-dev] IdAS notes


Jim,

In addition:

5. We need to add two methods int getMinCardinality() and int
getMaxCardinality() to IAttributeModel interface.

Thanks,
Sergey Lyakhov

----- Original Message -----
From: Sergey Lyakhov
To: higgins-dev@xxxxxxxxxxx
Sent: Tuesday, May 22, 2007 9:44 PM
Subject: [higgins-dev] IdAS notes


Jim,

I have some notes about IdAS:

1. I suppose IMetadataModel interface should extend IModel interface (to
inherit IDisplayData getDisplayData() method);

2. We need to add two methods getMetadataSet() and getMetadata(URI) to
IDigitalSubjectModel, IAttributeModel and IAttributeValueModel;

3. IAttributeValueModel interface declares some methods (isValidValue(Object
valueForm), isValid(String lexicalForm), toValueForm(String lexicalForm) and
toLexicalForm(Object value)) which are not reqiured by
IAttributeComplexValueModel. I proprose to move these methods from
IAttributeValueModel to IAttributeSimpleValueModel;

4. There are some classes which contain wrong HOWL URIs (at least wrong base
URI - AuthNNamePasswordMaterials, AuthNSelfIssuedMaterials etc.). Pershaps
we need some class which will contain HOWL URIs constants.

Thanks,
Sergey Lyakhov




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




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

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


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


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

Back to the top