users@jpa-spec.java.net

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

From: Christian Romberg <cromberg_at_versant.com>
Date: Mon, 25 Jun 2012 13:58:00 +0200

Hi Linda and Michael,

Yes, that should do the trick.

However it also increases the number of ambiguities that we already have in
the grammar,
because this is likely to introduce multiple alternatives that resolve to
general_identification_variable,
and requires implementors to rewrite the grammar and/or do "tricks" when
parsing with specific libraries like ANTLR.

For the sole purpose of defining the query language it is fine of course.

Thank you!

Christian

On Sat, Jun 23, 2012 at 12:33 AM, Michael Bouschen <
michael.bouschen_at_akquinet.de> wrote:

> 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> <http://i.name>, p
> FROM Item i JOIN i.photos p
> WHERE KEY(p) LIKE ‘%egret’
>
> (2)
> SELECT i.name <http://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> <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><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> <cromberg_at_versant.com>
> <mailto:cromberg_at_versant.com <cromberg_at_versant.com>
> <mailto:cromberg_at_versant.com> <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> <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> <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> <linda.demichiel_at_oracle.com> <
> mailto:linda.demichiel@__oracle.com <linda.demichiel@__oracle.com>
> <mailto:linda.demichiel_at_oracle.com> <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> <linda.demichiel_at_oracle.com>
> <mailto:linda.demichiel@__oracle.com<linda.demichiel@__oracle.com>
> <mailto:linda.demichiel_at_oracle.com> <linda.demichiel_at_oracle.com>> <
> mailto:linda.demichiel@ <linda.demichiel@>
> <mailto:linda.demichiel@> <linda.demichiel@>__orac__le.com
> <http://oracle.com> <http://oracle.com>
>
> <mailto:linda.demichiel@__oracle.com<linda.demichiel@__oracle.com>
> <mailto:linda.demichiel_at_oracle.com> <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>
> <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> <cromberg_at_versant.com>
> <mailto:cromberg_at_versant.com <cromberg_at_versant.com>
> <mailto:cromberg_at_versant.com> <cromberg_at_versant.com>>
> <mailto:cromberg_at_versant.com <cromberg_at_versant.com>
> <mailto:cromberg_at_versant.com> <cromberg_at_versant.com> <
> mailto:cromberg_at_versant.com <cromberg_at_versant.com>
> <mailto:cromberg_at_versant.com> <cromberg_at_versant.com>>> <
> mailto:cromberg_at_versant.com <cromberg_at_versant.com>
> <mailto:cromberg_at_versant.com> <cromberg_at_versant.com>
> <mailto:cromberg_at_versant.com <cromberg_at_versant.com>
> <mailto:cromberg_at_versant.com> <cromberg_at_versant.com>>
> <mailto:cromberg_at_versant.com <cromberg_at_versant.com>
> <mailto:cromberg_at_versant.com> <cromberg_at_versant.com> <
> mailto:cromberg_at_versant.com <cromberg_at_versant.com>
> <mailto:cromberg_at_versant.com> <cromberg_at_versant.com>>>__>
> www.versant.com <http://www.versant.com> <http://www.versant.com>
> <http://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><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.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=__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><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><michael.bouschen_at_akquinet.de>
> <mailto:michael.bouschen@__akquinet.de<michael.bouschen@__akquinet.de>
> <mailto:michael.bouschen_at_akquinet.de> <michael.bouschen_at_akquinet.de>>
> <mailto:michael.bouschen@ <michael.bouschen@>
> <mailto:michael.bouschen@> <michael.bouschen@>__akq__uinet.de
> <http://akquinet.de> <http://akquinet.de>
> <mailto:michael.bouschen@__akquinet.de<michael.bouschen@__akquinet.de>
> <mailto:michael.bouschen_at_akquinet.de> <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>
> <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> <michael.bouschen_at_akquinet.de>
> <mailto:michael.bouschen@__akquinet.de<michael.bouschen@__akquinet.de>
> <mailto:michael.bouschen_at_akquinet.de> <michael.bouschen_at_akquinet.de>>
> <mailto:michael.bouschen@ <michael.bouschen@>
> <mailto:michael.bouschen@> <michael.bouschen@>__akq__uinet.de
> <http://akquinet.de> <http://akquinet.de>
> <mailto:michael.bouschen@__akquinet.de<michael.bouschen@__akquinet.de>
> <mailto:michael.bouschen_at_akquinet.de> <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>
> <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> <michael.bouschen_at_akquinet.de>
> <mailto:michael.bouschen@__akquinet.de<michael.bouschen@__akquinet.de>
> <mailto:michael.bouschen_at_akquinet.de> <michael.bouschen_at_akquinet.de>>
> <mailto:michael.bouschen@ <michael.bouschen@>
> <mailto:michael.bouschen@> <michael.bouschen@>__akq__uinet.de
> <http://akquinet.de> <http://akquinet.de>
> <mailto:michael.bouschen@__akquinet.de<michael.bouschen@__akquinet.de>
> <mailto:michael.bouschen_at_akquinet.de> <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>
> <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><cromberg_at_versant.com><
> mailto:cromberg_at_versant.com <cromberg_at_versant.com>
> <mailto:cromberg_at_versant.com> <cromberg_at_versant.com>> <
> mailto:cromberg_at_versant.com <cromberg_at_versant.com>
> <mailto:cromberg_at_versant.com> <cromberg_at_versant.com>
> <mailto:cromberg_at_versant.com <cromberg_at_versant.com>
> <mailto:cromberg_at_versant.com> <cromberg_at_versant.com>>>
> www.versant.com <http://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>
> >>|
> www.db4o.com <http://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=AFrqEzdo3Q40RwKQPBtnPIuBYQd1diFxJQ><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><cromberg_at_versant.com><
> mailto:cromberg_at_versant.com <cromberg_at_versant.com>
> <mailto:cromberg_at_versant.com> <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>
> >|
> 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=AFrqEzdo3Q40RwKQPBtnPIuBYQd1diFxJQ><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><cromberg_at_versant.com><
> mailto:cromberg_at_versant.com <cromberg_at_versant.com>
> <mailto:cromberg_at_versant.com> <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>
> >|
> 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=AFrqEzdo3Q40RwKQPBtnPIuBYQd1diFxJQ><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><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><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><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
>
>
> 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
(F) +49 40 60990-113
(E) 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.