<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style>
</head>
<body class='hmmessage'>
<br><br>&gt; Date: Thu, 24 Mar 2011 00:37:03 +0200<br>&gt; From: gcpp.kalxas@gmail.com<br>&gt; To: pycsw-devel@lists.sourceforge.net; Tom.Kralidis@ec.gc.ca<br>&gt; Subject: [pycsw-devel] CSW 2.0.2 - APISO 1.0 Implementation<br>&gt; <br>&gt; Hi,<br>&gt; <br>&gt; As I am trying to find the best strategy to keep the original code of dc <br>&gt; core intact and at the same time to add all the apiso code into separate <br>&gt; files and classes.<br>&gt; <br>&gt; At this point, I have added a apiso module that includes a class named <br>&gt; iso. When the Server _init_ fuction is called, a check is made to the <br>&gt; configuration file to test if apiso profile is active. Then, through a <br>&gt; server.get_profile function, a profile sub-object is created under the <br>&gt; server object containing the additional info needed (mappings, model <br>&gt; additions, namespaces etc).<br>&gt; <br>&gt; The original plan was to add specific functions in this profile object <br>&gt; for specific requests (getcapabilities, etc).<br>&gt; Then, redirect by adding checks in front of the dc code to point to the <br>&gt; new functions when needed. This way only few lines of code would be <br>&gt; added to the initial code.<br>&gt; <br>&gt; At that point I got the idea that perhaps the dc itself should be <br>&gt; reshaped into a profile object, in order to have consistency, and leave <br>&gt; the original code only with the csw server parts.<br>&gt; <br>&gt; Now I see that apiso, can respond to core csw requests by mapping to dc <br>&gt; core queryables when asked to.... which means recursiveness:  <br>&gt; server--&gt;apiso profile--&gt;server in case of dc.<br>&gt; <br>&gt; Also the mapping has to be decided after parsing the request, so this <br>&gt; seems to change things a bit.<br>&gt; <br>&gt; Any ideas?<br><br>We want to extend the current model by adding the ISO specifics via profile.&nbsp; We should also consider the DC model as "default".&nbsp; Any profile will have to map back to the core DC model core queryables.<br><br>Once the profile is loaded, then the CSW request processing continues like any other request.&nbsp; For each profile found, the model is extended (probably in CSW init).<br><br>..Tom<br><br>                                               </body>
</html>