<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>