<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head><body >Yes, I understand this. Namespaces use can go a long way to prevent loss of source information while presenting information in the new target format. It can be verbose, though.<br><br><br>-------- Original message --------<br>From: Damian Dixon <damian.dixon@gmail.com> <br>Date: 26-10-2015 3:04 PM (GMT-05:00) <br>To: Tim Crook <tim.crook@sympatico.ca> <br>Cc: doug_newcomb@fws.gov,gdal dev <gdal-dev@lists.osgeo.org> <br>Subject: Re: Follow on to the "ISO Metadata" post <br> <br><br><div dir="ltr"><div class="gmail_default" style="font-family:'comic sans ms',sans-serif"><br></div><div class="gmail_default" style="font-family:'comic sans ms',sans-serif"><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px">My thoughts on an XML encapsulation of metadata would be (I'll leave the exact layout and details to the experts):</p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px"><br></p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px"><product></p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px"> <name>name of product</name></p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px"> <data></p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px"> <format>vpf/shape etc...</format></p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px"> <item key="k1" value="val1" /></p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px"> <item key="k2" value="val2" /></p><div><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px"> <item key="kN" value="valN" /></p></div><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px"> </data></p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px"></product></p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px"><br></p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px">Problems I can see with this:</p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px"></p><ul><li>Should the data wrap the product?<br></li><li>How do you encapsulate XML metadata?<br></li><li>What information should be captured? <br></li></ul><p></p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px"><u>Product</u></p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px">GDAL/OGR reads data and does not identify product.<br></p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px"><br></p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px">A product tends to use a carrier format such as shape, S57, VPF, GML, etc... If you know what the product is you can derive additional information that can be very useful in automatic styling or handling of the data.</p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px"><br></p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px"><u>Encapsulating XML metadata</u></p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px">Some data formats may contain a mixture of binary and XML. Take for example JPEG which contains both binary information and XML data such as Geo Spatial information.<br></p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px"><br></p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px">I see no point translating native XML metadata to a different XML format. You risk losing information.</p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px"><br></p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px"><u>What information should be captured?</u></p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px">Some of the information can be derived from the data or the way the data is stored on the media.</p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px"><br></p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px">Information that can be derived from the data can be just as important as the metadata stored in the data.</p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px"><br></p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px">This in part refers to identifying the product, scale of the data, intended us, provenance, use restrictions, modification dates, creation dates, expiry dates, who created the data, etc...</p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px"><br></p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px">The information may not be in the data itself but alongside the data in additional files.</p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px"><br></p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px">Derived metadata should be created at the point that the data is read to generate the metadata. Sounds odd but consider, metadata is used in the process of cataloging data so that you can find the data you need for your GIS application.</p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px"><br></p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px"><u>Key/Value pairs</u></p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px">The keys are unique to the data and potentially to the product.</p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px"><br></p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px">The aim should be to not lose information that is read from the data.</p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px"><br></p><p style="margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-family:Calibri,Arial,Helvetica,sans-serif,'Apple Color Emoji','Segoe UI Emoji',NotoColorEmoji,'Segoe UI Symbol','Android Emoji',EmojiSymbols;font-size:16px"><br></p></div></div><div class="gmail_extra"><br><div class="gmail_quote">On 26 October 2015 at 12:59, Tim Crook <span dir="ltr"><<a href="mailto:tim.crook@sympatico.ca" target="_blank">tim.crook@sympatico.ca</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">
<div dir="ltr">
<div style="FONT-SIZE:12pt;FONT-FAMILY:'Calibri';COLOR:#000000">
<div>Yes, it had occurred to me that XSLT would be a flexible way of handling a
lot of the metadata mappings.</div>
<div style="FONT-SIZE:small;TEXT-DECORATION:none;FONT-FAMILY:"Calibri";FONT-WEIGHT:normal;COLOR:#000000;FONT-STYLE:normal;DISPLAY:inline">
<div style="FONT:10pt tahoma">
<div> </div>
<div style="BACKGROUND:#f5f5f5">
<div><b>From:</b> <a title="damian.dixon@gmail.com" href="mailto:damian.dixon@gmail.com" target="_blank">Damian Dixon</a> </div>
<div><b>Sent:</b> Monday, October 26, 2015 8:36 AM</div>
<div><b>To:</b> <a title="tim.crook@sympatico.ca" href="mailto:tim.crook@sympatico.ca" target="_blank">Tim Crook</a> </div>
<div><b>Cc:</b> <a title="doug_newcomb@fws.gov" href="mailto:doug_newcomb@fws.gov" target="_blank">doug_newcomb@fws.gov</a> ; <a title="gdal-dev@lists.osgeo.org" href="mailto:gdal-dev@lists.osgeo.org" target="_blank">gdal
dev</a> </div>
<div><b>Subject:</b> Re: Follow on to the "ISO Metadata" post</div></div></div>
<div> </div></div><div><div class="h5">
<div style="FONT-SIZE:small;TEXT-DECORATION:none;FONT-FAMILY:"Calibri";FONT-WEIGHT:normal;COLOR:#000000;FONT-STYLE:normal;DISPLAY:inline">
<div dir="ltr">
<div class="gmail_default" style="FONT-FAMILY:comic sans ms,sans-serif">Hi
Tim,</div>
<div class="gmail_default" style="FONT-FAMILY:comic sans ms,sans-serif"> </div>
<div class="gmail_default" style="FONT-FAMILY:comic sans ms,sans-serif">Personally I would not use ISO
19115-1 as an internal format.</div>
<div class="gmail_default" style="FONT-FAMILY:comic sans ms,sans-serif"> </div>
<div class="gmail_default" style="FONT-FAMILY:comic sans ms,sans-serif">There are
not a huge number of data formats/products that store metadata as XML out of the
box. When they do store metadata it is usually specific to the data and data
product (regardless of how the metadata is stored).</div>
<div class="gmail_default" style="FONT-FAMILY:comic sans ms,sans-serif"> </div>
<div class="gmail_default" style="FONT-FAMILY:comic sans ms,sans-serif">There
have been attempts at adding metadata alongside data products such as UK MOD
profile of IS0 19115 (MOD profile has problems). The French equivalent of the
MOD have for a number of years mandated a metadata format alongside all data
products used by them (wish I could find the actual standard for the
metadata).</div>
<div class="gmail_default" style="FONT-FAMILY:comic sans ms,sans-serif"> </div>
<div class="gmail_default" style="FONT-FAMILY:comic sans ms,sans-serif">The
biggest problem is actually mapping from data/'data product' metadata to the
target metadata specification.</div>
<div class="gmail_default" style="FONT-FAMILY:comic sans ms,sans-serif"> </div>
<div class="gmail_default" style="FONT-FAMILY:comic sans ms,sans-serif">Just to
highlight how much a problem the mapping of fields from one metadata format to
another is; we have been arguing off and on for more than a year internally
about the meaning of dates and which date should be in which field. Two of our
big customers do not agree on the meaning of some of the source data date fields
and the mappings we have done.</div>
<div class="gmail_default" style="FONT-FAMILY:comic sans ms,sans-serif"> </div>
<div class="gmail_default" style="FONT-FAMILY:comic sans ms,sans-serif">I believe
ESRI have their own internal metadata format that they provide a tool to
translate to other XML metadata specifications.</div>
<div class="gmail_default" style="FONT-FAMILY:comic sans ms,sans-serif"> </div>
<div class="gmail_default" style="FONT-FAMILY:comic sans ms,sans-serif">Where I
work I have been pushing a per data/'data product' format that is XML based that
uses tag value pairs. The tags would basically be a dump of all available
information and specific to each data/'data product'. A set of XSLT scripts
would then translate the information to what ever metadata standard you wanted
to use and if you needed to modify the mapping you could change the XSLT script
for that data/'data product'.</div>
<div class="gmail_default" style="FONT-FAMILY:comic sans ms,sans-serif"> </div>
<div class="gmail_default" style="FONT-FAMILY:comic sans ms,sans-serif">We have
found that hard-coding the mapping is too costly to maintain and very difficult
to get right.</div>
<div class="gmail_default" style="FONT-FAMILY:comic sans ms,sans-serif"> </div>
<div class="gmail_default" style="FONT-FAMILY:comic sans ms,sans-serif">Probably
not the answer you are looking for.</div>
<div class="gmail_default" style="FONT-FAMILY:comic sans ms,sans-serif"> </div>
<div class="gmail_default" style="FONT-FAMILY:comic sans ms,sans-serif">Regards</div>
<div class="gmail_default" style="FONT-FAMILY:comic sans ms,sans-serif">Damian</div>
<div class="gmail_default" style="FONT-FAMILY:comic sans ms,sans-serif"> </div></div>
<div class="gmail_extra">
<div> </div>
<div class="gmail_quote">On 22 October 2015 at 13:29, Tim Crook <span dir="ltr"><<a href="mailto:tim.crook@sympatico.ca" target="_blank">tim.crook@sympatico.ca</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="PADDING-LEFT:1ex;MARGIN:0px 0px 0px 0.8ex;BORDER-LEFT:#ccc 1px solid">Hello
Doug and Damian.<br><br>I saw your post about ISO 19103, ISO 19115 and
ISO 19115-1. I am starting to look at ticket #3549 (<a href="https://trac.osgeo.org/gdal/ticket/3549" rel="noreferrer" target="_blank">https://trac.osgeo.org/gdal/ticket/3549</a>). This ticket is a
specific problem for metadata translation for image transformations to the
PCIDSK format. The ticket references JPEG and TIFF.<br><br>The first thing I
thought of was when I saw your posts was mapping the XML metadata from
different sources into an internal format to GDAL, then passing through the
information for mapping to the destination format. I suppose there are some
image source formats that don't use XML to store their metadata, so this would
require additional handling.<br><br>I suppose the internal format to GDAL
could be XML in the ISO 19115-1 format.<br><br>Am I completely off base here?
<br></blockquote></div>
<div> </div></div></div></div></div></div></div></div>
</blockquote></div><br></div>
</body>