users@jpa-spec.java.net

[jpa-spec users] [jsr338-experts] Re: BNF question: how to parse the example containing KEY, VALUE (and LIKE)

From: Michael Bouschen <michael.bouschen_at_akquinet.de>
Date: Sat, 23 Jun 2012 00:33:14 +0200

Hi Linda, hi Christian,
> Hi Christian,
>
> On 6/22/2012 3:02 AM, Christian Romberg wrote:
>> Hi Linda,
>>
>> I think this issue is still open.
>>
>
> Yes, you are correct. This would also arise with other types of
> expressions as well.
>
> Replacing map_field_identification_variable with
> general_identification_variable
> should do it, right?

Yes, I think so.

That means, we keep the non-terminal map_field_identification_variable
(because we still need it for the definition of
general_identification_variable) and use general_identification_variable
(instead of map_field_identification_variable) in the definition of
state_valued_path_expression and orderby_item, correct?

Regards Michael

>
> thanks,
>
> -Linda
>
>
>
>> I think, while it might now be possible to parse the following two
>> queries:
>>
>> (1)
>> SELECT i.name <http://i.name>, p
>> FROM Item i JOIN i.photos p
>> WHERE KEY(p) LIKE ‘%egret’
>>
>> (2)
>> SELECT i.name <http://i.name>, p
>> FROM Item i JOIN i.photos p
>> WHERE VALUE(p) LIKE ‘%egret’
>>
>> the following query still can't be parsed:
>>
>> (3)
>> SELECT i.name <http://i.name>, p
>> FROM Item i JOIN i.photos p
>> WHERE p LIKE ‘%egret’
>>
>> But (3) is defined to be semantically identical to (2), e.g. see
>> footnote 57 on page 153 of the draft dated 06/19/2012
>>
>> Regards,
>>
>> Christian
>>
>> On Tue, Jun 19, 2012 at 6:54 PM, Linda DeMichiel
>> <linda.demichiel_at_oracle.com <mailto:linda.demichiel_at_oracle.com>> wrote:
>>
>> Hi Christian,
>>
>> I thought I had fixed this in the spec draft I had uploaded a
>> couple of weeks ago.
>> On closer inspection, it looks like I had garbled the editing.
>> Please have a look
>> at the revised version which I just uploaded.
>>
>> thanks,
>>
>> -Linda
>>
>>
>>
>> On 6/14/2012 5:23 AM, Christian Romberg wrote:
>>
>> Hi Linda,
>>
>> Any update on the issue below?
>>
>> Thank you!
>>
>> Christian
>>
>> On Wed, Mar 28, 2012 at 9:30 AM, Christian Romberg
>> <cromberg_at_versant.com <mailto:cromberg_at_versant.com>
>> <mailto:cromberg_at_versant.com <mailto:cromberg_at_versant.com>>>
>> wrote:
>>
>> Hi Linda,
>>
>>
>> > Did you mean more than that?
>>
>> Yes, a bit more:
>>
>> All terms derived from
>> qualified_identification___variable or
>> composable_qualified___identification_variable
>> start with
>> KEY, VALUE or ENTRY, respectively.
>>
>> However, section 4.4.4, footnote 56 and the referred
>> section 4.4.2 state "the use of VALUE is optional"
>>
>> E.g. consider this query (modfied example from the spec,
>> VALUE instead of KEY)
>>
>> SELECT i.name <http://i.name> <http://i.name>, p
>>
>>
>> FROM Item i JOIN i.photos p
>> WHERE VALUE(p) LIKE ‘%egret’
>>
>> which would now be parsable after your suggested BNF
>> modifications, is equivalent to:
>>
>> SELECT i.name <http://i.name> <http://i.name>, p
>>
>>
>> FROM Item i JOIN i.photos p
>> WHERE p LIKE ‘%egret’
>>
>> which might still not be parsable, because we do only
>> have a 'identification_variable' here, and not a
>> 'qualified_identification___variable'.
>>
>> Thank you!
>>
>> Christian
>>
>>
>> On Tue, Mar 27, 2012 at 8:08 PM, Linda DeMichiel
>> <linda.demichiel_at_oracle.com
>> <mailto:linda.demichiel_at_oracle.com>
>> <mailto:linda.demichiel@__oracle.com
>> <mailto:linda.demichiel_at_oracle.com>>>
>> wrote:
>>
>> Hi Christian,
>>
>> I had intended that we would treat KEY and VALUE the
>> same in the below.
>>
>> Did you mean more than that?
>>
>> regards,
>>
>> -Linda
>>
>>
>>
>> On 3/27/2012 12:14 AM, Christian Romberg wrote:
>>
>> Hi Linda and Michael,
>>
>> We do also need to cover the special short-cut
>> case, that
>> "VALUE(identification_____variable)" is equivalent to just
>> "identification_variable"
>>
>>
>> Cheers,
>>
>> Christian
>>
>> On Mon, Mar 26, 2012 at 11:20 PM, Linda DeMichiel
>> <linda.demichiel_at_oracle.com
>> <mailto:linda.demichiel_at_oracle.com>
>> <mailto:linda.demichiel@__oracle.com
>> <mailto:linda.demichiel_at_oracle.com>> <mailto:linda.demichiel@
>> <mailto:linda.demichiel@>__orac__le.com <http://oracle.com>
>>
>> <mailto:linda.demichiel@__oracle.com
>> <mailto:linda.demichiel_at_oracle.com>>>> wrote:
>>
>> Hi Michael,
>>
>>
>> On 3/26/2012 2:14 PM, Michael Bouschen wrote:
>>
>> Hi Linda,
>>
>> more below ...
>>
>> Hi Michael,
>>
>> Thanks for following up on this.
>> More below....
>>
>> On 3/22/2012 3:50 PM, Michael
>> Bouschen wrote:
>>
>> Hi Linda,
>>
>> Hi Michael,
>>
>> On 3/19/2012 3:26 PM, Michael
>> Bouschen wrote:
>>
>> Hi Linda,
>>
>> Hi Christian,
>>
>> On 3/19/2012 6:54 AM,
>> Christian Romberg wrote:
>>
>> Dear group,
>>
>> While
>> investigating how to parse queries like this (all page/chapter
>> references refer to
>> EDR 2.1, Dec
>> 19th, 2011):
>>
>> SELECT p
>> FROM Person p,
>> in(pc.firstnames) n
>> WHERE n = 'Joe'
>>
>> (firstnames is a
>> List<String>)
>>
>> I came across the
>> following example provided in the spec, which is
>> related
>> in structure:
>>
>> section 4.4.4, p.
>> 153:
>>
>> SELECT i.name
>> <http://i.name> <http://i.name> <http://i.name>
>> <http://i.name>, VALUE(p)
>>
>>
>> FROM Item i JOIN
>> i.photos p
>> WHERE KEY(p) LIKE
>> ‘%egret’
>>
>> I looked at the
>> BNF how this is parsed, and did not find any
>> derivation for
>> the FROM clause:
>>
>> where_clause ::=
>> WHERE conditional_expression
>> conditional_expression ::= conditional_term
>> conditional_term ::= conditional_factor
>> conditional_factor ::= conditional_primary
>> conditional_primary ::= simple_cond_expression
>> simple_cond_expression ::= like_expression
>> like_expression ::= string_expression LIKE pattern_value
>>
>> So eventually I
>> end up with 'string_expression', from which I can
>> not derive a
>> 'qualified_identification_______variable'
>>
>>
>>
>> string_expression ::=
>> state_field_path_expression |
>> string_literal |
>> input_parameter |
>> functions_returning_strings |
>> aggregate_expression |
>> case_expression |
>> function_invocation |
>> (subquery)
>>
>> Did I miss
>> something, or is there actually a rule missing in the
>> grammar for
>> this?
>>
>>
>> Yes, you are right.
>> The problem is that
>> composable_qualified_______identification_variable
>>
>>
>> is currently assumed
>> to not designate a state field, which it should.
>>
>> Not sure yet what the
>> best fix for this is in the grammar yet.
>>
>> would it work if we add
>> composable_qualified_______identification_variable as an
>>
>> additional
>>
>> alternative in
>> string_expression
>> (and datetime_expressio
>> etc.):
>>
>>
>> I believe so, but I think we
>> have to go further. I.e., I think we need to
>> support this also
>> in in_expression,
>> function_arg, case_operand, aggregate_expression, and
>> entity_or_value_expression.
>>
>> Do you agree?
>>
>>
>> yes agreed. The same holds true
>> for orderby_item, correct?
>>
>>
>> Yes, orderBy_item needs to be covered
>> as well.
>>
>> I am hesitating about adding
>> composable_qualified_______identification_variable
>>
>>
>> to state_field_path_expression
>> though, because a key may often not be a
>> state field of the object that is the
>> map value. I'm also concerned
>> about the order-by rules. E.g.,
>>
>> @Entity
>> public class Company {
>> @Id int id;
>> ...
>> @OneToMany // map key is division
>> name
>> Map<String, VicePresident>
>> organization;
>>
>>
>> The following query shouldn't work,
>> because the key is
>> not part of the result.
>>
>> I agree, the above query should not work.
>> But how about returning the key that is used in
>> the order by:
>>
>> SELECT key(vp)
>> FROM Company c JOIN c.organization vp
>> WHERE vp.reports > 100
>> ORDER BY key(vp)
>>
>>
>> Yes. I agree that this should be legal.
>>
>>
>> I think this query should be legal. This
>> means the orderby_item needs to be covered the same
>> as all
>> the other
>> places we
>> discussed where
>> composable_qualified_______identification_variable needs to be added.
>> But
>> maybe we
>>
>> should extend the
>>
>> rules for
>> the orderby_item as specified in chapter
>> 4.9 on pages 183/184. We could add
>> composable_qualified_______identification_variable
>>
>>
>> to the second rule that covers
>> state_field_path_expression already.
>>
>>
>> Yes, only I would cover this as a separate
>> rule (to make it very clear).
>>
>>
>> SELECT vp
>> FROM Company c JOIN c.organization vp
>> WHERE vp.reports > 100
>> ORDER BY key(vp)
>>
>>
>> So, I was thinking of just either adding
>> composable_qualified_______identification_variable to
>>
>>
>> the needed places (ugly) or defining
>> another non-terminal, e.g.,
>> generalized_state_expression::______= state_field_path_expression |
>> composable_qualified_______identification_variable.
>>
>>
>> What do you think?
>>
>>
>> I like the idea of having another
>> non-terminal because a
>> composable_qualified_______identification_variable like
>>
>>
>> key(vp) is
>> not really a state_field_path_expression.
>> That would mean the new non-terminal
>> generalized_state_expression is used in all the places we
>> discussed before,
>> correct?
>>
>>
>> Yes.
>>
>> Thanks again! It looks like we're on the
>> same page here.
>>
>> regards,
>>
>> -Linda
>>
>>
>>
>>
>> Regards Michael
>>
>>
>> regards,
>>
>> -Linda
>>
>>
>>
>> So maybe we extend
>> state_field_path_expression and add
>> composable_qualified_______identification_variable as
>>
>>
>> an alternative:
>>
>> state_field_path_expression ::=
>> general_subpath.state_field |
>> composable_qualified_______identification_variable
>>
>>
>>
>> Regards Michael
>>
>>
>> regards,
>>
>> -Linda
>>
>> string_expression ::=
>> state_field_path_expression |
>> composable_qualified_______identification_variable |
>>
>>
>> string_literal |
>> ...
>>
>> Regards Michael
>>
>>
>> Thanks for pointing
>> this out.
>>
>> -Linda
>>
>> \
>>
>>
>> Thank you!
>>
>> Christian
>>
>>
>> --
>> Christian Romberg
>> Chief Engineer|
>> Versant GmbH
>> (T) +49 40
>> 60990-0 <tel:%2B49%2040%2060990-0>
>> <tel:%2B49%2040%2060990-0> <tel:%2B49%2040%2060990-0>
>> <tel:%2B49%2040%2060990-0>
>> (F) +49 40
>> 60990-113 <tel:%2B49%2040%2060990-113>
>> <tel:%2B49%2040%2060990-113>
>> <tel:%2B49%2040%2060990-113> <tel:%2B49%2040%2060990-113>
>> (E)
>> cromberg_at_versant.com <mailto:cromberg_at_versant.com>
>> <mailto:cromberg_at_versant.com <mailto:cromberg_at_versant.com>>
>> <mailto:cromberg_at_versant.com <mailto:cromberg_at_versant.com>
>> <mailto:cromberg_at_versant.com
>> <mailto:cromberg_at_versant.com>>> <mailto:cromberg_at_versant.com
>> <mailto:cromberg_at_versant.com>
>> <mailto:cromberg_at_versant.com <mailto:cromberg_at_versant.com>>
>> <mailto:cromberg_at_versant.com <mailto:cromberg_at_versant.com>
>> <mailto:cromberg_at_versant.com
>> <mailto:cromberg_at_versant.com>>>__>
>> www.versant.com <http://www.versant.com>
>> <http://www.versant.com> <http://www.versant.com>
>> <http://www.google.com/url?q=______http%3A%2F%2Fwww.versant.__com%____2F&sa=D&sntz=1&usg=______AFrqEzeeEBc_gN_______8mxtt8xDB0tjXDXQVlw
>> <http://www.google.com/url?q=____http%3A%2F%2Fwww.versant.com%____2F&sa=D&sntz=1&usg=____AFrqEzeeEBc_gN_____8mxtt8xDB0tjXDXQVlw>
>> <http://www.google.com/url?q=____http%3A%2F%2Fwww.versant.com%____2F&sa=D&sntz=1&usg=____AFrqEzeeEBc_gN_____8mxtt8xDB0tjXDXQVlw
>> <http://www.google.com/url?q=__http%3A%2F%2Fwww.versant.com%__2F&sa=D&sntz=1&usg=__AFrqEzeeEBc_gN___8mxtt8xDB0tjXDXQVlw>>
>> <http://www.google.com/url?q=____http%3A%2F%2Fwww.versant.com%____2F&sa=D&sntz=1&usg=____AFrqEzeeEBc_gN_____8mxtt8xDB0tjXDXQVlw
>> <http://www.google.com/url?q=__http%3A%2F%2Fwww.versant.com%__2F&sa=D&sntz=1&usg=__AFrqEzeeEBc_gN___8mxtt8xDB0tjXDXQVlw>
>> <http://www.google.com/url?q=__http%3A%2F%2Fwww.versant.com%__2F&sa=D&sntz=1&usg=__AFrqEzeeEBc_gN___8mxtt8xDB0tjXDXQVlw
>> <http://www.google.com/url?q=http%3A%2F%2Fwww.versant.com%2F&sa=D&sntz=1&usg=AFrqEzeeEBc_gN_8mxtt8xDB0tjXDXQVlw>>>>|
>> www.db4o.com <http://www.db4o.com> <http://www.db4o.com>
>> <http://www.db4o.com>
>> <http://www.google.com/url?q=______http%3A%2F%2Fwww.db4o.com%__2F&____sa=D&sntz=1&usg=______AFrqEzdo3Q40RwKQPBtnPIuBYQd1di______FxJQ
>> <http://www.google.com/url?q=____http%3A%2F%2Fwww.db4o.com%2F&____sa=D&sntz=1&usg=____AFrqEzdo3Q40RwKQPBtnPIuBYQd1di____FxJQ>
>> <http://www.google.com/url?q=____http%3A%2F%2Fwww.db4o.com%2F&____sa=D&sntz=1&usg=____AFrqEzdo3Q40RwKQPBtnPIuBYQd1di____FxJQ
>> <http://www.google.com/url?q=__http%3A%2F%2Fwww.db4o.com%2F&__sa=D&sntz=1&usg=__AFrqEzdo3Q40RwKQPBtnPIuBYQd1di__FxJQ>>
>>
>>
>> <http://www.google.com/url?q=____http%3A%2F%2Fwww.db4o.com%2F&____sa=D&sntz=1&usg=____AFrqEzdo3Q40RwKQPBtnPIuBYQd1di____FxJQ
>> <http://www.google.com/url?q=__http%3A%2F%2Fwww.db4o.com%2F&__sa=D&sntz=1&usg=__AFrqEzdo3Q40RwKQPBtnPIuBYQd1di__FxJQ>
>> <http://www.google.com/url?q=__http%3A%2F%2Fwww.db4o.com%2F&__sa=D&sntz=1&usg=__AFrqEzdo3Q40RwKQPBtnPIuBYQd1di__FxJQ
>> <http://www.google.com/url?q=http%3A%2F%2Fwww.db4o.com%2F&sa=D&sntz=1&usg=AFrqEzdo3Q40RwKQPBtnPIuBYQd1diFxJQ>>>>
>>
>> --
>> Versant
>> GmbH is
>> incorporated in Germany. Company registration number: HRB
>> 54723,
>> Amtsgericht Hamburg. Registered Office: Halenreie 42, 22359
>> Hamburg, Germany.
>> Geschäftsführer: Bernhard Wöbker, Volker John
>>
>> CONFIDENTIALITY
>> NOTICE: This
>> e-mail message, including any attachments, is for the sole
>> use of the
>> intended recipient(s) and may contain confidential or
>> proprietary
>> information. Any unauthorized review, use, disclosure or
>> distribution is
>> prohibited. If you are not the intended recipient,
>> immediately
>> contact the sender by reply e-mail and destroy all copies of
>> the original
>> message.
>>
>>
>>
>>
>>
>> --
>> *Michael Bouschen*
>> *Prokurist*
>>
>> akquinet tech_at_spree GmbH
>> Bülowstr. 66, D-10783 Berlin
>>
>> Fon: +49 30 235 520-33
>> <tel:%2B49%2030%20235%20520-33>
>> <tel:%2B49%2030%20235%20520-__33>
>> <tel:%2B49%2030%20235%20520-____33>
>> Fax: +49 30 217 520-12
>> <tel:%2B49%2030%20217%20520-12>
>> <tel:%2B49%2030%20217%20520-__12>
>> <tel:%2B49%2030%20217%20520-____12>
>> Email:
>> michael.bouschen_at_akquinet.de <mailto:michael.bouschen_at_akquinet.de>
>> <mailto:michael.bouschen@__akquinet.de
>> <mailto:michael.bouschen_at_akquinet.de>>
>> <mailto:michael.bouschen@
>> <mailto:michael.bouschen@>__akq__uinet.de <http://akquinet.de>
>> <mailto:michael.bouschen@__akquinet.de
>> <mailto:michael.bouschen_at_akquinet.de>>>
>>
>> Web: www.akquinet.de
>> <http://www.akquinet.de> <http://www.akquinet.de>
>> <http://www.akquinet.de>
>> <http://www.akquinet.de>
>>
>>
>> akquinet tech_at_spree GmbH,
>> Berlin
>> Geschäftsführung: Martin
>> Weber, Dr. Torsten Fink
>> Amtsgericht
>> Berlin-Charlottenburg HRB 86780 B
>> USt.-Id. Nr.: DE 225 964 680
>>
>>
>>
>> --
>> *Michael Bouschen*
>> *Prokurist*
>>
>> akquinet tech_at_spree GmbH
>> Bülowstr. 66, D-10783 Berlin
>>
>> Fon: +49 30 235 520-33
>> <tel:%2B49%2030%20235%20520-33>
>> <tel:%2B49%2030%20235%20520-__33>
>> <tel:%2B49%2030%20235%20520-____33>
>> Fax: +49 30 217 520-12
>> <tel:%2B49%2030%20217%20520-12>
>> <tel:%2B49%2030%20217%20520-__12>
>> <tel:%2B49%2030%20217%20520-____12>
>> Email:
>> michael.bouschen_at_akquinet.de <mailto:michael.bouschen_at_akquinet.de>
>> <mailto:michael.bouschen@__akquinet.de
>> <mailto:michael.bouschen_at_akquinet.de>>
>> <mailto:michael.bouschen@
>> <mailto:michael.bouschen@>__akq__uinet.de <http://akquinet.de>
>> <mailto:michael.bouschen@__akquinet.de
>> <mailto:michael.bouschen_at_akquinet.de>>>
>> Web: www.akquinet.de
>> <http://www.akquinet.de> <http://www.akquinet.de>
>> <http://www.akquinet.de> <http://www.akquinet.de>
>>
>>
>>
>> akquinet tech_at_spree GmbH, Berlin
>> Geschäftsführung: Martin Weber,
>> Dr. Torsten Fink
>> Amtsgericht Berlin-Charlottenburg
>> HRB 86780 B
>> USt.-Id. Nr.: DE 225 964 680
>>
>>
>>
>> --
>> *Michael Bouschen*
>> *Prokurist*
>>
>> akquinet tech_at_spree GmbH
>> Bülowstr. 66, D-10783 Berlin
>>
>> Fon: +49 30 235 520-33
>> <tel:%2B49%2030%20235%20520-33> <tel:%2B49%2030%20235%20520-__33>
>> <tel:%2B49%2030%20235%20520-____33>
>> Fax: +49 30 217 520-12
>> <tel:%2B49%2030%20217%20520-12> <tel:%2B49%2030%20217%20520-__12>
>> <tel:%2B49%2030%20217%20520-____12>
>> Email: michael.bouschen_at_akquinet.de
>> <mailto:michael.bouschen_at_akquinet.de>
>> <mailto:michael.bouschen@__akquinet.de
>> <mailto:michael.bouschen_at_akquinet.de>>
>> <mailto:michael.bouschen@
>> <mailto:michael.bouschen@>__akq__uinet.de <http://akquinet.de>
>> <mailto:michael.bouschen@__akquinet.de
>> <mailto:michael.bouschen_at_akquinet.de>>>
>> Web: www.akquinet.de
>> <http://www.akquinet.de> <http://www.akquinet.de>
>> <http://www.akquinet.de> <http://www.akquinet.de>
>>
>>
>>
>> akquinet tech_at_spree GmbH, Berlin
>> Geschäftsführung: Martin Weber, Dr.
>> Torsten Fink
>> Amtsgericht Berlin-Charlottenburg HRB
>> 86780 B
>> USt.-Id. Nr.: DE 225 964 680
>>
>>
>>
>>
>> --
>> Christian Romberg
>> Chief Engineer| Versant GmbH
>> (T) +49 40 60990-0 <tel:%2B49%2040%2060990-0>
>> <tel:%2B49%2040%2060990-0>
>>
>> (F) +49 40 60990-113 <tel:%2B49%2040%2060990-113>
>> <tel:%2B49%2040%2060990-113>
>> (E) cromberg_at_versant.com
>> <mailto:cromberg_at_versant.com> <mailto:cromberg_at_versant.com
>> <mailto:cromberg_at_versant.com>> <mailto:cromberg_at_versant.com
>> <mailto:cromberg_at_versant.com>
>> <mailto:cromberg_at_versant.com <mailto:cromberg_at_versant.com>>>
>> www.versant.com <http://www.versant.com>
>> <http://www.versant.com>
>> <http://www.google.com/url?q=____http%3A%2F%2Fwww.versant.com%____2F&sa=D&sntz=1&usg=____AFrqEzeeEBc_gN_____8mxtt8xDB0tjXDXQVlw
>> <http://www.google.com/url?q=__http%3A%2F%2Fwww.versant.com%__2F&sa=D&sntz=1&usg=__AFrqEzeeEBc_gN___8mxtt8xDB0tjXDXQVlw>
>> <http://www.google.com/url?q=__http%3A%2F%2Fwww.versant.com%__2F&sa=D&sntz=1&usg=__AFrqEzeeEBc_gN___8mxtt8xDB0tjXDXQVlw
>> <http://www.google.com/url?q=http%3A%2F%2Fwww.versant.com%2F&sa=D&sntz=1&usg=AFrqEzeeEBc_gN_8mxtt8xDB0tjXDXQVlw>>>|
>> www.db4o.com <http://www.db4o.com> <http://www.db4o.com>
>> <http://www.google.com/url?q=____http%3A%2F%2Fwww.db4o.com%2F&____sa=D&sntz=1&usg=____AFrqEzdo3Q40RwKQPBtnPIuBYQd1di____FxJQ
>> <http://www.google.com/url?q=__http%3A%2F%2Fwww.db4o.com%2F&__sa=D&sntz=1&usg=__AFrqEzdo3Q40RwKQPBtnPIuBYQd1di__FxJQ>
>> <http://www.google.com/url?q=__http%3A%2F%2Fwww.db4o.com%2F&__sa=D&sntz=1&usg=__AFrqEzdo3Q40RwKQPBtnPIuBYQd1di__FxJQ
>> <http://www.google.com/url?q=http%3A%2F%2Fwww.db4o.com%2F&sa=D&sntz=1&usg=AFrqEzdo3Q40RwKQPBtnPIuBYQd1diFxJQ>>>
>>
>> --
>> Versant
>> GmbH is incorporated in Germany. Company
>> registration number: HRB
>> 54723, Amtsgericht Hamburg. Registered Office:
>> Halenreie 42, 22359
>> Hamburg, Germany. Geschäftsführer: Bernhard
>> Wöbker, Volker John
>>
>> CONFIDENTIALITY
>> NOTICE: This e-mail message, including any
>> attachments, is for the sole
>> use of the intended recipient(s) and may contain
>> confidential or
>> proprietary information. Any unauthorized review,
>> use, disclosure or
>> distribution is prohibited. If you are not the
>> intended recipient,
>> immediately contact the sender by reply e-mail
>> and destroy all copies of
>> the original message.
>>
>>
>>
>>
>>
>>
>> --
>> Christian Romberg
>> Chief Engineer| Versant GmbH
>> (T) +49 40 60990-0 <tel:%2B49%2040%2060990-0>
>> <tel:%2B49%2040%2060990-0>
>> (F) +49 40 60990-113 <tel:%2B49%2040%2060990-113>
>> <tel:%2B49%2040%2060990-113>
>> (E) cromberg_at_versant.com <mailto:cromberg_at_versant.com>
>> <mailto:cromberg_at_versant.com
>> <mailto:cromberg_at_versant.com>>
>> www.versant.com <http://www.versant.com>
>> <http://www.google.com/url?q=__http%3A%2F%2Fwww.versant.com%__2F&sa=D&sntz=1&usg=__AFrqEzeeEBc_gN___8mxtt8xDB0tjXDXQVlw
>> <http://www.google.com/url?q=http%3A%2F%2Fwww.versant.com%2F&sa=D&sntz=1&usg=AFrqEzeeEBc_gN_8mxtt8xDB0tjXDXQVlw>>|
>> www.db4o.com <http://www.db4o.com>
>> <http://www.google.com/url?q=__http%3A%2F%2Fwww.db4o.com%2F&__sa=D&sntz=1&usg=__AFrqEzdo3Q40RwKQPBtnPIuBYQd1di__FxJQ
>> <http://www.google.com/url?q=http%3A%2F%2Fwww.db4o.com%2F&sa=D&sntz=1&usg=AFrqEzdo3Q40RwKQPBtnPIuBYQd1diFxJQ>>
>>
>>
>> --
>> Versant
>> GmbH is incorporated in Germany. Company registration
>> number: HRB
>> 54723, Amtsgericht Hamburg. Registered Office: Halenreie
>> 42, 22359
>> Hamburg, Germany. Geschäftsführer: Bernhard Wöbker,
>> Volker John
>>
>> CONFIDENTIALITY
>> NOTICE: This e-mail message, including any attachments,
>> is for the sole
>> use of the intended recipient(s) and may contain
>> confidential or
>> proprietary information. Any unauthorized review, use,
>> disclosure or
>> distribution is prohibited. If you are not the intended
>> recipient,
>> immediately contact the sender by reply e-mail and
>> destroy all copies of
>> the original message.
>>
>>
>>
>>
>>
>>
>> --
>> Christian Romberg
>> Chief Engineer| Versant GmbH
>> (T) +49 40 60990-0 <tel:%2B49%2040%2060990-0>
>> (F) +49 40 60990-113 <tel:%2B49%2040%2060990-113>
>> (E) cromberg_at_versant.com <mailto:cromberg_at_versant.com>
>> <mailto:cromberg_at_versant.com <mailto:cromberg_at_versant.com>>
>> www.versant.com <http://www.versant.com>
>> <http://www.google.com/url?q=__http%3A%2F%2Fwww.versant.com%__2F&sa=D&sntz=1&usg=__AFrqEzeeEBc_gN___8mxtt8xDB0tjXDXQVlw
>> <http://www.google.com/url?q=http%3A%2F%2Fwww.versant.com%2F&sa=D&sntz=1&usg=AFrqEzeeEBc_gN_8mxtt8xDB0tjXDXQVlw>>|
>> www.db4o.com <http://www.db4o.com>
>> <http://www.google.com/url?q=__http%3A%2F%2Fwww.db4o.com%2F&__sa=D&sntz=1&usg=__AFrqEzdo3Q40RwKQPBtnPIuBYQd1di__FxJQ
>> <http://www.google.com/url?q=http%3A%2F%2Fwww.db4o.com%2F&sa=D&sntz=1&usg=AFrqEzdo3Q40RwKQPBtnPIuBYQd1diFxJQ>>
>>
>> --
>> Versant
>> GmbH is incorporated in Germany. Company registration number:
>> HRB
>> 54723, Amtsgericht Hamburg. Registered Office: Halenreie 42,
>> 22359
>> Hamburg, Germany. Geschäftsführer: Bernhard Wöbker, Volker John
>>
>> CONFIDENTIALITY
>> NOTICE: This e-mail message, including any attachments, is
>> for the sole
>> use of the intended recipient(s) and may contain confidential or
>> proprietary information. Any unauthorized review, use,
>> disclosure or
>> distribution is prohibited. If you are not the intended
>> recipient,
>> immediately contact the sender by reply e-mail and destroy
>> all copies of
>> the original message.
>>
>>
>>
>>
>>
>>
>> --
>> Christian Romberg
>> Chief Engineer| Versant GmbH
>> (T) +49 40 60990-0
>> (F) +49 40 60990-113
>> (E) cromberg_at_versant.com <mailto:cromberg_at_versant.com>
>> www.versant.com
>> <http://www.google.com/url?q=http%3A%2F%2Fwww.versant.com%2F&sa=D&sntz=1&usg=AFrqEzeeEBc_gN_8mxtt8xDB0tjXDXQVlw>|
>>
>> www.db4o.com
>> <http://www.google.com/url?q=http%3A%2F%2Fwww.db4o.com%2F&sa=D&sntz=1&usg=AFrqEzdo3Q40RwKQPBtnPIuBYQd1diFxJQ>
>>
>> --
>> Versant
>> GmbH is incorporated in Germany. Company registration number: HRB
>> 54723, Amtsgericht Hamburg. Registered Office: Halenreie 42, 22359
>> Hamburg, Germany. Geschäftsführer: Bernhard Wöbker, Volker John
>>
>> CONFIDENTIALITY
>> NOTICE: This e-mail message, including any attachments, is for the sole
>> use of the intended recipient(s) and may contain confidential or
>> proprietary information. Any unauthorized review, use, disclosure or
>> distribution is prohibited. If you are not the intended recipient,
>> immediately contact the sender by reply e-mail and destroy all copies of
>> the original message.
>>
>>
>>


-- 
*Michael Bouschen*
*Prokurist*
akquinet tech_at_spree GmbH
Bülowstr. 66, D-10783 Berlin
Fon:   +49 30 235 520-33
Fax:   +49 30 217 520-12
Email: michael.bouschen_at_akquinet.de
Web: www.akquinet.de <http://www.akquinet.de>
akquinet tech_at_spree GmbH, Berlin
Geschäftsführung: Martin Weber, Dr. Torsten Fink
Amtsgericht Berlin-Charlottenburg HRB 86780 B
USt.-Id. Nr.: DE 225 964 680