# Introduction

pycsw is an OGC CSW server implementation written in Python.

# Features

- certified OGC Compliant and OGC Reference Implementation for both CSW 2.0.2 and CSW 3.0.0

- harvesting support for WMS, WFS, WCS, WPS, WAF, CSW, SOS

- implements INSPIRE Discovery Services 3.0

- implements ISO Metadata Application Profile 1.0.0

- implements FGDC CSDGM Application Profile for CSW 2.0

- implements the Search/Retrieval via URL (SRU) search protocol

- implements Full Text Search capabilities

- implements OGC OpenSearch Geo and Time Extensions

- implements Open Archives Initiative Protocol for Metadata Harvesting

- supports ISO, Dublin Core, DIF, FGDC, Atom and GM03 metadata models

- CGI or WSGI deployment

- simple configuration

- transactional capabilities (CSW-T)

- flexible repository configuration

- GeoNode connectivity

- HHypermap connectivity

- Open Data Catalog connectivity

- CKAN connectivity

- federated catalogue distributed searching

- realtime XML Schema validation

- extensible profile plugin architecture

## Standards Support

Standard | Version(s)
--- | ---
OGC CSW | 2.0.2, 3.0.0
OGC Filter | 1.1.0, 2.0.0
OGC OWS Common | 1.0.0, 2.0.0
OGC GML | 3.1.1
OGC SFSQL | 1.2.1
Dublin Core | 1.1
SOAP | 1.2
ISO 19115 | 2003
ISO 19139 | 2007
ISO 19119 | 2005
NASA DIF | 9.7
FGDC CSDGM | 1998
GM03 | 2.1
SRU | 1.1
OGC OpenSearch | 1.0
OAI-PMH | 2.0

## Supported Operations

Request | Optionality | Supported | HTTP method binding(s)
--- | --- | --- | ---
GetCapabilities | mandatory | yes | GET (KVP) / POST (XML) / SOAP
DescribeRecord | mandatory | yes | GET (KVP) / POST (XML) / SOAP
GetRecords | mandatory | yes | GET (KVP) / POST (XML) / SOAP
GetRecordById | optional | yes | GET (KVP) / POST (XML) / SOAP
GetRepositoryItem | optional | yes | GET (KVP)
GetDomain | optional | yes | GET (KVP) / POST (XML) / SOAP
Harvest | optional | yes | GET (KVP) / POST (XML) / SOAP
UnHarvest | optional | no |
Transaction | optional | yes | POST (XML) / SOAP

Note

Asynchronous processing supported for GetRecords and Harvest requests (via `csw:ResponseHandler`)

Note

Supported Harvest Resource Types are listed in Transactions

## Supported Output Formats

- XML (default)

- JSON

## Supported Output Schemas

- Dublin Core

- ISO 19139

- FGDC CSDGM

- NASA DIF

- Atom

- GM03

## Supported Sorting Functionality

- ogc:SortBy

- ascending or descending

- aspatial (queryable properties)

- spatial (geometric area)

## Supported Filters

### Full Text Search

- csw:AnyText

### Geometry Operands

- gml:Point

- gml:LineString

- gml:Polygon

- gml:Envelope

Note

Coordinate transformations are supported

### Spatial Operators

- BBOX

- Beyond

- Contains

- Crosses

- Disjoint

- DWithin

- Equals

- Intersects

- Overlaps

- Touches

- Within

### Logical Operators

- Between

- EqualTo

- LessThanEqualTo

- GreaterThan

- Like

- LessThan

- GreaterThanEqualTo

- NotEqualTo

- NullCheck

### Functions

- length

- lower

- ltrim

- rtrim

- trim

- upper