[Auscope-geosciml] RE : service architecture [SEC=UNCLASSIFIED]

Boisvert, Eric Eric.Boisvert at RNCan-NRCan.gc.ca
Wed Sep 16 19:53:54 EDT 2009


> If you deliver individual geologic feature types in separate WFS services (like we did in Testbed > 3), then you don't get the problem of dealing with mixed geologic feature types.
 
I did not look carefully at your implementation, but why did you create a separate service for each feature type when this is already part of the query syntax 
 
typeName=gsml:GeologicUnit
or
<wfs:Query typeName="gsml:GeologicUnit">
...
</wfs:Query>
 
> Could you give a real world example when a GeologicUnit would have the same name as a GeologicStructure?
 
I think it's the case when you don't know exactly what kind of GeologicFeature you are dealing with.  You only know it's a GeologicFeature of some sort.
 
Another case could be, give me all GeologicFeature of such or such age.  Since a GeologicFeature can be a GeologicUnit or a GeologicStructure including all potential subtype, do we have to specifically write a request for each of them or just invoke the topmost class ?
 
WFS has a way to lump a series of types into a single query with
 
typeName=gsml:GeologicUnit,gsml:GeologicStructure,gsml:Contact,...
or
<wfs:Query typeName="gsml:GeologicUnit,gsml:GeologicStructure,gsml:Contact">
...
</wfs:Query>

I guess it's a workable solution (I think it's silly). But the tricky part is when, as pointed out by Ben, the substitution appears in the XPath.  in GeoSciML, the most common case is requesting gsml:MappedFeature based on the properties of a class dangling at the other end of the gsml:specification

Do we need to write a big ogc:Or request 

 

<wfs:Query typeName="gsml:MappedFeature">
<ogc:Filter>
  <ogc:Or>
     <ogc:PropertyIsEqualTo>
        <ogc:PropertyName>gsml:speficiation/gsml:GeologicUnit/gsml:preferredAge/...</ogc:PropertyName>
<ogc:Literal>...</ogc:Literal>
     </ogc:PropertyIsEqualTo>
    <ogc:PropertyIsEqualTo> 
        <ogc:PropertyName>gsml:speficiation/gsml:GeologicStructure/gsml:preferredAge/...</ogc:PropertyName>
<ogc:Literal>...</ogc:Literal>
     </ogc:PropertyIsEqualTo>
    <ogc:PropertyIsEqualTo> 
        <ogc:PropertyName>gsml:speficiation/gsml:Contact/gsml:preferredAge/...</ogc:PropertyName>
<ogc:Literal>...</ogc:Literal>
     </ogc:PropertyIsEqualTo>
    <ogc:PropertyIsEqualTo> 
        <ogc:PropertyName>gsml:speficiation/gsml:Fault/gsml:preferredAge/...</ogc:PropertyName>
<ogc:Literal>...</ogc:Literal>
     </ogc:PropertyIsEqualTo>
.. more madness..
</ogc:Or>
</ogc:Filter>
</wfs:Query>

The fun part is, that if you have more than one condition to check (eg, geologicHistory), you now have a cardinal product

GeologicUnit/preferredAge/ AND GeologicUnit/geologicHistory

OR

GeologicUnit/preferredAge/ AND GeologicStructure/geologicHistory

OR

GeologicUnit/preferredAge/ AND Contact/geologicHistory

... lots of lines

GeologicStructure/preferredAge/ AND GeologicUnit/geologicHistory

OR

GeologicStructure/preferredAge/ AND  GeologicStructure/geologicHistory

OR

..  keep them coming..

a third property anyone ?

 

 

 

 


________________________________

De: auscope-geosciml-bounces at lists.arcs.org.au de la part de Oliver.Raymond at ga.gov.au
Date: mer. 2009-09-16 19:28
À: auscope-geosciml at lists.arcs.org.au
Objet : [Auscope-geosciml] service architecture [SEC=UNCLASSIFIED]



Hi Tim, Ben,

 

Can you please better explain for me point #19 on the Service Architecture twiki page...  (https://www.seegrid.csiro.au/twiki/bin/view/CGIModel/ServiceArchitectureTG)

 

"...Can WFS queries be specified against base classes or substitution groups of polymorphic types? For example, suppose I wanted to filter gsml:MappedFeature to find the mapped features with associated specifications having a particular name. The mapped features could have specifications of different (polymorphic) types..."

 

Do you mean like when a gsml:Fault (eg, gml:name = Lake George Fault) is also a gsml:Contact?

 

"...Querying against supertype allows queries to be made on the common properties that all types of or derived from that supertype have. Would I query using an xpath with a parent-type (possibly abstract) element name? A PropertyEquals Query with something like: gsml:specification/gml:_Feature/gml:name or gsml:specification/gml:GeologicFeature/gml:name This would match gml:GeologicUnit or gsml:GeologicStructure with a matching gml:name. The concrete type would be encoded in the response...."

 

Could you give a real world example when a GeologicUnit would have the same name as a GeologicStructure?

 

This item seems to be an extension of item #3.  If you deliver individual geologic feature types in separate WFS services (like we did in Testbed 3), then you don't get the problem of dealing with mixed geologic feature types.

 

Cheers,

Ollie

 

------------------------------------------------------------------------------------------------

Ollie Raymond
National Advice,  Maps and Standards Project

Geoscience Australia

 

Address: GPO Box 378, Canberra, ACT, 2601, Australia | ABN: 80 091 799 039

Ph: (02) 62499575 | Fax: (02) 62499992 | Email: Oliver.Raymond at ga.gov.au 

Web:  http://www.ga.gov.au/minerals/research/national/nat_maps/nat_geol_maps.jsp <http://www.ga.gov.au/minerals/research/national/nat_maps/nat_geol_maps.jsp>  <http://www.ga.gov.au/geoscience/national> 

Google Map <http://maps.google.com/maps?f=q&hl=en&geocode=&q=canberra+australia&ie=UTF8&ll=-35.344028,149.158362&spn=0.007684,0.016404&t=h&z=17&iwloc=addr&om=1>  

 

-- This message was created with 100% recycled electrons --

 

 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/ms-tnef
Size: 14196 bytes
Desc: not available
URL: <http://lists.opengeospatial.org/pipermail/geosciml/attachments/20090916/bd1eb0d3/attachment.bin>


More information about the GeoSciML mailing list