<!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>
- 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>
- 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>
- 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>
- 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", 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>
[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>