[oslc-core] Core Specification Version 2.0 Query Syntax: oslc.select/oslc.properties BNF

Arthur Ryman ryman at ca.ibm.com
Fri Jul 13 12:59:35 EDT 2012


Steve,

I agree that  oslc.select=dcterms:name,*  produces the same result as 
oslc.select=* . A query processor should perform that type of 
optimization, i.e. eliminate dcterms:name. However, I don't think that 
means that the first form should be illegal. It just means there is more 
than one way to express the same result. This can occasionally be useful. 
e.g. sometimes people may want to debug their queries by simply adding a 
*.

As an extreme counter-example, consider the following Java code: i = 1; i 
= 2;
That is the same as i = 2; but the Java compiler doesn't fail on the 
former code.

On your second point, the intention was that oslc.properties be used for 
property-tree patterns, and oslc.select for member-list patterns. [1] You 
say that oslc.properties=*{dcterms:name,cm:comment} is the same as 
oslc.select=dcterms:name,cm:comment. This is not quite correct. The 
behavior of oslc.select is modified by oslc.where but oslc.properties 
isn't. 

[1] http://open-services.net/bin/view/Main/OslcSimpleQuerySemanticsV1

Regards, 
___________________________________________________________________________ 

Arthur Ryman 

DE, Chief Architect, Reporting &
Portfolio Strategy and Management
IBM Software, Rational 

Toronto Lab | +1-905-413-3077 (office) | +1-416-939-5063 (mobile) 





From:
Steven B Pitschke/Lexington/IBM at IBMUS
To:
Arthur Ryman <ryman at ca.ibm.com>
Cc:
oslc-core at open-services.net, oslc-core-bounces at open-services.net
Date:
07/10/2012 09:55 AM
Subject:
Re: [oslc-core] Core Specification Version 2.0 Query Syntax: 
oslc.select/oslc.properties BNF



Hi Arthur, 

I am working on a Lyo implementation of the server side of query 
semantics.  All three 
grammars can be implementation in ANTLR and I have done so. 

My point is that if someone specified

       oslc.select=dcterms:name,* 

the '*' sub-term is inclusive of 'dcterms:name', so 'dcterms:name' is 
redundant.   believe it would 
be simpler to understand  if the above were illegal and only 

        oslc.select=* 

was allowed. 

My second point is that a 

        oslc.properties=*{dcterms:name,cm:comment} 

is the same as 

        oslc.select=dcterms:name,cm:comment 

so again is somewhat redudant.  I guess 

        oslc.select=*{dcterms:name,cm:comment} 

seems to add some further semantics, but I am not sure the added 
complexity add much value. 

Regards, 

Steve Pitschke
Development Lead for IBM Rational Connector for SAP Solution Manager




From:        Arthur Ryman <ryman at ca.ibm.com> 
To:        Steven B Pitschke/Lexington/IBM at IBMUS 
Cc:        oslc-core at open-services.net, 
oslc-core-bounces at open-services.net 
Date:        07/10/2012 07:57 AM 
Subject:        Re: [oslc-core] Core Specification Version 2.0 Query 
Syntax: oslc.select/oslc.properties BNF 



Steven,

I am not following your suggested change completely. However, the current 
grammar works with ANTLR [1] and that is a useful characteristic. Please 
test any changes with ANTLR.

[1] http://open-services.net/bin/view/Main/MetricsOslcQueryImplementation

Regards, 
___________________________________________________________________________ 


Arthur Ryman 

DE, Chief Architect, Reporting &
Portfolio Strategy and Management
IBM Software, Rational 

Toronto Lab | +1-905-413-3077 (office) | +1-416-939-5063 (mobile) 





From:
Steven B Pitschke <pitschke at us.ibm.com>
To:
oslc-core at open-services.net
Date:
06/29/2012 01:28 PM
Subject:
[oslc-core] Core Specification Version 2.0 Query Syntax: 
oslc.select/oslc.properties BNF
Sent by:
oslc-core-bounces at open-services.net



The core query specification 

       http://open-services.net/bin/view/Main/OSLCCoreSpecQuery 

gives a BNFfor select and properties of 

       oslc_select                :== "oslc.select=" properties 
       properties                :== property ( "," property )* 
       property                :== identifier | wildcard | nest_prop 
       nested_prop                := ( identifier | wildcard) "{" 
properties "}" 

which would allow the redundant "dcterms:name, *".  I would think the BNF 
would more properly be 

       oslc_select   ::= "oslc.select=" property_list 
       property_list ::= wildcard | properties 
       properties    ::= property ("," property)* 
       property      ::= identifier | nested_prop 
       nested_prop   ::= (identifier | wildcard) "{" property_list "}" 

or 

       oslc_select   ::= "oslc.select=" property_list 
       property_list ::= wildcard | properties 
       properties    ::= property ("," property)* 
       property      ::= identifier | nested_prop 
       nested_prop   ::= identifier "{" property_list "}" 

the difference between the two being whether or not 
"*{dcterms:comment,cm:comment}" 
makes sense. 

Regards, 

Steve Pitschke
Senior Software Engineer and Architect 
Rational Software, IBM_______________________________________________
Oslc-Core mailing list
Oslc-Core at open-services.net
http://open-services.net/mailman/listinfo/oslc-core_open-services.net










More information about the Oslc-Core mailing list