<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Sean,</p>
    <p>It is far from obvious to me to find a universal pattern that
      would fit existing and future use cases. If we would find a
      universal syntax, there would be the problem of deciding what to
      do with code that doesn't match it: support only new way (breaking
      external code),  or supporting both old and new ways (additional
      complexity in our code base)<br>
    </p>
    <p>How would we deal with the existing practices which are very
      diverse ? Examples:</p>
    <p>- True filenames (most of the drivers)<br>
    </p>
    <p>- Database based drivers:<br>
    </p>
    <pre><span class="n">PG</span><span class="p">:</span><span class="s2">"dbname='databasename' host='addr' port='5432' user='x' password='y'"   (Postgis vector)
</span><span class="s2"><span class="n">PG</span><span class="p">:</span><span class="s2">"[host=''] [port=''] [dbname='' [user=''] [password=''] [schema=''] [table=''] [column=''] [where=''] [mode=''] [outdb_resolution='']"</span>  (Postgis raster, consistent with previous one)
MYSQL:dbname,user="userid",password="password",host=x,port=y
OCI:u</span><span class="n">sername</span><span class="o">/</span><span class="n">password</span><span class="nd">@host_name</span><span class="p">:</span><span class="n">port_number</span><span class="o">/</span><span class="n">service_name</span><span class="p">:</span><span class="n">MY_SCHEMA</span><span class="o">.</span><span class="n">MY_VIEW
</span>georaster:<user>{,/}<pwd>{,@}[db],[schema.][table],[column],[where]
georaster:<user>{,/}<pwd>{,@}[db],<rdt>,<rid><span class="s2"></span>

</pre>
    <p>- Web services (some of them also accept plain filenames that are
      .xml files describing the service and parameters)</p>
    <pre><span class="s2">WMS:<a class="moz-txt-link-freetext" href="http://demo.opengeo.org/geoserver/gwc/service/wms?SERVICE=WMS&VERSION=1">http://demo.opengeo.org/geoserver/gwc/service/wms?SERVICE=WMS&VERSION=1</a>.</span><span class="s2">1.1&</span>
                            <span class="n">REQUEST</span><span class="o">=</span><span class="n">GetMap</span><span class="o">&</span><span class="n">LAYERS</span><span class="o">=</span><span class="n">og</span><span class="o">%</span><span class="mi">3</span><span class="n">Abugsites</span><span class="o">&</span><span class="n">SRS</span><span class="o">=</span><span class="n">EPSG</span><span class="p">:</span><span class="mi">900913</span><span class="o">&</span>
                            <span class="n">BBOX</span><span class="o">=-</span><span class="mf">1.15841845090625E7</span><span class="p">,</span><span class="mf">5479006.186718751</span><span class="p">,</span><span class="o">-</span><span class="mf">1.1505912992109375E7</span><span class="p">,</span><span class="mf">5557277.703671876</span><span class="o">&</span>
                            <span class="n">FORMAT</span><span class="o">=</span><span class="n">image</span><span class="o">/</span><span class="n">png</span><span class="o">&</span><span class="n">TILESIZE</span><span class="o">=</span><span class="mi">256</span><span class="o">&</span><span class="n">OVERVIEWCOUNT</span><span class="o">=</span><span class="mi">25</span><span class="o">&</span><span class="n">MINRESOLUTION</span><span class="o">=</span><span class="mf">0.0046653459640220</span><span class="o">&</span><span class="n">TILED</span><span class="o">=</span><span class="n">true</span><span class="s2">"
(note the mix of pure WMS GetMap request query parameters + GDAL specific properties TILESIZE, OVERVIEWCOUNT, MINRESOLUTION)
</span></pre>
    <p></p>
    <pre><span class="s2">WCS:<a class="moz-txt-link-freetext" href="http://194.66.252.155/cgi-bin/BGS_EMODnet_bathymetry/ows?VERSION=1.1.0&coverage=BGS_EMODNET_CentralMed-MCol">http://194.66.252.155/cgi-bin/BGS_EMODnet_bathymetry/ows?VERSION=1.1.0&coverage=BGS_EMODNET_CentralMed-MCol</a></span>
<span class="n">WFS</span><span class="p">:</span><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">www2</span><span class="o">.</span><span class="n">dmsolutions</span><span class="o">.</span><span class="n">ca</span><span class="o">/</span><span class="n">cgi</span><span class="o">-</span><span class="nb">bin</span><span class="o">/</span><span class="n">mswfs_gmap
</span>OAPIF:<a class="moz-txt-link-freetext" href="https://www.ldproxy.nrw.de/rest/services/kataster">https://www.ldproxy.nrw.de/rest/services/kataster</a>
<span class="s2">WMTS:<a class="moz-txt-link-freetext" href="http://maps.wien.gv.at/wmts/1.0.0/WMTSCapabilities.xml,layer=lb">http://maps.wien.gv.at/wmts/1.0.0/WMTSCapabilities.xml,layer=lb</a></span>
( layer= is GDAL specific)
</pre>
    <br>
    <p>- Raster subdatasets (whether to surround filename with double
      quotes is driver specific)<br>
    </p>
    <p>NITF_IM:{image_number}:{filename}<br>
NITF_TOC_ENTRY:{product_type}_{chartname}_{scale}_{somenumber}_{anothernumber}:GNCJNCN/rpf/a.toc<br>
      ECRG_TOC_ENTRY:{product_name}:{disk_name}:{scale}:{filename}<br>
      GTIFF:{directory_number}:{filename}<br>
      GTIFF:off:{directory_offset}:{filename}<br>
      GPKG:{filename}:{tablename}<br>
      netCDF:{filename}:{variable_name}<br>
      HDF5:{filename}:{dataset_path}<br>
      ZARR:{filename}  (mostly when filename is /vsicurl/ and we don't
      have a ReadDirectory() API)<br>
      ZARR:{filename}:{path_to_array}<br>
ZARR:{filename}:{path_to_array}:{third_dim_index}[:{fourth_dim_index}[:{fifth_dim_index}...]]<br>
    </p>
    <p>- Other syntax</p>
    <p>vrt:// connection string
      (<a class="moz-txt-link-freetext" href="https://gdal.org/drivers/raster/vrt.html#vrt-connection-string">https://gdal.org/drivers/raster/vrt.html#vrt-connection-string</a>) .
      e.g.  vrt://my.tif?bands=3,2,1
    </p>
    <p>Do you have also /vsi syntax in mind ?<br>
    </p>
    <p>Even<br>
    </p>
    <pre><span class="s2"></span><span class="s2"></span><span class="n"></span></pre>
    <p></p>
    <div class="moz-cite-prefix">Le 14/09/2023 à 17:14, Sean Gillies a
      écrit :<br>
    </div>
    <blockquote type="cite"
cite="mid:CAOodmJrA248YJKvXZMNby5=UN-YJyA8780w+gSx6wt68tw-UbQ@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div>Hi all,<br>
        </div>
        <div><br>
        </div>
        <div>In <a
            href="https://github.com/OSGeo/gdal/pull/8155#issuecomment-1704923263"
            moz-do-not-send="true" class="moz-txt-link-freetext">https://github.com/OSGeo/gdal/pull/8155#issuecomment-1704923263</a>
          I think I see (for the first time?) the beginning of a
          specification of the syntax for GDAL "file names". I think it
          would be helpful if there was an RFC for this.</div>
        <div><br>
        </div>
        <div>I'm sure a lot of applications construct GDAL file names
          without much understanding of what's correct or incorrect. A
          formal spec could help make it more likely that anyone can
          construct a valid filename on the first try.</div>
        <div><br>
        </div>
        <div>A stretch goal for the RFC could be to come up with a
          syntax that is sufficiently general that authors of new format
          drivers don't have to create their own new idiosyncratic file
          names.<br>
        </div>
        <div><br>
        </div>
        <span class="gmail_signature_prefix">-- </span><br>
        <div dir="ltr" class="gmail_signature"
          data-smartmail="gmail_signature">Sean Gillies</div>
      </div>
      <br>
      <fieldset class="moz-mime-attachment-header"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
gdal-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:gdal-dev@lists.osgeo.org">gdal-dev@lists.osgeo.org</a>
<a class="moz-txt-link-freetext" href="https://lists.osgeo.org/mailman/listinfo/gdal-dev">https://lists.osgeo.org/mailman/listinfo/gdal-dev</a>
</pre>
    </blockquote>
    <pre class="moz-signature" cols="72">-- 
<a class="moz-txt-link-freetext" href="http://www.spatialys.com">http://www.spatialys.com</a>
My software is free, but my time generally not.</pre>
  </body>
</html>