1 / 21

GeoServer application schema support: complex features for the masses

Ben Caradoc-Davies <Ben.Caradoc-Davies@csiro.au> CSIRO Earth Science and Resource Engineering Free and Open Source Software for Geospatial Sydney, Australia, 20-23 October 2009. GeoServer application schema support: complex features for the masses. GeoServer.

travis
Télécharger la présentation

GeoServer application schema support: complex features for the masses

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Ben Caradoc-Davies <Ben.Caradoc-Davies@csiro.au> CSIRO Earth Science and Resource Engineering Free and Open Source Software for Geospatial Sydney, Australia, 20-23 October 2009 GeoServer application schema support: complex features for the masses

  2. GeoServer • Java servlet for OGC Web Services • WMS, WFS, WFS-T, ... • Open Source (GPL) • Built on GeoTools (LGPL) • Reference OGC Web Feature Service implementation • Originally supported only simple features • app-schema adds complex feature WFS (only)

  3. Simple Feature • Flat XML representation of one database table

  4. Simple Feature <sf:GSML_MAPPEDFEATURE_SIMPLE gml:id="GSML_MAPPEDFEATURE_SIMPLE.fid-5d4a2c41_12451bfad2f_-7fff"> <sf:SITE_ID>209589</sf:SITE_ID> <sf:GML_NAME>urn:cgi:feature:PIRSA:MappedFeature:209589</sf:GML_NAME> <sf:DESCRIPTION>SEE PLAN 68-611</sf:DESCRIPTION> <sf:OBSERVATION_METHOD>(DISUSED) Map Plot</sf:OBSERVATION_METHOD> <sf:OBSERVATION_METHOD_CODESPACE>urn:cgi:classifierScheme:PIRSA:ObservationMethod</sf:OBSERVATION_METHOD_CODESPACE> <sf:SPECIFICATION_URN>urn:cgi:feature:PIRSA:MineralOccurrence:43deposit</sf:SPECIFICATION_URN> <sf:LOCATION> <gml:Point srsName="urn:x-ogc:def:crs:EPSG:4283"> <gml:pos>-26.8760644 133.0181594</gml:pos> </gml:Point> </sf:LOCATION> <sf:POS_ACC>urn:ogc:def:nil:OGC::missing</sf:POS_ACC> <sf:POS_ACC_UOM>http://urn.opengis.net/</sf:POS_ACC_UOM> </sf:GSML_MAPPEDFEATURE_SIMPLE> • Type autogenerated by GeoServer • All properties in one namespace • Database schema exposed to consumer • Meaning implied by element names • Semantics often have to be inferred by user

  5. Complex Feature • Nested XML representation of multiple related database tables

  6. Complex Feature <gsml:MappedFeature gml:id="gsml.mappedfeature.209589"> <gml:description>SEE PLAN 68-611</gml:description> <gml:name codeSpace="http://services.auscope.org/pirsa-earthresource/wfs">urn:cgi:feature:PIRSA:MappedFeature:209589</gml:name> <gsml:observationMethod> <gsml:CGI_TermValue> <gsml:value codeSpace="urn:cgi:classifierScheme:PIRSA:ObservationMethod">(DISUSED) Map Plot</gsml:value> </gsml:CGI_TermValue> </gsml:observationMethod> <gsml:positionalAccuracy> <gsml:CGI_TermValue> <gsml:value codeSpace="http://urn.opengis.net/">urn:ogc:def:nil:OGC::missing</gsml:value> </gsml:CGI_TermValue> </gsml:positionalAccuracy> <gsml:samplingFrame xlink:href="urn:cgi:feature:CGI:EarthNaturalSurface" /> <gsml:specification xlink:href="urn:cgi:feature:PIRSA:MineralOccurrence:43deposit" /> <gsml:shape> <gml:Point> <gml:pos>133.0181594 -26.8760644</gml:pos> </gml:Point> </gsml:shape> </gsml:MappedFeature> • Represents object relationships • Types defined in GML application schema • Meaning specified in community-agreed information standard

  7. Why Complex Features? • Simple features: • Represent database table as XML • Interoperability through simplicity • Complex features: • GML application schema defines complex types • Represent object relationships • Polymorphism, aggregation, inheritance • Extensible information model • Scales to large problems and communities

  8. GML Application Schema Examples • GeoSciML: a GML application schema for the exchange of geoscience data • http://www.geosciml.org/ • EarthResourceML extends GeoSciML • http://www.earthresourceml.org/ • Observations and Measurements • SensorML • CityML

  9. Example: AuScope Discovery Portal • Three Australian jurisdictions: • Victoria (GSV) – deegree • Tasmania (MRT) – GeoServer app-schema • South Australia (PIRSA) – GeoServer app-schema (hosted by CSIRO) • EarthResourceML (derived from GeoSciML) • Interoperability through complex feature types defined in a GML application schema • Community-agreed information standard

  10. http://portal.auscope.org/

  11. History of GeoServer app-schema • 2005-2007: GeoServer community-schemas • Rob Atkinson, Gabriel Roldán • Geochemistry roadshow (CSIRO) • Fork of a branch (not dead, just sleeping) • Informed GeoAPI and GeoTools development • 2008: ported to trunk by AuScope • Renamed Geoserver app-schema • Now: plugin for GeoServer 2.0-beta2 and later

  12. How app-schema works • Built on GeoTools data stores • Maps simple features into complex features • Works both ways, so supports queries

  13. Installation and Configuration • app-schema plugin for vanilla GeoServer • Can coexist with simple feature types • Configure by hand-editing XML mapping files • Driven by GML application schema • Define schema URL in mapping file • Feature chaining: • Define feature types separately and use as properties of each other

  14. Mapping File • Defines mappings: • From: column in database • To: XPath in encoded XML • Use CQL expressions • Set XML attributes <AttributeMapping> <targetAttribute>gsml:observationMethod/gsml:CGI_TermValue/gsml:value</targetAttribute> <sourceExpression> <OCQL>OBSERVATION_METHOD</OCQL> </sourceExpression> <ClientProperty> <name>codeSpace</name> <value>OBSERVATION_METHOD_CODESPACE</value> </ClientProperty> </AttributeMapping>

  15. Feature Chaining • Define feature types separately • Use features as properties of each other • Simplifies configuration • Equivalent to a foreign key reference <AttributeMapping> <targetAttribute>gsml:occurrence</targetAttribute> <sourceExpression> <OCQL>OCCURRENCE_URN</OCQL> <linkElement>gsml:MappedFeature</linkElement> <linkField>gml:name</linkField> </sourceExpression> </AttributeMapping>

  16. Strengths • No XSLT programming • Configurable through straightforward mapping • Uses existing GeoTools/GeoServer components • JDBC data sources: PostGIS, Oracle, ArcSDE • Shapefiles, property files • Good performance • Strong developer community and user base • Aids adoption of GML application schemas

  17. Weaknesses • No XSLT programming • No data-driven polymorphism • Type of each property fixed at mapping time • No configuration web interface • Hand-edit XML files • Tedious and error-prone • Requires knowledge of application schema • Requires understanding of GML encoding rules

  18. Future Work • Support for data-driven polymorphism • Configuration web interface • Aid navigation of GML application schema

  19. Conclusion • Complex feature types: • Defined in a GML application schema • Represent object relationships • Extensible information model • Community-agreed information standard • GeoServer app-schema plugin: • Reuses existing community-supported components • Configured with XML mapping files • Maps simple features into complex features

  20. Resources • GeoServer User Manual: Application Schema Support • http://docs.geoserver.org/trunk/en/user/data/app-schema/ • Application Schema Support: Tutorial • http://docs.geoserver.org/trunk/en/user/data/app-schema/tutorial.html • GeoServer app-schema development • https://www.seegrid.csiro.au/twiki/bin/view/Infosrvices/GeoserverDevelopment • PIRSA EarthResource GeoServer • https://twiki.auscope.org/twiki/bin/view/Grid/PirsaEarthResourceGeoserver • AuScope Discovery Portal • http://portal.auscope.org/

  21. Credits • Rini Angreani, co-maintainer of app-schema and author of app-schema feature chaining. • Rob Atkinson, Gabriel Roldán, Jody Garnett, Justin Deoliveira, and the rest of the GeoTools and GeoServer communities. • Simon Cox, and the rest of the GeoSciML community. • CSIRO is Australia's national science agency. • AuScope Ltd is funded under the National Collaborative Research Infrastructure Strategy (NCRIS), an Australian Commonwealth Government Programme.

More Related