Very interesting question. I think we have never spent a thought on collections of collections, and I suspect that the OpenRDF implementation doesn't handle it at all, does it?
I have no strong opinion, but I tend to lean on the "any leaf"... but not sure. On Tue, May 18, 2010 at 11:11 PM, Stanislav Muhametsin <[email protected]> wrote: > I'm currently implementing the functionality of Contains and ContainsAll > -queries in SQL indexing, and I'm wondering a little about the semantics of > these queris in more complex cases. > > As long as collection property has depth of 1 (ie Property<Collection<X>> , > where X is not collection), everything is simple and understandable. When we > go to collections of depth of 2 (ie Property<Set<List<X>>> ) or more, things > get a little complicated. What kind of arguments are legal and illegal for > Contains -query in a nested collection property? More generally speaking, > should we query for match in collection structure, or only match in leaf > elements? > > With a little examples: assuming we have a following Property: > Property<List<Set<String>>> myProp() and there is an entity which has > [["String1", "String2"]["String3", "String4"]] as value of that property. > > 1. Should the entity match for querying contains(myProp, ["String1", > "String2", "String3", "String4"]) ? How about contains(myProp, > [["String1"]["String2", "String3", "String4"]]) ? Both have same leaf items, > however their structure is different. > 2. Same goes for containsAll - should it match the collection structure? Or > should only leaf items, disregard the ordering and structure, match? > > Of course easiest to implement would be only leaf-item matching, without > ordering and such. One might even argue that if a user wants to match > collection structure, he/she should change the collections into value > composites. What do you think? > > > _______________________________________________ > qi4j-dev mailing list > [email protected] > http://lists.ops4j.org/mailman/listinfo/qi4j-dev > -- Niclas Hedhman, Software Developer http://www.qi4j.org - New Energy for Java I live here; http://tinyurl.com/2qq9er I work here; http://tinyurl.com/2ymelc I relax here; http://tinyurl.com/2cgsug _______________________________________________ qi4j-dev mailing list [email protected] http://lists.ops4j.org/mailman/listinfo/qi4j-dev

