The SIRF API
The Spatial Identifier Reference Framework (SIRF) allows spatial objects to be discovered and interrogated using web addresses (URIs) and can show where identifiers are in use in the Web of Data. It can be used as underlying infrastructure to join related information using common locations, without the uncertainties associated with spatial matching.
Each URI can be linked to many representation of the feature, as well as metadata, related features and services relating to the object. SIRF defines a set of named views each identifier supports, and allows this to be extended to handle any external resources that are relevant.
The SIRF Federation Model allows many data providers to describe their spatial references in a common way, and is thus best described by the APIs that data providers need to support to be part of SIRF. This is a flexible suite of standards based APIs, support a flexible suite of data formats. SIRF provides infrastructure services so that, as a minimum, owners of spatial object identifiers merely need to redirect queries they don't support to the SIRF infrastructure.
Collectively this suite of standards and the way in which they are used (and wired together) may be considered the "SIRF API".
At the core of SIRF is the concept of identifiers, and the recognition that these are determined in the context of data sets that act as REGISTERS. By making sure that identifiers can be dereferenced to determine the type and register, individual spatial object identifiers can be related to:
- spatial datasets containing representations of the object (i.e. SIRF is a Linked Data API for Spatial Data Infrastructures)
- other spatial objects (SIRF is a community infrastructure for cross-referencing different equivalent datasets)
- data about the object (e.g. statistics)
- systems that can help discover mode information (the broader Document Web, Linked Data etc)
Each of these functions uses standards-based, simple API's on components that can be customised or deployed locally, or used from within the shared SIRF environment.
The "decoupling" of concept identifier and spatial reference dataset allows for stable identifiers:
- The location, data structure and technology delivering the reference data set can be modified, allowing for the evolving the nature of Spatial Data Infrastructures;
- Proxy governance arrangements can be made for data set representations, instead of forcing all providers to support a specific set of standards (i.e. SIRF can provide a standard view)
- Identifiers can be created for datasets independent of access to the underlying dataset if needs be; (data can be linked using name of objects even if boundaries are not public)
- Identifiers may be dereferenced to discover related data, including alternative representations and business data about the object identified.
These behaviours are specified by standardising Linked Data with a profile called LID (Linked IDentifier). LID specifies a predictable dereferencing mechanism for URI based identifiers that allow mandatory metadata and arbitrary information resources to be accessed.
LID defines a minimal contract between an identifier, the means to dereference it and key metadata about the disposition of information resources available.
Once identifiers are "well behaved" it is possible to federate multiple systems providing compatible spatial references. For more information, see SIRF Federation Model
Standard Access APIs
These are the "canonical" set of APIs that SIRF supports for all spatial references:
|LID||Basic profile of how a URI identifier behaves in a Linked Data environment. Standardises basic object descriptions and listing of available resources.|
|SIRF OpenSearch||Profile of OpenSearch protocol supported by SIRF, describing supported content, query syntax and result formats.|
|SIRF CrossRef API||Provides a list of alternative or related identifiers to support linking SIRF references.|
|DataNetwork API||Access metadata about sets of spatial reference and discover related datasets (LinkedData API on VOID standard)|
|SISSVoc||Vocabulary service API (SIRF combines this with LID to create dereferencable terms)|
|FeatureTypeCatalog||LID based Linked Data approach to publishing data models for SIRF data content and metadata about the data SIRF indexes.|
Supported source data APIs
These are the APIs that can be used to publish source data via services that SIRF can index. Where possible SIRF will expose links to the source data using these APIs, so they may be regarded as optional additional APIs within the SIRF framework.
|OGC Web Feature Service||1.1.0, 2.0.x||Standards based access to spatial data. Typical requirement for Spatial Data Infrastructures|
|OGC-WFS-G||0.9.3 (draft)||Profile of OGC WFS with metadata-rich gazetteer entry data structure support.|
In addition, SIRF will support indexing of static files, such ESRI FileGeoDatabases, however these are not preferred due to the difficulties of providing adequate provenance metadata for copies of datasets, or useful resources for the user needing to access the geometry of a single object in a very large dataset.
SIRF Data registration APIs
These APIs support registration of data within the SIRF framework. These will be documented in future phases of the project, but are listed here to provide a flavour of the SIRF functionality.
|PID Config||Persistent Identifier Service URL redirection rules management (implements part of LID specification)|
Register a data source and configure a harvest process.
|DataNetwork||Link SIRF data sets to related information. (Includes registerting alternative online forms of a dataset).|
|SIRF CrossRef Upload API||Upload a data set containing cross references, or add an individual cross reference to an existing data set.|
|SISSVoc Admin||upload a vocabulary|
|FTC Admin||Upload a data model|
In addition to various access protocols, SIRF supports direct access to information resources in multiple formats and languages. These can be extended at any time with third party provided information resources provided a identtiy cross-walk service is provided using the SIRF CrossRef API (SIRF will support also a suitable standard API for this function when one emerges)
|RDF||All LID URI||part of LID contract (not fully implemented - pending RDF)|
|HTML||All LID URI||part of LID contract|
|XML||All||default XML format per type (eg XMI, GeoRSS)|
|GML||gazetteer entries||where source is an OGC WFS|
|SKOS||Controlled vocabularies||Including Location Type|
UML models where avaiable
|OWL||Type models, data network metadata||All referenced rdf:types - properties and relationships|
|Shapefile||Gazetteer dumps, search results, source data||where licences compatible or source provided by owner|
|KML||Gazetteer dumps, search results, source data||where licences compatible or source provided by owner|
Please suggest additional formats that may have significant value. Third party contributions to create such resources are welcome, SIRF can link these in using the LID mechanism.
|OSM||spatial data||Open streetmap dump format|
|CSV||any||The "kalshnikov" - anyone can use it but may cause chaos|
|ESRI FGDB||spatial data||could cope with more structure than simple shapefile|
|OAI-PMH||gazetteer entries?||Support for external harvest of content - into for example 3rd party search providers|
|ISO19115||dataset metadata||Current SDI approach, could be created as a view from richer VOID dataset descriptions if this has any real value.|