slide1
Download
Skip this Video
Download Presentation
CQL

Loading in 2 Seconds...

play fullscreen
1 / 100

CQL - PowerPoint PPT Presentation


  • 330 Views
  • Uploaded on

CQL “Common Query Language” Ray Denenberg March 2005 CQL’s Goals Combine the simplicity and intuitiveness of google searching with the expressive power of Xquery. Support very simple queries; and arbitrarily complex expressions as necessary. Example: search on “cat” cat cat

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'CQL' - paul2


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1
CQL

“Common Query Language”

Ray Denenberg

March 2005

cql s goals
CQL’s Goals
  • Combine the simplicity and intuitiveness of google searching with the expressive power of Xquery.
    • Support very simple queries;
    • and arbitrarily complex expressions as necessary.

Example: search on “cat”

slide4
cat

(That’s it. The whole query.)

simple cql queries
Simple CQL Queries
  • cat
  • cat and dog
  • title = cat
simple cql queries6
Simple CQL Queries
  • cat (simplest)
  • cat and dog (simple boolean)
  • title = cat (index)
simple cql queries7
Simple CQL Queries
  • cat (simplest)
  • cat and dog (simple boolean)
  • title = cat (index)
  • dc.title = cat(index qualified)
boolean
Boolean
  • cat and dog
  • cat or dog
  • Cat not dog
boolean9
Boolean
  • cat and dog
  • cat or dog
  • Cat not dog
  • cat not dog and fish or frog
boolean10
Boolean
  • cat not dog and fish or frog
  • evaluates to:(((cat not dog) and fish) or frog)
boolean11
Boolean
  • cat not dog and fish or frog
  • evaluates to:(((cat not dog) and fish) or frog)
  • Not:(cat not dog) and (fish or frog)
index search
index Search
  • title = cat
qualified index
Qualified index
  • title = cat
  • dc.title = cat
  • bib.title = cat
  • Bath.keyTitle
fielded index search
Fielded/index Search
  • dc.title = cat
  • bib.title = cat
slide15
dc.title A name given to the resource
  • bib.title(fictitious)A word, phrase, character, or group of characters, normally appearing in an item, that names the item or the work contained in it.     
zthes indexes
Zthes Indexes

zthes.nt=sauropod

and

zthes.bt=macronaria

narrower than sauropod but broader than macronaria.

relations18
Relations

The triple:

<index> <relation> <search term>

(e.g. title = cat)

Is called a:

Search Clause

relations19
Relations

<index> <relation> <search term>

simple relations
Simple Relations
  • Title = "the complete dinosaur"
  • title all "complete dinosaur“
  • title any "dinosaur bird reptile"
  • title exact "the complete dinosaur"
the relation
the = relation
  • Title = "the complete dinosaur“

(find these three words,

adjacent and in this order)

slide22
Title = "the complete dinosaur“
  • matches “a day in the life of the complete dinosaur“
  • and“the complete dinosaur goes to Paris“
slide23
=
  • Title = "the complete dinosaur“
  • matches “a day in the life of the complete dinosaur“
  • and“the complete dinosaur goes to Paris“
  • but not “the complete and unabridged dinosaur"
slide24
All
  • Title all "complete dinosaur“
  • matches “the complete and unabridged dinosaur“
  • does not match “the unabridged dinosaur“
slide25
Title all "dinosaur bird reptile“
  • does not match “the completedinosaur"
slide26
Any
  • Title any "dinosaur bird reptile“
  • doesmatch “the complete dinosaur" and
  • “the unabridged dinosaur"
exact
Exact
  • title exact "the complete dinosaur"

matches

"the complete dinosaur"

exact28
Exact
  • title exact "the complete dinosaur"

matches

"the complete dinosaur"

Does not match: “a day in the life of the complete dinosaur

or“the complete dinosaur goes to Paris“ or“the complete and unabridged dinosaur “

relations observations30
Relations …. observations
  • Observation 1: Shorthand
slide31
title all "old man sea" same as
  • title="old" and title="man" and title="sea"
relations observations32
Relations …. observations
  • Observation 2: Anchoring

^

The anchor character

recall
Recall …….
  • Title = "the complete dinosaur“
  • matches “a day in the life of the complete dinosaur“
anchoring
Anchoring
  • title="^the complete dinosaur"would not match

“a day in the life of the complete dinosaur”

anchoring35
Anchoring
  • title="^the complete dinosaur" would not match

“a day in the life of the complete dinosaur”

  • title="the complete dinosaur^"would not match

“the complete dinosaur goes to Paris”

relations observations36
Relations …. observations
  • Observation 3: Index and Relation go together
index and relation go together38
Index and Relation go together
  • Cat
  • Title = cat
  • Title cat
  • = cat
index and relation go together39
Index and Relation go together
  • Cat
  • Title = cat
  • Title cat
  • = cat
slide40
BNF

searchClause ::=\'(\' cqlQuery \')‘

| index relation searchTerm

| searchTerm

basic relations summary
Basic Relations …. summary
  • Title = "the complete dinosaur"
  • title all "complete dinosaur“
  • title any "dinosaur bird reptile"
  • title exact "the complete dinosaur"
a few more relations
A few more relations …
  • < less
  • > greater
  • <= less or equal
  • >=greater or equal
  • = (see next)
  • <> not equal
relation
= relation

= means:

  • word adjacency, when the term is a list of words.
  • Equality, otherwise.
relation modifiers
RelationModifiers
  • Stem
  • relevant
  • Fuzzy
  • phonetic
stemming
Stemming
  • title =/stem"these completed dinosaurs“ matches
  • The Complete Dinosaur.
relevance
Relevance

subject any/relevant "fish frog" would find records whose subject field included words like shark, tuna, coelocanth, toad, amphibian, etc.

relation modifiers47
Relation Modifiers
  • Stem
  • relevant
  • Fuzzy
  • phonetic
fuzzy
fuzzy
  • Fuzzy means:
    • “be liberal in what you count as a match … details left to the server. Might include permutations of character order, off-by-one for numerical terms.”
  • Title =/fuzzy “sharlot simmins”

might match “I am Charlotte Simmons”

  • telephoneNumber exact/fuzzy “303 441 1319"
relation modifiers49
Relation Modifiers
  • Stem
  • relevant
  • Fuzzy
  • phonetic
phonetic
Phonetic
  • Match words that sound the same

e.g. Hostel might match “hostile”

booleans
Booleans
  • And
  • Or
  • not
booleans52
Booleans
  • And
  • Or
  • Not
  • Proximity
slide53
And cat and dog
  • Or cat or dog
  • Not cat not dog
  • Proximitycat prox dog
slide54
And cat and dog
  • Or cat or dog
  • Not cat not dog
  • Proximity cat prox dog roughly: “find cat near dog”
proximity
Proximity

(chestnut

prox

“Cryphonectaria parasitica”)

prox

(“dutch elm”

proxCeratocystisulmi)

proximity parameters
Proximity parameters
  • relation
  • Distance
  • unit
  • ordering
proximity parameters57
Proximity parameters
  • relation
  • Distance
  • unit
  • ordering

e.g: “Find cat in the same

sentence as dog”

Relation: less or equal

Distance: 0

Unit: sentence

Ordering: unordered

slide58
relation ("<", ">" ,"<=" ,">=" ,"=" , "<>"; default "<="),
  • distance (integer; default: 1 for word, zero otherwise)
  • unit ("word", "sentence", "paragraph", or "element"; default "word"),
  • ordering ("ordered" or "unordered"; default "unordered")
slide59

“Find cat in the same

sentence as dog”

cat prox//sentence dog

slide60

“Find cat in the same

sentence as dog”

cat prox//sentence dog

same as:

cat prox/<=/0/sentence/unordered dog

slide61
(chestnut

prox//sentence“Cryphonectaria parasitica”)

prox//paragraph

(“dutch elm”

prox//sentenceCeratocystisulmi)

slide62
(chestnut

prox//sentence“Cryphonectaria parasitica”)

prox//paragraph

(“dutch elm”

prox//sentenceCeratocystisulmi)

(find chestnut in the same sentence as

“Cryphonectaria parasitica”, and “dutch elm” In the same sentence as Ceratocystisulmi, and both sentences in the same paragraph.)

slide63
(chestnut

prox//paragraph“Cryphonectaria parasitica”)

and

(“dutch elm”

prox//paragraphCeratocystisulmi)

slide64
(chestnut

prox//paragraph“Cryphonectaria parasitica”)

and

(“dutch elm”

prox//paragraphCeratocystisulmi)

(find chestnut in the same paragraph as

“Cryphonectaria parasitica”, and “dutch elm” In the same paragraph as Ceratocystisulmi.)

slide65
cat prox/>/2//orderedhat

retrieves “cat in the hat” but not “cat in hat”

nor “hat on the cat”

pattern matching
Pattern Matching
  • ?Matches any single character
  • *Matches any sequence of zero or more characters
    • ^word-anchoring
pattern matching67
Pattern Matching
  • ?Matches any single character
      • c?t matches cat, cot, cut, but notcoat or ct. c??t matches cart, but notcat or crypt.
  • *Matches any sequence of zero or more characters
      • c*t matches cat, coat, crypt and counterargument.
    • ^word-anchoring ---
word anchoring
Word Anchoring
  • title="^the complete dinosaur"
    • Matches “the complete dinosaur meets godzilla”
    • But not“a day in the life of the complete dinosaur”
  • title="the complete dinosaur^ “
    • Matchesa day in the life of the complete dinosaur”
    • But not“the complete dinosaur meets godzilla”
word anchoring any
Word Anchoring - any
  • title any "^cat ^dog rat“
      • Means title with cat at the beginning, or with dog at the beginning,or with rat anywhere.
word anchoring any70
Word Anchoring - any
  • title any "^cat ^dog rat“
      • Means title with cat anywhere, or with rat anywhere, or with dog at the beginning.
    • matches
      • \'cat eats dog\',
      • \'dog eats hat\'
      • ‘hat eats rat’
    • but not
      • ‘hat eats dog\'
cql syntax
CQL Syntax
  • Reserved words:
    • and, or, not, prox
  • Special Characters
    • Space ( ) = < > ” /
tokens
Tokens
  • A string that has no special characters; or
  • Any string at all enclosed by double quotes. (Except the string cannot include a double quote, unless escaped.)
escape character
Escape Character \
  • Backslash (\) escapes \'*\', \'?\', " and \'^\' , as well as itself

"\“why not\?\" she said"

Results in the following token:

“why not?" she said

context sets75
Context sets
  • Indexes
  • Relations
  • Relation modifiers
  • Boolean Modifiers
slide77

subject any/relevant "fish frog"

Relation

modifier

Search term

index

relation

slide78

subject any/relevant "fish frog"

Relation

modifier

Search term

index

relation

Subject to

context qualification

slide82

dc.subject any/rel.lr "fish frog"

A specific

Relevance

algorithn

Context

set

example fictitious relation only
Example–fictitious relation: “only”
  • depicts only “cat"Matching images would depict only a cat and nothing else. The same cat with a person would not match.

relation

index

slide85
image.depicts image.only “cat"

Context for

relation

Context

for index

slide86

Go back to:

subject any/relevant "fish frog"

slide87

subject any/relevant "fish frog"

Or

title any/relevant “cat dog"

slide88

subject any/relevant "fish frog"

Or/rel.mean

title any/relevant “cat dog"

slide89

subject any/relevant "fish frog"

Or/rel.mean

Context

set

Boolean

modifier

title any/relevant “cat dog"

defaults
Defaults
  • Consider the query:

cat

  • The server needs to turn that into a search clause, I.e. an index, relation, and search term.
  • As it is, there’s only a search term
slide91

<index> <relation> cat

cql.serverChoice

(default index)

cql.scr

(default context set

and relation)

scr: “server choice relation”

slide93
Next, consider the query:

title = cat

  • The server needs to assign a context set to the index (title) and a context set to the relation (=)
slide94
Next, consider the query:

title = cat

  • The server needs to assign a context set to the index (title) and a context set to the relation (=)
  • Or to make it even more complicated….
slide95
Add a relation modifier

title = cat/relevant

  • The server needs to assign a context set to the index (title) and a context set to the relation (=), and a context set to the relation modifier.
default context sets
Default Context Sets

<>.title cql.= cat/cql.relevant

Default context

set for relation

is ‘cql’

Default context

set for relation

modifier is ‘cql’

Default index

seleted by

server

additional relation modifiers
Additional relation modifiers
  • wordThe term should be broken into words, (according to the server\'s definition of a \'word‘)
  • stringThe term is a single item, and should not be broken up.
  • isoDateEach item within the term conforms to ISO 8601
  • numberEach item within the term is a number.
  • uriEach item within the term is a URI.
  • masked(default modifier)
slide98
Title any “cat dog” same as

Title any/word “cat dog”

slide99
Title any “cat dog” same as

Title any/word “cat dog”

  • Title exact “cat in the hat” same as

title exact/string “cat in the hat”

slide100
Title any “cat dog” same as

Title any/word “cat dog”

  • Title exact “cat in the hat” same as

title exact/string “cat in the hat”

  • Title = “cat * hat” same as

Title =/masked “cat * hat”