[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