Ok, so short answer (Ralph) you agree that the queryn parameter is necessary (or at least sufficiently useful to include in the protocol). Moving on …. So normally the forms processor at the client is going to take all of the so-called "successful" fields, create 'field=value' pairs separated by commas, prepend a '?' and add it to the base url. In this case, all the rest of the SRU parmeters need to go on the url too. Will that work? Including the queryn parameter - the client will compute that value, it won't be part of the form, right? Another issue. For a given search clause, the cql rule is this: it must consist of either (a) index, relation, term; or (b) term. No other combination (e.g. relation, term) is valid. We want to enforce that, right? Will we be able to, given that we can't be sure that all the fields will "show up"? --Ray From: LeVan,Ralph [mailto:levan@oclc.org] Sent: Friday, December 17, 2010 11:04 AM To: Denenberg, Ray; Hammond,Tony; Matthew Dovey; OASIS SWS TC Subject: RE: [search-ws] queryn: Some further comments Well, typically we do something like Tony showed in an earlier message. We write code than generates parameter names algorithmically and ask if that parameter name is present. The trick is to know when to stop asking. Usually, we stop when we no longer find a match. But that logic fails when there are omitted parameters (qi1 and qi3 but no qi2). When that happens, what we need to know is the value of the largest number potentially present (in my example, 3). With that, I’d ask for and get qi1; I’d ask for and not get qi2; I’d ask for and get qi3 and then I’d stop asking for parameters. Ralph From: Ray Denenberg, Library of Congress [mailto:rden@loc.gov] Sent: Thursday, December 16, 2010 5:35 PM To: LeVan,Ralph; Hammond,Tony; 'Matthew Dovey'; 'OASIS SWS TC' Subject: RE: [search-ws] queryn: Some further comments When the server runs out of parameters, it will know that there are no more q parameters, is that not sufficient, or what am I missing? From: LeVan,Ralph [mailto:levan@oclc.org] Sent: Thursday, December 16, 2010 4:01 PM To: Denenberg, Ray; Hammond,Tony; Matthew Dovey; OASIS SWS TC Subject: RE: [search-ws] queryn: Some further comments I think the rule for cql-java would be that they get processed in ascending name order. The name order will have nothing to do with the actual order of the parameters in the request (which cannot be predicted). The question becomes, when does the server stop looking for more parms? If there are two parms, q1 and q1000000, how does the server know to keep looking for q* names? That might be a good use of queryN; to indicate the highest number, either present or possible. (In the case of forms, you’d want to provide the biggest number in the form, which might not be either the number of fields in the form or the number of fields returned or even the number of a field that got returned.) Ralph From: Ray Denenberg, Library of Congress [mailto:rden@loc.gov] Sent: Thursday, December 16, 2010 3:49 PM To: LeVan,Ralph; Hammond,Tony; 'Matthew Dovey'; 'OASIS SWS TC' Subject: RE: [search-ws] queryn: Some further comments I have two areas to comment on: (1) queryn and the "operation" concept, and (2) parameter order. (1) queryn and the "operation" concept If we are going to incorporate this new feature into SRU, I would like to do it without serious disruption to our operations model. Introcuding a new operation would be a serious disruption. And I don't see that it is necessary to introduce a new operation anyway. Questions like (from Tony) "And then what happens if one has queryType=cql and no query parameter?" …. …. are very easily answered: 'it is an invalid request, the request fails with a diagnostic (something like) "incompatible combination of parameters" ' In fact I would go so far as to suggest that 'cql-form' could be added to the list of well-known query types. When queryType=cql-form: the query parameter MUST be omitted, and <these other> parameters included. So therefore I do not want to see the queryn parameter justified on the basis of the operation concept, and since the other reasons offerend for it are considered minor, I think I do not want it included at all. (2) parameter order. Isn't it necessary and sufficient to say that the parameter names must be strictly ascending? There has been suggestion that they should be (a) unique, or (b) consecutive. But I don't see that "unique" is sufficient, or that "consecutive" is necessary (nor that it is well-defined). But it seems to me that "strictly ascending" is necessary and sufficient. --Ray From: LeVan,Ralph [mailto:levan@oclc.org] Sent: Thursday, December 16, 2010 2:42 PM To: Hammond, Tony; Denenberg, Ray; Matthew Dovey; OASIS SWS TC Subject: RE: [search-ws] queryn: Some further comments The parameters will not be numbered consecutively if they come from a form. Forms do not transmit all their fields. Ralph From: Hammond, Tony [mailto:t.hammond@nature.com] Sent: Thursday, December 16, 2010 12:09 PM To: LeVan,Ralph; Ray Denenberg, Library of Congress; Matthew Dovey; OASIS SWS TC Subject: RE: [search-ws] queryn: Some further comments No. All the fields are present numbered consecutively in CQL order - not necessarily form order. The query builder will merely drop clauses (and fields thereof) with empty terms. It is the field contents that contribute to the query. The fact that one field was passed over, another included, is not recorded in the final string which is just a complete CQL query string.
So, if the fields are iterated over in clause order it does not matter. They are evaluated in proper sequence. There are no gaps in numbering.
Tony
-----Original Message----- From: LeVan,Ralph [mailto:levan@oclc.org] Sent: Thu 12/16/2010 3:23 PM To: Hammond, Tony; Hammond, Tony; Ray Denenberg, Library of Congress; Matthew Dovey; OASIS SWS TC Subject: RE: [search-ws] queryn: Some further comments
There can be gaps in the numbering. Not all fields present in a form get submitted.
Ralph
From: Hammond, Tony [mailto:t.hammond@nature.com] Sent: Thursday, December 16, 2010 6:08 AM To: Hammond,Tony; Ray Denenberg, Library of Congress; Matthew Dovey; LeVan,Ralph; OASIS SWS TC Subject: RE: [search-ws] queryn: Some further comments
Hi:
Some further comments.
1. On reflection I guess that "queryn" could be dispensed with as long as an empty "query" parameter were present in the query to a) signal the searchRetrieve operation, and b) to receive the assembled query.
2. I had earlier proposed briefer forms of the parameters which would make the querystring more manageable.
Instead of
"q1.idx", "q1.rel", "q1.trm", "q1.bln"
I proposed
"qi1", "qr1", "qt1", "qb1"
which are cleaner (half the length) and slighly easier to manipulate (only prefix and index to manage instead of prefix, index, and suffix).
3. Since the query parameters are built with integers they are arbitrarily extensible (do not require a fixed length form) and sort order is completely in hands of the form generator. Doesn't matter where the parameters appear on the form - just their call order. And then they can be simply iterated over.
4. My preference is still for an explicit count (queryn) as I think this is easier than trying to compute the number of clauses. And the count is already known to the form generator since it is adding an index to the clause parameters. Would almost seem to be a no-brainer.
5. Because of the boolean coupling of search clauses we require a boolean associated with the search clause which for convenience we take to be trailing - i.e. operates between this clause and any subsequent clause. The final boolean in the series will always be omitted.
Tony
************************************************************************ ******** DISCLAIMER: This e-mail is confidential and should not be used by anyone who is not the original intended recipient. If you have received this e-mail in error please inform the sender and delete it from your mailbox or any other storage mechanism. Neither Macmillan Publishers Limited nor any of its agents accept liability for any statements made which are clearly the sender's own and not expressly made on behalf of Macmillan Publishers Limited or one of its agents. Please note that neither Macmillan Publishers Limited nor any of its agents accept any responsibility for viruses that may be contained in this e-mail or its attachments and it is your responsibility to scan the e-mail and attachments (if any). No contracts may be concluded on behalf of Macmillan Publishers Limited or its agents by means of e-mail communication. Macmillan Publishers Limited Registered in England and Wales with registered number 785998 Registered Office Brunel Road, Houndmills, Basingstoke RG21 6XS ************************************************************************ ******** ******************************************************************************** DISCLAIMER: This e-mail is confidential and should not be used by anyone who is not the original intended recipient. If you have received this e-mail in error please inform the sender and delete it from your mailbox or any other storage mechanism. Neither Macmillan Publishers Limited nor any of its agents accept liability for any statements made which are clearly the sender's own and not expressly made on behalf of Macmillan Publishers Limited or one of its agents. Please note that neither Macmillan Publishers Limited nor any of its agents accept any responsibility for viruses that may be contained in this e-mail or its attachments and it is your responsibility to scan the e-mail and attachments (if any). No contracts may be concluded on behalf of Macmillan Publishers Limited or its agents by means of e-mail communication. Macmillan Publishers Limited Registered in England and Wales with registered number 785998 Registered Office Brunel Road, Houndmills, Basingstoke RG21 6XS ********************************************************************************
|