29
aurus Ab rus Agnostiphys Agustinia A Alocodon Altirhinus Alvarezsaurus Alxasaurus Am us Amygdalodon Anabisetia Anatotitan Anchiceratops Anchisaurus Ande mimus Antarctosaurus Apatosaurus Aragosaurus Aralosaurus Archaeocera Argentinosaurus Argyrosaurus Aristosuchus Arrhinoceratops Arstanosau casaurus Austrosaurus Avaceratops Avimimus Bactrosaurus Bagaceratops aurus Barosaurus Barsboldia Baryonyx Becklespinax Beipiaosaurus Bel govia Bothriospondylus Brachiosaurus Brachylophosaurus Bradycneme Br gnathasia Calamospondylus Camarasaurus Camelotia Camptosaurus Campyl aurus Caudipteryx Cedarosaurus Cedarpelta Centrosaurus Ceratops Cera ngosaurus Charonosaurus Chasmosaurus Chialingosaurus Chilantaisauru drosteosaurus Chuanjiesaurus Chubutisaurus Chungkingosaurus Citipat mpsognathus Conchoraptor Corythosaurus Crichtonsaurus Cryolophosauru tousaurus Deinocheirus Deinonychus Deltadromeus Diceratops Dicraeosa osuchus Draconyx Dracopelta Drinker Dromaeosaurus Dromiceiomimus Dry nodon Edmarka Edmontonia Edmontosaurus Einiosaurus Elaphrosaurus El rontosaurus Eolambia Eoraptor Eotyrannus Epachthosaurus Equijubus Er oelophysis Euhelopus Euoplocephalus Euronychodon Euskelosaurus Eustr urotherium Gallimimus Galtonia Gargoyleosaurus Garudimimus Gasosauru notosaurus Gilmoreosaurus Gobisaurus Gobititan Gojirasaurus Gongxia Gryposaurus Guaibasaurus Hadrosaurus Haplocanthosaurus Harpymimus H us Heyuannia Histriasaurus Homalocephale Hoplitosaurus Huabeisaurus pacrosaurus Hypsibema Hypsilophodon Iguanodon Iliosuchus Ilokelesia or Isanosaurus Itemirus Iuticosaurus Jainosaurus Janenschia Jeholosa osaurus Kakuru Kentrosaurus Khaan Klamelisaurus Kopa arentosaurus Leaellynasaura Lept ainosaurus L CQL extension for s Mike Taylor <[email protected] > Index Data – http://www.indexdata.co

Abelisaurus Abrictosaurus Abrosaurus Achelosaurus Achillobator Acrocanthosaurus Adasaurus Aegyptosaurus Aeolosaurus Afrovenator Agilisaurus Agnostiphys

Embed Size (px)

Citation preview

Page 1: Abelisaurus Abrictosaurus Abrosaurus Achelosaurus Achillobator Acrocanthosaurus Adasaurus Aegyptosaurus Aeolosaurus Afrovenator Agilisaurus Agnostiphys

Abelisaurus Abrictosaurus Abrosaurus Achelosaurus Achillobator Acrocanthosaurus Adasaurus Aegyptosaurus Aeolosaurus

Afrovenator Agilisaurus Agnostiphys Agustinia Alamosaurus Albertosaurus Alectrosaurus Aletopelta Algoasaurus Alioramus

Aliwalia Allosaurus Alocodon Altirhinus Alvarezsaurus Alxasaurus Amargasaurus Ammosaurus Ampelosaurus Amphicoelias

Amtosaurus Amurosaurus Amygdalodon Anabisetia Anatotitan Anchiceratops Anchisaurus Andesaurus Animantarx Ankylosaurus

Anoplosaurus Anserimimus Antarctosaurus Apatosaurus Aragosaurus Aralosaurus Archaeoceratops Archaeornithoides

Archaeornithomimus Argentinosaurus Argyrosaurus Aristosuchus Arrhinoceratops Arstanosaurus Asiamericana Atlasaurus

Atlascopcosaurus Aucasaurus Austrosaurus Avaceratops Avimimus Bactrosaurus Bagaceratops Bagaraatan Bahariasaurus

Bambiraptor Barapasaurus Barosaurus Barsboldia Baryonyx Becklespinax Beipiaosaurus Bellusaurus Bienosaurus Bihariosaurus

Blikanasaurus Borogovia Bothriospondylus Brachiosaurus Brachylophosaurus Bradycneme Bruhathkayosaurus Bugenasaura

Byronosaurus Caenagnathasia Calamospondylus Camarasaurus Camelotia Camptosaurus Campylodoniscus Carcharodontosaurus

Carnotaurus Caseosaurus Caudipteryx Cedarosaurus Cedarpelta Centrosaurus Ceratops Ceratosaurus Cetiosauriscus

Cetiosaurus Chaoyangosaurus Charonosaurus Chasmosaurus Chialingosaurus Chilantaisaurus Chindesaurus Chingkankousaurus

Chirostenotes Chondrosteosaurus Chuanjiesaurus Chubutisaurus Chungkingosaurus Citipati Claosaurus Coelophysis Coelurus

Coloradisaurus Compsognathus Conchoraptor Corythosaurus Crichtonsaurus Cryolophosaurus Cryptovolans Dacentrurus

Daspletosaurus Datousaurus Deinocheirus Deinonychus Deltadromeus Diceratops Dicraeosaurus Dilophosaurus Dinheirosaurus

Diplodocus Dolichosuchus Draconyx Dracopelta Drinker Dromaeosaurus Dromiceiomimus Dryosaurus Dryptosaurus Dyslocosaurus

Dystrophaeus Echinodon Edmarka Edmontonia Edmontosaurus Einiosaurus Elaphrosaurus Elmisaurus Elopteryx Emausaurus

Enigmosaurus Eobrontosaurus Eolambia Eoraptor Eotyrannus Epachthosaurus Equijubus Erectopus Erliansaurus Erlikosaurus

Eshanosaurus Eucoelophysis Euhelopus Euoplocephalus Euronychodon Euskelosaurus Eustreptospondylus Ferganasaurus

Fukuiraptor Fulgurotherium Gallimimus Galtonia Gargoyleosaurus Garudimimus Gasosaurus Gasparinisaura Gastonia Genusaurus

Genyodectes Giganotosaurus Gilmoreosaurus Gobisaurus Gobititan Gojirasaurus Gongxianosaurus Gorgosaurus Goyocephale

Graciliceratops Gryposaurus Guaibasaurus Hadrosaurus Haplocanthosaurus Harpymimus Herrerasaurus Hesperosaurus

Heterodontosaurus Heyuannia Histriasaurus Homalocephale Hoplitosaurus Huabeisaurus Huayangosaurus Hudiesaurus Hulsanpes

Hylaeosaurus Hypacrosaurus Hypsibema Hypsilophodon Iguanodon Iliosuchus Ilokelesia Incisivosaurus Indosaurus Indosuchus

Ingenia Irritator Isanosaurus Itemirus Iuticosaurus Jainosaurus Janenschia Jeholosaurus Jiangshanosaurus Jingshanosaurus

Jinzhousaurus Jobaria Kaijiangosaurus Kakuru Kentrosaurus Khaan Klamelisaurus Koparion Kotasaurus Kritosaurus

Kulceratops Labocania Lambeosaurus Lanasaurus Lapparentosaurus Leaellynasaura Leptoceratops Lesothosaurus Lessemsaurus

Lexovisaurus Liaoceratops Liaoningosaurus Ligabueino Liliensternus Lirainosaurus Lophorhothon Loricosaurus

A CQL extension for sortingMike Taylor <[email protected]>

Index Data – http://www.indexdata.com

Page 2: Abelisaurus Abrictosaurus Abrosaurus Achelosaurus Achillobator Acrocanthosaurus Adasaurus Aegyptosaurus Aeolosaurus Afrovenator Agilisaurus Agnostiphys

A CQL extension for sorting Mike Taylor, Index Data <[email protected]>

Overview

Where we're headed:

The problem: sorting in SRU 1.1The solution: a CQL extension for sortingExamplesDescriptionThe sorting context setBNF grammarXCQL representationExplain (ZeeRex elements)

Page 3: Abelisaurus Abrictosaurus Abrosaurus Achelosaurus Achillobator Acrocanthosaurus Adasaurus Aegyptosaurus Aeolosaurus Afrovenator Agilisaurus Agnostiphys

A CQL extension for sorting Mike Taylor, Index Data <[email protected]>

The problem: sorting in SRU 1.1

The sorting mechanism in SRU 1.1 is inadequate:

It requires its own parser.It uses XPath, a format- and schema-specific solution,It is incapable of expressing namespaces in the XPath.It requires its own parameter in the request.It is not extensible (e.g. Unicode sort) or profilable.It is tied directly to the SRU version.Sort criteria are not part of the query language,

(as is common in other query languages such as SQL.)

Page 4: Abelisaurus Abrictosaurus Abrosaurus Achelosaurus Achillobator Acrocanthosaurus Adasaurus Aegyptosaurus Aeolosaurus Afrovenator Agilisaurus Agnostiphys

A CQL extension for sorting Mike Taylor, Index Data <[email protected]>

The solution: a CQL extension

The best solution is to add sorting support to the SRU'squery language, CQL:

Existing CQL indexes can be used in sort specifications (i.e. abstract access points).

Sorting indexes and their modifiers can be profiled in the same way as the core of CQL.

Only a single language parser is required in CQL, with minimal changes required to existing CQL parsers

Fringe benefit: applications of CQL other than SRU/W will benefit from the new capabilities.

Page 5: Abelisaurus Abrictosaurus Abrosaurus Achelosaurus Achillobator Acrocanthosaurus Adasaurus Aegyptosaurus Aeolosaurus Afrovenator Agilisaurus Agnostiphys

A CQL extension for sorting Mike Taylor, Index Data <[email protected]>

An ounce of example is worth a ton of exposition

fish sortby title

Page 6: Abelisaurus Abrictosaurus Abrosaurus Achelosaurus Achillobator Acrocanthosaurus Adasaurus Aegyptosaurus Aeolosaurus Afrovenator Agilisaurus Agnostiphys

A CQL extension for sorting Mike Taylor, Index Data <[email protected]>

An ounce of example is worth a ton of exposition

fish sortby titlefish and frog sortby title

Page 7: Abelisaurus Abrictosaurus Abrosaurus Achelosaurus Achillobator Acrocanthosaurus Adasaurus Aegyptosaurus Aeolosaurus Afrovenator Agilisaurus Agnostiphys

A CQL extension for sorting Mike Taylor, Index Data <[email protected]>

An ounce of example is worth a ton of exposition

fish sortby titlefish and frog sortby titledc.title=fish sortby dc.title

Page 8: Abelisaurus Abrictosaurus Abrosaurus Achelosaurus Achillobator Acrocanthosaurus Adasaurus Aegyptosaurus Aeolosaurus Afrovenator Agilisaurus Agnostiphys

A CQL extension for sorting Mike Taylor, Index Data <[email protected]>

An ounce of example is worth a ton of exposition

fish sortby titlefish and frog sortby titledc.title=fish sortby dc.titledc.title=fish sortby numberOfLegs/cql.number

Page 9: Abelisaurus Abrictosaurus Abrosaurus Achelosaurus Achillobator Acrocanthosaurus Adasaurus Aegyptosaurus Aeolosaurus Afrovenator Agilisaurus Agnostiphys

A CQL extension for sorting Mike Taylor, Index Data <[email protected]>

An ounce of example is worth a ton of exposition

fish sortby titlefish and frog sortby titledc.title=fish sortby dc.titledc.title=fish sortby numberOfLegs/cql.numberdc.title=fish sortby dc.title/sort.respectCase

Page 10: Abelisaurus Abrictosaurus Abrosaurus Achelosaurus Achillobator Acrocanthosaurus Adasaurus Aegyptosaurus Aeolosaurus Afrovenator Agilisaurus Agnostiphys

A CQL extension for sorting Mike Taylor, Index Data <[email protected]>

An ounce of example is worth a ton of exposition

fish sortby titlefish and frog sortby titledc.title=fish sortby dc.titledc.title=fish sortby numberOfLegs/cql.numberdc.title=fish sortby dc.title/sort.respectCasedc.title=fish sortby dc.title/sort.respectCase/sort.descending

Page 11: Abelisaurus Abrictosaurus Abrosaurus Achelosaurus Achillobator Acrocanthosaurus Adasaurus Aegyptosaurus Aeolosaurus Afrovenator Agilisaurus Agnostiphys

A CQL extension for sorting Mike Taylor, Index Data <[email protected]>

An ounce of example is worth a ton of exposition

fish sortby titlefish and frog sortby titledc.title=fish sortby dc.titledc.title=fish sortby numberOfLegs/cql.numberdc.title=fish sortby dc.title/sort.respectCasedc.title=fish sortby dc.title/sort.respectCase/sort.descendingdc.title=fish sortby dc.date dc.creator dc.title

Page 12: Abelisaurus Abrictosaurus Abrosaurus Achelosaurus Achillobator Acrocanthosaurus Adasaurus Aegyptosaurus Aeolosaurus Afrovenator Agilisaurus Agnostiphys

A CQL extension for sorting Mike Taylor, Index Data <[email protected]>

An ounce of example is worth a ton of exposition

fish sortby titlefish and frog sortby titledc.title=fish sortby dc.titledc.title=fish sortby numberOfLegs/cql.numberdc.title=fish sortby dc.title/sort.respectCasedc.title=fish sortby dc.title/sort.respectCase/sort.descendingdc.title=fish sortby dc.date dc.creator dc.titledc.title=fish sortby dc.date/sort.missingOmit

Page 13: Abelisaurus Abrictosaurus Abrosaurus Achelosaurus Achillobator Acrocanthosaurus Adasaurus Aegyptosaurus Aeolosaurus Afrovenator Agilisaurus Agnostiphys

A CQL extension for sorting Mike Taylor, Index Data <[email protected]>

An ounce of example is worth a ton of exposition

fish sortby titlefish and frog sortby titledc.title=fish sortby dc.titledc.title=fish sortby numberOfLegs/cql.numberdc.title=fish sortby dc.title/sort.respectCasedc.title=fish sortby dc.title/sort.respectCase/sort.descendingdc.title=fish sortby dc.date dc.creator dc.titledc.title=fish sortby dc.date/sort.missingOmitdc.title=fish sortby dc.date/sort.missingValue=1970

Page 14: Abelisaurus Abrictosaurus Abrosaurus Achelosaurus Achillobator Acrocanthosaurus Adasaurus Aegyptosaurus Aeolosaurus Afrovenator Agilisaurus Agnostiphys

A CQL extension for sorting Mike Taylor, Index Data <[email protected]>

An ounce of example is worth a ton of exposition

fish sortby titlefish and frog sortby titledc.title=fish sortby dc.titledc.title=fish sortby numberOfLegs/cql.numberdc.title=fish sortby dc.title/sort.respectCasedc.title=fish sortby dc.title/sort.respectCase/sort.descendingdc.title=fish sortby dc.date dc.creator dc.titledc.title=fish sortby dc.date/sort.missingOmitdc.title=fish sortby dc.date/sort.missingValue=1970>dc="http://deepcustard.org/1.0" fish sortby dc.custardDepth

Page 15: Abelisaurus Abrictosaurus Abrosaurus Achelosaurus Achillobator Acrocanthosaurus Adasaurus Aegyptosaurus Aeolosaurus Afrovenator Agilisaurus Agnostiphys

A CQL extension for sorting Mike Taylor, Index Data <[email protected]>

Description of the sorting extension

Sort-specifications introduced by new "sortby" operator

"sortby" may only occur at the top level of a query

LHS of the "sortby" operator is a classic CQL query

RHS is an ordered list of sort keys, most significant first

Sort key is an index name, with optional modifiers

Indexes and modifiers may be from any context set

Unqualified indexes drawn from the prevailing context-set

Unqualified modifiers drawn from the CQL context set

(The concept of an index modifier is new with this proposal.)

Page 16: Abelisaurus Abrictosaurus Abrosaurus Achelosaurus Achillobator Acrocanthosaurus Adasaurus Aegyptosaurus Aeolosaurus Afrovenator Agilisaurus Agnostiphys

A CQL extension for sorting Mike Taylor, Index Data <[email protected]>

The sorting context-set

No indexes, relations, etc. Only index modifiers.

Page 17: Abelisaurus Abrictosaurus Abrosaurus Achelosaurus Achillobator Acrocanthosaurus Adasaurus Aegyptosaurus Aeolosaurus Afrovenator Agilisaurus Agnostiphys

A CQL extension for sorting Mike Taylor, Index Data <[email protected]>

The sorting context-set

No indexes, relations, etc. Only index modifiers.

ignoreCase – case-insensitive (usually default)

Page 18: Abelisaurus Abrictosaurus Abrosaurus Achelosaurus Achillobator Acrocanthosaurus Adasaurus Aegyptosaurus Aeolosaurus Afrovenator Agilisaurus Agnostiphys

A CQL extension for sorting Mike Taylor, Index Data <[email protected]>

The sorting context-set

No indexes, relations, etc. Only index modifiers.

ignoreCase – case-insensitive (usually default)respectCase – case-sensitive sorting

Page 19: Abelisaurus Abrictosaurus Abrosaurus Achelosaurus Achillobator Acrocanthosaurus Adasaurus Aegyptosaurus Aeolosaurus Afrovenator Agilisaurus Agnostiphys

A CQL extension for sorting Mike Taylor, Index Data <[email protected]>

The sorting context-set

No indexes, relations, etc. Only index modifiers.

ignoreCase – case-insensitive (usually default)respectCase – case-sensitive sortingignoreAccents / respectAccents

Page 20: Abelisaurus Abrictosaurus Abrosaurus Achelosaurus Achillobator Acrocanthosaurus Adasaurus Aegyptosaurus Aeolosaurus Afrovenator Agilisaurus Agnostiphys

A CQL extension for sorting Mike Taylor, Index Data <[email protected]>

The sorting context-set

No indexes, relations, etc. Only index modifiers.

ignoreCase – case-insensitive (usually default)respectCase – case-sensitive sortingignoreAccents / respectAccentsascending – sort in ascending order (usually default)

Page 21: Abelisaurus Abrictosaurus Abrosaurus Achelosaurus Achillobator Acrocanthosaurus Adasaurus Aegyptosaurus Aeolosaurus Afrovenator Agilisaurus Agnostiphys

A CQL extension for sorting Mike Taylor, Index Data <[email protected]>

The sorting context-set

No indexes, relations, etc. Only index modifiers.

ignoreCase – case-insensitive (usually default)respectCase – case-sensitive sortingignoreAccents / respectAccentsascending – sort in ascending order (usually default)descending – sort in descending order

Page 22: Abelisaurus Abrictosaurus Abrosaurus Achelosaurus Achillobator Acrocanthosaurus Adasaurus Aegyptosaurus Aeolosaurus Afrovenator Agilisaurus Agnostiphys

A CQL extension for sorting Mike Taylor, Index Data <[email protected]>

The sorting context-set

No indexes, relations, etc. Only index modifiers.

ignoreCase – case-insensitive (usually default)respectCase – case-sensitive sortingignoreAccents / respectAccentsascending – sort in ascending order (usually default)descending – sort in descending ordermissingOmit / missingFail / missingLow / missingHigh

Page 23: Abelisaurus Abrictosaurus Abrosaurus Achelosaurus Achillobator Acrocanthosaurus Adasaurus Aegyptosaurus Aeolosaurus Afrovenator Agilisaurus Agnostiphys

A CQL extension for sorting Mike Taylor, Index Data <[email protected]>

The sorting context-set

No indexes, relations, etc. Only index modifiers.

ignoreCase – case-insensitive (usually default)respectCase – case-sensitive sortingignoreAccents / respectAccentsascending – sort in ascending order (usually default)descending – sort in descending ordermissingOmit / missingFail / missingLow / missingHighmissingValue=val – how to sort records lacking key data

Page 24: Abelisaurus Abrictosaurus Abrosaurus Achelosaurus Achillobator Acrocanthosaurus Adasaurus Aegyptosaurus Aeolosaurus Afrovenator Agilisaurus Agnostiphys

A CQL extension for sorting Mike Taylor, Index Data <[email protected]>

The sorting context-set

No indexes, relations, etc. Only index modifiers.

ignoreCase – case-insensitive (usually default)respectCase – case-sensitive sortingignoreAccents / respectAccentsascending – sort in ascending order (usually default)descending – sort in descending ordermissingOmit / missingFail / missingLow / missingHighmissingValue=val – how to sort records lacking key datalocale=val – locale-specific sorting rules (accents, etc.)

Page 25: Abelisaurus Abrictosaurus Abrosaurus Achelosaurus Achillobator Acrocanthosaurus Adasaurus Aegyptosaurus Aeolosaurus Afrovenator Agilisaurus Agnostiphys

cqlQuery ::=

prefixAssignment cq

lQuery | scopedClaus

e [sortSpec]

prefixAssignment ::=

'>' prefix '=' uri

| '>' uri

scopedClause ::=

scopedClause boolea

nGroup searchClause

| searchClause

booleanGroup ::=

boolean [modifierLi

st]

boolean ::=

'and' | 'or' | 'not

' | 'prox'

searchClause ::=

'(' cqlQuery ')'

|

index relation sear

chTerm

|

searchTerm

relation ::=

comparitor [modifie

rList]

comparitor ::=

comparitorSymbol |

namedComparitor

comparitorSymbol ::=

'=' | '>' | '<' | '

>=' | '<=' | '<>'

namedComparitor ::=

identifier

modifierList ::=

modifierList modifi

er | modifier

modifier ::=

'/' modifierName [c

omparitorSymbol modi

fierValue]

prefix ::=

term

uri ::=

term

modifierName ::=

term

modifierValue ::=

term

searchTerm ::=

term

index ::=

term

term ::=

identifier | 'and'

| 'or' | 'not' | 'pr

ox' | 'sortby'

identifier ::=

charString1 | charS

tring2

sortSpec ::=

sortSpec singleSpec

| singleSpec

singleSpec ::=

index [modifierList

]

A CQL extension for sorting Mike Taylor, Index Data <[email protected]>

Zzzzzzz ...

You can switch off now if you like.

The rest is boringly technical.

Page 26: Abelisaurus Abrictosaurus Abrosaurus Achelosaurus Achillobator Acrocanthosaurus Adasaurus Aegyptosaurus Aeolosaurus Afrovenator Agilisaurus Agnostiphys

A CQL extension for sorting Mike Taylor, Index Data <[email protected]>

BNF grammar

Two existing rules need to change:

cqlQuery ::= prefixAssignment cqlQuery | scopedClause [sortSpec]term ::= identifier | 'and' | 'or' | 'not' | 'prox' | 'sortby'

And two new rules are needed:

sortSpec ::= sortSpec singleSpec | singleSpecsingleSpec ::= index [modifierList]

Page 27: Abelisaurus Abrictosaurus Abrosaurus Achelosaurus Achillobator Acrocanthosaurus Adasaurus Aegyptosaurus Aeolosaurus Afrovenator Agilisaurus Agnostiphys

A CQL extension for sorting Mike Taylor, Index Data <[email protected]>

XCQL representation<sortKeys>

<key><index>dc.creator</index><modifiers>

<modifier><name>sort.missingValue</name><value>frog</value>

</modifier><modifier>

<name>sort.descending</name></modifier>

</modifiers></key>

</sortKeys>

Page 28: Abelisaurus Abrictosaurus Abrosaurus Achelosaurus Achillobator Acrocanthosaurus Adasaurus Aegyptosaurus Aeolosaurus Afrovenator Agilisaurus Agnostiphys

A CQL extension for sorting Mike Taylor, Index Data <[email protected]>

Explain (ZeeRex elements)<indexInfo> <set name="sort" identifier="http://zing.z3950.org/cql/sorting/1.0"/> <index sort="true"> <title>Dublin Core Creator (Author)</title> <map><name set="dc">creator</name></map> </index></indexInfo><configInfo> <setting type="maximumSortKeys">3</setting> <default type="sortCase">respectCase</default> <default type="sortDirection">descending</default> <default type=”missingFail”/></configInfo>

Page 29: Abelisaurus Abrictosaurus Abrosaurus Achelosaurus Achillobator Acrocanthosaurus Adasaurus Aegyptosaurus Aeolosaurus Afrovenator Agilisaurus Agnostiphys

Abelisaurus Abrictosaurus Abrosaurus Achelosaurus Achillobator Acrocanthosaurus Adasaurus Aegyptosaurus Aeolosaurus

Afrovenator Agilisaurus Agnostiphys Agustinia Alamosaurus Albertosaurus Alectrosaurus Aletopelta Algoasaurus Alioramus

Aliwalia Allosaurus Alocodon Altirhinus Alvarezsaurus Alxasaurus Amargasaurus Ammosaurus Ampelosaurus Amphicoelias

Amtosaurus Amurosaurus Amygdalodon Anabisetia Anatotitan Anchiceratops Anchisaurus Andesaurus Animantarx Ankylosaurus

Anoplosaurus Anserimimus Antarctosaurus Apatosaurus Aragosaurus Aralosaurus Archaeoceratops Archaeornithoides

Archaeornithomimus Argentinosaurus Argyrosaurus Aristosuchus Arrhinoceratops Arstanosaurus Asiamericana Atlasaurus

Atlascopcosaurus Aucasaurus Austrosaurus Avaceratops Avimimus Bactrosaurus Bagaceratops Bagaraatan Bahariasaurus

Bambiraptor Barapasaurus Barosaurus Barsboldia Baryonyx Becklespinax Beipiaosaurus Bellusaurus Bienosaurus Bihariosaurus

Blikanasaurus Borogovia Bothriospondylus Brachiosaurus Brachylophosaurus Bradycneme Bruhathkayosaurus Bugenasaura

Byronosaurus Caenagnathasia Calamospondylus Camarasaurus Camelotia Camptosaurus Campylodoniscus Carcharodontosaurus

Carnotaurus Caseosaurus Caudipteryx Cedarosaurus Cedarpelta Centrosaurus Ceratops Ceratosaurus Cetiosauriscus

Cetiosaurus Chaoyangosaurus Charonosaurus Chasmosaurus Chialingosaurus Chilantaisaurus Chindesaurus Chingkankousaurus

Chirostenotes Chondrosteosaurus Chuanjiesaurus Chubutisaurus Chungkingosaurus Citipati Claosaurus Coelophysis Coelurus

Coloradisaurus Compsognathus Conchoraptor Corythosaurus Crichtonsaurus Cryolophosaurus Cryptovolans Dacentrurus

Daspletosaurus Datousaurus Deinocheirus Deinonychus Deltadromeus Diceratops Dicraeosaurus Dilophosaurus Dinheirosaurus

Diplodocus Dolichosuchus Draconyx Dracopelta Drinker Dromaeosaurus Dromiceiomimus Dryosaurus Dryptosaurus Dyslocosaurus

Dystrophaeus Echinodon Edmarka Edmontonia Edmontosaurus Einiosaurus Elaphrosaurus Elmisaurus Elopteryx Emausaurus

Enigmosaurus Eobrontosaurus Eolambia Eoraptor Eotyrannus Epachthosaurus Equijubus Erectopus Erliansaurus Erlikosaurus

Eshanosaurus Eucoelophysis Euhelopus Euoplocephalus Euronychodon Euskelosaurus Eustreptospondylus Ferganasaurus

Fukuiraptor Fulgurotherium Gallimimus Galtonia Gargoyleosaurus Garudimimus Gasosaurus Gasparinisaura Gastonia Genusaurus

Genyodectes Giganotosaurus Gilmoreosaurus Gobisaurus Gobititan Gojirasaurus Gongxianosaurus Gorgosaurus Goyocephale

Graciliceratops Gryposaurus Guaibasaurus Hadrosaurus Haplocanthosaurus Harpymimus Herrerasaurus Hesperosaurus

Heterodontosaurus Heyuannia Histriasaurus Homalocephale Hoplitosaurus Huabeisaurus Huayangosaurus Hudiesaurus Hulsanpes

Hylaeosaurus Hypacrosaurus Hypsibema Hypsilophodon Iguanodon Iliosuchus Ilokelesia Incisivosaurus Indosaurus Indosuchus

Ingenia Irritator Isanosaurus Itemirus Iuticosaurus Jainosaurus Janenschia Jeholosaurus Jiangshanosaurus Jingshanosaurus

Jinzhousaurus Jobaria Kaijiangosaurus Kakuru Kentrosaurus Khaan Klamelisaurus Koparion Kotasaurus Kritosaurus

Kulceratops Labocania Lambeosaurus Lanasaurus Lapparentosaurus Leaellynasaura Leptoceratops Lesothosaurus Lessemsaurus

Lexovisaurus Liaoceratops Liaoningosaurus Ligabueino Liliensternus Lirainosaurus Lophorhothon Loricosaurus

A CQL extension for sortingMike Taylor <[email protected]>

Index Data – http://www.indexdata.com