OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

regrep-query message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Subject: Re: New ebRS Section 8.2.9, Registry Filters



Farrukh,

Thanks for your suggestions. I agree with some of them. In particular, I 
was so intent on adding what I needed to Section 8.2.9 in order to support 
proposals for RegistryEntryQuery and ClassificationNodeQuery that I forgot 
to propose deleting other outdated items.

Comments in-line below.

-- Len


At 12:26 PM 9/20/01, Farrukh Najmi wrote:

>Len,
>
>Thanks for putting together proposal for updating Filter query section.
>I think that the document so far is very easy to understand.
>
>Note that I am replying to the sub-team and not teh TC list where yoru
>original message was posted.
>
>I assume this is just proposed replacement for  Section 8.2.9 of RS 1.0
>What happens to xxxBranch, withXXX etc?
>
>Here are some comment in advance of tomorrows meeting.
>
>Some high level feedback follows:
>
>1. Please include line numbers with your documents so we can refer to them.



I'm happy to do this in the future if the team thinks it worthwhile.



>2. Move Schema to Appendix
>-------------------------------
>I feel that understandability is improved with schema being in the appendix
>and simple examples being in the
>main part. Consider moving the schema to appendix.


This is an issue that we debated in the past. At the time, the group 
decided it was more helpful to keep the XML definitions along with the 
Semantic Rules that reference them. I defined things using DTD's, because I 
don't yet completely understand XML Schema, but have no objection to 
replacing the definitions by XML Schema if others feel that is better.



>3. Consider further simplification of semantic rules
>--------------------------------------------------
>I observe pleasantly that there is a consistent patter to the semantic rules
>which can be used
>to compress the semantic rule description without any loss of clarity.


I have no objection to using the phrasing you propose, except I think 
there's value in letting people know which filter caused an "invalid 
attribute exception". The spelling of the error and the use or not of 
spaces versus UpperCamelNotation can be an Editor's decision.


>Here is a suggested text:
>
>"For every xxxFilter XML element (e.g. OrganizationFilter), the leftArgument
>attribute of any containing
>SimpleClause shall identify a public attribute of the corresponding UML class
>(e.g. Organization)
>defined in [ebRIM]. The public attribute may be either direct or inherited
>from a base class.
>If not, raise exception: InavlidAttributeException. The xxxFilter (e.g.
>OrganizationFilter)
>returns a set of identifiers for instances of the corresponding class (e.g.
>Organization) whose attribute values
>evaluate to True for the Clause predicate.
>
>For example, for every OrganizationFilter XML element, the leftArgument
>attribute of any containing
>SimpleClause shall identify a public attribute of the Organization class
>defined in [ebRIM]. The public attribute may be either direct or inherited
>from a base class.
>If not, raise exception: InavlidAttributeException. The OrganizationFilter
>returns a set of identifiers for instances of the Organization class whose
>attribute values
>evaluate to True for the Clause predicate.
>"
>
>4. Remove artifacts that are not defined by RIM
>------------------------------------------------
>There are a few places where there are artifacts that have no basis in RIM
>1.1.
>RIM should drive FilterQuery design (not the other way around).
>
>The proposal assumes that RIM needs to define Path, PathElement, and
>SlotElement.
>I believe that Path and PathElement should not be in the RIM because RIM
>should
>model the things that are in the registry not things that are attributes of
>things that are in the registry
>
>We should remove ContactFilter, SlotElementFilter, PathFilter and
>PathElementFilter. We should support path (as XPATH) specification in
>the ClassificationNodeFilter. We should also remove references to a Contact
>class for same reason.


My problem with specifying the use of XPATH is that XPATH assumes a 
Document Object Model definition of what is being queried. But nowhere in 
RIM do we yet define what that DOM is with respect to a node's hierarchical 
"path" being queried. I'd like to retain the definitions proposed, which 
depend only on very simple methods anticipated in RIM, until we all feel 
comfortable with whatever subset of XPATH we decide to use.

I might point out that ebRIM has a getPath() method defined for the 
ClassificationNode class, but the method is nowhere defined. It simply 
returns a String data type. I don't know how to use XPATH to query a String 
data type! That's why Filter Query defines a dynamic, non-persisent class 
called Path, having attributes "path" (a string) and "pathDepth" (an 
integer) that are derivable from ClassificationNode instances. The derived 
attributes of Path can then be queried with the Clause syntax we already 
have defined.




>5. Query schema should be using RIM names
>----------------------------------------------
>A few places have some inconsistencies in use of names with RIM. For example:
>
>The proposal uses  RegistryPackage when RIM uses Package. This should be
>renamed to Package


This is an old issue. In Vancouver we agreed to replace "Package" with 
"RegistryPackage" so I believe it is RIM that should change. We agreed to 
this at some previous teleconference. However, this is NOT a big issue with 
me.  I agree that both RIM and RS should use the same term.



>The proposal uses ObjectFilter when RIM uses RegistryObject. This should be
>renamed to RegistryObjectFilter


I agree -- however, at present none of the Filter Query syntax uses a 
RegistryObjectFilter, so we could delete this filter definition 
entirely.  It's unfortunate that RIM makes no distiction between what I'll 
call "abstract" class definitions versus "concrete" class definitions. An 
"abstract" class has no persistent instances; instead, it is just used to 
collect together common attributes that are inherited by "concrete" subclasses.

In my mind RegistryObject is an "abstract" class in RIM and would never 
need to be referenced in a Filter Query.  Filter Query assumes that 
RegistryEntry is a "concrete" class that holds all persistent instances of 
ClassificationScheme, RegistryPackage, and ExtrinsicObject.




>We should use the RIM names.
>
>6. We do not need IntrinsicObjectFilter
>----------------------------------------
>"For every IntrinsicObjectFilter ..."
>We no longer have IntrinsicObject as a class in RIM 1.1.
>I feel that there are no use cases that I can see for supporting
>IntrinsicObjectFilter.


I agree -- this filter definition should be deleted.



>7. Need to clarify that inherited attributes are legal in filters
>-----------------------------------------------------------
>"For every RegistryEntryFilter XML element, the leftArgument attribute of any
>containing SimpleClause shall identify a public attribute of the RegistryEntry
>UML
>class defined in [ebRIM]."
>
>It should be made clear at least once that inherited attributes may also be
>used.
>For exaple it should be legal to use "name" attribute in a
>RegistryEntryFilter.


I agree -- the text you propose above to add this sentence to the 
description of each filter is OK with me.




>8. Reduce the number of error to a few generic (reusanle ones)
>---------------------------------------------------------------
>"If not, raise exception: object attribute error."
>"If not, raise exception: registry entry attribute error."
>....
>
>The above should all be the same error:
>
>Suggest replacing all such cases with:
>
>"If not, raise exception: InvalidAttributeError."


I'm OK with doing this if the team agrees it is a better way to communicate 
exceptions back to the user. But I see real value in giving the user as 
much information as possible, and naming the filter that produced the 
InvalidAttributeError seems pretty valuable to me!


NOTE:  All of the following comments from Farrukh deal with ebRS Section 
8.2.10, XML Clause Constraint Representation, which was not the subject of 
any of the Filter Query proposals.  I agree with Farrukh that the Clause 
syntax is a bit clumsy and may benefit from some revision.  However, 
revision must be done very carefully as predicate syntax is very dependent 
upon precedence rules and other implicit assumptions. I'm confident that 
what we have now will work and I'd like to feel the same about any 
revisions before agreeing to them.



>9. Rename connectivePredicate in CompundClause
>----------------------------------------------------
>I believe the more accurate term is logicalOperator. "AND" is not a predicate.
>It is a logical operator that
>logically combines two separate predicates.
>
>10. Allow CompoundClase to have any number of predicates (Clause) separated by
>logical operators
>-----------------------------------------------------------------------------------------------------
>
>This is a significant usability improvement based on my experience with filter
>queries in 1.0.
>It would also require defining default precedence rules as well as Parenthesis
>or Group element
>to override default predence rules.
>
>I will provide an example later today of what I am thinking of.
>
>See additional comments inline
>
>Len Gallagher wrote:
>
> > Regrep,
> >
> > Earlier today I distributed proposals for revisions and enhancements to
> > RegistryEntryQuery and ClassificationNodeQuery.  Both of those proposals
> > assumed the existence of new methods in ebRIM and assumed the existence of
> > dynamic, non-persistent classes based on those methods, i.e. Path,
> > PathElement, and SlotElement.
>
>I feel strongly that the query work will be iterative and will have to change
>as RIM changes based on
>new features for 2.0. We should not  make thoise changes in Query yet.
>
> >
>
> >
> >
> > I see no reason why ebRS cannot assume the existence of those classes,
> > provided that their derivation from methods in ebRIM is specified in ebRS.
>
>We need to describe how methods map to filter queries in detail. This is not
>yet specified based
>on what I see.
>
> >
> >
> > Attached is a proposed extension of ebRS Section 8.2.9, Registry Filters,
> > that defines PathFilter, PathElementFilter, and SlotElementFilter based on
> > dynamic, non-persistent classes derived from getPath(), getPathDepth(),
> > getPathElements(), and getSlotValues() methods that may be included in
> > ebRIM. If those new methods are not approved for RIM, then the
> > corresponding query elements can be deleted from the query proposals I
> > distributed this morning.
> >
> > -- Len
> >
> > **************************************************************
> > Len Gallagher                             LGallagher@nist.gov
> > NIST                                      Work: 301-975-3251
> > Bldg 820  Room 562                        Home: 301-424-1928
> > Gaithersburg, MD 20899-8970 USA           Fax: 301-948-6213
> > **************************************************************
> >
> >   ------------------------------------------------------------------------
> >                              Name: RS_RegistryFilters.pdf
> >    RS_RegistryFilters.pdf    Type: Acrobat (application/pdf)
> >                          Encoding: BASE64
>
>--
>Regards,
>Farrukh
>

**************************************************************
Len Gallagher                             LGallagher@nist.gov
NIST                                      Work: 301-975-3251
Bldg 820  Room 562                        Home: 301-424-1928
Gaithersburg, MD 20899-8970 USA           Fax: 301-948-6213
**************************************************************



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Powered by eList eXpress LLC