LISTSERV mailing list manager LISTSERV 16.0

Help for ZNG Archives


ZNG Archives

ZNG Archives


[email protected]


View:

Message:

[

First

|

Previous

|

Next

|

Last

]

By Topic:

[

First

|

Previous

|

Next

|

Last

]

By Author:

[

First

|

Previous

|

Next

|

Last

]

Font:

Monospaced Font

LISTSERV Archives

LISTSERV Archives

ZNG Home

ZNG Home

ZNG  December 2003

ZNG December 2003

Subject:

Re: XCQL - its purpose and prefixes

From:

Adam Dickmeiss <[log in to unmask]>

Reply-To:

Z39.50 Next-Generation Initiative

Date:

Mon, 1 Dec 2003 11:02:23 +0100

Content-Type:

text/plain

Parts/Attachments:

Parts/Attachments

text/plain (182 lines)

Alan Kent wrote:

>Hi,
>
>XCQL again sorry. I got a reasonable way along implementing a parser, and
>then realised my model was not quite right for generating XCQL. I have been
>resolving prefixes while parsing the CQL. To generate XCQL it seems
>necessary not to resolve them durin parsing - the parse tree needs
>to have them retained if I want to generate XCQL from the parse tree.
>
>
This is, unfortunately, true. A CQL parser, in order to be helpful,
should convert CQL to a parse tree with prefixes resolved. With that
parse tree you can of course generate XCQL, but the prefixes within XCQL
would be different and machine generated (since the original prefixes
names are gone).

>This lead me to wonder what the XCQL was for exactly. It seems the
>prefixes are like XML namespaces. Currently XCQL uses names like CQL
>that consist of an optional prefix plus a name (dc.title or title). The
>XCQL document also contains prefix declarations.
>
>
We don't use XCQL much. If anything, it's good as a debugging tool.
Something that expresses the parsed CQL as a tree which is then viewed
as XML.

>An alternative way (not necessarily better) of doing things is to not
>include prefixes, but rather have the prefixes all expanded. That is, in the
>XML have separate <namespace> and <name> (or whatever they should be
>called) elements. All prefixes have already been resolved, including
>working out defaults.
>
>
I share you view on this.

>This means the XCQL is closer to a cannonical representation of a CQL query.
>
>
Yes.

>By cannonical, I mean introduction of '( )' in CQL won't change the XCQL.
>Introduction of different prefix names wont change the XCQL. Using or
>not using double quotes wont change the XCQL. Its not 100% canonical
>however as reordering a list of modifiers wont affect query semantics,
>but will change the XML rendition.
>
>The current XCQL form requires the XML to be processed to normalize
>prefixes to namespace URIs before processing, with default namespace
>etc processing taking place. Expanding prefixes would require that all
>the prefix->URI bindings be known when converting CQL query into XCQL,
>which is not true in the current XCQL form.
>
>I am not pushing for this change, more checking if the current approach
>was intensional. Just trying to understand the background and any other
>gotcha's with the current semantics. Sorry, there is so much mail on
>this list, I thought I would ask instead of going through the 3,700
>mail items I have in this mail folder.
>
>
Most of the things was defined/discussed around 12-20 nov 2002. In
summary are three ways. I'll try to illustrate with an example:

 >p1 >p2 a and b

1) make prefix a construct of it's own. In this case it would appear
exactly as put in CQL.

<prefix>
  <name>p1</name>
  <identifier>uri1</identifier>
  <prefix>
    <name>p2</name>
    <identifier>uri2</identifier>
    <triple>
      <boolean>
        <value>and</value>
      </boolean>
      <leftOperand>
        <searchClause>
          <index>p1.ti</index>
          <relation>
            <value>=</value>
          </relation>
          <term>a</term>
        </searchClause>
      </leftOperand>
      <rightOperand>
        <searchClause>
          <index>p2.au</index>
          <relation>
            <value>=</value>
          </relation>
          <term>b</term>
        </searchClause>
      </rightOperand>
    </triple>
  </prefix>
</prefix>


2) make prefixes construct with one or more prefix names in it.
<triple>
  <prefixes>
    <prefix>
      <name>p1</name>
      <identifier>uri1</identifier>
    </prefix>
    <prefix>
      <name>p2</name>
      <identifier>uri2</identifier>
    </prefix>
  </prefixes>
  <boolean>
    <value>and</value>
  </boolean>
  <leftOperand>
    <searchClause>
      <index>p1.ti</index>
      <relation>
        <value>=</value>
      </relation>
      <term>a</term>
    </searchClause>
  </leftOperand>
  <rightOperand>
    <searchClause>
      <index>p2.au</index>
      <relation>
        <value>=</value>
      </relation>
      <term>b</term>
    </searchClause>
  </rightOperand>
</triple>


3) expand prefix at term and put in in a separate element "uri".

<triple>
  <boolean>
    <value>and</value>
  </boolean>
  <leftOperand>
    <searchClause>
      <uri>uri1</uri>
      <index>ti</index>
      <relation>
        <value>=</value>
      </relation>
      <term>a</term>
    </searchClause>
  </leftOperand>
  <rightOperand>
    <searchClause>
      <uri>uri2</uri>
      <index>au</index>
      <relation>
        <value>=</value>
      </relation>
      <term>b</term>
    </searchClause>
  </rightOperand>
</triple>

SRW 1.0 uses method 2. Method 3 is the canonical. 1 was my suggestion at
the time. Method 3 is appealing. In particular it is an excellent way of
representing a query in a backend (DOM).

>My guess is, the current approach is intensional so you can parse a
>CQL query into XCQL without knowing all the prefixes that may be in
>scope.
>
>
One of the reasons that XCQL has not been on the "hot-list" of topics
lately is that it is not used much (if anywhere).

>Alan
>
>
>

Top of Message | Previous Page | Permalink

Advanced Options


Options

Log In

Log In

Get Password

Get Password


Search Archives

Search Archives


Subscribe or Unsubscribe

Subscribe or Unsubscribe


Archives

July 2017
October 2016
July 2016
August 2014
February 2014
December 2013
November 2013
October 2013
February 2013
January 2013
October 2012
August 2012
April 2012
January 2012
October 2011
May 2011
April 2011
November 2010
October 2010
September 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
December 2009
October 2009
September 2009
August 2009
July 2009
May 2009
April 2009
March 2009
February 2009
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
January 2007
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
January 2004
December 2003
November 2003
October 2003
September 2003
August 2003
July 2003
June 2003
May 2003
April 2003
March 2003
February 2003
January 2003
December 2002
November 2002
October 2002
September 2002
August 2002
July 2002
June 2002
May 2002
April 2002
March 2002
February 2002
January 2002
December 2001
November 2001
October 2001
September 2001
August 2001
July 2001

ATOM RSS1 RSS2



LISTSERV.LOC.GOV

CataList Email List Search Powered by the LISTSERV Email List Manager