<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
  </head>
  <body text="#000000" bgcolor="#ffffff">
    Hi all,<br>
    <br>
    I was reading the code lately and was wondering how should we
    proceed in order to implement ISO and INSPIRE for PyCSW.<br>
    <br>
    I think the first thing that has to be seen is the database schema:<br>
    <br>
    &nbsp;- For now, Tom has implemented Dublin Core + CSW 2.0.2 using
    SQLAlchemy, Shapely and SQLite (which can be any db actually). The
    basic db schema for this includes the Dublin Core queryable columns
    in one single table, as well as the Geographic Extend in an extra
    field. The rest of the xml metadata file is stored in a separate db
    column (which can be queryable through Xpath). <br>
    Almost the same strategy is implemented in GeoNetwork CSW.<br>
    <br>
    &nbsp;- Another solution would be to store only the xml files in the
    database and use only xpath queries. I suppose this would have an
    effect in performance for large datasets.<br>
    <br>
    &nbsp;- Also, there is the example of MDWeb project, another open source
    Java implementation of CSW that has implemented the full ISO 19115
    schema within postgres (more than 1300 lines of SQL) and stores all
    the info in this schema. My opinion is that this would lead to
    unmaintainable code or we would lose the current advantage to use
    all RDBMS systems available through SQLAlchemy.<br>
    &nbsp;- Finally, I see another possible solution, a middle path. Store
    the main queryables in db columns (with extra tables for "one to
    many" connections) but without following the ISO UMLs. At the same
    time the xml will be stored in separate column in the main table.
    This will make the xml import and export functions more complicated,
    but will lead to better performance. I think this direction would
    lead to ~15 extra tables (eg one for "Keywords",&nbsp; one for "Resource
    Language", one for "Topic Category" etc)<br>
    <br>
    <br>
    But what kind of data need to be stored in the db in order to have
    basic compliance with ISO 19115 and INSPIRE for datasets?<br>
    <br>
    For ISO core needs are: (with * are the core queryables in CSW)<br>
    1.* Dataset Title (M - Mandatory)<br>
    2. Dataset reference date (M)<br>
    3. Dataset responsible party (O - Optional)<br>
    4.* Geographic location of the dataset (C - Conditional)<br>
    5. Dataset language (M)<br>
    6. Dataset character set (C)<br>
    7.* Dataset topic category (M) (includes keywords in CSW queryable)<br>
    8. Spatial resolution of the dataset (O)<br>
    9.* Abstract describing the dataset (M)<br>
    10.* Distribution format (O)<br>
    11. Additional extend information for the dataset (O)<br>
    12. Spatial representation type (O)<br>
    13.* Reference system (O)<br>
    14. Lineage (O)<br>
    15. On-line resource (O)<br>
    16.* Metadata file identifier (O)<br>
    17. Metadata standard name (O)<br>
    18. Metadata standard version (O)<br>
    19. Metadata language (C)<br>
    20. Metadata character set (C)<br>
    21. Metadata point of contact (M)<br>
    22.* Metadata date stamp (M)<br>
    <br>
    plus CSW queryables <br>
    * "Any text" <br>
    * Type (default "dataset")<br>
    <br>
    <br>
    For INSPIRE the same list is: (numbers indicate mapping with the
    above and * is for queryables)<br>
    1.* Resource title (M) [1]<br>
    2.* Temporal reference (C) [0..n] <br>
    3.* Responsible organization (M) including both name of the
    organization and contact e-mail [1]<br>
    4.* Geographic Bounding Box (M) [1..n]<br>
    5. Resource language (C) [0..n]<br>
    7.* Topic category (M) [1..n]<br>
    8.* Spatial resolution (C) [0..n]<br>
    9.* Resource abstract (M) [1]<br>
    11. Temporal extend (C) [0..n]<br>
    14.* Lineage (M) [1]<br>
    15. Resource Locator (C) [0...n]<br>
    19. Metadata Language (M) [1]<br>
    21. Metadata point of contact (M) including both name of the
    organization and contact e-mail [1..n]<br>
    22. Metadata Date (M) [1]<br>
    23.* Resource Type (M) [1]<br>
    24.* Unique Resource Identifier (M) [1..n]<br>
    25.* Keyword (M) [1..n]<br>
    26.* Conformity (M) [1]<br>
    27.* Conditions for access and use (M) [1..n]<br>
    28.* Limitations on public access (M) [1..n]<br>
    <br>
    &nbsp;[1..n] indicates "1 to many" <br>
    <br>
    <br>
    The resources of the above are:<br>
    <a class="moz-txt-link-freetext" href="http://portal.opengeospatial.org/files/?artifact_id=21460">http://portal.opengeospatial.org/files/?artifact_id=21460</a><br>
<a class="moz-txt-link-freetext" href="http://inspire.jrc.ec.europa.eu/documents/Metadata/INSPIRE_MD_IR_and_ISO_v1_2_20100616.pdf">http://inspire.jrc.ec.europa.eu/documents/Metadata/INSPIRE_MD_IR_and_ISO_v1_2_20100616.pdf</a><br>
<a class="moz-txt-link-freetext" href="http://inspire.jrc.ec.europa.eu/documents/Network_Services/Technical_Guidance_Discovery_Services_v2.12.pdf">http://inspire.jrc.ec.europa.eu/documents/Network_Services/Technical_Guidance_Discovery_Services_v2.12.pdf</a><br>
    <br>
    Another interesting document to read is:<br>
    <span class="Apple-style-span" style="border-collapse: separate;
      color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style:
      normal; font-variant: normal; font-weight: normal; letter-spacing:
      normal; line-height: normal; orphans: 2; text-indent: 0px;
      text-transform: none; white-space: normal; widows: 2;
      word-spacing: 0px; font-size: medium;"><span
        class="Apple-style-span" style="font-family: arial; font-size:
        small;"><a class="moz-txt-link-freetext" href="http://www.neogeo-online.net/blog/wp-content/uploads/2011/01/201012_geonetwork_inspire_v0.6.pdf">http://www.neogeo-online.net/blog/wp-content/uploads/2011/01/201012_geonetwork_inspire_v0.6.pdf</a></span></span><br>
    <br>
    Any thoughts, ideas, proposals on how to proceed? <br>
    <br>
    Regards,<br>
    Angelos<br>
    <pre class="moz-signature" cols="72">-- 
Angelos Tzotsos
Remote Sensing Laboratory
National Technical University of Athens
<a class="moz-txt-link-freetext" href="http://users.ntua.gr/tzotsos">http://users.ntua.gr/tzotsos</a></pre>
  </body>
</html>