[Ex-plain] Attribute Searches

Mike Taylor mike at tecc.co.uk
Thu Apr 11 15:29:42 CEST 2002


> Date: Mon, 8 Apr 2002 19:54:44 +0100 (BST)
> From: Robert Sanderson <azaroth at liverpool.ac.uk>
> 
> To search for a server that supports BIB2 author searches, I believe
> that the 'correct' way to do this is the following:
> 
> search = true PROX 0,equals,element,false,false
> (
>   (
>     attributeType = 1 PROX 0,equals,element,false,false
>     attributeSet = XD PROX 0,equals,element,false,false
>     attribute = 3
>   )
>  AND
>   (
>     attributeType = 2 PROX 0,equals,element,false,false
>     attributeSet = BIB2 PROX 0,equals,element,false,false
>     attribute = 2
>   )
>  AND
>   (
>     attributeType = 12 PROX 0,equals,element,false,false
>     attributeSet = BIB2 PROX 0,equals,element,false,false
>     attribute = aut
>   )
> )

I'm sorry, I don't understand your notation here.  Can you recast it
in (say) Index Data's PQN notation?  Or anything that maps cleanly to
RPN?

I understand from the Explain-- documentation (which, OK, I wrote)
that this search is expressed as follows:
	
	Proximity with distance=0, unit=element (same element) {
	    Term {
	        AttributeSet = Explain--
	        type = 1 (access point), value = 7 (attribute)
	        term = "XD-1:1=3" (cross-domain "name")
	    }
	    Proximity (distance=0, unit=element) {
	        Term {
	            AttributeSet = Explain--
	            type = 1 (access point), value = 7 (attribute)
	            term = "BIB-2:2=2" (semantic qualifier "personal"?)
	        }
	        Term {
	            AttributeSet = Explain--
	            type = 1 (access point), value = 7 (attribute)
	            term = "BIB-2:12=aut" (functional qualifier "author")
	        }
	    }
	}

According to the following pages:
	http://indexdata.dk/yaz/doc/tools.php#AEN2254
	http://lcweb.loc.gov/z3950/agency/markup/09.html#3.7.2
	http://lcweb.loc.gov/z3950/agency/asn1.html#ProximityOperator
The proximity operation we want ("same element") is indicated in PQN
as follows:

	@prox 0 0 0 3 known 8

So the whole search would look like this:

	@prox 0 0 0 3 known 8
	    @attr Explain-- 1=7 "XD-1:1=3"
	    @prox 0 0 0 3 known 8
	        @attr Explain-- 1=7 "BIB-2:2=2"
	        @attr Explain-- 1=7 "BIB-2:12=aut"

Or, equivalently:

	@prox 0 0 0 3 known 8 @attr Explain-- 1=7 "XD-1:1=3" @prox 0 0 0 3 known 8 @attr Explain-- 1=7 "BIB-2:2=2" @attr Explain-- 1=7 "BIB-2:12=aut"

(Although when I submit that query to my friendly neighbourhood
yaz-client, I get the rather unhelpful message "Prefix query error".
I think that's because the Yaz toolkit doesn't current recognise
"Explain--" as an attribute-set name -- right, Sebastian?)

It would of course be helpful to include that example in the
documentation.  I'll see to it once we've got the wrinkles ironed out.

> But we (obviously) need access points for attributeType,
> attributeSet [...]

All handled as a part of the single "attribute" access-point: see the
part of
	http://explain.z3950.org/search/attrs.html
that talks about access-point 7.

> [...] search, scan and sort. As well as authentication required,
> protocol, version[1], and so forth.

Yeah, I guess we could add all these.  Can't say I'm getting up a lot
of enthusiasm about it until someone has an actual need, though.  I
don't want to blundering straight into the "Explain Classic" trap of
defining a lot of extra functionality that no-one really uses, though.

> 1: I propose a 'version' attribute on serverInfo in the same way
> that protocol is on it.  Equally we could call it protocolVersion,
> but that seems to be obvious from context.

Sounds OK.  Let's spell it out, though, as "protocolVersion".

 _/|_	 _______________________________________________________________
/o ) \/  Mike Taylor   <mike at miketaylor.org.uk>   www.miketaylor.org.uk
)_v__/\  "Troodontids are almost certainly deinonychosaurs.  I was
	 wrong about troodontids in 1994, but don't care" -- Thomas
	 R. Holtz, Jr.





More information about the Ex-plain mailing list