<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Ryan/Steve: thanks for the info.  I've opened an issue at https://github.com/geopython/pycsw/issues/105.<br><br><div><div id="SkyDrivePlaceholder"></div>> From: steve.richard@azgs.az.gov<br>> To: tomkralidis@hotmail.com; ryan.clark@azgs.az.gov; pycsw-devel@lists.osgeo.org<br>> Subject: RE: [pycsw-devel] typeName in GetRecords requests<br>> Date: Thu, 7 Feb 2013 18:59:24 -0700<br>> <br>> csw:record is the only queryable type "In the case of XML realization of the<br>> OGC core metadata properties", but the pycsw capabilities document lists<br>> gmd:MD_Metadata and csw:record as valid values for the typeName parameter,<br>> and the queryable element section includes the ISO profile queryables.  <br>> <br>> Even so, if csw:record is the only queryable type, then Ryan's query with<br>> typeName=gmd:MD_Metadata should fail, not the one with typeName=csw:Record.<br>> The typeName specifies the information model for the queryies (e.g. in an<br>> OGC:filter element, the xpaths are relative to the root element for the xml<br>> element specified by typeName).  The typeName you have in the pycsw table is<br>> the root element for the Metadata content. CSW and WFS both make a<br>> distinction between the query information model and the response information<br>> model.  Thus you could pose a query for dc:title="something" (with<br>> typeName=csw:record) and ask for outputSchema=gmd:MD_Metadata, or query for<br>> //gmd:title/gco:CharacterString="something" (with typename=gmd:MD_Metadata)<br>> and ask for outputSchema=csw:record.<br>> <br>> I think there's a problem with the pycsw implementation in this respect...<br>> (see also page 46 in OGC 07-045)<br>>  <br>> But pycsw is still a very handy component! Glad it exists.<br>> <br>> steve<br>> <br>> > -----Original Message-----<br>> > From: Tom Kralidis [mailto:tomkralidis@hotmail.com]<br>> > Sent: Thursday, February 07, 2013 5:33 PM<br>> > To: Ryan Clark; pycsw-devel@lists.osgeo.org<br>> > Cc: Stephen Richard<br>> > Subject: RE: [pycsw-devel] typeName in GetRecords requests<br>> > <br>> > ________________________________<br>> > > From: ryan.clark@azgs.az.gov<br>> > > Date: Thu, 7 Feb 2013 13:44:56 -0700<br>> > > To: pycsw-devel@lists.osgeo.org<br>> > > CC: steve.richard@azgs.az.gov<br>> > > Subject: [pycsw-devel] typeName in GetRecords requests<br>> > ><br>> > > Hi!<br>> > ><br>> > > I'm experimenting with pycsw. I set everything up and used the<br>> > > pycsw-admin.py function to import a set of XML records into my<br>> > > database. The files were ISO19139 docs. That was cool how easy it was.<br>> > ><br>> > <br>> > Glad this worked for you.  Comments and suggestions are most welcome on<br>> > improving the backend admin interface, too.<br>> > <br>> > > After the load, I tried some GetRecords requests. I noticed that<br>> > > requests in which I specify ...&typeNames=gmd:MD_Metadata... gives me<br>> > > the results I expect. However, if I specify typeNames=csw:Record I<br>> > > don't get any results.<br>> > ><br>> > <br>> > When pycsw loads metadata into its repository, it stores the typename of<br>> the<br>> > metadata (csw:Record, gmd:MD_Metadata, etc.), and this value it what is<br>> uses<br>> > when responding to a GetRecords query with the typeNames parameter.<br>> > <br>> > Section 10.8.4.8 of CSW 2.0.2 (07-006r1) says that csw:Record is the only<br>> > queryable entity (typename).  The ISO AP (07-045), as an example, allows<br>> for<br>> > typename 'gmd:MD_Metadata'.<br>> > <br>> > > Does that seem like a bug, or a feature? To me it seems a little<br>> > > contradictory to the description of the typeNames parameter in the CSW<br>> > > spec. I think I've seen a similar issue in GeoNetwork in the past, but<br>> > > I ran similar queries using ESRI's Geoportal and I got the results I<br>> > > expected regardless of what I put as typeName.<br>> > ><br>> > <br>> > That's a good question.  In pycsw it's by design, so clients that want to<br>> query all<br>> > typenames would fetch all the applicable typenames from a GetCapabilities<br>> > response and pass them (comma-separated) in the GetRecords request.<br>> > <br>> > For me, I find this consistent with querying a WFS; each typename is a<br>> different<br>> > entity and querying a specific typename will return results based on that<br>> > typename only, which allows to filter metadata sets by typename, if you<br>> want.<br>> > <br>> > Having said this, I may be interpreting this incorrectly, what do others<br>> think?  It<br>> > might be valuable also to clarify this with OGC (maybe in the public<br>> forum?).  If<br>> > pycsw handles things incorrectly, we will certainly fix this immediately. <br>> If things<br>> > are still blurry, we could certainly put a flag (say pedantic=False) in<br>> pycsw's<br>> > config to allow the server to always query all typenames.<br>> > <br>> > Thanks<br>> > <br>> > ..Tom<br>> <br></div>                                         </div></body>
</html>