[Auscope-geosciml] RE : RE : service architecture [SEC=UNCLASSIFIED]
Boisvert, Eric
Eric.Boisvert at RNCan-NRCan.gc.ca
Wed Sep 16 20:30:31 EDT 2009
yes, I was just lazy
One way to simulate polymorphism in xpath is using *
gsml:speficiation/*/gsml:preferredAge/...
Since we assume the model should not include silly invalid stuff in the '*' spot, we should get all possible subsitutions.
Actually, this is how you can query the GIN mediator for polymorphic xpaths.
________________________________
De: auscope-geosciml-bounces at lists.arcs.org.au de la part de Stephen M Richard
Date: mer. 2009-09-16 20:29
À: auscope-geosciml at lists.arcs.org.au
Objet : Re: [Auscope-geosciml] RE : service architecture [SEC=UNCLASSIFIED]
Eric--shouldn't xpath allow the filter for say preferredAge to be
<ogc:PropertyName>../gsml:preferredAge/../value</ogc:PropertyName> ?
Boisvert, Eric wrote:
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 ?
--
Stephen M. Richard
Section Chief, Geoinformatics
Arizona Geological Survey
416 W. Congress St., #100
Tucson, Arizona, 85701 USA
Phone:
Office: (520) 209-4127
Reception: (520) 770-3500
FAX: (520) 770-3505
email: steve.richard at azgs.az.gov
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/ms-tnef
Size: 6725 bytes
Desc: not available
URL: <http://lists.opengeospatial.org/pipermail/geosciml/attachments/20090916/cd2540c4/attachment.bin>
More information about the GeoSciML
mailing list