CINXE.COM
Spatial Data on the Web Best Practices
<!DOCTYPE html><html lang="en"><head> <meta content="text/html; charset=utf-8" http-equiv="content-type"> <meta name="generator" content="ReSpec 34.1.6"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <style> span.example-title{text-transform:none} :is(aside,div).example,div.illegal-example{padding:.5em;margin:1em 0;position:relative;clear:both} div.illegal-example{color:red} div.illegal-example p{color:#000} :is(aside,div).example{border-left-width:.5em;border-left-style:solid;border-color:#e0cb52;background:#fcfaee} aside.example div.example{border-left-width:.1em;border-color:#999;background:#fff} .example pre{background-color:rgba(0,0,0,.03)} </style> <style> .issue-label{text-transform:initial} .warning>p:first-child{margin-top:0} .warning{padding:.5em;border-left-width:.5em;border-left-style:solid} span.warning{padding:.1em .5em .15em} .issue.closed span.issue-number{text-decoration:line-through} .issue.closed span.issue-number::after{content:" (Closed)";font-size:smaller} .warning{border-color:#f11;border-width:.2em;border-style:solid;background:#fbe9e9} .warning-title:before{content:"⚠";font-size:1.3em;float:left;padding-right:.3em;margin-top:-.3em} li.task-list-item{list-style:none} input.task-list-item-checkbox{margin:0 .35em .25em -1.6em;vertical-align:middle} .issue a.respec-gh-label{padding:5px;margin:0 2px 0 2px;font-size:10px;text-transform:none;text-decoration:none;font-weight:700;border-radius:4px;position:relative;bottom:2px;border:none;display:inline-block} </style> <style> dfn{cursor:pointer} .dfn-panel{position:absolute;z-index:35;min-width:300px;max-width:500px;padding:.5em .75em;margin-top:.6em;font-family:"Helvetica Neue",sans-serif;font-size:small;background:#fff;color:#000;box-shadow:0 1em 3em -.4em rgba(0,0,0,.3),0 0 1px 1px rgba(0,0,0,.05);border-radius:2px} .dfn-panel:not(.docked)>.caret{position:absolute;top:-9px} .dfn-panel:not(.docked)>.caret::after,.dfn-panel:not(.docked)>.caret::before{content:"";position:absolute;border:10px solid transparent;border-top:0;border-bottom:10px solid #fff;top:0} .dfn-panel:not(.docked)>.caret::before{border-bottom:9px solid #a2a9b1} .dfn-panel *{margin:0} .dfn-panel b{display:block;color:#000;margin-top:.25em} .dfn-panel ul a[href]{color:#333} .dfn-panel>div{display:flex} .dfn-panel a.self-link{font-weight:700;margin-right:auto} .dfn-panel .marker{padding:.1em;margin-left:.5em;border-radius:.2em;text-align:center;white-space:nowrap;font-size:90%;color:#040b1c} .dfn-panel .marker.dfn-exported{background:#d1edfd;box-shadow:0 0 0 .125em #1ca5f940} .dfn-panel .marker.idl-block{background:#8ccbf2;box-shadow:0 0 0 .125em #0670b161} .dfn-panel a:not(:hover){text-decoration:none!important;border-bottom:none!important} .dfn-panel a[href]:hover{border-bottom-width:1px} .dfn-panel ul{padding:0} .dfn-panel li{margin-left:1em} .dfn-panel.docked{position:fixed;left:.5em;top:unset;bottom:2em;margin:0 auto;max-width:calc(100vw - .75em * 2 - .5em - .2em * 2);max-height:30vh;overflow:auto} </style> <title>Spatial Data on the Web Best Practices</title> <script> /* ********************************************************************************* @andrea-perego: replaced the following function with new ones, not using jQuery, which is no longer supported in new versions of ReSpec. The new script is only in charge of cross-referencing best practices, as cross-refering of examples is now natively supported in ReSpec. In case ReSpec will eventually natively support cross-referencing of best practices, this SCRIPT tag should be deleted, along with the SCRIPT tag at the end of the current document, in charge of invoking it. ********************************************************************************* */ /* ** function popCrossRefs() { $('a[href^="#"]').each( function () { var href = $(this).attr('href'); var id = href.trim().replace('#',''); var text = $(this).text(); if (text.trim().length == 0 && id.length > 0 && ( $(href).hasClass('example') || $(href).hasClass('practicelab') )) { var label = $('.example:has(#' + id + ') > .example-title, *[id="' + id + '"].example > .example-title, *[id="' + id + '"].illegal-example > .example-title).text(); if (label.trim().length > 0) { $(this).text(label); } var label = $(*[id="' + id + '"].practicelab').text(); if (label.trim().length > 0) { $(this).text(label); } } } ); } $(document).ready( function() { popCrossRefs(); }); ** */ var bp = new Array(); function getBPs() { var el = document.getElementsByClassName("practice"); for(var i=0; i<el.length; i++) { var nr = i+1; var id = el[i].getElementsByClassName("practicelab")[0].id; var title = el[i].getElementsByClassName("practicelab")[0].textContent.replace(/\s+/g, ' '); var description = el[i].getElementsByClassName("practicedesc")[0].textContent.replace(/\s+/g, ' '); var label = "Best Practice " + nr; bp.push({"id": id, "nr": nr, "label": label, "title": title, "heading": label + ": " + title, "description": description}); } } function bpCrossRefs() { var id; var base_url = window.location.href.substring(0, window.location.href.length - ((window.location.search + window.location.hash).length)); var links = document.getElementsByTagName("a"); // var target = document.getElementsByClassName("practicelab"); getBPs(); for(var i=0; i<links.length; i++) { if (links[i].href.startsWith(base_url + "#")) { id = links[i].href.substring(base_url.length + 1); // for(var j=0; j<target.length; j++) { for(var j=0; j<bp.length; j++) { // var bpn = j+1; // if (target[j].id == id) { if (bp[j].id == id && links[i].textContent.trim() == "") { links[i].textContent = bp[j].heading; } } } } } // @andrea-perego </script> <style type="text/css"> /* ** @andrea-perego: Part of the CSS statements have been commented as they were conflicting, sometimes causing the non-intended effect, with ReSpec, which, after the publication of the SDWBP NOTE, included specific styling for the some elements and classes used in the SDWBP (including BPs, figures, tables). All these comments include a double star (**) in the start and end comment delimiters. Comments without ** were already present in the original ED. ** */ /* ** Statements added to fix some BP formatting issues ** */ .practicecontainer { border: solid 1px #dddddd; padding: 0 2em 0 2em; margin-top:1em; background-color:#fbfbfb; } .practicecontainer > .practice {margin:0 -2em;} /* Force W3C logo to site side by side with OGC logo */ /* ** .head img[src*="logos/W3C"] { display: inherit !important; } .head a:hover > img[src*='ogc'] { opacity: 0.8; } ** */ /* ** #bp-summary ul{ list-style-type: none; padding-left: 0; line-height: 1.6em; background-color: #FCFAEE; } ** */ .hidden {display:none} ul.benefitsList li.icon { display:inline; list-style-type: none; } ul.benefitsList li.icon img { padding:0; margin-right:1em; max-width:60px; max-height: 70px; } ul.benefitsList li.icon img.comprehensionIcon, ul.benefitsList li.icon img.discoverabilityIcon, ul.benefitsList li.icon img.interoperabilityIcon, ul.benefitsList li.icon img.processabilityIcon { max-width:80px; } ul.benefitsList li.icon img.discoverabilityIcon, ul.benefitsList li.icon img.interoperabilityIcon, ul.benefitsList li.icon img.processabilityIcon { max-width:73px; } /* ************************************************************* These styles are for the lists of benefits ************************************************************** */ #benefitsTables { width: 100%; margin: 0 auto; } .benefit-list-panel { border-radius: 1em; padding: 0.2em 1em; } .benefit-list-panel ul { list-style-type:none; padding-left:0; } .benefit-list-panel ul li { font-size:smaller; line-height:1.4em; } .benefit-list-panel p.benefitsPanelTitle { font-weight: bold; text-transform: uppercase; text-align: center; } #benefitListReuse { background: #B0CC9B; border: 1px solid #387F05; } #benefitListAccess { background: #E8F1FA; border: 1px solid #81B3E0; } #benefitListTrust { background: #E6BE9F; border: 1px solid #BF5B0E; } #benefitListDiscoverability { background: #CCBEB5; border: 1px solid #7F5C46; } #benefitListProcessability { background: #C5B5DE; border: 1px solid #6E46AD; } #benefitListInteroperability { background: #F3E09A; border: 1px solid #E0B200; } #benefitListLinkability { background: #B9C1CC; border: 1px solid #50637F; } #benefitListComprehension { background: #B3B3B3; border: 1px solid #404040; } /* ******************************************* We reuse the 2 column style (for screens > 600 wide) from the list of BPs to create the columns for the lists of benefits ********************************************** */ @media screen and (min-width: 600px) { /* ** #bp-summary ul, ** */ #benefitsTables { column-count:2; column-gap: 1em; } /* We need to re-set the column number to 1 so that within each panel there is only 1 column */ #benefitsTables .benefit-list-panel { column-count:1; margin:.1em; display:inline-block; /* This prevents single lists spanning multiple columns, thank you http://stackoverflow.com/questions/6682501/css3-columns-widows-orphans */ width:90%; /* For somr reason some of the panels are wider than others, this stops that heppening */ } } /* And we can go to three columns for bigger screens */ @media screen and (min-width: 850px) { #benefitsTables { column-count:3; column-gap: 1em; } } /* Styles for the BPs themsevles */ /* ** .practice, #tempPractice{ padding-left: 1em; background-color: #FCFAEE; border: thin solid black; } #tempPractice .tempPracticelab{ background-color: #dfffff; position: relative; top: -1.5em; font-weight: bold; } .practice p.practicedesc, #tempPractice p.tempPracticedesc{ font-style: italic; border-bottom: thin solid black; position: relative; top: -1.5em; margin: 0 2em -1em 1em; ; } .subhead{ font-weight: bold; } ** */ .benefits .stamp { height: 52px; width: 52px; margin-right: 4px; margin-bottom: 4px; } .benefits .stamp-template { height: 82px; width: 82px; margin-right: 4px; margin-bottom: 4px; } /* ** .practice dl dt #tempPractice dl dt{ font-weight: normal; } ** */ /* ******************************************* Figures ********************************************** */ /* ** figure{ text-align: center; } figure#contextDiagram{ width: 60%; margin: 0 auto; } figure figcaption{ text-align: center; font-style: italic; } ** */ /* ******************************************* Tables ********************************************** */ /* ** table#ns-rdf-table, table#ns-xml-table, table.bptable { border-collapse: collapse; caption-side:bottom; } table#ns-rdf-table th, table#ns-rdf-table td, table#ns-xml-table th, table#ns-xml-table td, table.bptable th, table.bptable td { border: 1px solid black; padding:0.3em; } table#ns-rdf-table caption, table#ns-xml-table caption, table.bptable caption { margin:0.5em; font-style:italic; } table#relative-positioning-modes-table, table.bptable { border-collapse: collapse; caption-side:bottom; } table#relative-positioning-modes-table th, table#relative-positioning-modes-table td, table.bptable th, table.bptable td { border: 1px solid black; padding:0.3em; } table#relative-positioning-modes-table caption, table.bptable caption { margin:0.5em; font-style:italic; } table.bptable { border-collapse: collapse; caption-side:bottom; } ** */ table#table-formats-matrix, table#table-vocabs-matrix { font-size: .8em; } /* table#x-ref_formatVbp, table#detailed-format-matrix, */ /* ** table#table-formats-matrix, table#table-vocabs-matrix { border-collapse: collapse; caption-side: bottom; } table.bptable th, table.bptable td, ** */ /* table#x-ref_formatVbp th, table#x-ref_formatVbp td, table#detailed-format-matrix th, table#detailed-format-matrix td, */ /* ** table#table-formats-matrix th, table#table-formats-matrix td, table#table-vocabs-matrix th, table#table-vocabs-matrix td { border: 1px solid black; padding: 0.3em; } table.bptable, ** */ /* table#x-ref_formatVbp caption, table#detailed-format-matrix caption, */ /* ** table#table-formats-matrix caption, table#table-vocabs-matrix caption { margin: 0.5em; font-style: italic; } ** */ .stmt { padding: 3pt} .stmt1 { column-count: 2; column-gap: 1em; background-color: #FCFAEE; } .expand{ display: block; cursor: pointer; } .expand:hover{ color: #3D3D3D; } .expand:before{ font-weight: bold; content: "\25C6 Example (click to expand or collapse)"; } .expand + input{ display: none; } .expand + input + *{ display: none; } .expand + input:checked + *{ display: block; } .benefits-items { width: 100%; margin: 0 auto; } .benefits-items .item { border-radius: 22px; width: 28%; padding: 20px; margin: 2px; font-size: 13px; line-height: 150%; float: left; } .benefits-items .item .title { font-size: 16px; font-weight: 800; text-transform: uppercase; text-align: center; } .benefits-items .reuse { background: #B0CC9B; border: 1px solid #387F05; } .benefits-items .access { background: #E8F1FA; border: 1px solid #81B3E0; } .benefits-items .trust { background: #E6BE9F; border: 1px solid #BF5B0E; float: right; } .benefits-items .discoverability { background: #CCBEB5; border: 1px solid #7F5C46; } .benefits-items .processability { background: #C5B5DE; border: 1px solid #6E46AD; } .benefits-items .interoperability { background: #F3E09A; border: 1px solid #E0B200; float: right; } .benefits-items .linkability { background: #B9C1CC; border: 1px solid #50637F; } .benefits-items .comprehension { background: #B3B3B3; border: 1px solid #404040; float: right; } @media screen and (min-width: 1024px) { .benefits-items .item { margin-left: 1.6%; } } @media screen and (max-width: 900px) { .benefits-items .item { clear: both; display: inline-block; float: left !important; width: 90%; } } </style> <style id="respec-mainstyle"> @keyframes pop{ 0%{transform:scale(1,1)} 25%{transform:scale(1.25,1.25);opacity:.75} 100%{transform:scale(1,1)} } :is(h1,h2,h3,h4,h5,h6,a) abbr{border:none} dfn{font-weight:700} a.internalDFN{color:inherit;border-bottom:1px solid #99c;text-decoration:none} a.externalDFN{color:inherit;border-bottom:1px dotted #ccc;text-decoration:none} a.bibref{text-decoration:none} .respec-offending-element:target{animation:pop .25s ease-in-out 0s 1} .respec-offending-element,a[href].respec-offending-element{text-decoration:red wavy underline} @supports not (text-decoration:red wavy underline){ .respec-offending-element:not(pre){display:inline-block} .respec-offending-element{background:url(data:image/gif;base64,R0lGODdhBAADAPEAANv///8AAP///wAAACwAAAAABAADAEACBZQjmIAFADs=) bottom repeat-x} } #references :target{background:#eaf3ff;animation:pop .4s ease-in-out 0s 1} cite .bibref{font-style:normal} a[href].orcid{padding-left:4px;padding-right:4px} a[href].orcid>svg{margin-bottom:-2px} .toc a,.tof a{text-decoration:none} a .figno,a .secno{color:#000} ol.tof,ul.tof{list-style:none outside none} .caption{margin-top:.5em;font-style:italic} table.simple{border-spacing:0;border-collapse:collapse;border-bottom:3px solid #005a9c} .simple th{background:#005a9c;color:#fff;padding:3px 5px;text-align:left} .simple th a{color:#fff;padding:3px 5px;text-align:left} .simple th[scope=row]{background:inherit;color:inherit;border-top:1px solid #ddd} .simple td{padding:3px 10px;border-top:1px solid #ddd} .simple tr:nth-child(even){background:#f0f6ff} .section dd>p:first-child{margin-top:0} .section dd>p:last-child{margin-bottom:0} .section dd{margin-bottom:1em} .section dl.attrs dd,.section dl.eldef dd{margin-bottom:0} #issue-summary>ul{column-count:2} #issue-summary li{list-style:none;display:inline-block} details.respec-tests-details{margin-left:1em;display:inline-block;vertical-align:top} details.respec-tests-details>*{padding-right:2em} details.respec-tests-details[open]{z-index:999999;position:absolute;border:thin solid #cad3e2;border-radius:.3em;background-color:#fff;padding-bottom:.5em} details.respec-tests-details[open]>summary{border-bottom:thin solid #cad3e2;padding-left:1em;margin-bottom:1em;line-height:2em} details.respec-tests-details>ul{width:100%;margin-top:-.3em} details.respec-tests-details>li{padding-left:1em} .self-link:hover{opacity:1;text-decoration:none;background-color:transparent} aside.example .marker>a.self-link{color:inherit} .header-wrapper{display:flex;align-items:baseline} :is(h2,h3,h4,h5,h6):not(#toc>h2,#abstract>h2,#sotd>h2,.head>h2){position:relative;left:-.5em} :is(h2,h3,h4,h5,h6):not(#toch2)+a.self-link{color:inherit;order:-1;position:relative;left:-1.1em;font-size:1rem;opacity:.5} :is(h2,h3,h4,h5,h6)+a.self-link::before{content:"§";text-decoration:none;color:var(--heading-text)} :is(h2,h3)+a.self-link{top:-.2em} :is(h4,h5,h6)+a.self-link::before{color:#000} @media (max-width:767px){ dd{margin-left:0} } @media print{ .removeOnSave{display:none} } </style> <meta name="description" content="This document advises on best practices related to the publication of spatial data on the Web; the use of Web technologies as they may be applied to location. The best practices presented here are intended for practitioners, including Web developers and geospatial experts, and are compiled based on evidence of real-world application. These best practices suggest a significant change of emphasis from traditional Spatial Data Infrastructures by adopting an approach based on general Web standards. As location is often the common factor across multiple datasets, spatial data is an especially useful addition to the Web of data."> <link rel="canonical" href="https://www.w3.org/TR/sdw-bp/"> <style> .hljs{display:block;overflow-x:auto;padding:.5em;color:#383a42;background:#fafafa} .hljs-comment,.hljs-quote{color:#717277;font-style:italic} .hljs-doctag,.hljs-formula,.hljs-keyword{color:#a626a4} .hljs-deletion,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-subst{color:#ca4706;font-weight:700} .hljs-literal{color:#0b76c5} .hljs-addition,.hljs-attribute,.hljs-meta-string,.hljs-regexp,.hljs-string{color:#42803c} .hljs-built_in,.hljs-class .hljs-title{color:#9a6a01} .hljs-attr,.hljs-number,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-template-variable,.hljs-type,.hljs-variable{color:#986801} .hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-symbol,.hljs-title{color:#336ae3} .hljs-emphasis{font-style:italic} .hljs-strong{font-weight:700} .hljs-link{text-decoration:underline} </style> <style> var{position:relative;cursor:pointer} var[data-type]::after,var[data-type]::before{position:absolute;left:50%;top:-6px;opacity:0;transition:opacity .4s;pointer-events:none} var[data-type]::before{content:"";transform:translateX(-50%);border-width:4px 6px 0 6px;border-style:solid;border-color:transparent;border-top-color:#000} var[data-type]::after{content:attr(data-type);transform:translateX(-50%) translateY(-100%);background:#000;text-align:center;font-family:"Dank Mono","Fira Code",monospace;font-style:normal;padding:6px;border-radius:3px;color:#daca88;text-indent:0;font-weight:400} var[data-type]:hover::after,var[data-type]:hover::before{opacity:1} </style> <script id="initialUserConfig" type="application/json">{ "specStatus": "DNOTE", "shortName": "sdw-bp", "publishDate": "2023-09-19", "previousPublishDate": "2017-09-28", "previousMaturity": "WG-NOTE", "edDraftURI": "https://w3c.github.io/sdw/bp/", "editors": [ { "name": "Jeremy Tandy", "w3cid": 65512, "company": "Met Office", "companyURL": "https://www.metoffice.gov.uk/" }, { "name": "Linda van den Brink", "w3cid": 75920, "company": "Geonovum", "companyURL": "https://www.geonovum.nl/" }, { "name": "Payam Barnaghi", "w3cid": 43713, "company": "University of Surrey", "companyURL": "https://www.surrey.ac.uk/" }, { "name": "Timo Homburg", "w3cid": 115012, "company": "Hochschule Mainz University Of Applied Sciences", "companyURL": "https://www.hs-mainz.de/", "orcid": "https://orcid.org/0000-0002-9499-5840" } ], "otherLinks": [ { "key": "Contributors", "data": [ { "value": "Phil Archer" }, { "value": "Jon Blower" }, { "value": "Newton Calegari" }, { "value": "Byron Cochrane" }, { "value": "Simon Cox" }, { "value": "François Daoust" }, { "value": "Andreas Harth" }, { "value": "Iza Hurst" }, { "value": "Bart van Leeuwen" }, { "value": "Josh Lieberman" }, { "value": "Chris Little" }, { "value": "Andy Mabbett" }, { "value": "Peter Parslow" }, { "value": "Ed Parsons" }, { "value": "Andrea Perego" }, { "value": "Clemens Portele" }, { "value": "Bill Roberts" }, { "value": "Lars G. Svensson" }, { "value": "Kerry Taylor" }, { "value": "Erik Wilde" }, { "value": "Rob Atkinson" }, { "value": "Edward Lewis" } ] }, { "key": "OGC Document Number", "data": [ { "value": "OGC 15-107" } ] } ], "group": "wg/sdw", "wgPublicList": "public-sdw-comments", "inlineCSS": true, "noIDLIn": true, "logos": [ { "src": "https://www.w3.org/StyleSheets/TR/2021/logos/W3C", "alt": "W3C", "height": 48, "width": 72, "url": "https://www.w3.org/" }, { "src": "images/ogc-logo.svg", "alt": "OGC", "height": "68", "width": "147", "id": "ogc-logo", "url": "http://www.opengeospatial.org/" } ], "noRecTrack": true, "localBiblio": { "SCHEMA-ORG": { "href": "http://schema.org/", "title": "Schema.org", "id": "schema-org" }, "GeoJSON": { "href": "http://geojson.org/geojson-spec.html", "title": "The GeoJSON Format Specification", "authors": [ "Howard Butler", "Martin Daly", "Allan Doyle", "Sean Gillies", "Tim Schaub", "Christopher Schmidt" ], "date": "16 June 2008" }, "GeoPackage": { "href": "http://www.opengis.net/doc/IS/geopackage/1.3", "publisher": "OGC", "title": "OGC® GeoPackage Encoding Standard", "date": "16 November 2021", "id": "geopackage" }, "SIMPLE-FEATURES": { "href": "http://www.opengeospatial.org/standards/sfa", "publisher": "OGC", "title": "Simple Feature Access - Part 1: Common Architecture", "authors": [ "John Herring" ], "date": "28 May 2011", "id": "simple-features" }, "GML-SF": { "href": "http://www.opengeospatial.org/standards/gml", "title": "Geography Markup Language (GML) simple features profile", "authors": [ "Linda van den Brink", "Clemens Portele", "Panagiotis (Peter) A. Vretanos" ], "date": "5 April 2012", "id": "gml-sf" }, "Veregin": { "href": "http://www.geos.ed.ac.uk/~gisteac/gis_book_abridged/files/ch12.pdf", "title": "Data quality parameters. In: Geographical Information Systems: Principles, Techniques, Management and Applications", "authors": [ "H. Veregin" ], "id": "veregin" }, "OM-XML": { "href": "http://www.opengeospatial.org/standards/om", "publisher": "OGC", "title": "Observations and Measurements - XML Implementation", "authors": [ "Simon Cox" ], "date": "22 March 2011", "id": "om-xml" }, "BEACON": { "href": "https://gbv.github.io/beaconspec/beacon.html", "title": "BEACON link dump format", "authors": [ "J. Voß", "M. Schindler" ], "date": "6 July 2014" }, "Strong": { "href": "http://www.crcsi.com.au/assets/Resources/Stakeholder-Requirements-for-Modernising-Australias-Geocentric-Datum.pdf", "title": "Stakeholder Requirements for Modernising Australia’s Geocentric Datum", "authors": [ "Scott Strong (on behalf of the Cooperative Research Centre for Spatial Information and the Intergovernmental Committee on Surveying and Mapping" ], "date": "July 2015" }, "OGC-TOPIC-2": { "href": "http://portal.opengeospatial.org/files/39049", "title": "OGC Abstract Specification Topic 2 - Spatial referencing by coordinates", "authors": [ "Roger Lott" ], "publisher": "OGC", "date": "27 April 2010", "id": "ogc-topic-2" }, "NeoGeo": { "href": "http://geovocab.org/doc/neogeo/", "title": "NeoGeo Vocabulary Specification", "date": "5 February 2012 (Madrid Edition)", "authors": [ "Barry Norton", "Luis M. Vilches", "Alexander De León", "John Goodwin", "Claus Stadler", "Suchith Anand", "Dominic Harries", "Boris Villazón-Terrazas", "Ghislain A. Atemezing" ], "id": "neogeo" }, "5STAR-LOD": { "href": "https://www.w3.org/DesignIssues/LinkedData#fivestar", "title": "Is your Linked Open Data 5 Star?", "authors": [ "Tim Berners-Lee" ], "id": "5star-lod" }, "PROTO3": { "href": "https://developers.google.com/protocol-buffers/docs/reference/proto3-spec", "title": "Protocol Buffers", "date": "23 August 2016", "publisher": "Google" }, "GeoTIFF": { "href": "http://web.archive.org/web/20160403164508/http://www.remotesensing.org/geotiff/spec/geotiffhome.html", "title": "GeoTIFF Format Specification", "date": "28 December 2000", "authors": [ "Niles Ritter", "Mike Ruth" ] }, "WCS": { "href": "http://www.opengeospatial.org/standards/wcs", "publisher": "OGC", "authors": [ "Peter Baumann" ], "date": "12 July 2012", "title": "WCS 2.0 Interface Standard- Core", "status": "OGC Interface Standard" }, "WaterML": { "href": "http://www.opengeospatial.org/standards/waterml", "publisher": "OGC", "date": "7 September 2012", "title": "OGC® WaterML 2.0", "status": "OGC Implementation Standard", "id": "waterml" }, "WKT-CRS": { "href": "http://www.opengeospatial.org/standards/wkt-crs", "publisher": "OGC", "title": "Well-known text representation of coordinate reference systems", "authors": [ "Roger Lott" ], "date": "1 May 2015" }, "OGC-API-WP": { "href": "http://docs.opengeospatial.org/wp/16-019r4/16-019r4.html", "publisher": "OGC", "title": "Open Geospatial APIs - White Paper", "authors": [ "George Percivall (Editor)" ], "date": "23 February 2017", "id": "ogc-api-wp" }, "GS1": { "title": "SmartSearch Implementation Guideline", "authors": [ "Mark Harrison", "Ken Traub" ], "date": "November 2015", "publisher": "GS1", "href": "https://www.gs1.org/gs1-smartsearch/guideline/gtin-web-implementation-guideline", "id": "gs1" }, "PURI": { "authors": [ "Phil Archer", "Nikos Loutas", "Stijn Goedertier", "Saky Kourtidis" ], "href": "http://philarcher.org/diary/2013/uripersistence/", "title": "Study On Persistent URIs", "date": "17 December 2012", "id": "puri" }, "TIMESERIESML": { "authors": [ "James Tomkins", "Dominic Lowe" ], "publisher": "OGC", "href": "http://www.opengeospatial.org/standards/tsml", "title": "TimeseriesML 1.0 – XML Encoding of the Timeseries Profile of Observations and Measurements", "date": "9 September 2016", "id": "timeseriesml" }, "SENSORTHINGS": { "authors": [ "Steve Liang", "Chih-Yuan Huang", "Tania Khalafbeigi" ], "publisher": "OGC", "href": "http://www.opengeospatial.org/standards/sensorthings", "title": "OGC ® SensorThings API Part 1: Sensing", "date": "26 July 2016", "status": "OpenGIS Implementation Standard", "id": "sensorthings" }, "MOVING-FEATURES-XML": { "authors": [ "Akinori Asahara", "Ryosuke Shibasaki", "Nobuhiro Ishimaru", "David Burggraf" ], "publisher": "OGC", "href": "http://www.opengeospatial.org/standards/movingfeatures", "title": "OGC ® Moving Features Encoding Part I: XML Core", "date": "17 February 2015", "id": "moving-features-xml" }, "MOVING-FEATURES-CSV": { "authors": [ "Akinori Asahara", "Ryosuke Shibasaki", "Nobuhiro Ishimaru", "David Burggraf" ], "href": "http://www.opengeospatial.org/standards/movingfeatures", "publisher": "OGC", "title": "OGC ® Moving Features Encoding Extension: Simple Comma Separated Values (CSV)", "date": "17 February 2015", "id": "moving-features-csv" }, "GeoRSS": { "href": "https://www.w3.org/2005/Incubator/geo/XGR-geo/", "title": "W3C Geospatial Vocabulary", "authors": [ "Joshua Lieberman", "Raj Singh", "Chris Goad" ], "publisher": "W3C Geospatial Incubator Group", "date": "23 October 2007", "id": "georss" }, "KML": { "authors": [ "David Burggraf" ], "href": "http://www.opengeospatial.org/standards/kml", "publisher": "OGC", "title": "OGC KML 2.3", "date": "4 August 2015", "id": "kml" }, "WEB-DATA": { "authors": [ "Erik Wilde" ], "href": "http://webdata.systems", "title": "Web Data", "date": "1 November 2016", "id": "web-data" }, "OAF1": { "authors": [ "Clemens Portele", "Panagiotis (Peter) A. Vretanos", "Charles Heazel" ], "href": "http://docs.ogc.org/is/17-069r3/17-069r3.html", "title": "OGC API - Features - Part 1: Core", "date": "14 October 2019", "publisher": "OGC", "status": "Approved", "id": "oaf1" }, "OAF2": { "authors": [ "Clemens Portele", "Panagiotis (Peter) A. Vretanos" ], "href": "https://docs.ogc.org/is/18-058/18-058.html", "title": "OGC API - Features - Part 2: Coordinate Reference Systems by Reference", "date": "2 November 2020", "publisher": "OGC", "status": "Approved", "id": "oaf2" }, "FAIR-XG": { "authors": [ "Directorate-General for Research and Innovation" ], "href": "https://doi.org/10.2777/1524", "publisher": "Publications Office", "title": "Turning FAIR into reality. Final report and action plan from the European Commission expert group on FAIR data", "date": "2018" }, "FAIR-DMM": { "href": "https://doi.org/10.15497/rda00050", "publisher": "Research Data Alliance", "title": "FAIR Data Maturity Model. Specification and Guidelines (1.0)", "date": "2020" }, "OAEDR": { "authors": [ "Mark Burgoyne", "David Blodgett", "Charles Heazel", "Chris Little" ], "href": "https://docs.ogc.org/is/19-086r5/19-086r5.html", "publisher": "OGC", "title": "OGC API - Environmental Data Retrieval Standard", "date": "2022", "id": "oaedr" }, "COG": { "href": "https://www.cogeo.org/", "publisher": "COG Geo", "title": "Cloud Optimized GeoTIFF", "date": "2021", "id": "cog" }, "ZARR": { "href": "https://zarr.dev/", "publisher": "Zarr community", "title": "Zarr", "date": "2022", "id": "zarr" }, "ISO-19123-1:2022": { "href": "https://www.iso.org/standard/70743.html", "title": "ISO 19123:2022 Geographic information — Schema for coverage geometry and functions — Part 1: Fundamentals", "authors": [ "ISO/TC 211" ], "publisher": "ISO", "date": "2022", "status": "FDIS", "id": "iso-19123-1:2022" }, "TRIPLE-PATTERN-FRAGMENTS": { "authors": [ "Ruben Verborgh" ], "href": "http://www.hydra-cg.com/spec/latest/triple-pattern-fragments/", "title": "Triple Pattern Fragments specification", "publisher": "Hydra W3C Community Group", "date": "05 January 2017" } }, "github": "https://github.com/w3c/sdw/", "publishISODate": "2023-09-19T00:00:00.000Z", "generatedSubtitle": "W3C Group Draft Note 19 September 2023" }</script> <link rel="stylesheet" href="https://www.w3.org/StyleSheets/TR/2021/W3C-DNOTE"></head> <body class="h-entry toc-inline"><div class="head"> <p class="logos"><a class="logo" href="https://www.w3.org/"><img crossorigin="" alt="W3C" src="https://www.w3.org/StyleSheets/TR/2021/logos/W3C" width="72" height="48"> </a><a class="logo" href="http://www.opengeospatial.org/"><img crossorigin="" alt="OGC" id="ogc-logo" src="images/ogc-logo.svg" width="147" height="68"> </a></p> <h1 id="title" class="title">Spatial Data on the Web Best Practices</h1> <p id="w3c-state"><a href="https://www.w3.org/standards/types#DNOTE">W3C Group Draft Note</a> <time class="dt-published" datetime="2023-09-19">19 September 2023</time></p> <details open=""> <summary>More details about this document</summary> <dl> <dt>This version:</dt><dd> <a class="u-url" href="https://www.w3.org/TR/2023/DNOTE-sdw-bp-20230919/">https://www.w3.org/TR/2023/DNOTE-sdw-bp-20230919/</a> </dd> <dt>Latest published version:</dt><dd> <a href="https://www.w3.org/TR/sdw-bp/">https://www.w3.org/TR/sdw-bp/</a> </dd> <dt>Latest editor's draft:</dt><dd><a href="https://w3c.github.io/sdw/bp/">https://w3c.github.io/sdw/bp/</a></dd> <dt>History:</dt><dd> <a href="https://www.w3.org/standards/history/sdw-bp/">https://www.w3.org/standards/history/sdw-bp/</a> </dd><dd> <a href="https://github.com/w3c/sdw/commits/">Commit history</a> </dd> <dt>Editors:</dt><dd class="editor p-author h-card vcard" data-editor-id="65512"> <span class="p-name fn">Jeremy Tandy</span> (<a class="p-org org h-org" href="https://www.metoffice.gov.uk/">Met Office</a>) </dd><dd class="editor p-author h-card vcard" data-editor-id="75920"> <span class="p-name fn">Linda van den Brink</span> (<a class="p-org org h-org" href="https://www.geonovum.nl/">Geonovum</a>) </dd><dd class="editor p-author h-card vcard" data-editor-id="43713"> <span class="p-name fn">Payam Barnaghi</span> (<a class="p-org org h-org" href="https://www.surrey.ac.uk/">University of Surrey</a>) </dd><dd class="editor p-author h-card vcard" data-editor-id="115012"> <span class="p-name fn">Timo Homburg</span><a class="p-name orcid" href="https://orcid.org/0000-0002-9499-5840"><svg width="16" height="16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"> <style> .st1 { fill: #fff; } </style> <path d="M256 128c0 70.7-57.3 128-128 128S0 198.7 0 128 57.3 0 128 0s128 57.3 128 128z" fill="#a6ce39"></path> <path class="st1" d="M86.3 186.2H70.9V79.1h15.4v107.1zM108.9 79.1h41.6c39.6 0 57 28.3 57 53.6 0 27.5-21.5 53.6-56.8 53.6h-41.8V79.1zm15.4 93.3h24.5c34.9 0 42.9-26.5 42.9-39.7C191.7 111.2 178 93 148 93h-23.7v79.4zM88.7 56.8c0 5.5-4.5 10.1-10.1 10.1s-10.1-4.6-10.1-10.1c0-5.6 4.5-10.1 10.1-10.1s10.1 4.6 10.1 10.1z"></path> </svg></a> (<a class="p-org org h-org" href="https://www.hs-mainz.de/">Hochschule Mainz University Of Applied Sciences</a>) </dd> <dt>Feedback:</dt><dd> <a href="https://github.com/w3c/sdw/">GitHub w3c/sdw</a> (<a href="https://github.com/w3c/sdw/pulls/">pull requests</a>, <a href="https://github.com/w3c/sdw/issues/new/choose">new issue</a>, <a href="https://github.com/w3c/sdw/issues/">open issues</a>) </dd><dd><a href="mailto:public-sdw-comments@w3.org?subject=%5Bsdw-bp%5D%20YOUR%20TOPIC%20HERE">public-sdw-comments@w3.org</a> with subject line <kbd>[sdw-bp] <em>… message topic …</em></kbd> (<a rel="discussion" href="https://lists.w3.org/Archives/Public/public-sdw-comments">archives</a>)</dd> <dt>Contributors</dt><dd> Phil Archer </dd><dd> Jon Blower </dd><dd> Newton Calegari </dd><dd> Byron Cochrane </dd><dd> Simon Cox </dd><dd> François Daoust </dd><dd> Andreas Harth </dd><dd> Iza Hurst </dd><dd> Bart van Leeuwen </dd><dd> Josh Lieberman </dd><dd> Chris Little </dd><dd> Andy Mabbett </dd><dd> Peter Parslow </dd><dd> Ed Parsons </dd><dd> Andrea Perego </dd><dd> Clemens Portele </dd><dd> Bill Roberts </dd><dd> Lars G. Svensson </dd><dd> Kerry Taylor </dd><dd> Erik Wilde </dd><dd> Rob Atkinson </dd><dd> Edward Lewis </dd><dt>OGC Document Number</dt><dd> OGC 15-107 </dd> </dl> </details> <p class="copyright">Copyright © 2023 <a href="https://www.ogc.org/">OGC</a> & <a href="https://www.w3.org/">World Wide Web Consortium</a>. <abbr title="World Wide Web Consortium">W3C</abbr><sup>®</sup> <a href="https://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="https://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>, <a href="https://www.w3.org/Consortium/Legal/copyright-documents">W3C</a> and <a href="https://www.ogc.org/ogc/document">OGC</a> document use rules apply.</p> <hr title="Separator for header"> </div> <section id="abstract" class="introductory"><h2>Abstract</h2> <p>This document advises on best practices related to the publication of spatial data on the Web; the use of Web technologies <em>as they may be applied to location</em>. The best practices presented here are intended for practitioners, including Web developers and geospatial experts, and are compiled based on evidence of real-world application. These best practices suggest a significant change of emphasis from traditional <a href="#dfn-sdi" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-sdi-1">Spatial Data Infrastructures</a> by adopting an approach based on general Web standards. As location is often the common factor across multiple datasets, <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-1">spatial data</a> is an especially useful addition to the Web of data.</p> </section> <section id="sotd" class="introductory"><h2>Status of This Document</h2><p><em>This section describes the status of this document at the time of its publication. A list of current <abbr title="World Wide Web Consortium">W3C</abbr> publications and the latest revision of this technical report can be found in the <a href="https://www.w3.org/TR/"><abbr title="World Wide Web Consortium">W3C</abbr> technical reports index</a> at https://www.w3.org/TR/.</em></p> <p>This document is considered to be complete and is expected to be the final release by the <a href="https://www.w3.org/2015/spatial/">Spatial Data on the Web Working Group</a>. The editors would like to thank everyone for their feedback. Comments received during final review triggered a couple of updates since the previous release on 11 May 2017 (see <a href="#changes" class="sectionRef sec-ref"><bdi class="secno">G. </bdi>Changes since previous versions</a> for details). This document is published as a <abbr title="World Wide Web Consortium">W3C</abbr> Working Group Note and as an <a href="https://www.ogc.org/standards/bp/"><abbr title="Open Geospatial Consortium">OGC</abbr> Best Practice</a> in accordance with <a href="https://www.w3.org/2017/Process-20170301/#Note" class="sectionRef"><abbr title="World Wide Web Consortium">W3C</abbr> Policy section 6.8 Publishing a Working Group or Interest Group Note</a> and <a href="https://docs.ogc.org/pol/05-020r24/05-020r24.html" class="sectionRef"><abbr title="Open Geospatial Consortium">OGC</abbr> Policies and Procedures section 8.6 Best Practices Documents</a>.</p> <p><strong>For <abbr title="Open Geospatial Consortium">OGC</abbr>:</strong> This document defines an <a href="https://www.ogc.org/standards/bp/"><abbr title="Open Geospatial Consortium">OGC</abbr> Best Practice</a> on a particular technology or approach related to an <abbr title="Open Geospatial Consortium">OGC</abbr> standard. This document is not an <abbr title="Open Geospatial Consortium">OGC</abbr> Standard and may not be referred to as an <abbr title="Open Geospatial Consortium">OGC</abbr> Standard. However, this document is an official position of the <abbr title="Open Geospatial Consortium">OGC</abbr> membership on this particular technology topic. This document was prepared by the Spatial Data on the Web Working Group (<a href="https://www.ogc.org/about-ogc/committees/swg/">SDWWG</a>) — a joint <abbr title="World Wide Web Consortium">W3C</abbr>-<abbr title="Open Geospatial Consortium">OGC</abbr> project (see <a href="https://www.w3.org/2015/spatial/charter">charter</a>) — following <abbr title="World Wide Web Consortium">W3C</abbr> conventions.</p> <p> This document was published by the <a href="https://www.w3.org/groups/wg/sdw">Spatial Data on the Web Working Group</a> as a Group Draft Note using the <a href="https://www.w3.org/2023/Process-20230612/#recs-and-notes">Note track</a>. </p><p>Group Draft Notes are not endorsed by <abbr title="World Wide Web Consortium">W3C</abbr> nor its Members. </p><p> This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress. </p><p data-deliverer="75471"> The <a href="https://www.w3.org/Consortium/Patent-Policy/"><abbr title="World Wide Web Consortium">W3C</abbr> Patent Policy</a> does not carry any licensing requirements or commitments on this document. </p><p> This document is governed by the <a id="w3c_process_revision" href="https://www.w3.org/2023/Process-20230612/">12 June 2023 <abbr title="World Wide Web Consortium">W3C</abbr> Process Document</a>. </p></section><nav id="toc"><h2 class="introductory" id="table-of-contents">Table of Contents</h2><ol class="toc"><li class="tocline"><a class="tocxref" href="#abstract">Abstract</a></li><li class="tocline"><a class="tocxref" href="#sotd">Status of This Document</a></li><li class="tocline"><a class="tocxref" href="#conformance"><bdi class="secno">1. </bdi>Conformance</a></li><li class="tocline"><a class="tocxref" href="#intro"><bdi class="secno">2. </bdi>Introduction</a></li><li class="tocline"><a class="tocxref" href="#audience"><bdi class="secno">3. </bdi>Audience</a></li><li class="tocline"><a class="tocxref" href="#scope"><bdi class="secno">4. </bdi>Scope</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#scope-spatialdata"><bdi class="secno">4.1 </bdi>Spatial data</a></li><li class="tocline"><a class="tocxref" href="#scope-datapub"><bdi class="secno">4.2 </bdi>Data publication</a></li><li class="tocline"><a class="tocxref" href="#scope-FAIR"><bdi class="secno">4.3 </bdi>FAIR Principles</a></li><li class="tocline"><a class="tocxref" href="#best-practice-criteria"><bdi class="secno">4.4 </bdi>Best practice criteria</a></li><li class="tocline"><a class="tocxref" href="#scope-privacy"><bdi class="secno">4.5 </bdi>Privacy considerations</a></li><li class="tocline"><a class="tocxref" href="#scope-respoonsibleuse"><bdi class="secno">4.6 </bdi>Responsible Use</a></li></ol></li><li class="tocline"><a class="tocxref" href="#bp-summary"><bdi class="secno">5. </bdi>Best Practices Summary</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#best-practices-summary"><bdi class="secno">5.1 </bdi>Best Practices Summary</a></li></ol></li><li class="tocline"><a class="tocxref" href="#namespaces"><bdi class="secno">6. </bdi> Namespaces </a><ol class="toc"><li class="tocline"><a class="tocxref" href="#ns-intro"><bdi class="secno">6.1 </bdi> General remarks </a></li><li class="tocline"><a class="tocxref" href="#ns-rdf"><bdi class="secno">6.2 </bdi> RDF Namespaces </a></li><li class="tocline"><a class="tocxref" href="#ns-xml"><bdi class="secno">6.3 </bdi> XML Namespaces </a></li></ol></li><li class="tocline"><a class="tocxref" href="#spatial-things-features-and-geometry"><bdi class="secno">7. </bdi>Spatial Things, Features and Geometry</a></li><li class="tocline"><a class="tocxref" href="#coverages"><bdi class="secno">8. </bdi>Coverages: describing properties that vary with location (and time)</a></li><li class="tocline"><a class="tocxref" href="#spatial-relations"><bdi class="secno">9. </bdi>Spatial relations</a></li><li class="tocline"><a class="tocxref" href="#CRS-background"><bdi class="secno">10. </bdi>Coordinate Reference Systems (CRS)</a></li><li class="tocline"><a class="tocxref" href="#linked-data"><bdi class="secno">11. </bdi>Linked Data</a></li><li class="tocline"><a class="tocxref" href="#why-are-traditional-sdi-not-enough"><bdi class="secno">12. </bdi>Why are traditional Spatial Data Infrastructures not enough?</a></li><li class="tocline"><a class="tocxref" href="#bestPractices"><bdi class="secno">13. </bdi>The Best Practices</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#bp-webprinciples"><bdi class="secno">13.1 </bdi>Web principles for spatial data</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#bp-identifiers"><bdi class="secno">13.1.1 </bdi>Spatial data identifiers</a></li><li class="tocline"><a class="tocxref" href="#bp-indexable"><bdi class="secno">13.1.2 </bdi>Indexable data</a></li><li class="tocline"><a class="tocxref" href="#bp-linking"><bdi class="secno">13.1.3 </bdi>Linking data</a></li></ol></li><li class="tocline"><a class="tocxref" href="#bp-spatialdata"><bdi class="secno">13.2 </bdi>Spatial data</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#bp-expressing-spatial"><bdi class="secno">13.2.1 </bdi>Spatial data encoding</a></li><li class="tocline"><a class="tocxref" href="#geometry-and-crs"><bdi class="secno">13.2.2 </bdi>Geometries and coordinate reference systems</a></li><li class="tocline"><a class="tocxref" href="#relative-positioning"><bdi class="secno">13.2.3 </bdi>Relative positioning</a></li><li class="tocline"><a class="tocxref" href="#bp-linking-2"><bdi class="secno">13.2.4 </bdi>Spatial links</a></li><li class="tocline"><a class="tocxref" href="#bp-dataversioning"><bdi class="secno">13.2.5 </bdi>Spatial data versioning</a></li></ol></li><li class="tocline"><a class="tocxref" href="#bp-validation"><bdi class="secno">13.3 </bdi>Spatial data validation</a></li><li class="tocline"><a class="tocxref" href="#bp-exposing-via-api"><bdi class="secno">13.4 </bdi>Spatial data access</a></li><li class="tocline"><a class="tocxref" href="#bp-metadata"><bdi class="secno">13.5 </bdi>Spatial metadata</a></li><li class="tocline"><a class="tocxref" href="#bp-ethics"><bdi class="secno">13.6 </bdi>Spatial data ethics</a></li></ol></li><li class="tocline"><a class="tocxref" href="#emergingtechnologies"><bdi class="secno">14. </bdi>Emerging technologies</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#e-geopose"><bdi class="secno">14.1 </bdi>GeoPose</a></li><li class="tocline"><a class="tocxref" href="#e-pointofinterest"><bdi class="secno">14.2 </bdi>Point Of Interest Standard</a></li><li class="tocline"><a class="tocxref" href="#e-mapml"><bdi class="secno">14.3 </bdi>Maps for HTML and Map Markup Language</a></li></ol></li><li class="tocline"><a class="tocxref" href="#conclusions"><bdi class="secno">15. </bdi>Gaps in current practice</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#c-geometrycrs"><bdi class="secno">15.1 </bdi>Requesting different representations of geometries</a></li><li class="tocline"><a class="tocxref" href="#c-spatialdatavoc"><bdi class="secno">15.2 </bdi>Spatial data vocabulary</a></li><li class="tocline"><a class="tocxref" href="#describing-dataset-structure-and-service-behaviors"><bdi class="secno">15.3 </bdi>Describing dataset structure and service behaviors</a></li><li class="tocline"><a class="tocxref" href="#c-dynamicdata"><bdi class="secno">15.4 </bdi>Publishing dynamic and large datasets on the Web</a></li><li class="tocline"><a class="tocxref" href="#c-unitofmeasure"><bdi class="secno">15.5 </bdi>Helping software understand units of measure</a></li><li class="tocline"><a class="tocxref" href="#c-sameplaceas"><bdi class="secno">15.6 </bdi>Defining that two places are the same</a></li><li class="tocline"><a class="tocxref" href="#c-inboundlinks"><bdi class="secno">15.7 </bdi>Discovering what refers <em>to</em> a Spatial Thing</a></li></ol></li><li class="tocline"><a class="tocxref" href="#applicability-formatVbp"><bdi class="secno">A. </bdi>Applicability of common formats to implementation of best practices</a></li><li class="tocline"><a class="tocxref" href="#BP_Benefits"><bdi class="secno">B. </bdi>Best Practices Benefits</a></li><li class="tocline"><a class="tocxref" href="#requirements"><bdi class="secno">C. </bdi>Cross reference of use case requirements against best practices</a></li><li class="tocline"><a class="tocxref" href="#FAIRPrinciples"><bdi class="secno">D. </bdi>FAIR Principles</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#findable"><bdi class="secno">D.1 </bdi>Findable</a></li><li class="tocline"><a class="tocxref" href="#accessible"><bdi class="secno">D.2 </bdi>Accessible</a></li><li class="tocline"><a class="tocxref" href="#interoperable"><bdi class="secno">D.3 </bdi>Interoperable</a></li><li class="tocline"><a class="tocxref" href="#reusable"><bdi class="secno">D.4 </bdi>Reusable</a></li></ol></li><li class="tocline"><a class="tocxref" href="#glossary"><bdi class="secno">E. </bdi>Glossary</a></li><li class="tocline"><a class="tocxref" href="#acknowledgments"><bdi class="secno">F. </bdi>Acknowledgments</a></li><li class="tocline"><a class="tocxref" href="#changes"><bdi class="secno">G. </bdi>Changes since previous versions</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#changes-since-20170928"><bdi class="secno">G.1 </bdi>Changes since working group note of 28 September 2017</a></li><li class="tocline"><a class="tocxref" href="#changes-since-20170511"><bdi class="secno">G.2 </bdi>Changes since working draft of 11 May 2017</a></li><li class="tocline"><a class="tocxref" href="#changes-since-20170330"><bdi class="secno">G.3 </bdi>Changes since working draft of 30 March 2017</a></li><li class="tocline"><a class="tocxref" href="#changes-since-20170216"><bdi class="secno">G.4 </bdi>Changes since working draft of 16 February 2017</a></li><li class="tocline"><a class="tocxref" href="#changes-since-20170105"><bdi class="secno">G.5 </bdi>Changes since working draft of 5 January 2017</a></li><li class="tocline"><a class="tocxref" href="#changes-since-20161025"><bdi class="secno">G.6 </bdi>Changes since working draft of 25 October 2016</a></li><li class="tocline"><a class="tocxref" href="#changes-since-20160119"><bdi class="secno">G.7 </bdi>Changes since the first public working draft of 19 January 2016</a></li></ol></li><li class="tocline"><a class="tocxref" href="#references"><bdi class="secno">H. </bdi>References</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#normative-references"><bdi class="secno">H.1 </bdi>Normative references</a></li><li class="tocline"><a class="tocxref" href="#informative-references"><bdi class="secno">H.2 </bdi>Informative references</a></li></ol></li></ol></nav> <section id="conformance"><div class="header-wrapper"><h2 id="x1-conformance"><bdi class="secno">1. </bdi>Conformance</h2><a class="self-link" href="#conformance" aria-label="Permalink for Section 1."></a></div><p>As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.</p><p> The key words <em class="rfc2119">MAY</em>, <em class="rfc2119">MUST</em>, <em class="rfc2119">MUST NOT</em>, <em class="rfc2119">OPTIONAL</em>, <em class="rfc2119">RECOMMENDED</em>, <em class="rfc2119">REQUIRED</em>, <em class="rfc2119">SHALL</em>, <em class="rfc2119">SHALL NOT</em>, <em class="rfc2119">SHOULD</em>, and <em class="rfc2119">SHOULD NOT</em> in this document are to be interpreted as described in <a href="https://datatracker.ietf.org/doc/html/bcp14">BCP 14</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc2119" title="Key words for use in RFCs to Indicate Requirement Levels">RFC2119</a></cite>] [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc8174" title="Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words">RFC8174</a></cite>] when, and only when, they appear in all capitals, as shown here. </p> <p> The key words "<em class="rfc2119">MUST</em>", "<em class="rfc2119">MUST NOT</em>", "<em class="rfc2119">REQUIRED</em>", "<em class="rfc2119">SHALL</em>", "<em class="rfc2119">SHALL NOT</em>", "<em class="rfc2119">SHOULD</em>", "<em class="rfc2119">SHOULD NOT</em>", "<em class="rfc2119">RECOMMENDED</em>", "<em class="rfc2119">MAY</em>", and "<em class="rfc2119">OPTIONAL</em>" in this document are to be interpreted as described in RFC 2119.</p> </section> <section id="issue-summary" class="introductory"><h1>Issue summary</h1> <ul><li><a href="#issue-container-number-1146">Issue 1146</a><span style="text-transform: none">: Should the best practices mention ethical use of geo, and if so how?</span></li><li><a href="#issue-container-number-1085">Issue 1085</a><span style="text-transform: none">: Spatial Data on the Web - Best Practice 2 - Value and approach for indexing individual Spatial Things</span></li><li><a href="#issue-container-number-1037">Issue 1037</a><span style="text-transform: none">: Best practice 7 - titles, numbering and IDs for examples</span></li><li><a href="#issue-container-number-1243">Issue 1243</a><span style="text-transform: none">: Defining "convenience API" </span></li><li><a href="#issue-container-number-1086">Issue 1086</a><span style="text-transform: none">: Spatial Data on the Web - Best Practice 14 - Approach for describing positional accuracy</span></li></ul></section> <section id="intro" class="informative"><div class="header-wrapper"><h2 id="x2-introduction"><bdi class="secno">2. </bdi>Introduction</h2><a class="self-link" href="#intro" aria-label="Permalink for Section 2."></a></div><p><em>This section is non-normative.</em></p> <p>Increasing numbers of Web applications provide a means of accessing data. From simple visualizations to sophisticated interactive tools, there is a growing reliance on data. The open data movement has led to many national, regional and local governments publishing their data through portals. Scientific and cultural heritage data is increasingly published on the Web for reuse by others. Crowd-sourced and social media data are abundant on the Web. Sensors, connected devices and services from domains such as energy, transport, manufacturing and healthcare are becoming commonly integrated using the Web as a common data sharing platform.</p> <p>The Data on the Web Best Practices [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] provide a set of recommendations that are applicable to the publication of <em>all</em> types of data on the Web. Those best practices cover aspects including data formats, data access, data identifiers, metadata, licensing and provenance.</p> <p>Within this document, we are concerned with <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-2">spatial data</a>: data that describes <em>anything</em> with spatial <a href="#dfn-extent" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-extent-1">extent</a> (i.e. size, shape or position). <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-3">Spatial data</a> is also known as <em>location information</em>.</p> <p>Similarly to the challenges identified in [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] relating to publishing data on the Web, and therefore not making use of the full potential of the Web as a data sharing platform, there is a lack of consistency in how people publish <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-4">spatial data</a>.</p> <p>It is not that there is a lack of <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-5">spatial data</a> on the Web; the maps, satellite and street level images offered by search engines are familiar and there are many more examples of spatial data being used in Web applications.</p> <aside class="example" id="ex-sfpark"><div class="marker"> <a class="self-link" href="#ex-sfpark">Example<bdi> 1</bdi></a><span class="example-title">: SFpark</span> </div> <p><a href="http://sfpark.org/">SFpark</a> is a Web site where users can look at a map of San Francisco to see where parking is available and at what price. Parking prices are incrementally raised or lowered in SFpark pilot areas based on demand. In this application, static data on existing parking spaces is combined with changing data about where people park the most, which is measured by parking sensors.</p> </aside> <p>However, the data that has been published is difficult to find and often problematic to access for non-specialist users. The key problems we are trying to solve in this document are discoverability, accessibility, and interoperability. Our overarching goal is to enable <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-6">spatial data</a> to be integrated within the wider Web of data; providing standard patterns and solutions that help solve these problems.</p> <p>Following these guidelines should result in your data fitting more with the <a href="https://www.go-fair.org/fair-principles/">FAIR Principles</a>.</p> </section> <section id="audience" class="informative"><div class="header-wrapper"><h2 id="x3-audience"><bdi class="secno">3. </bdi>Audience</h2><a class="self-link" href="#audience" aria-label="Permalink for Section 3."></a></div><p><em>This section is non-normative.</em></p> <p>Our goal in writing this best practice document is to support the practitioners who are responsible for publishing their <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-7">spatial data</a> on the Web or developing tools to make it easy for others to work with spatial data.</p> <p>We expect readers to be familiar both with the fundamental concepts of the architecture of the Web [<cite><a class="bibref" data-link-type="biblio" href="#bib-webarch" title="Architecture of the World Wide Web, Volume One">WEBARCH</a></cite>] and the generalized best practices related to the publication and usage of data on the Web [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>].</p> <p>We aim to provide two primary pathways into these best practices:</p> <ol> <li>for those already familiar with publishing data on the Web who want to better exploit the spatial aspects of their data; and</li> <li>for those who publish <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-8">spatial data</a> through <a href="#dfn-sdi" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-sdi-2">Spatial Data Infrastructures</a> and want to better integrate that data within the wider Web ecosystem.</li> </ol> <p>In each case, we aim to help them provide incremental value to their data through application of these best practices.</p> <p>This document provides a wide range of examples that illustrate how these best practices may be applied using specific technologies. We do not expect readers to be familiar with all the technologies used herein; rather that readers can identify with the activities being undertaken in the various examples and, in doing so, find relevant technologies that they are already aware of or discover technologies that are new to them.</p> </section> <section id="scope" class="informative"><div class="header-wrapper"><h2 id="x4-scope"><bdi class="secno">4. </bdi>Scope</h2><a class="self-link" href="#scope" aria-label="Permalink for Section 4."></a></div><p><em>This section is non-normative.</em></p> <section id="scope-spatialdata"><div class="header-wrapper"><h3 id="x4-1-spatial-data"><bdi class="secno">4.1 </bdi>Spatial data</h3><a class="self-link" href="#scope-spatialdata" aria-label="Permalink for Section 4.1"></a></div> <p>All the best practices described in [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] are relevant to the publication of <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-9">spatial data</a> on the Web. Some, such as [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#DataLicense">Best Practice 4: Provide data license information</a> need no further elaboration in the context of <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-10">spatial data</a>. However, other best practices from [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] are further refined in this document to provide more specific guidance for <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-11">spatial data</a>.</p> <p>The best practices described below are intended to meet requirements derived from the scenarios in [<cite><a class="bibref" data-link-type="biblio" href="#bib-sdw-ucr" title="Spatial Data on the Web Use Cases & Requirements">SDW-UCR</a></cite>] that describe how <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-12">spatial data</a> is commonly published and used on the Web. However, working with <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-13">spatial data</a> can rapidly become complex — especially for critical decision-making where misuse of data can present risks. These best practices are intended to make it easier to work with <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-14">spatial data</a> on the Web but do not attempt to cover all aspects of <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-15">spatial data</a> usage.</p> <div class="note" id="issue-container-generatedID-0"><div role="heading" class="ednote-title marker" id="h-ednote-0" aria-level="4"><span>Editor's note</span></div><aside class=""> <p>Should a reference to [<cite><a class="bibref" data-link-type="biblio" href="#bib-responsible-use-spatial" title="The Responsible Use of Spatial Data">RESPONSIBLE-USE-SPATIAL</a></cite>] be included here, or elsewhere in the document?</p> </aside></div> <p>In line with the <a href="https://www.w3.org/2015/spatial/charter#bp">charter</a>, this document provides advice on:</p> <ul> <li>The choice of vocabulary and data format to be used when encoding <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-16">spatial data</a>;</li> <li>The use of URIs for identifiers of resources described in spatial data;</li> <li>The use of metadata to complement spatial data; and</li> <li>The use of <abbr title="Application Programming Interfaces">APIs</abbr> to expose spatial data.</li> </ul> <p>As stated in the <a href="https://www.w3.org/2015/spatial/charter#bp">charter</a>, discussion of activities relating to rendering <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-17">spatial data</a> as maps is explicitly out of scope.</p> <p>The original intent of these best practices was to cover aspects relating to all types of <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-18">spatial data</a>, for example: the arrangement of cells on a microscope slide; the position of things on the surface of the Earth, the Moon, Mars or other celestial bodies; the position of planets in the solar system etc. However, due to resource limitations these best practices deal almost exclusively with <a href="#dfn-geographic-information" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geographic-information-1">geospatial data</a>; data about things that are implicitly or explicitly located relative to the Earth. That said, many of the best practices are applicable to wider <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-19">spatial data</a> concerns. In the remainder of the document, we simply refer to <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-20">spatial data</a> for brevity.</p> <p>We extend [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] to cover aspects specifically relating to <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-21">spatial data</a>, introducing new best practices only where necessary. In particular, we consider the individual resources, or <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-1">Spatial Things</a>, that are described within a dataset.</p> </section> <section id="scope-datapub"><div class="header-wrapper"><h3 id="x4-2-data-publication"><bdi class="secno">4.2 </bdi>Data publication</h3><a class="self-link" href="#scope-datapub" aria-label="Permalink for Section 4.2"></a></div> <p>In this document, we focus on the needs of data publishers and the developers that provide tools for them. That said, we recognize that value can only be gained from <em>publishing</em> the <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-22">spatial data</a> when people <em>use</em> it! Although we do not directly address the needs of those users, we ask that data publishers and developers reading this document do not forget about them; moreover, that they always consider the needs of users when publishing spatial data or developing the supporting tools. All our best practices are intended to provide guidance about publishing <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-23">spatial data</a> to improve ease of use.</p> <p>Neither the wider topic of spatial data <em>management</em> nor <a href="#dfn-sdi" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-sdi-3">Spatial Data Infrastructures</a> are covered. We assume that your spatial data already exists and will be available from one of the following places:</p> <ol> <li>plain text documents; e.g. historical texts, government reports, blog posts etc.</li> <li>data files containing structured content or markup; e.g. geospatial vector data in [<cite><a class="bibref" data-link-type="biblio" href="#bib-geopackage" title="OGC® GeoPackage Encoding Standard">GeoPackage</a></cite>] or [<cite><a class="bibref" data-link-type="biblio" href="#bib-gml" title="Geography Markup Language (GML) Encoding Standard">GML</a></cite>] format, statistical data in tabular <a href="#dfn-csv" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-csv-1">CSV</a> format or a spreadsheet, as <a href="https://it.wikipedia.org/wiki/GPS_eXchange_Format"><abbr title="GPS eXchange Format">GPX</abbr></a> data with “waypoints” and “tracks”, satellite imagery in <a href="https://en.wikipedia.org/wiki/GeoTIFF">GeoTIFF</a>, climate simulations in <a href="https://en.wikipedia.org/wiki/NetCDF#Conventions"><abbr title="netCDF Climate and Forecast Metadata Conventions">CF-NetCDF</abbr></a> etc.</li> <li>a data repository; e.g. <a href="https://postgis.net/">PostGIS</a> (a spatially enabled relational database), <a href="https://en.wikipedia.org/wiki/Elasticsearch">Elasticsearch</a> (a document-oriented noSQL repository based on Apache Lucene), <a href="https://jena.apache.org/documentation/tdb/">Apache Jena’s TDB</a> (an RDF <a href="#dfn-triple-store" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-triple-store-1">triple store</a>)</li> <li>exposed via an existing <abbr title="Application Programming Interface">API</abbr>; including <abbr title="Open Geospatial Consortium">OGC</abbr>-compliant Web services and <abbr title="Application Programming Interface">API</abbr>'s such as <a href="#dfn-ogc-api-features" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-ogc-api-features-1"><abbr title="Open Geospatial Consortium">OGC</abbr> <abbr title="Application Programming Interface">API</abbr> - Features</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-oaf1" title="OGC API - Features - Part 1: Core">OAF1</a></cite>].</li> </ol> <p>If your <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-24">spatial data</a> is managed within a software system it is likely that you will be able to access that data through one or more of the methods identified above; as structured data from a bulk extract (e.g. a “data dump”), via direct access to the underpinning data repository or through a bespoke or standards-compliant <abbr title="Application Programming Interface">API</abbr> provided by the system.</p> <p>Each of the four starting points outlined above have their own challenges, but working with plain text documents can be particularly tricky as you will need to parse the natural language to identify the <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-2">Spatial Things</a> and their properties before you can proceed any further. Natural Language Processing (NLP) is a complex topic in its own right and is beyond the scope of this best practice document. We will assume that you’ve already completed this step and have parsed any plain documents into structured data records of some kind.</p> </section> <section id="scope-FAIR"><div class="header-wrapper"><h3 id="x4-3-fair-principles"><bdi class="secno">4.3 </bdi>FAIR Principles</h3><a class="self-link" href="#scope-FAIR" aria-label="Permalink for Section 4.3"></a></div> <p>The FAIR Principles are described at <a href="https://www.go-fair.org/fair-principles/">FAIR Principles - GO FAIR</a>; they are widely adopted (or at least aimed for) when publishing scientific data including environmental and earth observation data. Although the FAIR principles concentrate on machine-readable data, whilst these best practices also cover “data for humans”, there is a lot of overlap between the FAIR Principles and the best practices described in this paper.</p> <p>Similarly, although not currently expressed in terms of the FAIR Principles, the Data on the Web Best Practices are also designed to make it easier for "data consumers to find, use and link to the data".</p> <p>The <abbr title="Open Geospatial Consortium">OGC</abbr> is developing a new generation of resource-oriented HTTP <abbr title="Application Programming Interfaces">APIs</abbr> (e.g. <a href="#dfn-ogc-api-features" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-ogc-api-features-2"><abbr title="Open Geospatial Consortium">OGC</abbr> <abbr title="Application Programming Interface">API</abbr> - Features</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-oaf1" title="OGC API - Features - Part 1: Core">OAF1</a></cite>]) for spatial data that align closely with FAIR principles.</p> <p>There have also been some suggestions for improvement on the FAIR principles, and these are also discussed <a href="#FAIRPrinciples" class="sectionRef sec-ref"><bdi class="secno">D. </bdi>FAIR Principles</a>.</p> </section> <section id="best-practice-criteria"><div class="header-wrapper"><h3 id="x4-4-best-practice-criteria"><bdi class="secno">4.4 </bdi>Best practice criteria</h3><a class="self-link" href="#best-practice-criteria" aria-label="Permalink for Section 4.4"></a></div> <p>The best practices described in this document are compiled based on evidence from real-world application in production environments. By ‘production environment’ we mean a case where <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-25">spatial data</a> has been delivered on the Web with the intention of being used by end users and with a quality level expected from such data. Where the <a href="https://www.ogc.org/about-ogc/committees/swg/">Working Group</a> has identified issues that inhibit the use or interoperability of spatial data on the Web, yet no evidence of real-world application is available, the editors present these issues to the reader for consideration, along with any approaches recommended by the Working Group. Please see <a href="#conclusions" class="sectionRef sec-ref"><bdi class="secno">15. </bdi>Gaps in current practice</a> for further details. Such recommendations are clearly distinguished as such to ensure that they are not confused with evidence-based best practices.</p> <p>The normative element of each best practice is the <em>intended outcome</em>. Possible implementations are suggested and, where appropriate, these recommend the use of a particular technology.</p> <p>We intend this best practice to be durable; that is that the best practices remain relevant for many years to come as specific technologies change. However, to provide actionable guidance, i.e. to provide readers with the technical information they need to get their <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-26">spatial data</a> on the Web, we try to balance between durable advice (that is necessarily general) and examples using currently available technologies that illustrate how these best practices can be implemented. We expect that readers will continue to be able to derive insight from the examples even when those specifically mentioned technologies are no longer in common usage, understanding that technology ‘y’ has replaced technology ‘x’.</p></section> <section id="scope-privacy"><div class="header-wrapper"><h3 id="x4-5-privacy-considerations"><bdi class="secno">4.5 </bdi>Privacy considerations</h3><a class="self-link" href="#scope-privacy" aria-label="Permalink for Section 4.5"></a></div> <p>There are many situations where the location of a person is very useful; from using a taxi-hailing service to <a href="#dfn-geocoding" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geocoding-1">geocoding</a> a selfie. Technology makes this location information easy to collect and share. However, <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-27">spatial data</a> has particular characteristics which makes its use potentially more complex. For example, a single location of an anonymous tracked mobile phone may cause few privacy concerns, however the same phone tracked over a few days could provide enough information to make the identification of its user possible. Like all personally identifiable information, great care must be taken as the collection, management and security of such information is the subject of legal frameworks. We do not attempt to provide guidance as to legal aspects of storing potentially personally identifiable spatial information; expert legal advice should be obtained. In summary: legal and privacy considerations relating to spatial data are out of scope.</p> </section> <section id="scope-respoonsibleuse"><div class="header-wrapper"><h3 id="x4-6-responsible-use"><bdi class="secno">4.6 </bdi>Responsible Use</h3><a class="self-link" href="#scope-respoonsibleuse" aria-label="Permalink for Section 4.6"></a></div> <p>Data ethics and the responsible use of geospatial data is a topic which has become evermore relevant with growing amounts of spatial data readily available over the internet. To ensure that data is shared in a responsible way, the data practitioner must provide spatial data and tools that access spatial data in ways that anticipate the impact of their publication on potential stakeholders and which have been created using ethical principles.</p> </section> </section> <section id="bp-summary"><div class="header-wrapper"><h2 id="x5-best-practices-summary"><bdi class="secno">5. </bdi>Best Practices Summary</h2><a class="self-link" href="#bp-summary" aria-label="Permalink for Section 5."></a></div> <p>This document contains a variety of best practices related to the publication and usage of <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-28">spatial data</a> on the Web. First, it continues with several more in-depth introductions on <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-3">Spatial Things</a> and <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-1">geometry</a>, <a href="#dfn-coverage" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-coverage-1">coverages</a>, <a href="#dfn-spatial-relation" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-relation-1">spatial relations</a>, <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-1">coordinate reference systems</a>, <a href="#dfn-linked-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-linked-data-1">linked data</a>, and <a href="#dfn-sdi" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-sdi-4">Spatial Data Infrastructures</a>. After that, the best practices themselves are described. </p> <p>The following best practices can be found in this document:</p> <div class="note" id="issue-container-generatedID-1"><div role="heading" class="ednote-title marker" id="h-ednote-1" aria-level="3"><span>Editor's note</span></div><aside class=""> <p>The duplication of the section heading is a ReSpec bug - see <a href="https://github.com/w3c/respec/issues/3278">w3c/respec/issues/3278</a>.</p> </aside></div> <section id="best-practices-summary"><div class="header-wrapper"><h3 id="x5-1-best-practices-summary"><bdi class="secno">5.1 </bdi>Best Practices Summary</h3><a class="self-link" href="#best-practices-summary" aria-label="Permalink for Section 5.1"></a></div><ul><li><a class="marker self-link" href="#globally-unique-ids"><bdi lang="en">Best Practice 1</bdi></a>: <span class="practicelab">Use globally unique persistent HTTP URIs for Spatial Things</span></li><li><a class="marker self-link" href="#indexable-by-search-engines"><bdi lang="en">Best Practice 2</bdi></a>: <span class="practicelab">Make your spatial data indexable by search engines</span></li><li><a class="marker self-link" href="#linking"><bdi lang="en">Best Practice 3</bdi></a>: <span class="practicelab">Link resources together to create the Web of data</span></li><li><a class="marker self-link" href="#semantic-thing"><bdi lang="en">Best Practice 4</bdi></a>: <span class="practicelab">Use spatial data encodings that match your target audience</span></li><li><a class="marker self-link" href="#describe-geometry"><bdi lang="en">Best Practice 5</bdi></a>: <span class="practicelab">Provide geometries on the Web in a usable way</span></li><li><a class="marker self-link" href="#multiplegeometries"><bdi lang="en">Best Practice 6</bdi></a>: <span class="practicelab">Provide geometries at the right level of accuracy, precision, and size</span></li><li><a class="marker self-link" href="#bp-crs-choice"><bdi lang="en">Best Practice 7</bdi></a>: <span class="practicelab">Choose coordinate reference systems to suit your user's applications</span></li><li><a class="marker self-link" href="#bp-crs"><bdi lang="en">Best Practice 8</bdi></a>: <span class="practicelab">State how coordinate values are encoded</span></li><li><a class="marker self-link" href="#relative-position"><bdi lang="en">Best Practice 9</bdi></a>: <span class="practicelab">Describe relative positioning</span></li><li><a class="marker self-link" href="#entity-level-links"><bdi lang="en">Best Practice 10</bdi></a>: <span class="practicelab">Use appropriate relation types to link Spatial Things</span></li><li><a class="marker self-link" href="#desc-changing-properties"><bdi lang="en">Best Practice 11</bdi></a>: <span class="practicelab">Provide information on the changing nature of spatial things</span></li><li><a class="marker self-link" href="#validation"><bdi lang="en">Best Practice 12</bdi></a>: <span class="practicelab">Expose spatial data validation schemas online</span></li><li><a class="marker self-link" href="#convenience-apis"><bdi lang="en">Best Practice 13</bdi></a>: <span class="practicelab">Expose spatial data through 'convenience <abbr title="Application Programming Interfaces">APIs</abbr>'</span></li><li><a class="marker self-link" href="#request-return-crs"><bdi lang="en">Best Practice 14</bdi></a>: <span class="practicelab"> Support requesting and returning geometries in a specific CRS </span></li><li><a class="marker self-link" href="#spatial-info-dataset-metadata"><bdi lang="en">Best Practice 15</bdi></a>: <span class="practicelab">Include spatial metadata in dataset metadata</span></li><li><a class="marker self-link" href="#desc-accuracy"><bdi lang="en">Best Practice 16</bdi></a>: <span class="practicelab">Describe the positional accuracy of spatial data</span></li><li><a class="marker self-link" href="#desc-responsible"><bdi lang="en">Best Practice 17</bdi></a>: <span class="practicelab">Interact with spatial data in a responsible way</span></li></ul></section></section> <section id="namespaces" class="informative"><div class="header-wrapper"><h2 id="x6-namespaces"><bdi class="secno">6. </bdi> Namespaces </h2><a class="self-link" href="#namespaces" aria-label="Permalink for Section 6."></a></div><p><em>This section is non-normative.</em></p> <section id="ns-intro"><div class="header-wrapper"><h3 id="x6-1-general-remarks"><bdi class="secno">6.1 </bdi> General remarks </h3><a class="self-link" href="#ns-intro" aria-label="Permalink for Section 6.1"></a></div> <p>This document uses a unique abbreviation ("prefix") for each RDF namespace and XML namespace listed in this section. The namespace IRI can always be determined from the declaration of the namespace abbreviation.</p> </section> <section id="ns-rdf"><div class="header-wrapper"><h3 id="x6-2-rdf-namespaces"><bdi class="secno">6.2 </bdi> RDF Namespaces </h3><a class="self-link" href="#ns-rdf" aria-label="Permalink for Section 6.2"></a></div> <p>The following RDF namespace prefixes are used within this document. Use of a namespace does not imply endorsement of the associated data platform or vocabulary.</p> <table class="simple" id="ns-rdf-table"> <caption>RDF namespaces used in the document</caption> <thead> <tr> <th>Prefix</th> <th>Namespace IRI</th> <th>Source</th> </tr> </thead> <tbody> <tr> <td><code>admingeo</code></td> <td>https://data.ordnancesurvey.co.uk/ontology/admingeo/</td> <td><a href="https://www.ordnancesurvey.co.uk/">Ordnance Survey's</a> <a href="https://www.ordnancesurvey.co.uk/products/linked-data">Administrative geography and civil voting area ontology</a></td> </tr> <tr> <td><code>adms</code></td> <td>http://www.w3.org/ns/adms#</td> <td>Asset Description Metadata Schema (ADMS) [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-adms" title="Asset Description Metadata Schema (ADMS)">VOCAB-ADMS</a></cite>]</td> </tr> <tr> <td><code>bag</code></td> <td>http://bag.basisregistraties.overheid.nl/def/bag#</td> <td><a href="https://bag.basisregistraties.overheid.nl">Dutch Government Base Registry Adressen en Gebouwen (BAG)</a></td> </tr> <tr> <td><code>dcat</code></td> <td>http://www.w3.org/ns/dcat#</td> <td>Data Catalog Vocabulary (DCAT) [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-dcat-2" title="Data Catalog Vocabulary (DCAT) - Version 2">VOCAB-DCAT-2</a></cite>]</td> </tr> <tr> <td><code>dcterms</code></td> <td>http://purl.org/dc/terms/</td> <td>Dublin Core Metadata Initiative (DCMI) Metadata Terms [<cite><a class="bibref" data-link-type="biblio" href="#bib-dcterms" title="DCMI Metadata Terms">DCTERMS</a></cite>]</td> </tr> <tr> <td><code>dqv</code></td> <td>http://www.w3.org/ns/dqv#</td> <td>DWBP Data Quality Vocabulary (DQV) [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-dqv" title="Data on the Web Best Practices: Data Quality Vocabulary">VOCAB-DQV</a></cite>]</td> </tr> <tr> <td><code>foaf</code></td> <td>http://xmlns.com/foaf/0.1/</td> <td><a href="http://xmlns.com/foaf/spec/">FOAF Vocabulary Specification</a></td> </tr> <tr> <td><code>geodcatap</code></td> <td>http://data.europa.eu/930/</td> <td>GeoDCAT-AP: A geospatial extension for the DCAT application profile for data portals in Europe [<cite><a class="bibref" data-link-type="biblio" href="#bib-geodcat-ap" title="GeoDCAT-AP: A geospatial extension for the DCAT application profile for data portals in Europe">GeoDCAT-AP</a></cite>]</td> </tr> <tr> <td><code>geom</code></td> <td>http://data.ordnancesurvey.co.uk/ontology/geometry/</td> <td><a href="https://www.ordnancesurvey.co.uk/">Ordnance Survey's</a> <a href="https://www.ordnancesurvey.co.uk/products/linked-data">Geometry Ontology</a></td> </tr> <tr> <td><code>geonames</code></td> <td>http://www.geonames.org/ontology#</td> <td><a href="http://www.geonames.org/ontology/documentation.html">GeoNames Ontology</a></td> </tr> <tr> <td><code>georss</code></td> <td>http://www.georss.org/georss/</td> <td>GeoRSS :: Geographically Encoded Objects for RSS feeds [<cite><a class="bibref" data-link-type="biblio" href="#bib-georss" title="W3C Geospatial Vocabulary">GeoRSS</a></cite>], Geo OWL encoding</td> </tr> <tr> <td><code>geosparql</code></td> <td>http://www.opengis.net/ont/geosparql#</td> <td>GeoSPARQL — A Geographic Query Language for RDF Data [<cite><a class="bibref" data-link-type="biblio" href="#bib-geosparql" title="GeoSPARQL - A Geographic Query Language for RDF Data">GeoSPARQL</a></cite>]</td> </tr> <tr> <td><code>gml-ont</code></td> <td>http://www.opengis.net/ont/gml#</td> <td>GeoSPARQL — A Geographic Query Language for RDF Data: GML Concept Hierarchy</td> </tr> <tr> <td><code>ldqd</code></td> <td>http://www.w3.org/2016/05/ldqd#</td> <td>DWBP Data Quality Vocabulary (DQV) [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-dqv" title="Data on the Web Best Practices: Data Quality Vocabulary">VOCAB-DQV</a></cite>]: Data quality categories and dimensions</td> </tr> <tr> <td><code>locn</code></td> <td>http://www.w3.org/ns/locn#</td> <td>ISA Location Core Vocabulary [<cite><a class="bibref" data-link-type="biblio" href="#bib-locn" title="ISA Programme Location Core Vocabulary">LOCN</a></cite>]</td> </tr> <tr> <td><code>osuk</code></td> <td>http://data.ordnancesurvey.co.uk/id/</td> <td><a href="https://www.ordnancesurvey.co.uk/products/linked-data">Ordnance Survey Linked Data Platform</a></td> </tr> <tr> <td><code>ov</code></td> <td>http://open.vocab.org/terms/</td> <td><a href="https://vocab.org/open/">Open.vocab.org</a></td> </tr> <tr> <td><code>owl</code></td> <td>http://www.w3.org/2002/07/owl#</td> <td>Web Ontology Language (OWL) [<cite><a class="bibref" data-link-type="biblio" href="#bib-owl2-overview" title="OWL 2 Web Ontology Language Document Overview (Second Edition)">OWL2-OVERVIEW</a></cite>]</td> </tr> <tr> <td><code>qudt</code></td> <td>http://qudt.org/schema/qudt#</td> <td><a href="https://qudt.org/">Quantities, Units, Dimensions and Data Types Ontologies (QUDT)</a></td> </tr> <tr> <td><code>rdf</code></td> <td>http://www.w3.org/1999/02/22-rdf-syntax-ns#</td> <td>Resource Description Framework (RDF) [<cite><a class="bibref" data-link-type="biblio" href="#bib-rdf11-primer" title="RDF 1.1 Primer">RDF11-PRIMER</a></cite>]</td> </tr> <tr> <td><code>rdfs</code></td> <td>http://www.w3.org/2000/01/rdf-schema#</td> <td>RDF Schema vocabulary (RDFS) [<cite><a class="bibref" data-link-type="biblio" href="#bib-rdf-schema" title="RDF Schema 1.1">RDF-SCHEMA</a></cite>]</td> </tr> <tr> <td><code>schema</code></td> <td>http://schema.org/</td> <td>Schema.org [<cite><a class="bibref" data-link-type="biblio" href="#bib-schema-org" title="Schema.org">SCHEMA-ORG</a></cite>]</td> </tr> <tr> <td><code>scotgov-stat</code></td> <td>http://statistics.gov.scot/id/statistical-geography/</td> <td><a href="https://statistics.gov.scot/">STATISTICS.GOV.SCOT</a> Geography Linked Data</td> </tr> <tr> <td><code>sdmx-attribute</code></td> <td>http://purl.org/linked-data/sdmx/2009/attribute#</td> <td>The RDF Data Cube Vocabulary [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-data-cube" title="The RDF Data Cube Vocabulary">VOCAB-DATA-CUBE</a></cite>]: Attribute properties</td> </tr> <tr> <td><code>sf</code></td> <td>http://www.opengis.net/ont/sf#</td> <td>GeoSPARQL — A Geographic Query Language for RDF Data [<cite><a class="bibref" data-link-type="biblio" href="#bib-geosparql" title="GeoSPARQL - A Geographic Query Language for RDF Data">GeoSPARQL</a></cite>]</td> </tr> <tr> <td><code>skos</code></td> <td>http://www.w3.org/2004/02/skos/core#</td> <td>Simple Knowledge Organization System (SKOS) [<cite><a class="bibref" data-link-type="biblio" href="#bib-skos-primer" title="SKOS Simple Knowledge Organization System Primer">SKOS-PRIMER</a></cite>]</td> </tr> <tr> <td><code>ukgov-stat</code></td> <td>http://statistics.data.gov.uk/id/statistical-geography/</td> <td><a href="https://statistics.data.gov.uk/">Office for National Statistics</a> Geography Linked Data</td> </tr> <tr> <td><code>vcard</code></td> <td>http://www.w3.org/2006/vcard/ns#</td> <td>vCard Ontology — for describing People and Organizations [<cite><a class="bibref" data-link-type="biblio" href="#bib-vcard-rdf" title="vCard Ontology - for describing People and Organizations">VCARD-RDF</a></cite>]</td> </tr> <tr> <td><code>void</code></td> <td>http://rdfs.org/ns/void#</td> <td>Describing Linked Datasets with the VoID Vocabulary [<cite><a class="bibref" data-link-type="biblio" href="#bib-void" title="Describing Linked Datasets with the VoID Vocabulary">VoID</a></cite>]</td> </tr> <tr> <td><code>w3cgeo</code></td> <td>http://www.w3.org/2003/01/geo/wgs84_pos#</td> <td>Basic Geo (WGS 84 lat/long) Vocabulary [<cite><a class="bibref" data-link-type="biblio" href="#bib-w3c-basic-geo" title="Basic Geo (WGS84 lat/long) Vocabulary">W3C-BASIC-GEO</a></cite>]</td> </tr> </tbody> </table> </section> <section id="ns-xml"><div class="header-wrapper"><h3 id="x6-3-xml-namespaces"><bdi class="secno">6.3 </bdi> XML Namespaces </h3><a class="self-link" href="#ns-xml" aria-label="Permalink for Section 6.3"></a></div> <p>The following XML namespace prefixes are used within this document. Use of a namespace does not imply endorsement of the associated XML schema.</p> <table class="simple" id="ns-xml-table"> <caption>XML namespaces used in the document</caption> <tbody> <tr> <th>Prefix</th> <th>Namespace IRI</th> <th>Source</th> </tr> <tr> <td><code>gml</code></td> <td>http://www.opengis.net/gml/3.2</td> <td>Geography Markup Language (GML) Encoding Standard [<cite><a class="bibref" data-link-type="biblio" href="#bib-gml" title="Geography Markup Language (GML) Encoding Standard">GML</a></cite>]</td> </tr> <tr> <td><code>sam</code></td> <td>http://www.opengis.net/sampling/2.0</td> <td>Observations and Measurements — XML Implementation [<cite><a class="bibref" data-link-type="biblio" href="#bib-om-xml" title="Observations and Measurements - XML Implementation">OM-XML</a></cite>]</td> </tr> <tr> <td><code>sams</code></td> <td>http://www.opengis.net/samplingSpatial/2.0</td> <td>Observations and Measurements — XML Implementation [<cite><a class="bibref" data-link-type="biblio" href="#bib-om-xml" title="Observations and Measurements - XML Implementation">OM-XML</a></cite>]</td> </tr> <tr> <td><code>wml2</code></td> <td>http://www.opengis.net/waterml/2.0</td> <td>WaterML 2.0 Encoding Standard [<cite><a class="bibref" data-link-type="biblio" href="#bib-waterml" title="OGC® WaterML 2.0">WaterML</a></cite>]</td> </tr> <tr> <td><code>xlink</code></td> <td>http://www.w3.org/1999/xlink</td> <td>XML Linking Language (XLink) Version 1.1 [<cite><a class="bibref" data-link-type="biblio" href="#bib-xlink11" title="XML Linking Language (XLink) Version 1.1">XLINK11</a></cite>]</td> </tr> </tbody> </table> </section> </section> <section id="spatial-things-features-and-geometry"><div class="header-wrapper"><h2 id="x7-spatial-things-features-and-geometry"><bdi class="secno">7. </bdi>Spatial Things, Features and Geometry</h2><a class="self-link" href="#spatial-things-features-and-geometry" aria-label="Permalink for Section 7."></a></div> <p>The <a href="#dfn-feature" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-feature-1">feature</a> is the primary entity as described in spatial data standards <a href="https://www.ogc.org">Open Geospatial Consortium</a> (<abbr title="Open Geospatial Consortium">OGC</abbr>) and the 19100 series of <a href="https://www.isotc211.org">ISO/TC 211</a> <a href="#dfn-geographic-information" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geographic-information-2">Geographic information</a>/Geomatics. [<cite><a class="bibref" data-link-type="biblio" href="#bib-iso-19101-1-2014" title="Geographic information -- Reference model -- Part 1: Fundamentals">ISO-19101-1-2014</a></cite>] defines a feature as an: “abstraction of real-world phenomena”.</p> <p>This terse definition is a little confusing, so let’s unpack it.</p> <p>Firstly, it talks about “real world phenomena”; that’s everything from highways to helicopters, parking meters to postcode areas, water bodies to weather fronts, and more. These can be physical things that you can touch (e.g. a phone box) or an abstract concept that has spatial <a href="#dfn-extent" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-extent-2">extent</a> (e.g. a postcode area). <a href="#dfn-feature" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-feature-2">Features</a> can even be fictional (e.g. “Dickensian London”) and may even lack any concrete location information such as the mythical Atlantis.</p> <p>The key point is that these “features” are things that one talks about in the <a href="#dfn-universe-of-discourse" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-universe-of-discourse-1">universe of discourse</a> — which is defined in [<cite><a class="bibref" data-link-type="biblio" href="#bib-iso-19101-1-2014" title="Geographic information -- Reference model -- Part 1: Fundamentals">ISO-19101-1-2014</a></cite>] as the “view of the real or hypothetical world that includes everything of interest”.</p> <p>Secondly, the definition of <a href="#dfn-feature" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-feature-3">feature</a> talks about “abstraction”. Take the example of <a href="https://www.trinityhouse.co.uk/lighthouses-and-lightvessels/eddystone-lighthouse">Eddystone Lighthouse</a>. A helicopter pilot might see it as a “vertical obstruction” and be interested in attributes such as its height and precise location. Whereas a sailor may see it as a “maritime navigation aid” and need information about its light characteristics and general location. Depending on one’s set of concerns, only a subset of the attributes of a given “real-world phenomenon” are relevant. In the case of Eddystone Lighthouse, we defined two separate “abstractions”. As is common practice in many information modelling activities, the common sets of attributes for a given “abstraction” are used to define <em>classes</em>. In the parlance of [<cite><a class="bibref" data-link-type="biblio" href="#bib-iso-19101-1-2014" title="Geographic information -- Reference model -- Part 1: Fundamentals">ISO-19101-1-2014</a></cite>], such a class is known as “feature type”. </p> <div class="note" role="note" id="issue-container-generatedID-2"><div role="heading" class="note-title marker" id="h-note" aria-level="3"><span>Note</span></div><aside class=""> <p>Although the exact semantics differ a little, there is a good correlation between the concept of “feature type” as defined in spatial data standards and the concept of “class” defined in [<cite><a class="bibref" data-link-type="biblio" href="#bib-rdf-schema" title="RDF Schema 1.1">RDF-SCHEMA</a></cite>]. The former is an information modelling construct that binds a fixed set of attributes to an identified resource, whereas the latter defines the set of all resources that share the same group of attributes.</p> <p>When combined with the <a href="#dfn-open-world-assumption" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-open-world-assumption-1">open-world assumption</a> embraced by [<cite><a class="bibref" data-link-type="biblio" href="#bib-rdf-schema" title="RDF Schema 1.1">RDF-SCHEMA</a></cite>] and the Web Ontology Language (OWL) [<cite><a class="bibref" data-link-type="biblio" href="#bib-owl2-overview" title="OWL 2 Web Ontology Language Document Overview (Second Edition)">OWL2-OVERVIEW</a></cite>], the set-based approach to classes provides more flexibility when combining information from multiple sources. For example, the “Eddystone Lighthouse” resource can be seen as <em>both</em> a “vertical obstruction” <em>and</em> a “maritime navigation aid” as it meets the criteria for membership of both sets. Conversely, this flexibility makes it much more difficult to build software applications as there is no guarantee that an information resource will specify a given attribute. Web standards such the Shapes Constraint Language [<cite><a class="bibref" data-link-type="biblio" href="#bib-shacl" title="Shapes Constraint Language (SHACL)">SHACL</a></cite>] are being defined to remedy this issue.</p> </aside></div> <p>However, the term “feature” is also commonly used to mean a capability of a system, application or component. Also, in some domains and/or applications no distinction is made between "<a href="#dfn-feature" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-feature-4">feature</a>" and the corresponding real-world phenomena.</p> <p>To avoid confusion, we adopt the term “<a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-4">Spatial Thing</a>” throughout the remainder of this best practice document. “<a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-5">Spatial thing</a>” is defined in [<cite><a class="bibref" data-link-type="biblio" href="#bib-w3c-basic-geo" title="Basic Geo (WGS84 lat/long) Vocabulary">W3C-BASIC-GEO</a></cite>] as “Anything with spatial extent, i.e. size, shape, or position. e.g. people, places, bowling balls, as well as abstract areas like cubes”.</p> <p>The concept of “<a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-6">Spatial Thing</a>” is considered to include <em>both</em> "real-world phenomena" <em>and</em> their abstractions (e.g. “<a href="#dfn-feature" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-feature-5">feature</a>” as defined in [<cite><a class="bibref" data-link-type="biblio" href="#bib-iso-19101-1-2014" title="Geographic information -- Reference model -- Part 1: Fundamentals">ISO-19101-1-2014</a></cite>]). Furthermore, we treat it as inclusive of other commonly used definitions; e.g. <strong>Feature</strong> from [<cite><a class="bibref" data-link-type="biblio" href="#bib-neogeo" title="NeoGeo Vocabulary Specification">NeoGeo</a></cite>], described as “A geographical feature, capable of holding spatial relations”.</p> <div class="note" role="note" id="issue-container-generatedID-3"><div role="heading" class="note-title marker" id="h-note-0" aria-level="3"><span>Note</span></div><aside class=""> <p>A <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-7">Spatial Thing</a> may move. We must take care not to oversimplify our concept of <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-8">Spatial Thing</a> by assuming that it is equivalent to definitions such as <strong>Location</strong> (from [<cite><a class="bibref" data-link-type="biblio" href="#bib-dcterms" title="DCMI Metadata Terms">DCTERMS</a></cite>]) or <strong>Place</strong> (from [<cite><a class="bibref" data-link-type="biblio" href="#bib-schema-org" title="Schema.org">SCHEMA-ORG</a></cite>]), which are respectively described as “A spatial region or named place” and "Entities that have a somewhat fixed, physical extension".</p> </aside></div> <p>Looking more closely, it is important to note that <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-2">geometry</a> is typically a property of a <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-9">Spatial Thing</a>.</p> <aside class="example" id="ex-eddystone-geometry"><div class="marker"> <a class="self-link" href="#ex-eddystone-geometry">Example<bdi> 2</bdi></a><span class="example-title">: Eddystone Lighthouse geometry (encoded as GeoJSON [RFC7946])</span> </div> <pre aria-busy="false"><code class="hljs css">{ “geometry”: { <span class="hljs-string">"type"</span>: <span class="hljs-string">"Point"</span>, <span class="hljs-string">"coordinates"</span>: [-<span class="hljs-number">4.268</span>, <span class="hljs-number">50.184</span>] } }</code></pre> </aside> <p>In fact, this is only one <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-3">geometry</a> that may be used to describe Eddystone Lighthouse. Other geometries might include a 2D polygon that defines the footprint of the lighthouse in a horizontal plane and a 3D solid describing the volumetric shape of the lighthouse.</p> <p>Furthermore, these geometries may be subject to change due to, say, a resurvey of the lighthouse. In such a situation, the <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-4">geometry</a> object would be updated — but the <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-10">Spatial Thing</a> that we are talking about is still Eddystone Lighthouse. Following the best practices presented below, we use a HTTP URI to unambiguously identify Eddystone Lighthouse: <a href="https://www.trinityhouse.co.uk/lighthouses-and-lightvessels/eddystone-lighthouse"><code>https://www.trinityhouse.co.uk/lighthouses-and-lightvessels/eddystone-lighthouse</code></a>.</p> <div class="note" role="note" id="issue-container-generatedID-4"><div role="heading" class="note-title marker" id="h-note-1" aria-level="3"><span>Note</span></div><aside class=""> <p>In fact, there are many URIs in use for Eddystone Lighthouse. The one above is provided by the owners/operators of the lighthouse; others include <a href="https://www.wikidata.org/wiki/Q546122"><code>https://www.wikidata.org/wiki/Q546122</code></a> from <a href="https://www.wikidata.org/wiki/Wikidata:Main_Page">Wikidata</a>, <a href="https://dbpedia.org/page/Eddystone_Lighthouse"><code>http://dbpedia.org/resource/Eddystone_Lighthouse</code></a> from <a href="http://wiki.dbpedia.org/">DBPedia</a> and <a href="http://d-nb.info/gnd/1067162240"><code>http://d-nb.info/gnd/1067162240</code></a> from <a href="https://www.dnb.de/">Deutsche Nationalbibliothek</a>.</p> </aside></div> <p>We say that the <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-11">Spatial Thing</a> is disjoint from the <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-5">geometry</a> object. The <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-12">Spatial Thing</a>, Eddystone Lighthouse (<a href="https://www.trinityhouse.co.uk/lighthouses-and-lightvessels/eddystone-lighthouse"><code>https://www.trinityhouse.co.uk/lighthouses-and-lightvessels/eddystone-lighthouse</code></a>), is the “real world phenomenon” about which we want to state facts (such as the height of its light is 41 meters above sea level) and link to other real world phenomena (for example, that it is located at Eddystone Rocks, Cornwall; another <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-13">Spatial Thing</a> identified as <a href="http://sws.geonames.org/2650253/"><code>http://sws.geonames.org/2650253/</code></a> by <a href="http://www.geonames.org">GeoNames</a>).</p> <p>Sometimes <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-14">Spatial Things</a>, such as <a href="http://sws.geonames.org/2212709/">The Sahara</a>, have imprecisely defined locations. These are still considered to be <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-15">Spatial Things</a> as they have spatial <a href="#dfn-extent" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-extent-3">extent</a> — it's just that we can't define a crisp vector boundary for them because there's no consensus about where the edges are. In such cases, often a single point is given that provides the notional center-point of the Spatial Thing.</p> <div class="note" role="note" id="issue-container-generatedID-5"><div role="heading" class="note-title marker" id="h-note-2" aria-level="3"><span>Note</span></div><aside class=""> <p>Although we have borrowed the description of <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-16">Spatial Thing</a> from [<cite><a class="bibref" data-link-type="biblio" href="#bib-w3c-basic-geo" title="Basic Geo (WGS84 lat/long) Vocabulary">W3C-BASIC-GEO</a></cite>], the formal [<cite><a class="bibref" data-link-type="biblio" href="#bib-rdf-schema" title="RDF Schema 1.1">RDF-SCHEMA</a></cite>] definition of <a href="https://www.w3.org/2003/01/geo/wgs84_pos#SpatialThing"><code>w3cgeo:SpatialThing</code></a> doesn't quite suit our purpose as there is the potential for confusion about whether it is <em>disjoint</em> from <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-6">geometry</a>. The definition of <a href="http://www.opengis.net/ont/geosparql#Feature"><code>geosparql:Feature</code></a>, which is derived from the [<cite><a class="bibref" data-link-type="biblio" href="#bib-iso-19109" title="Geographic information -- Rules for application schema">ISO-19109</a></cite>] definition of <a href="#dfn-feature" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-feature-6">Feature</a>, is a better semantic fit for <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-17">Spatial Thing</a> as it is explicitly specified as being disjoint from <a href="http://www.opengis.net/ont/geosparql#Geometry"><code>geosparql:Geometry</code></a>.</p> <figure id="fig-the-main-classes-from-w3c-basic-geo-and-geosparql-compared-pseudo-uml-notation-the-red-arrow-indicates-disjoint-classes"> <img src="images/W3Cgeo.png" alt="Classes from the W3C Basic Geo model" style="width:30%"> <img src="images/GeoSPARQL.png" alt="Classes from the OGC GeoSPARQL model" style="width:60%"> <figcaption><a class="self-link" href="#fig-the-main-classes-from-w3c-basic-geo-and-geosparql-compared-pseudo-uml-notation-the-red-arrow-indicates-disjoint-classes">Figure <bdi class="figno">1</bdi></a> <span class="fig-title">The main classes from [<cite><a class="bibref" data-link-type="biblio" href="#bib-w3c-basic-geo" title="Basic Geo (WGS84 lat/long) Vocabulary">W3C-BASIC-GEO</a></cite>] and [<cite><a class="bibref" data-link-type="biblio" href="#bib-geosparql" title="GeoSPARQL - A Geographic Query Language for RDF Data">GeoSPARQL</a></cite>] compared — pseudo-UML notation. The red arrow indicates 'disjoint classes'. </span></figcaption> </figure> <p>First, the domain of <a href="https://www.w3.org/2003/01/geo/wgs84_pos#lat"><code>w3cgeo:lat</code></a>, <a href="https://www.w3.org/2003/01/geo/wgs84_pos#lon"><code>w3cgeo:lon</code></a> and <a href="https://www.w3.org/2003/01/geo/wgs84_pos#alt"><code>w3cgeo:alt</code></a> properties is <a href="https://www.w3.org/2003/01/geo/wgs84_pos#SpatialThing"><code>w3cgeo:SpatialThing</code></a>. While one could interpret these properties as mapping to a <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-7">geometry</a>, as <a href="https://www.ogc.org/standard/georss/">GeoRSS Simple</a> does, there isn't conclusive evidence that this is what was intended. Second, <a href="https://www.w3.org/2003/01/geo/wgs84_pos#Point"><code>w3cgeo:Point</code></a> is defined as a sub-class of <a href="https://www.w3.org/2003/01/geo/wgs84_pos#SpatialThing"><code>w3cgeo:SpatialThing</code></a>. As a result, we have inconsistency in how <a href="https://www.w3.org/2003/01/geo/wgs84_pos#SpatialThing"><code>w3cgeo:SpatialThing</code></a> may be interpreted. For example:</p> <ul> <li>Because a <a href="https://www.w3.org/2003/01/geo/wgs84_pos#SpatialThing"><code>w3cgeo:SpatialThing</code></a> has lat/lon, some people might equate <a href="https://www.w3.org/2003/01/geo/wgs84_pos#SpatialThing"><code>w3cgeo:SpatialThing</code></a> with <a href="http://www.opengis.net/ont/geosparql#Geometry"><code>geosparql:Geometry</code></a>;</li> <li>Because <a href="http://xmlns.com/foaf/0.1/Person"><code>foaf:Person</code></a> is defined as a sub-class of <a href="https://www.w3.org/2003/01/geo/wgs84_pos#SpatialThing"><code>w3cgeo:SpatialThing</code></a>, some other people find it natural to equate <a href="https://www.w3.org/2003/01/geo/wgs84_pos#SpatialThing"><code>w3cgeo:SpatialThing</code></a> with <a href="http://www.opengis.net/ont/geosparql#Feature"><code>geosparql:Feature</code></a></li> </ul> <p>So in summary, it's safer to say that our <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-18">Spatial Thing</a> equates to <a href="http://www.opengis.net/ont/geosparql#Feature"><code>geosparql:Feature</code></a>, and that it is <strong>not</strong> the same as <a href="https://www.w3.org/2003/01/geo/wgs84_pos#SpatialThing"><code>w3cgeo:SpatialThing</code></a>.</p> </aside></div> </section> <section id="coverages"><div class="header-wrapper"><h2 id="x8-coverages-describing-properties-that-vary-with-location-and-time"><bdi class="secno">8. </bdi>Coverages: describing properties that vary with location (and time)</h2><a class="self-link" href="#coverages" aria-label="Permalink for Section 8."></a></div> <p>Many aspects of <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-19">Spatial Things</a> can be described with single-valued, static properties, e.g. the location of buildings, roads, administrative districts, and so on. However, in some applications it is more useful to describe how values of a property vary over space and time, mathematically described by “fields”. Such descriptions are formalized as "<a href="#dfn-coverage" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-coverage-2">coverages</a>". </p> <p>So what is a <a href="#dfn-coverage" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-coverage-3">coverage</a>? As defined by [<cite><a class="bibref" data-link-type="biblio" href="#bib-iso-19123-1:2022" title="ISO 19123:2022 Geographic information — Schema for coverage geometry and functions — Part 1: Fundamentals">ISO-19123-1:2022</a></cite>], a coverage contains a set of values, each associated with one of the elements in an array of points or cells. It acts as a function to return values from its range for any direct position within its spatial, temporal or spatiotemporal domain. That is, the <code>domain</code> is the space and/or time over which the values of a property vary, with a <code>range</code> of those values. Examples include raster data, point clouds, meshes such as triangulated irregular networks, and polygon sets. Coverages are multi-dimensional, including examples like 1D sensor timeseries, 2D satellite images, 3D x/y/t image timeseries and x/y/z geophysical voxel data, and 4D x/y/z/t climate and ocean data. Coordinate axes of such coverages can have spatial, temporal, or any other meaning, and they can be combined freely for n-dimensional coverages.</p> <aside class="example" id="ex-cov-grid"><div class="marker"> <a class="self-link" href="#ex-cov-grid">Example<bdi> 3</bdi></a><span class="example-title">: grid examples</span> </div> <p>Some examples of coverages include:</p> <figure id="fig-a-regular-2-dimensional-grid"> <img src="images/cov-reggrid.png" alt="regular 2-dimensional grid" style="width:50%"> <figcaption><a class="self-link" href="#fig-a-regular-2-dimensional-grid">Figure <bdi class="figno">2</bdi></a> <span class="fig-title">A regular 2-dimensional grid.</span></figcaption> </figure> <figure id="fig-a-regular-3-dimensional-grid"> <img src="images/cov-reggrid-3d.png" alt="regular 3-dimensional grid" style="width:50%"> <figcaption><a class="self-link" href="#fig-a-regular-3-dimensional-grid">Figure <bdi class="figno">3</bdi></a> <span class="fig-title">A regular 3-dimensional grid.</span></figcaption> </figure> <figure id="fig-some-examples-of-2-dimensional-and-3-dimensional-irregular-grids"> <img src="images/cov-irregulargrids.png" alt="some irregular grids" style="width:50%"> <figcaption><a class="self-link" href="#fig-some-examples-of-2-dimensional-and-3-dimensional-irregular-grids">Figure <bdi class="figno">4</bdi></a> <span class="fig-title">Some examples of 2-dimensional and 3-dimensional irregular grids.</span></figcaption> </figure> <figure id="fig-a-digital-elevation-model-a-grid-of-data-elements-at-regular-geographic-intervals-and-at-prescribed-locations-each-grid-element-is-associated-with-an-elevation-value"> <img src="images/cov-dem.jpg" alt="digital elevation model" style="width:50%"> <figcaption><a class="self-link" href="#fig-a-digital-elevation-model-a-grid-of-data-elements-at-regular-geographic-intervals-and-at-prescribed-locations-each-grid-element-is-associated-with-an-elevation-value">Figure <bdi class="figno">5</bdi></a> <span class="fig-title">A digital elevation model: a grid of data elements at regular geographic intervals and at prescribed locations; each grid element is associated with an elevation value.</span></figcaption> </figure> </aside> <p>An example is a postal region divided into many postal code zones. Any position in the region will have a postcode, but interpolating between zones is nonsensical. The range of values of the coverage is discrete, rather than continuous. Another coverage of the same postal region could be, for each zone, the number of houses, or all their addresses, or even all their geometrical footprints as polygons.</p> <p>Another example is a satellite image or aerial photograph, using visible light, of an area of the earth. The boundary of the image encompasses the <code>domain</code> of the coverage, and the colour values in the image form the <code>range</code> of that coverage. Then for any position within the image or photograph, a colour can be assigned, possibly by interpolation between the adjacent pixels of the image. </p> <aside class="example" id="ex-cov-aer"><div class="marker"> <a class="self-link" href="#ex-cov-aer">Example<bdi> 4</bdi></a><span class="example-title">: aereal image</span> </div> <p>A satellite image of Amsterdam Central railway station</p> <figure id="fig-an-aereal-photograph"> <img src="images/cov-aerealimage.png" alt="aereal image" style="width:50%"> <figcaption><a class="self-link" href="#fig-an-aereal-photograph">Figure <bdi class="figno">6</bdi></a> <span class="fig-title">An aereal photograph</span></figcaption> </figure> </aside> <p>Another example is a point cloud: a set of points in three dimensional space with an optional set of supporting attributes such as intensity, color information, or time. </p> <aside class="example" id="ex-cov-pntcld"><div class="marker"> <a class="self-link" href="#ex-cov-pntcld">Example<bdi> 5</bdi></a><span class="example-title">: point cloud</span> </div> <p>The digital elevation map for the Netherlands contains detailed and precise height data for the entire country, with on average eight elevation measurements per square meter. </p> <figure id="fig-point-cloud-showing-the-prins-clausplein-a-complex-highway-intersection-the-points-are-assigned-a-colour-to-visualise-increasingly-high-elevation"> <img src="images/cov-pointcloud.png" alt="point cloud" style="width:50%"> <figcaption><a class="self-link" href="#fig-point-cloud-showing-the-prins-clausplein-a-complex-highway-intersection-the-points-are-assigned-a-colour-to-visualise-increasingly-high-elevation">Figure <bdi class="figno">7</bdi></a> <span class="fig-title">Point cloud showing the <a href="https://nl.wikipedia.org/wiki/Knooppunt_Prins_Clausplein">Prins Clausplein</a>, a complex highway intersection. The points are assigned a colour to visualise increasingly high elevation.</span></figcaption> </figure> </aside> <p>A grid of "voxels", 3-dimensional is another example. These are sometimes used, for example, for geophysical data.</p> <aside class="example" id="ex-cov-voxel"><div class="marker"> <a class="self-link" href="#ex-cov-voxel">Example<bdi> 6</bdi></a><span class="example-title">: voxel model</span> </div> <p>A voxel model using colour to show classes of stone in the near-surface underground. </p> <figure id="fig-geotop-voxel-model-a-3-dimensional-model-showing-the-dutch-underground-in-roughly-pizza-box-shaped-boxes-of-100-x-100-x-0-5-meters"> <img src="images/cov-voxels.png" alt="voxel model" style="width:50%"> <figcaption><a class="self-link" href="#fig-geotop-voxel-model-a-3-dimensional-model-showing-the-dutch-underground-in-roughly-pizza-box-shaped-boxes-of-100-x-100-x-0-5-meters">Figure <bdi class="figno">8</bdi></a> <span class="fig-title"><a href="https://basisregistratieondergrond.nl/inhoud-bro/registratieobjecten/modellen/geotop-gtm/">GeoTOP</a> voxel model: a 3-dimensional model showing the Dutch underground in (roughly pizza box shaped) boxes of 100 x 100 x 0,5 meters.</span></figcaption> </figure> </aside> <p>An example that is not just spatial is a weather forecast that maps points in space and time to values of temperature, wind speed, humidity and so forth. An even less spatial and more purely temporal example is a time series of observations from a river gauge which maps points/instants in time to water-flow values. </p> <p>So a coverage is a data structure with a method to map points in space and time to values of a property. One way to think of a coverage is as a mathematical function, where data values are a function of coordinates in space and time, but the values may not be just numbers but could be categories or even complex structures such as geometry objects.</p> <div class="note" role="note" id="issue-container-generatedID-6"><div role="heading" class="note-title marker" id="h-note-3" aria-level="3"><span>Note</span></div><aside class=""> <p>Sometimes you will hear the word “<a href="#dfn-coverage" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-coverage-4">coverage</a>” used synonymously with “gridded data” or “raster data”, as in a satellite image, but this is not really accurate. You can see from the above paragraphs that non-gridded data (like a river gauge measurement, or post codes) can also be presented as coverages. Nevertheless, you will often find a bias toward gridded data in discussions (and software) that concern coverages.</p> </aside></div> <p>Although the definition above presents a <a href="#dfn-coverage" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-coverage-5">coverage</a> as a data structure with a method, conceptually it still has spatial <a href="#dfn-extent" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-extent-4">extent</a> like any <a href="#dfn-feature" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-feature-7">feature</a>. For example, the distribution of rainfall measured by a weather radar can be thought of as a coverage — the spatial extent is defined by the limit of the weather radar's beam. Similarly, we might say in the hydrology example, where a river gauge measures water-flow values at regular sampling times, the spatial extent would be the monitoring point where the river gauge is positioned.</p> <p>We say that a <a href="#dfn-coverage" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-coverage-6">coverage</a> is really just a special type of <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-20">Spatial Thing</a> with some particular properties. Often, a coverage can be a property of another <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-21">Spatial Thing</a>; referring back to hydrology, a "river segment" may have a property “flow rate” that is expressed as a coverage.</p> <p><a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-22">Spatial Things</a> and <a href="#dfn-coverage" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-coverage-7">coverages</a> may be related in several ways:</p> <ul> <li>Information signals in coverages may be used to provide the evidence for the existence, location and type of Spatial Things; for example, within a geophysical borehole the variation in soil/rock type may be used to infer the presence of particular rock-units at underground locations.</li> <li>As the property value of a Spatial Thing whose value varies within the <a href="#dfn-extent" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-extent-5">extent</a> of that Spatial Thing; for example, the varying strength of mobile-network coverage throughout the UK.</li> <li>The values of a common property for a distributed set of Spatial Things provide a discrete sampling of a coverage; for example, the measurement of soil moisture based at a set of sampling stations can be compiled to show the spatial variation of soil moisture across the region where the sampling stations are located.</li> </ul> <p>A <a href="#dfn-coverage" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-coverage-8">coverage</a> can be defined using three main pieces of information:</p> <ul> <li>The <em>domain</em> of the coverage is the set of points in space and time for which we have data values. For example, in a river gauge measurement, the domain is the set of times at which the flow was measured. In a satellite image, the domain is the set of pixels. In a weather forecast, the domain is a set of grid cells, which may be for multiple times.</li> <li>The <em>range</em> of the coverage is the set of measured, simulated or observed data values. A single coverage may record values for lots of different quantities; for example, a weather forecast predicts values for many things (temperature, humidity etc.) on the same domain. So the range of a coverage often consists of several lists of data values, one for each measured variable. Each element within each list corresponds with one of the positions of the domain (e.g. a pixel or grid cell).</li> <li>The <em>range metadata</em> describes the range of the coverage, to help users to understand what the data values mean. This may include <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-1">links</a> to definitions of variables, units of measure and other pieces of useful information, such as whether the values are actually measured or have been interpolated from surrounding values.</li> </ul> <p>Usually, the most complex piece of information in the <a href="#dfn-coverage" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-coverage-9">coverage</a> is the definition of the domain. This can vary quite widely as the examples above show. For this reason, coverages are often defined by the spatiotemporal <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-8">geometry</a> of their domain. You will hear people talking about “multidimensional grid coverages” or “time-series coverages” or “vertical profile coverages” for example.</p> </section> <section id="spatial-relations"><div class="header-wrapper"><h2 id="x9-spatial-relations"><bdi class="secno">9. </bdi>Spatial relations</h2><a class="self-link" href="#spatial-relations" aria-label="Permalink for Section 9."></a></div> <p>A <a href="#dfn-spatial-relation" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-relation-2">spatial relation</a> specifies how an object is located in space in relation to a reference object. Commonly used types of spatial relations are: topological, directional and distance relations.</p> <ul> <li><em>Topological relations</em> describe the relationships between geometric objects that are invariant to rotation, translation and scaling. As such, topological relations can support qualitative spatial reasoning without reference to the <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-9">geometries</a> themselves; for example, to assert that object A touches object B. These relations, also known as “spatial predicates”, include concepts such as: equals, disjoint, intersects, touches, within, contains, overlaps and crosses.</li> <li><em>Directional relations</em> specify the relative direction between object and reference. Examples include: left, in front of and astern.</li> <li><em>Distance relations</em> specify how far the object is from the reference object. Examples include: at, nearby and far away.</li> </ul> </section> <section id="CRS-background"><div class="header-wrapper"><h2 id="x10-coordinate-reference-systems-crs"><bdi class="secno">10. </bdi>Coordinate Reference Systems (CRS)</h2><a class="self-link" href="#CRS-background" aria-label="Permalink for Section 10."></a></div> <p>One of the most fundamental aspects of publishing <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-29">spatial data</a>, data about location, is how to express and share the location in a consistent way. In many cases where you are publishing data for use by the wider Web community the use of <a href="#dfn-latitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-latitude-1">latitude</a> and <a href="#dfn-longitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-longitude-1">longitude</a> coordinates (Lat and Long) is most appropriate. As latitude and longitude coordinates are global they are well suited to many applications: perfect for locating your favorite coffee shop, <a href="#dfn-geocoding" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geocoding-2">geocoding</a> a photograph or capturing an augmented reality Pokemon hiding in your local park.</p> <p>Users of <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-30">spatial data</a> are often interested in the third <a href="#dfn-dimension" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-dimension-1">dimension</a> too: vertical elevation (or altitude). For most situations, we can consider elevation to be the vertical distance above (or below) mean sea level. The elevation is most often expressed in meters (but this can vary between <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-2">CRS</a> definitions) and is provided as a third value in a coordinate position.</p> <p>As with everything to do with <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-31">spatial data</a>, things can get more complicated. One of the most common problems occurs because not all <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-3">Coordinate Reference Systems</a> (CRS) agree on how to express <a href="#dfn-latitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-latitude-2">latitude</a> and <a href="#dfn-longitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-longitude-2">longitude</a> coordinates. Some CRS order the coordinates <em>Lat/Long</em> while others use <em>Long/Lat</em>; some use <em>decimal degrees</em> while others use <em>degrees, minutes and seconds</em> (<em>dms</em>). <a href="#dfn-axis-order" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-axis-order-1">Axis order</a> mistakes can mean the difference between, say, a position in the Netherlands or somewhere in Somalia, while encoding coordinates in <em>decimal degrees</em> when <em>dms</em> is expected can lead to positional errors on the kilometer scale. </p> <p>Therefore, it is very important to provide explicit information to your users about how coordinates are encoded. For example, this snippet of results from the <a href="https://developers.google.com/maps/documentation/geocoding/overview">Google Geocoding <abbr title="Application Programming Interface">API</abbr></a> makes explicit which is the <a href="#dfn-latitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-latitude-3">latitude</a> and which is the <a href="#dfn-longitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-longitude-3">longitude</a> coordinate. </p> <aside class="example" id="ex-google-geocoding-api"><div class="marker"> <a class="self-link" href="#ex-google-geocoding-api">Example<bdi> 7</bdi></a><span class="example-title">: A Google Geocoding API result snippet</span> </div> <pre aria-busy="false"><code class="hljs css">"formatted_address" : <span class="hljs-string">"1600 Amphitheatre Parkway, Mountain View, CA 94043, USA"</span>, <span class="hljs-string">"geometry"</span> : { <span class="hljs-string">"location"</span> : { <span class="hljs-string">"lat"</span> : <span class="hljs-number">37.42248</span>, <span class="hljs-string">"lng"</span> : -<span class="hljs-number">122.08425</span> }, "location_type" : <span class="hljs-string">"ROOFTOP"</span>, <span class="hljs-string">"viewport"</span> : { <span class="hljs-string">"northeast"</span> : { <span class="hljs-string">"lat"</span> : <span class="hljs-number">37.42382</span>, <span class="hljs-string">"lng"</span> : -<span class="hljs-number">122.082901</span> }, "southwest" : { <span class="hljs-string">"lat"</span> : <span class="hljs-number">37.42113</span>, <span class="hljs-string">"lng"</span> : -<span class="hljs-number">122.08560</span> } } },</code></pre> </aside> <p>Other mechanisms include using a data format that specifies how the coordinates are included (such as GeoJSON [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7946" title="The GeoJSON Format">RFC7946</a></cite>] where section <a href="https://datatracker.ietf.org/doc/html/rfc7946#section-4">4. Coordinate Reference System</a> specifies coordinate order of <a href="#dfn-longitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-longitude-4">longitude</a> and <a href="#dfn-latitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-latitude-4">latitude</a> using units of decimal degrees) or by having your data explicitly reference the <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-4">CRS</a> definition you're using. See <a href="#bp-crs" class="practiceRef">Best Practice 8: State how coordinate values are encoded</a> for more information.</p> <p>Now let's get a little more technical and discuss coordinate reference systems themselves.</p> <p><a href="#dfn-latitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-latitude-5">Latitude</a>, <a href="#dfn-longitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-longitude-5">longitude</a> and elevation measurements express a position on the surface of the Earth. But to define this position we need to state where we are making the measurements from (e.g. the equator, the prime meridian and the approximated surface of the Earth, or <a href="#dfn-geoid" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geoid-1">geoid</a>) and consider the shape of the earth (a flattened sphere with lumps and bumps, but for convenient mathematical operations, usually approximated to an <a href="#dfn-ellipsoid" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-ellipsoid-1">ellipsoid</a>). This information is used to define the geodetic <a href="#dfn-datum" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-datum-1">datum</a> which provides the basis of every <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-5">coordinate reference system</a>.</p> <p>Where your <a href="#dfn-geographic-information" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geographic-information-3">geospatial data</a> has <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-10">geometries</a> defined as points, lines, and polygons (i.e. <em>vector</em> data), publishing in the <a href="https://en.wikipedia.org/wiki/World_Geodetic_System">World Geodetic System 1984</a> (<strong>WGS 84</strong>) Coordinate Reference System will help people to integrate data with mass-market Web applications, tools and libraries, thereby increasing the usefulness of that data for a large community of potential users. Also, since WGS 84 is also used by the GPS system, it's handy for all those mobile Apps!</p> <p>Most people can stop reading now, but of course, there are cases where WGS 84 is not appropriate — for example, when working with geo-referenced imagery.</p> <p>In many parts of the world location data has been collected using local coordinate systems that are specific to particular countries or regions. These local coordinate systems may use projected measurements defined on a flat, two-dimensional surface (which are easier to use for calculating distances than angular measurements and are essential when making topographic maps).</p> <div class="note" role="note" id="issue-container-generatedID-7"><div role="heading" class="note-title marker" id="h-note-4" aria-level="3"><span>Note</span></div><aside class=""> <p>Users of <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-32">spatial data</a> should be aware that projected coordinate systems distort distances and angular measurements and accordingly affect how <a href="https://thetruesize.com/">the true size</a> of countries and other large-scale entities is perceived. CNN explore some of the challenges relating to <a href="#dfn-map-projection" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-map-projection-1">map projections</a> in their article <a href="https://edition.cnn.com/2016/08/18/africa/real-size-of-africa/">What's the real size of Africa?</a>.</p> </aside></div> <p>So, it may be that you have information in a <a href="#dfn-projected-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-projected-crs-1">projected CRS</a>, rather than global <a href="#dfn-latitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-latitude-6">latitude</a> and <a href="#dfn-longitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-longitude-6">longitude</a> — what should you do? You can publish data 'as is' in one of these many projected CRS, but you need to tell users which particular <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-6">CRS</a> is being used. A good directory of Coordinate Reference Systems is maintained by the International Association of Oil and Gas Producers: the <a href="https://epsg.org/">EPSG Geodetic Parameter Dataset</a>. </p> <div class="note" role="note" id="issue-container-generatedID-8"><div role="heading" class="note-title marker" id="h-note-5" aria-level="3"><span>Note</span></div><aside class=""> <p>It is common for a <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-7">CRS</a> to be described by its EPSG code. For example, 2-dimensional WGS 84 (Lat/Long) is <a href="https://epsg.org/crs_4326/WGS-84.html">EPSG:4326</a>, 3-dimensional WGS 84 (Lat/Long/Elevation) <a href="https://epsg.org/crs_4979/WGS-84.html">EPSG:4979</a> and OSGB 1936 / British National Grid (a national projected CRS, based on the OSGB 1936 <a href="#dfn-datum" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-datum-2">datum</a>) is <a href="https://epsg.org/crs_27700/OSGB-1936-British-National-Grid.html">EPSG:27700</a>.</p> <p>The authoritative source of <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-8">CRS</a> definitions is the <a href="https://epsg.org/">EPSG registry</a>. Those definitions are also available from the <a href="http://www.opengis.net/def/crs/">Open Geospatial Consortium CRS Register</a>. Other Web services like <a href="https://spatialreference.org/">Spatial Reference</a> and <a href="https://epsg.io/">EPSG.io</a> also provide definitions as used in popular software, but those definitions — especially the ones published in <a href="#dfn-well-known-text" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-well-known-text-1">Well Known Text</a> (WKT) version 1 format — sometime differ from official EPSG definitions in <a href="#dfn-axis-order" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-axis-order-2">axis order</a> and units of measurement.</p> </aside></div> <p>You can re-project your coordinates to WGS 84 using many available tools online. So, for example, the location at <code>516076, 170953</code> in British National Grid (<a href="https://epsg.org/crs_27700/OSGB-1936-British-National-Grid.html">EPSG:27700</a>) coordinates is <code>-0.331841, 51.425708</code> in WGS 84 Long/Lat. This conversion is a useful step as it makes your data more accessible to global users. So, if you can do so, it is helpful to publish data in both local (projected) and global coordinates.</p> <p>However, given that satellite imagery is comprised of data pixels projected onto a flat surface (i.e. <em>raster</em> data), it is commonplace for raster-type <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-33">spatial data</a> to be expressed in a <a href="#dfn-projected-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-projected-crs-2">projected coordinate reference system</a> to avoid the unnecessary (and potentially costly) conversion of pixel positions to angular measurements. Web-Mercator (<a href="https://epsg.org/crs_3857/WGS-84-Pseudo-Mercator.html">EPSG:3857</a>), a global <a href="#dfn-projected-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-projected-crs-3">projected CRS</a>, is used in the majority of Web-mapping applications and has therefore become the de facto Web-standard <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-9">CRS</a> for publishing raster data.</p> <p>Re-projecting to a better-known <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-10">CRS</a> is often a necessary step if you are publishing data in the form of engineering or Computer Aided Design (CAD) drawings of a new building or road layout for example. Usually these drawings are made using a very local coordinate reference system for the site itself, so the data will need to be reprojected to “fit” with existing data.</p> <p>So, we are now at the point where almost everyone publishing <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-34">spatial data</a> on the Web can stop reading. But for those with specific requirements concerning high-precision locations, there are a few more topics that need to be mentioned.</p> <p>If you need to be able to measure in terms of a few centimeters or less then things are more complicated. With this level of precision required, you need to consider a more sophisticated model of the shape of the Earth and consider plate tectonics. </p> <p>For these more complex use cases other reference systems with alternative geodetic datums are used. The geodetic <a href="#dfn-datum" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-datum-3">datum</a> can be thought of as the model of the Earth's surface over which the <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-11">coordinate reference system</a> is applied. Different datums use different models for the precise <em>shape</em> and <em>size</em> of the Earth to provide more accurate horizontal or vertical measurements at different positions on the globe (because depending on your location, different <a href="#dfn-ellipsoid" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-ellipsoid-2">ellipsoids</a> will provide a better approximation of the local Earth's surface — but this is at the expense of a poorer match elsewhere).</p> <p>While WGS 84 provides a <em>reasonable</em> fit at all points on the Earth's surface, many other datums are defined for improved fit within a regional or national area. For example, in Europe a system called ETRS89 (<a href="https://epsg.org/crs_4258/ETRS89.html">EPSG:4258</a>) can be used instead of WGS 84, while in North America a similar system called NAD-83 (<a href="https://epsg.org/crs_4269/NAD83.html">EPSG:4269</a>) is used. So, it might be that you have measurements made using these reference systems. Here the best practice is once more to be explicit in describing the <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-12">CRS</a> used, but also to be careful re-projecting to different systems as required accuracy may be lost.</p> <p>Finally, another issue is that points on the surface of the earth are actually moving relative to the coordinate system, due to geologic processes. You may think this is of interest only to geologists, but when I tell you that Australia has moved around 1.5m since the framework was last reset 20 years ago, and remind you that we are entering the age of self-driving cars, then you will probably think again. Re-calculating the datum from time to time, or maybe continuously such as in the case of the dynamic New Zealand Geodetic Datum (NZGD2000), really does matter for some applications. See <a href="#bp-crs-choice" class="practiceRef">Best Practice 7: Choose coordinate reference systems to suit your user's applications</a> for more information.</p> <div class="note" role="note" id="issue-container-generatedID-9"><div role="heading" class="note-title marker" id="h-note-6" aria-level="3"><span>Note</span></div><aside class=""> <p>Detailed discussion of <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-13">coordinate reference system</a> definitions themselves is beyond the scope of this best practice document. Should this topic be of interest, please refer to specialist documentation such as [<cite><a class="bibref" data-link-type="biblio" href="#bib-ogc-topic-2" title="OGC Abstract Specification Topic 2 - Spatial referencing by coordinates">OGC-TOPIC-2</a></cite>] / [<cite><a class="bibref" data-link-type="biblio" href="#bib-iso-19111" title="Geographic information -- Spatial referencing by coordinates">ISO-19111</a></cite>].</p> </aside></div> </section> <section id="linked-data"><div class="header-wrapper"><h2 id="x11-linked-data"><bdi class="secno">11. </bdi>Linked Data</h2><a class="self-link" href="#linked-data" aria-label="Permalink for Section 11."></a></div> <p>The term ‘<a href="#dfn-linked-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-linked-data-2">Linked Data</a>’ refers to an approach to publishing data that puts linking at the heart of the notion of data, and uses the linking technologies provided by the Web to enable the weaving of a globally distributed database. By identifying real-world entities — be they Web resources, physical objects such as the Eiffel Tower, or even more abstract things such as relations or concepts — with URLs, data can be published and linked in the same way Web pages can [<cite><a class="bibref" data-link-type="biblio" href="#bib-ldp-primer" title="Linked Data Platform 1.0 Primer">LDP-PRIMER</a></cite>].</p> <p>The 5-star scheme at <a href="https://5stardata.info">5 Star Data</a> states:</p> <p style="text-indent:80px">★ make your stuff available on the Web (whatever format) under an open license</p> <p style="text-indent:65px">★★ make it available as structured data (e.g., Excel instead of an image scan of a table)</p> <p style="text-indent:50px">★★★ make it available in a non-proprietary open format (e.g., CSV as well as Excel)</p> <p style="text-indent:35px">★★★★ use URIs to denote things, so that people can point at your stuff</p> <p style="text-indent:20px">★★★★★ link your data to other data to provide context</p> <p>We think that the concept of <a href="#dfn-linked-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-linked-data-3">Linked Data</a> is fundamental to the publishing of spatial data on the Web: it is the <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-2">links</a> that connect data together that are the foundational to the Web of data.</p> <p>These best practices promote a Linked Data approach.</p> <p>Sources such as the Best Practices for Publishing Linked Data [<cite><a class="bibref" data-link-type="biblio" href="#bib-ld-bp" title="Best Practices for Publishing Linked Data">LD-BP</a></cite>] assert a strong association between <a href="#dfn-linked-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-linked-data-4">Linked Data</a> and the <a href="#dfn-resource-description-framework" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-resource-description-framework-1">Resource Description Framework</a> (RDF) [<cite><a class="bibref" data-link-type="biblio" href="#bib-rdf11-primer" title="RDF 1.1 Primer">RDF11-PRIMER</a></cite>]. Yet we believe that Linked Data requires only that the formats used to publish data support Web linking (see [<cite><a class="bibref" data-link-type="biblio" href="#bib-webarch" title="Architecture of the World Wide Web, Volume One">WEBARCH</a></cite>] <a href="https://www.w3.org/TR/webarch/#hypertext">section 4.4 Hypertext</a>). <a href="https://5stardata.info">5 Star Data</a> (based on [<cite><a class="bibref" data-link-type="biblio" href="#bib-5star-lod" title="Is your Linked Open Data 5 Star?">5STAR-LOD</a></cite>]) asserts only that data formats are open and non-proprietary (★★★); and infers the need for data formats to support the use of URIs as identifiers (★★★★) and Web linking (★★★★★).</p> <p>In fact, our approach to <a href="#dfn-linked-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-linked-data-5">linked data</a> is well described by an alternative 5-star scheme from [<cite><a class="bibref" data-link-type="biblio" href="#bib-web-data" title="Web Data">WEB-DATA</a></cite>]:</p> <p style="text-indent:80px"><span style="color:grey">★ <strong>Linkable</strong></span>: use stable and discoverable global identifiers</p> <p style="text-indent:65px"><span style="color:grey">★★ <strong>Parseable</strong></span>: use standardized data metamodels such as <a href="#dfn-csv" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-csv-2">CSV</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc4180" title="Common Format and MIME Type for Comma-Separated Values (CSV) Files">RFC4180</a></cite>], <a href="#dfn-extensible-markup-language" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-extensible-markup-language-1">XML</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-xml11" title="Extensible Markup Language (XML) 1.1 (Second Edition)">XML11</a></cite>], <a href="#dfn-resource-description-framework" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-resource-description-framework-2">RDF</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-rdf11-primer" title="RDF 1.1 Primer">RDF11-PRIMER</a></cite>], or <a href="#dfn-javascript-object-notation" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-javascript-object-notation-1">JSON</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7159" title="The JavaScript Object Notation (JSON) Data Interchange Format">RFC7159</a></cite>].</p> <p style="text-indent:50px"><span style="color:grey">★★★ <strong>Understandable</strong></span>: use well-known or at least well-documented vocabularies/schemas</p> <p style="text-indent:35px"><span style="color:grey">★★★★ <strong>Linked</strong></span>: link to other resources whenever possible</p> <p style="text-indent:20px"><span style="color:grey">★★★★★ <strong>Usable</strong></span>: label your document with a license</p> <p>Within this document, we include examples that use <a href="#dfn-resource-description-framework" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-resource-description-framework-3">RDF</a> and related technologies such as <a href="#dfn-triple-store" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-triple-store-2">triple stores</a> and <a href="#dfn-sparql" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-sparql-1">SPARQL</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-sparql11-overview" title="SPARQL 1.1 Overview">SPARQL11-OVERVIEW</a></cite>] because we see evidence of its use in real world applications that support <a href="#dfn-linked-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-linked-data-6">Linked Data</a>. However, we must make clear to readers that there is no requirement for all publishers of <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-35">spatial data</a> on the Web to embrace the wider suite of technologies associated with the <a href="#dfn-semantic-web" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-semantic-web-1">Semantic Web</a>; we recognize that in many cases, a Web developer has little or no interest in the toolchains associated with Semantic Web due to its addition of complexity to any Web-centric solution.</p> <p>Although we think that <a href="#dfn-linked-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-linked-data-7">Linked Data</a> need not necessarily require the use of <a href="#dfn-resource-description-framework" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-resource-description-framework-4">RDF</a>, it is probably the most common representation. We note that [<cite><a class="bibref" data-link-type="biblio" href="#bib-json-ld" title="JSON-LD 1.0">JSON-LD</a></cite>] provides a bridge between those worlds by defining a data format that is compatible with RDF but relies on standard <a href="#dfn-javascript-object-notation" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-javascript-object-notation-2">JSON</a> tooling.</p> <p>Furthermore, as the examples in this document illustrate, we often see a ‘hybrid’ approach being used in real-world applications; using <a href="#dfn-resource-description-framework" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-resource-description-framework-5">RDF</a> to work with graphs of information that interlink resources, while relying for performance reasons on other technologies to query and process the spatial aspects of that information.</p> </section> <section id="why-are-traditional-sdi-not-enough"><div class="header-wrapper"><h2 id="x12-why-are-traditional-spatial-data-infrastructures-not-enough"><bdi class="secno">12. </bdi>Why are traditional Spatial Data Infrastructures not enough?</h2><a class="self-link" href="#why-are-traditional-sdi-not-enough" aria-label="Permalink for Section 12."></a></div> <p>Finding, accessing and using data disseminated through <a href="#dfn-sdi" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-sdi-5">spatial data infrastructures</a> (<abbr title="Spatial Data Infrastructure">SDI</abbr>) based on <abbr title="Open Geospatial Consortium">OGC</abbr> Web services is difficult for non-expert users. There are several reasons, including:</p> <ul> <li>In <a href="#dfn-sdi" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-sdi-6">spatial data infrastructures</a>, catalog services are intended to be used for discovering spatial assets, not the general-purpose search engines of the Web. <abbr title="Open Geospatial Consortium">OGC</abbr> Web services do not address indexing of their content by those search engines.</li> <li>By design, the catalog services only provide access to metadata — and in general metadata that is focused on the needs of expert users — not the data itself.</li> <li>Users cannot just “follow <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-3">links</a>” to access data, it is typically necessary to construct some kind of query to access data. Often these queries are complex to define, requiring in depth knowledge of both data structure and domain-specific query language.</li> <li>In addition, it is often difficult for non-expert users to understand and use the data. Part of this are domain-specific complexities that are difficult for non-experts (e.g., handling of coordinates in different <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-14">coordinate reference systems</a>), but hard to avoid entirely. But the datasets often address the requirements of expert communities with diverse needs, resulting in comprehensive, but complex specifications that cover many edge cases, too. And the data is typically available in formats that are not easy to process for non-expert users.</li> </ul> <p>However, <a href="#dfn-sdi" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-sdi-7">spatial data infrastructures</a> are a key component of the broader <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-36">spatial data</a> ecosystem. Such infrastructures typically include policies, workflows and tools related to the management and curation of spatial datasets, and provide mechanisms to support the rich set of capabilities required by the expert community. Our goal is to help spatial data publishers build on these foundations to enable the spatial data from <a href="#dfn-sdi" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-sdi-8">SDIs</a> to be fully integrated with the Web of data.</p> <p>When your starting point is a <a href="#dfn-sdi" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-sdi-9">spatial data infrastructure</a>, you should at least read the following best practices. These provide the most important extra steps that should be taken to bring <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-37">spatial data</a> from <a href="#dfn-sdi" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-sdi-10">spatial data infrastructures</a> to the Web: </p> <ul> <li><a href="#globally-unique-ids" class="practiceRef">Best Practice 1: Use globally unique persistent HTTP URIs for Spatial Things</a></li> <li><a href="#indexable-by-search-engines" class="practiceRef">Best Practice 2: Make your spatial data indexable by search engines</a></li> <li><a href="#linking" class="practiceRef">Best Practice 3: Link resources together to create the Web of data</a></li> <li><a href="#convenience-apis" class="practiceRef">Best Practice 13: Expose spatial data through 'convenience <abbr title="Application Programming Interfaces">APIs</abbr>'</a></li> </ul> <p>The rest of the best practices provide more detail on specific aspects of publishing <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-38">spatial data</a> on the Web, such as metadata, <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-11">geometries</a>, <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-15">CRS</a> information, versioned data, and so on.</p> </section> <section id="bestPractices"><div class="header-wrapper"><h2 id="x13-the-best-practices"><bdi class="secno">13. </bdi>The Best Practices</h2><a class="self-link" href="#bestPractices" aria-label="Permalink for Section 13."></a></div> <div class="issue closed" id="issue-container-number-1146"><div role="heading" class="issue-title marker" id="h-issue" aria-level="3"><a href="https://github.com/w3c/sdw/issues/1146"><span class="issue-number">Issue 1146</span></a><span class="issue-label">: Should the best practices mention ethical use of geo, and if so how? <a class="respec-gh-label" style="background-color: rgb(251, 202, 4); color: rgb(0, 0, 0);" href="https://github.com/w3c/sdw/issues/?q=is%3Aissue+is%3Aopen+label%3A%22bp%22" aria-label="GitHub label: bp">bp</a><a class="respec-gh-label" style="background-color: rgb(194, 224, 198); color: rgb(0, 0, 0);" href="https://github.com/w3c/sdw/issues/?q=is%3Aissue+is%3Aopen+label%3A%22webvmt%22" aria-label="GitHub label: webvmt">webvmt</a></span></div><p dir="auto">Raised during discussion of WebVMT at OGC Toulouse TC with <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rjksmith/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rjksmith">@rjksmith</a></p> <p dir="auto">WebVMT files provide map presentation and annotation synchronised to video content, including animation support, and more generally any form of geolocation data that is time-aligned with audio or video content.</p> <p dir="auto">This creates a potential issue of facial recognition combined with geospatial information knowing exactly who and where someone is. Therefore should the best practices talk about how geo should be integrated into the web in an ethical way?</p></div> <section id="bp-webprinciples"><div class="header-wrapper"><h3 id="x13-1-web-principles-for-spatial-data"><bdi class="secno">13.1 </bdi>Web principles for spatial data</h3><a class="self-link" href="#bp-webprinciples" aria-label="Permalink for Section 13.1"></a></div> <p><a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-39">Spatial data</a>, like any other data, should be published on the Web. By this we mean more than providing spatial data file downloads or services; for data to be <em>on the Web</em>, the resources it describes need to be identified using HTTP URIs, be published in such a way that they are indexable by search engines, and be connected, or linked, to other resources. This makes the data easy to find and easy to access for non-specialist users: the spatial data becomes integrated within the wider Web of data. </p> <section id="bp-identifiers"><div class="header-wrapper"><h4 id="x13-1-1-spatial-data-identifiers"><bdi class="secno">13.1.1 </bdi>Spatial data identifiers</h4><a class="self-link" href="#bp-identifiers" aria-label="Permalink for Section 13.1.1"></a></div> <p>As a first step in publishing your <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-40">spatial data</a> on the Web, you should assign a URI to each of your datasets (see [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#UniqueIdentifiers">Best Practice 9: Use persistent URIs as identifiers of datasets</a>).</p> <div class="note" role="note" id="issue-container-generatedID-10"><div role="heading" class="note-title marker" id="h-note-7" aria-level="5"><span>Note</span></div><aside class=""> <p>Deciding whether your <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-41">spatial data</a> is a single dataset or not is somewhat arbitrary. To decide this, it is often useful to consider attributes such as the license under which the data will be made available, the refresh or publication schedules, the quality of the data and the governance regime applied in managing the data. Typically, all of these attributes should be consistent within a single dataset.</p> <p>[<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-dcat-2" title="Data Catalog Vocabulary (DCAT) - Version 2">VOCAB-DCAT-2</a></cite>] provides a useful definition of the dataset that supports this approach: “A collection of data, published or curated by a single agent, and available for access or download in one or more representations.”</p> </aside></div> <p>However, we need to look inside the datasets at the resources described within your data. If you want these resources to be visible within the Web’s information space, by which we mean that others can refer to or talk about those resources, then they must also be assigned URIs (see [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#identifiersWithinDatasets">Best Practice 10: Use persistent URIs as identifiers within datasets</a>). These URIs are like 'Web-scale foreign keys' that enable information from different sources to be stitched together.</p> <p>The primary topics of any spatial dataset are <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-23">Spatial Things</a> — anything from physical things like people, places, and post boxes to abstractions such as administrative areas. Each <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-24">Spatial Thing</a> will be described by a set of attributes and usually at least one <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-12">geometry</a>. How your <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-42">spatial data</a> is structured will depend on the vocabulary or data model you use (see <a href="#bp-expressing-spatial" class="sectionRef sec-ref"><bdi class="secno">13.2.1 </bdi>Spatial data encoding</a> for further details on vocabulary choice). This will determine the types of entities that, along with the <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-25">Spatial Things</a> themselves, are important enough to be given identifiers so that statements can be made about them. Geometry objects are an example of an entity that is often assigned a unique identifier so that they can be referenced or reused.</p> <p>Given the widespread use of the Hyper Text Transfer Protocol (HTTP) on the Web, we <em class="rfc2119">SHOULD</em> use HTTP URIs to identify resources in <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-43">spatial data</a>.</p> <p>This is a fundamentally different approach to that of typical data publication today — where the dataset is (often) globally identified, but individual <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-26">Spatial Things</a> ( "<a href="#dfn-feature" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-feature-8">features</a>" in <a href="#dfn-sdi" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-sdi-11"><abbr title="Spatial Data Infrastructure">SDI</abbr></a> parlance), are assigned local identifiers which may, or may not, be persistent.</p> <div class="note" role="note" id="issue-container-generatedID-11"><div role="heading" class="note-title marker" id="h-note-8" aria-level="5"><span>Note</span></div><aside class=""> <p>We consider identifiers in the Web’s information space to be unaffected by the choice to serve HTTP content securely or not. For example, <code>http://example.org/country/suriname</code> and <code>https://example.org/country/suriname</code> both identify the same <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-27">Spatial Thing</a> — in this case the South American country of Suriname.</p> </aside></div> </section> <div class="practicecontainer"> <div class="practice advisement"><a class="marker self-link" href="#globally-unique-ids"><bdi lang="en">Best Practice 1</bdi></a>: <span id="globally-unique-ids" class="practicelab">Use globally unique persistent HTTP URIs for Spatial Things</span> <p></p> <p class="practicedesc">Use stable HTTP URIs to identify Spatial Things, re-using commonly used URIs where they exist and it is appropriate to do so.</p> </div> <section class="axioms"> <div class="header-wrapper"><h4 class="subhead" id="why">Why</h4><a class="self-link" href="#why" aria-label="Permalink for this Section"></a></div> <p>To publish <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-44">spatial data</a> on the Web, we need to stitch the <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-28">Spatial Things</a> and their corresponding entities into the Web’s information space; contributing to the <em>Web of data</em>. First: [<cite><a class="bibref" data-link-type="biblio" href="#bib-webarch" title="Architecture of the World Wide Web, Volume One">WEBARCH</a></cite>] <a href="https://www.w3.org/TR/webarch/#p38">Good Practice: Identify with URIs</a> states that "agents should provide URIs as identifiers for resources". Second: the <a href="https://5stardata.info">5 Star Data scheme</a> states: "★★★★ use URIs to denote things, so that people can point at your stuff".</p> <p>Resources identified with HTTP URIs can be specified as the target of <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-4">links</a> within the Web’s global information space, enabling information to be related, combined and referred to. This is the fundamental basis of 5★ Linked Data: "★★★★★ link your data to other data to provide context".</p> <p>The HTTP URIs used to identify <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-29">Spatial Things</a> need to be stable or persistent so that relationships that link them to other resources don’t break.</p> </section> <section class="outcome"> <div class="header-wrapper"><h4 class="subhead" id="intended-outcome">Intended Outcome</h4><a class="self-link" href="#intended-outcome" aria-label="Permalink for this Section"></a></div> <p>Spatial Things become part of the Web’s global information space enabling them to be linked with other <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-30">Spatial Things</a> and other resources and for those <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-5">links</a> to be durable. In other words, <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-45">spatial data</a> becomes part of the Web of Data.</p> <p>Your data is more findable.</p> </section> <section class="how"> <div class="header-wrapper"><h4 class="subhead" id="possible-approach-to-implementation">Possible Approach to Implementation</h4><a class="self-link" href="#possible-approach-to-implementation" aria-label="Permalink for this Section"></a></div> <p>[<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#identifiersWithinDatasets">Best Practice 10: Use persistent URIs as identifiers within datasets</a> provides directly applicable guidance when identifying resources. It advises:</p> <ol> <li>Seek and reuse existing URIs, ensuring that the URIs are persistent and they are published by a trusted group or organization; or</li> <li>Create your own persistent URIs.</li> </ol> <p>However, we need to look a little more closely at how and where to apply that guidance.</p> <p>The Web of data is made up of <em>subjects</em> and <em>objects</em>; the things we talk about and the things we refer to. For example, we could say that <strong>Anne Frank's House</strong> (the <em>subject</em>) is within <strong>the Municipality of Amsterdam</strong> (the <em>object</em>). In <a href="#dfn-resource-description-framework" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-resource-description-framework-6">RDF</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-rdf11-primer" title="RDF 1.1 Primer">RDF11-PRIMER</a></cite>], this looks like:</p> <p><code><</code><a href="https://g.co/kg/m/02s5hd"><code>https://g.co/kg/m/02s5hd</code></a><code>></code> <a href="https://schema.org/containedInPlace"><code>schema:containedInPlace</code></a> <code><</code><a href="http://sws.geonames.org/2759793/"><code>http://sws.geonames.org/2759793/</code></a><code>></code> <code>.</code></p> <p>When considering HTTP URIs for <em>objects</em> (e.g. the target of our hyperlinks) it makes sense to reuse existing identifiers. After all, you <em>are</em> trying to stitch your <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-46">spatial data</a> into the Web so that we can "link your data to other data" and achieve a ★★★★★ rating! Organizations such as <a href="http://wiki.dbpedia.org/">DBPedia</a>, <a href="http://www.geonames.org">GeoNames</a> and government mapping and cadastral authorities (that publish national registers of addresses, buildings, etc.) are good sources of stable, authoritative URIs. The steps described for <a href="https://www.w3.org/TR/ld-bp/#how-to-find-existing-vocabularies">discovering existing vocabularies</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-ld-bp" title="Best Practices for Publishing Linked Data">LD-BP</a></cite>] can be readily adapted to find more. For more details about how you might link to these authoritative identifiers, see <a href="#bp-linking" class="sectionRef sec-ref"><bdi class="secno">13.1.3 </bdi>Linking data</a>.</p> <p>However, HTTP URIs for <em>subjects</em> (e.g. the resource that we want to make statements about) can be trickier. If you are working purely with data then you can reuse existing URIs minted by other authorities for your <em>subject</em> URIs. But publishing <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-47">spatial data</a> on the Web means that the URIs for each <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-31">Spatial Thing</a> should dereference to Web pages or data resources that provide useful information (see <a href="#indexable-by-search-engines" class="sectionRef">Best Practice 2: Make your spatial data indexable by search engines</a>). An HTTP request will be directed to a host Web server, identified by the internet domain name (or IP address) in the requested URI. If you use a URI with an internet domain name where you have no control over how the Web server behaves, then there is no way for your statements to be included in the Web server's response.</p> <p>To take control of how information about <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-32">Spatial Things</a> is presented, data publishers need to assign their subject Spatial Things HTTP URIs from an internet domain name where they have authority over how the Web server responds. Typically, this means minting new HTTP URIs. It's all worth considering that the use of a particular internet domain may reinforce the authority of the information served. For example, a URI for Anne Frank's House is: <a href="https://monumentenregister.cultureelerfgoed.nl/monumenten/4296"><code>http://monumentenregister.cultureelerfgoed.nl/monumenten/4296</code></a>. The use of the internet domain registered to the <a href="https://www.cultureelerfgoed.nl/">Cultural Heritage Agency of the Netherlands</a> gives the definition authenticity.</p> <div class="note" role="note" id="issue-container-generatedID-12"><div role="heading" class="note-title marker" id="h-note-9" aria-level="5"><span>Note</span></div><aside class=""> <p>The need to control what information is provided about a given <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-33">Spatial Thing</a> means that it is not uncommon for a Spatial Thing to be identified by multiple HTTP URIs. The equality between two URIs that refer to the same resource can be stated using a property such as <code>owl:sameAs</code>. Care must always be taken when using <code>owl:sameAs</code> to determine that the two URIs actually refer to the same resource, rather than two resources that are similar. Warning: don't say it if you're not sure it's true!</p> <p>For more information about the types of properties that can be used to link between <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-34">Spatial Things</a>, and between Spatial Things and other resources, see <a href="#bp-linking" class="sectionRef sec-ref"><bdi class="secno">13.1.3 </bdi>Linking data</a>.</p> </aside></div> <p>When minting your own URIs, [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#identifiersWithinDatasets">Best Practice 10: Use persistent URIs as identifiers within datasets</a> cites the advice from GS1's SmartSearch Implementation Guideline [<cite><a class="bibref" data-link-type="biblio" href="#bib-gs1" title="SmartSearch Implementation Guideline">GS1</a></cite>] which suggests that your URIs should include the type of resource that is being identified to help human readability. Also, given the need for the HTTP URIs for <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-35">Spatial Things</a> to be used throughout their lifetime (and perhaps beyond) you should give some thought to designing a URI that is persistent.</p> <aside class="example" id="ex-amsterdam-station-uri"><div class="marker"> <a class="self-link" href="#ex-amsterdam-station-uri">Example<bdi> 8</bdi></a> </div> <p>This URI identifies the Amsterdam Central train station: </p> <p><code>https://brt.basisregistraties.overheid.nl/top10nl/id/gebouw/102625209</code></p> <p>This URI was minted using the recommendations in the Dutch URI strategy. Although minted by the Kadaster, they chose to use the domain ‘basisregistraties.overheid.nl’ (which translates to ‘base registries.government.nl’) because this is expected to be a more persistent name than ‘kadaster.nl’. Even though the Kadaster is over a 100-years old, organization names are not considered persistent in general as organizations may merge or their names may change. ‘top10nl’ is the name of the dataset, and ‘gebouw’ means ‘building’ – giving the human reader of this URI a clue of what is being identified. The last part of the URI is the building number from the dataset.</p> </aside> <p>[<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#UniqueIdentifiers">Best Practice 9: Use persistent URIs as identifiers of datasets</a> cites the European Commission's Study on Persistent URIs [<cite><a class="bibref" data-link-type="biblio" href="#bib-puri" title="Study On Persistent URIs">PURI</a></cite>] as a good source from which to gain insights about designing persistent URIs.</p> <p>When an HTTP URI is dereferenced, the server will respond with a sequence of bytes: by its nature, HTTP can only serve <em>information resources</em> such as Web pages or <a href="#dfn-javascript-object-notation" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-javascript-object-notation-3">JSON</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7159" title="The JavaScript Object Notation (JSON) Data Interchange Format">RFC7159</a></cite>] documents. Yet a <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-36">Spatial Thing</a> is actually a real or conceptual phenomenon — a lake is made from water not information! Using a single URI to refer to <em>both</em> the Spatial Thing and the page/document that describes the Spatial Thing introduces a URI collision. This can impose a cost in communication due to the effort required to resolve ambiguities. [<cite><a class="bibref" data-link-type="biblio" href="#bib-urls-in-data" title="URLs in Data Primer">URLs-in-data</a></cite>] has more to say on this subject, including recommending URI design patterns that enable differentiation between the Spatial Thing and the page/document that describes it.</p> <p>However, in most cases using a single URI for both <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-37">Spatial Thing</a> and the page/document is simpler to implement and meets the expectations of most end-users. As stated in [<cite><a class="bibref" data-link-type="biblio" href="#bib-webarch" title="Architecture of the World Wide Web, Volume One">WEBARCH</a></cite>] <a href="https://www.w3.org/TR/2004/REC-webarch-20041215/#indirect-identification">section 2.2.3 Indirect Identification</a>, identifiers are commonly used in this way. There is no obligation to distinguish between the Spatial Thing and the page/document unless your application requires this.</p> <div class="note" role="note" id="issue-container-generatedID-13"><div role="heading" class="note-title marker" id="h-note-10" aria-level="5"><span>Note</span></div><aside class=""> <p>While there is a cost to this conflation, problems can be mitigated by avoiding making statements that confuse <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-38">Spatial Thing</a> and the page/document, such as “Uluru is available in KML format”; e.g. <code><</code><a href="http://sws.geonames.org/7645281/"><code>http://sws.geonames.org/7645281/</code></a><code>> dcterms:hasFormat <</code><a href="http://www.geonames.org/kml/-25.34434_131.03282_15.kml"><code>http://www.geonames.org/kml/-25.34434_131.03282_15.kml</code></a><code>> .</code></p> <p>This statement is clearly not true; an ancient monolith covering more than 3 km<sup>2</sup> cannot be provided in <a href="#dfn-extensible-markup-language" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-extensible-markup-language-2">XML</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-xml11" title="Extensible Markup Language (XML) 1.1 (Second Edition)">XML11</a></cite>]!</p> </aside></div> <p>HTTP URIs for <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-39">Spatial Things</a> should not include any indication of the data format used to encode the page/document as this may change as your systems evolve. That said, you may wish to provide a set of complementary resources that specify a particular format as part of your content negotiation strategy. For example, the URI <a href="http://sws.geonames.org/7645281/about.rdf"><code>http://sws.geonames.org/7645281/about.rdf</code></a> dereferences to provide an RDF/XML encoding of the information about Uluru in the Northern Territory of Australia (<a href="http://sws.geonames.org/7645281/"><code>http://sws.geonames.org/7645281/</code></a>).</p> <p>[<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#identifiersWithinDatasets">Best Practice 10: Use persistent URIs as identifiers within datasets</a> notes that URIs can be long. You may need to define identifiers that are locally unique within your spatial dataset and provide a mechanism to programmatically convert each local identifier to a URI. For example, the Metadata Vocabulary for Tabular Data [<cite><a class="bibref" data-link-type="biblio" href="#bib-tabular-metadata" title="Metadata Vocabulary for Tabular Data">TABULAR-METADATA</a></cite>] achieves this using URI Templates as described in [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc6570" title="URI Template">RFC6570</a></cite>].</p> <p>It is also good practice to use a redirection service to hide complex and potentially changing service end-point URLs, such as for an <abbr title="Open Geospatial Consortium">OGC</abbr> <abbr title="Application Programming Interface">API</abbr> Features [<cite><a class="bibref" data-link-type="biblio" href="#bib-oaf1" title="OGC API - Features - Part 1: Core">OAF1</a></cite>] behind well-designed URIs. This means that users don’t need to be aware of the complexities of the <abbr title="Application Programming Interface">API</abbr> or changes in endpoint URIs or <abbr title="Application Programming Interface">API</abbr> versions to request information about a particular <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-40">Spatial Thing</a>. For example, the URI <code>http://data.example.org/nlsfi/id/roads/road.11</code> could be used as proxy for the <abbr title="Open Geospatial Consortium">OGC</abbr> <abbr title="Application Programming Interface">API</abbr> Features request <a href="https://geoe3platform.eu/geoe3/roads/collections/roads_FI/items/11?f=json"><code>https://geoe3platform.eu/geoe3/roads/collections/roads_FI/items/11?f=json</code></a>.</p> <p>Finally, while it is simple to use a query-pattern URL to serve information about a resource identified with a URI from a third-party internet domain, e.g. <code>http://example.org/museums?q=http://sws.geonames.org/6618987/</code>, these URLs are unsuitable as persistent identifiers. More often than not, your intended users will dereference the "official" URI, e.g. <code>http://sws.geonames.org/6618987/</code>. That said, this kind of search operation does provide a useful mechanism to find particular <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-41">Spatial Things</a>. See <a href="#convenience-apis" class="practiceRef">Best Practice 13: Expose spatial data through 'convenience <abbr title="Application Programming Interfaces">APIs</abbr>'</a> for further details.</p> </section> <section class="test"> <div class="header-wrapper"><h4 class="subhead" id="how-to-test">How to Test</h4><a class="self-link" href="#how-to-test" aria-label="Permalink for this Section"></a></div> <p>Check that within the data <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-42">Spatial Things</a>, such as countries, regions and people, are referred to by HTTP URIs or by short identifiers that can be converted to HTTP URIs. Ideally dereferencing the URIs should return the <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-43">Spatial Thing</a>, however, they have value as globally scoped variables whether they dereference or not.</p> </section> <section class="ucr"> <div class="header-wrapper"><h4 class="subhead" id="evidence">Evidence</h4><a class="self-link" href="#evidence" aria-label="Permalink for this Section"></a></div> <p><span>Relevant requirements</span>: <a href="https://www.w3.org/TR/sdw-ucr/#Linkability">R-Linkability</a>, <a href="https://www.w3.org/TR/sdw-ucr/#GeoreferencedData">R-GeoReferencedData</a>, <a href="https://www.w3.org/TR/sdw-ucr/#IndependenceOnReferenceSystems">R-IndependenceOnReferenceSystems</a>.</p> </section> <section class="benefits"> <div class="header-wrapper"><h4 class="subhead" id="benefits">Benefits</h4><a class="self-link" href="#benefits" aria-label="Permalink for this Section"></a></div> <ul class="benefitsList"> <li class="hidden">Discoverability</li> <li class="hidden">Reuse</li> <li class="hidden">Linkability</li> <li class="icon"><img src="images/discoverability.svg" alt="Discoverability" class="benefitIcon discoverabilityIcon"></li><li class="icon"><img src="images/reuse.svg" alt="Reuse" class="benefitIcon reuseIcon"></li><li class="icon"><img src="images/linkability.svg" alt="Linkability" class="benefitIcon linkabilityIcon"></li></ul> </section> </div> <section id="bp-indexable"><div class="header-wrapper"><h4 id="x13-1-2-indexable-data"><bdi class="secno">13.1.2 </bdi>Indexable data</h4><a class="self-link" href="#bp-indexable" aria-label="Permalink for Section 13.1.2"></a></div> <p>Search engines are the common starting point for people looking for content on the Web. However, as far as search engines are concerned, something is only 'on the Web' if it has an HTTP URI and when this URI is dereferenced, information is returned (usually in the form of a Web page). </p> <div class="practicecontainer"> <div class="practice advisement"><a class="marker self-link" href="#indexable-by-search-engines"><bdi lang="en">Best Practice 2</bdi></a>: <span id="indexable-by-search-engines" class="practicelab">Make your spatial data indexable by search engines</span> <p></p> <p class="practicedesc">Search engines should be able to crawl spatial data on the Web and index Spatial Things for direct discovery by users.</p> </div> <div class="issue" id="issue-container-number-1085"><div role="heading" class="issue-title marker" id="h-issue-0" aria-level="5"><a href="https://github.com/w3c/sdw/issues/1085"><span class="issue-number">Issue 1085</span></a><span class="issue-label">: Spatial Data on the Web - Best Practice 2 - Value and approach for indexing individual Spatial Things <a class="respec-gh-label" style="background-color: rgb(132, 182, 235); color: rgb(0, 0, 0);" href="https://github.com/w3c/sdw/issues/?q=is%3Aissue+is%3Aopen+label%3A%22enhancement%22" aria-label="GitHub label: enhancement">enhancement</a><a class="respec-gh-label" style="background-color: rgb(21, 152, 24); color: rgb(0, 0, 0);" href="https://github.com/w3c/sdw/issues/?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22" aria-label="GitHub label: help wanted">help wanted</a><a class="respec-gh-label" style="background-color: rgb(251, 202, 4); color: rgb(0, 0, 0);" href="https://github.com/w3c/sdw/issues/?q=is%3Aissue+is%3Aopen+label%3A%22bp%22" aria-label="GitHub label: bp">bp</a></span></div><p dir="auto">In both the <a href="https://github.com/w3c/sdw/blob/gh-pages/bp/BP-implementation-report-00002.md#best-practice-2-make-your-spatial-data-indexable-by-search-engines">GNAF Best Practice implementation report</a> and <a href="https://github.com/w3c/sdw/blob/gh-pages/bp/BP-implementation-report-00003.md#best-practice-2-make-your-spatial-data-indexable-by-search-engines">NRW Best Practice implementation report</a>, an issue has been encountered in relation to <a href="https://www.w3.org/TR/sdw-bp/#indexable-by-search-engines" rel="nofollow">Best Practice 2: Make your spatial data indexable by search engines</a> namely that there are millions of Spatial Things in each dataset and whilst the implementations create machine readable and indexable data for each Spatial Thing, the use of pagination to make the Spatial Things navigable for humans seems to impact the indexability.</p> <p dir="auto">In discussions in Lyon there was also some questions about the demonstrating the value of having each individual Spatial Thing indexable - however I believe there was reasonable consensus that allowing users to find a specific Spatial Thing and for machines to be able to create links between datasets containing information about specific Spatial Things was seen as having clear value - although the description of the value of the linking between spatial things or data about the same spatial thing could be improved in Best Practice 2.</p> <p dir="auto">I believe <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/cportele/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/cportele">@cportele</a> is going to look into the sitemaps approached discussed in Best Practice 2. We may also benefit from discussion on this issue from Ed Parsons.</p></div> <section class="axioms"> <div class="header-wrapper"><h5 class="subhead" id="why-0">Why</h5><a class="self-link" href="#why-0" aria-label="Permalink for this Section"></a></div> <p>In <a href="#dfn-sdi" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-sdi-12">SDIs</a> information about spatial datasets is published as authoritative metadata records and collated in Web-based catalogues. This approach causes several problems:</p> <ol> <li>the catalogues are often designed to primarily support expert users — people may not even be aware of their existence;</li> <li>once you have discovered a dataset that meets your needs and identified where it is available from, a second step is required to access the data itself — often requiring the use of unfamiliar protocols or complex <abbr title="Application Programming Interface">API</abbr> requests; and</li> <li>the data itself is not indexed — discovery relies on the metadata records that are often sparsely populated or out of date.</li> </ol> <p>Search engines are the common starting point for people looking for content on the Web that is widely understood. By publishing <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-48">spatial data</a> in a way that enables their crawlers to index spatial datasets including each <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-44">Spatial Thing</a>, the fidelity of search results should improve. Users will be able to directly search for specific entities rather than having to look for a dataset and then parse through it; e.g. to search for "Anne Frank’s House" (<a href="https://g.co/kg/m/02s5hd"><code>https://g.co/kg/m/02s5hd</code></a>) rather than looking for a dataset about "Cultural Heritage in Amsterdam" and hoping that it contains a reference to what you’re interested in.</p> <div class="note" role="note" id="issue-container-generatedID-14"><div role="heading" class="note-title marker" id="h-note-11" aria-level="6"><span>Note</span></div><aside class=""> <p>At present, spatial information is not widely exploited by search engines. However, by increasing the volume of spatial information presented to search engines, and the consistency with which it is provided, we expect search engines to begin offering spatial search functions. We already see evidence of this in the form of contextual search, such as prioritization of search results from nearby entities. In addition, search engines are beginning to offer more structured, custom searches that return only results that include certain [<cite><a class="bibref" data-link-type="biblio" href="#bib-schema-org" title="Schema.org">SCHEMA-ORG</a></cite>] types, like <a href="https://schema.org/Dataset">Dataset</a>, <a href="https://schema.org/Place">Place</a> or <a href="https://schema.org/City">City</a>.</p> </aside></div> </section> <section class="outcome"> <div class="header-wrapper"><h5 class="subhead" id="intended-outcome-0">Intended Outcome</h5><a class="self-link" href="#intended-outcome-0" aria-label="Permalink for this Section"></a></div> <p>Information about spatial datasets and things is indexed by search engines.</p> <p>Users can find <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-45">Spatial Things</a> using common search engines.</p> <p>That is, your data is more findable.</p> </section> <section class="how"> <div class="header-wrapper"><h5 class="subhead" id="possible-approach-to-implementation-0">Possible Approach to Implementation</h5><a class="self-link" href="#possible-approach-to-implementation-0" aria-label="Permalink for this Section"></a></div> <p>In general, you need to:</p> <ol> <li>publish a HTML Web-page for the spatial dataset and each <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-46">Spatial Thing</a> that it describes; and</li> <li>make sure that those pages can be crawled.</li> </ol> <p>The Web-page for the dataset is an entry point for humans to browse and for the search engines to crawl your data. This landing page should provide descriptive metadata that helps users evaluate whether the dataset meets their needs (see <a href="#spatial-info-dataset-metadata" class="practiceRef">Best Practice 15: Include spatial metadata in dataset metadata</a> and [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#DescriptiveMetadata">Best Practice 2: Provide descriptive metadata</a>), and may provide <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-6">links</a> to other service end-points, <abbr title="Application Programming Interfaces">APIs</abbr> or tools that will help a user work with the dataset. When metadata for datasets has already been created, e.g. to create a record in a metadata catalogue or to describe the data available from a service end-point, this information should be re-used — publishing it in a Web-friendly way that humans and Web-crawlers can consume. The landing page should be indexable by the search engines so that it can be discovered too!</p> <p>To enable humans and Web-crawlers to find HTML pages for the <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-47">Spatial Things</a>, the "landing page" needs to include hyperlinks that can be followed. Where you have a larger collection of Spatial Things, you should support paging through the collection.</p> <p>You may also consider using <a href="https://www.sitemaps.org/protocol.html">Sitemaps</a> to direct the Web-crawler. For larger datasets, multiple sitemaps can be provided and grouped by a sitemap index file. If a dataset contains millions of <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-48">Spatial Things</a> (e.g. a building dataset with national extent), generating and maintaining the sitemaps may require a custom implementation to keep the sitemaps with the set of Spatial Things synchronized.</p> <p>For very large datasets paging through thousands of pages is not useful for a human either. Consider supporting filtering and/or organize the <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-49">Spatial Things</a> into subsets, as described in <a href="#bp-exposing-via-api" class="sectionRef sec-ref"><bdi class="secno">13.4 </bdi>Spatial data access</a>.</p> <aside class="example" id="ex-address-org"><div class="marker"> <a class="self-link" href="#ex-address-org">Example<bdi> 9</bdi></a> </div> <p>In case of an address dataset, you could organize the <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-50">Spatial Things</a> (the addresses) by municipality, postcode and street name to support a human user to get to a building with a few clicks.</p> </aside> <p>A pre-condition for this best practice is <a href="#globally-unique-ids" class="practiceRef">Best Practice 1: Use globally unique persistent HTTP URIs for Spatial Things</a> as persistent identifiers are essential to support reliable indexing and linking. Traditionally spatial datasets have not been maintained with stable identifiers for <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-51">Spatial Things</a>, but to share <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-49">spatial data</a> on the Web stable identifiers are a must. Sharing spatial data is more than "just" making the dataset available on the Web.</p> <p>Each Web-page, and the hyperlinks used to relate the <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-52">Spatial Things</a> to the dataset landing page, can likely be generated programmatically from the data you hold about the Spatial Thing, either directly from the data or by using an <abbr title="Application Programming Interface">API</abbr> that makes the data available on the Web.</p> <aside class="example" id="ex-proxy"><div class="marker"> <a class="self-link" href="#ex-proxy">Example<bdi> 10</bdi></a> </div> <p>Possible implementation approaches for addressing this best practice in the context of an existing <a href="#dfn-sdi" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-sdi-13"><abbr title="Spatial Data Infrastructure">SDI</abbr></a> are discussed in more detail in <a href="#convenience-apis" class="practiceRef">Best Practice 13: Expose spatial data through 'convenience <abbr title="Application Programming Interfaces">APIs</abbr>'</a> for additional information. For example, by using a proxy tool like <a href="https://github.com/interactive-instruments/ldproxy">ldproxy</a> or by mapping the data in the <abbr title="Spatial Data Infrastructure">SDI</abbr> dynamically to crawlable resources on the Web using the [<cite><a class="bibref" data-link-type="biblio" href="#bib-r2rml" title="R2RML: RDB to RDF Mapping Language">R2RML</a></cite>] standard and Linked Data Publication tools. Both approaches generate crawlable data from <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-53">Spatial Things</a> in your spatial datasets at query time and allow to enrich the data on the Web with additional information and <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-7">links</a>.</p> </aside> <p>It is important to keep in mind that the HTML representations should not mainly be designed for search engines, but they should present the data in a clear and understandable way to human users. The page about the <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-54">Spatial Thing</a> should be useful to a user and encourage others to link to the page when they share other information about the Spatial Thing. This typically will also improve the ranking of these pages in search results.</p> <aside class="example" id="ex-landing-pages"><div class="marker"> <a class="self-link" href="#ex-landing-pages">Example<bdi> 11</bdi></a> </div> <p>The <a href="https://www.nanaimo.ca/parks-search/Parks">Nanaimo Parks Search</a>, Canada provides a landing page and one page per park. The landing page offers a search capability and the option to select from a map. This data is indexed; a search for, for example, "Planta Park, Nanaimo" in a popular search engine returns the Nanaimo data for this <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-55">Spatial Thing</a> as one of the first results.</p> <p>The <a href="http://environment.data.gov.uk/bwq/profiles/">Bathing Water Quality Explorer for England</a> provides a landing page and one page per site. Sites can be searched, selected from a list or in a map.</p> <p>In both cases, the pages of the <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-56">Spatial Things</a> are generated from the underlying data at request time.</p> <p>The property Web-pages in Nanaimo also use [<cite><a class="bibref" data-link-type="biblio" href="#bib-microdata" title="HTML Microdata">MICRODATA</a></cite>] annotations using [<cite><a class="bibref" data-link-type="biblio" href="#bib-schema-org" title="Schema.org">SCHEMA-ORG</a></cite>], which is discussed below.</p> </aside> <p>In addition to exposing the <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-50">spatial data</a> as linked HTML Web-pages, indexing by Web-engines can be further enhanced by incorporating a description of the <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-57">Spatial Thing</a> as structured markup (in particular [<cite><a class="bibref" data-link-type="biblio" href="#bib-microdata" title="HTML Microdata">MICRODATA</a></cite>] or [<cite><a class="bibref" data-link-type="biblio" href="#bib-json-ld" title="JSON-LD 1.0">JSON-LD</a></cite>] annotations using [<cite><a class="bibref" data-link-type="biblio" href="#bib-schema-org" title="Schema.org">SCHEMA-ORG</a></cite>]) as this enables the search engines to make more detailed assumptions about your resource. It is important to note that this is not only helpful to search engines, but also to other tools that want to understand more about the semantics of the resource, for example, its location.</p> <p>In [<cite><a class="bibref" data-link-type="biblio" href="#bib-schema-org" title="Schema.org">SCHEMA-ORG</a></cite>], a spatial dataset is a <a href="https://schema.org/Dataset">Dataset</a> and a <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-58">Spatial Thing</a> is in general a <a href="https://schema.org/Place">Place</a> or an <a href="https://schema.org/Event">Event</a>. For some types of Spatial Things, more specific sub-types exist, for example <a href="https://schema.org/City">City</a> or <a href="https://schema.org/Mountain">Mountain</a>.</p> <p>Location information about a <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-59">Spatial Thing</a> is typically provided using a <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-13">geometry</a> (<a href="https://schema.org/GeoCoordinates">GeoCoordinates</a> or <a href="https://schema.org/GeoShape">GeoShape</a>) or a <a href="https://schema.org/PostalAddress">PostalAddress</a>. [<cite><a class="bibref" data-link-type="biblio" href="#bib-schema-org" title="Schema.org">SCHEMA-ORG</a></cite>] coordinates are restricted to WGS 84 with <a href="#dfn-longitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-longitude-7">longitude</a> and <a href="#dfn-latitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-latitude-7">latitude</a>. Supported geometry types are points, line strings, polygons, boxes and circles.</p> <p>By using [<cite><a class="bibref" data-link-type="biblio" href="#bib-schema-org" title="Schema.org">SCHEMA-ORG</a></cite>] annotations, search engines, and others can connect location information with other information, e.g. about the nature of the <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-60">Spatial Thing</a>, opening hours, contact details, etc.</p> <p>The use of [<cite><a class="bibref" data-link-type="biblio" href="#bib-schema-org" title="Schema.org">SCHEMA-ORG</a></cite>] for <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-51">spatial data</a> is in its early days and should be understood as an "emerging practice".</p> <aside class="example" id="ex-schemaorg-dataset-and-place"><div class="marker"> <a class="self-link" href="#ex-schemaorg-dataset-and-place">Example<bdi> 12</bdi></a> </div> <p>This code-snippet illustrates a [<cite><a class="bibref" data-link-type="biblio" href="#bib-json-ld" title="JSON-LD 1.0">JSON-LD</a></cite>] annotation using a [<cite><a class="bibref" data-link-type="biblio" href="#bib-schema-org" title="Schema.org">SCHEMA-ORG</a></cite>] <a href="https://schema.org/Dataset">Dataset</a> for an address dataset in the Netherlands that may be embedded in the HTML of the Web-page. It includes a name, a description, the spatial extent using a bounding box, the URL of the Web-page, and a <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-8">link</a> to another dataset containing this dataset. The same annotation could also be provided using [<cite><a class="bibref" data-link-type="biblio" href="#bib-microdata" title="HTML Microdata">MICRODATA</a></cite>], but we use [<cite><a class="bibref" data-link-type="biblio" href="#bib-json-ld" title="JSON-LD 1.0">JSON-LD</a></cite>] here as this presents the structured data in a more human-readable way.</p> <pre id="ex-schemaorg-dataset" title="" aria-busy="false"><code class="hljs xml"><span class="hljs-tag"><<span class="hljs-name">script</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"application/ld+json"</span>></span><span class="javascript"> { <span class="hljs-string">"@context"</span> : { <span class="hljs-string">"@vocab"</span> : <span class="hljs-string">"http://schema.org/"</span> }, <span class="hljs-string">"@type"</span> : <span class="hljs-string">"Dataset"</span>, <span class="hljs-string">"@id"</span> : <span class="hljs-string">"http://www.ldproxy.net/bag/inspireadressen/"</span>, <span class="hljs-string">"name"</span> : <span class="hljs-string">"Adressen"</span>, <span class="hljs-string">"description"</span> : <span class="hljs-string">"INSPIRE Adressen afkomstig uit de basisregistratie Adressen, beschikbaar voor heel Nederland"</span>, <span class="hljs-string">"url"</span> : <span class="hljs-string">"http://www.ldproxy.net/bag/inspireadressen/"</span>, <span class="hljs-string">"isPartOf"</span> : { <span class="hljs-string">"@type"</span> : <span class="hljs-string">"Dataset"</span>, <span class="hljs-string">"url"</span> : <span class="hljs-string">"http://www.ldproxy.net/bag/"</span> }, <span class="hljs-string">"keywords"</span> : <span class="hljs-string">"Adressen"</span>, <span class="hljs-string">"spatialCoverage"</span> : { <span class="hljs-string">"@type"</span> : <span class="hljs-string">"Place"</span>, <span class="hljs-string">"geo"</span> : { <span class="hljs-string">"@type"</span> : <span class="hljs-string">"GeoShape"</span>, <span class="hljs-string">"box"</span> : <span class="hljs-string">"47.975,3.053 53.504,7.24"</span> } } } </span><span class="hljs-tag"></<span class="hljs-name">script</span>></span></code></pre> <p>This code-snippet illustrates a [<cite><a class="bibref" data-link-type="biblio" href="#bib-json-ld" title="JSON-LD 1.0">JSON-LD</a></cite>] annotation using a [<cite><a class="bibref" data-link-type="biblio" href="#bib-schema-org" title="Schema.org">SCHEMA-ORG</a></cite>] <a href="https://schema.org/Place">Place</a> for the address of the "Anne Frank’s House" in that dataset. It includes the location, the URL of the Web-page, and the structured postal address information.</p> <pre id="ex-schemaorg-place" title="" aria-busy="false"><code class="hljs xml"><span class="hljs-tag"><<span class="hljs-name">script</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"application/ld+json"</span>></span><span class="javascript"> { <span class="hljs-string">"@context"</span> : { <span class="hljs-string">"@vocab"</span> : <span class="hljs-string">"http://schema.org/"</span> }, <span class="hljs-string">"@type"</span> : <span class="hljs-string">"Place"</span>, <span class="hljs-string">"@id"</span> : <span class="hljs-string">"http://www.ldproxy.net/bag/inspireadressen/inspireadressen.3329155"</span>, <span class="hljs-string">"url"</span> : <span class="hljs-string">"http://www.ldproxy.net/bag/inspireadressen/inspireadressen.3329155"</span>, <span class="hljs-string">"geo"</span> : { <span class="hljs-string">"@type"</span> : <span class="hljs-string">"GeoCoordinates"</span>, <span class="hljs-string">"longitude"</span> : <span class="hljs-string">"4.88399"</span>, <span class="hljs-string">"latitude"</span> : <span class="hljs-string">"52.37520"</span> }, <span class="hljs-string">"name"</span>: <span class="hljs-string">"Anne Franks House"</span>, <span class="hljs-string">"description"</span>: <span class="hljs-string">"Museum house where Anne Frank & her family hid from the Nazis in a secret annex, during WWII."</span>, <span class="hljs-string">"address"</span> : { <span class="hljs-string">"@type"</span> : <span class="hljs-string">"PostalAddress"</span>, <span class="hljs-string">"streetAddress"</span> : <span class="hljs-string">"Prinsengracht 267"</span>, <span class="hljs-string">"addressLocality"</span> : <span class="hljs-string">"Amsterdam"</span>, <span class="hljs-string">"postalCode"</span> : <span class="hljs-string">"1016GV"</span> } } </span><span class="hljs-tag"></<span class="hljs-name">script</span>></span></code></pre> </aside> <p>The Web-pages should also provide a mechanism to download data in the formats you decide to support. [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#MultipleFormats">Best Practice 14: Provide data in multiple formats</a> provides guidance.</p> <p>Typically, multiple formats for a resource are supported using two mechanisms: HTTP content negotiation and by adding format-specific file extensions to the resource URI like "<code>.json</code>", "<code>.xml</code>" or "<code>.ttl</code>". Content negotiation is the standard mechanism of HTTP and the format-specific URIs enable the use of clickable <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-9">links</a> to the resource in a specific format.</p> <p>Search engines may also index resource representations in other formats than HTML.</p> <aside class="example" id="ex-format-indexing"><div class="marker"> <a class="self-link" href="#ex-format-indexing">Example<bdi> 13</bdi></a> </div> <p>At the time of writing, Google is indexing [<cite><a class="bibref" data-link-type="biblio" href="#bib-kml" title="OGC KML 2.3">KML</a></cite>] documents and supporting advanced searches that are restricted to KML documents. [<cite><a class="bibref" data-link-type="biblio" href="#bib-gml" title="Geography Markup Language (GML) Encoding Standard">GML</a></cite>] files are also indexed, but only like any other <a href="#dfn-extensible-markup-language" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-extensible-markup-language-3">XML</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-xml11" title="Extensible Markup Language (XML) 1.1 (Second Edition)">XML11</a></cite>] documents. <a href="#dfn-javascript-object-notation" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-javascript-object-notation-4">JSON</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7159" title="The JavaScript Object Notation (JSON) Data Interchange Format">RFC7159</a></cite>], including GeoJSON [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7946" title="The GeoJSON Format">RFC7946</a></cite>], is currently not indexed.</p> </aside> <div class="note" role="note" id="issue-container-generatedID-15"><div role="heading" class="note-title marker" id="h-note-12" aria-level="6"><span>Note</span></div><aside class=""> <p>In 2016, these topics were analyzed in a testbed organized by Geonovum in the Netherlands. More details can be found in reports from the testbed: <a href="http://geo4web-testbed.github.io/topic4/">Spatial Data on the Web using the current <abbr title="Spatial Data Infrastructure">SDI</abbr></a> and <a href="https://github.com/geo4web-testbed/topic3/wiki">Crawlable geospatial data using the ecosystem of the Web and Linked Data</a>.</p> <p>The use of [<cite><a class="bibref" data-link-type="biblio" href="#bib-schema-org" title="Schema.org">SCHEMA-ORG</a></cite>] for describing spatial information has been also investigated in two studies, concerning, <a href="https://semiceu.github.io/locn-mapping/">the former</a>, the definitions of mappings between [<cite><a class="bibref" data-link-type="biblio" href="#bib-locn" title="ISA Programme Location Core Vocabulary">LOCN</a></cite>], [<cite><a class="bibref" data-link-type="biblio" href="#bib-vcard-rdf" title="vCard Ontology - for describing People and Organizations">VCARD-RDF</a></cite>] and [<cite><a class="bibref" data-link-type="biblio" href="#bib-schema-org" title="Schema.org">SCHEMA-ORG</a></cite>], and, <a href="https://ec-jrc.github.io/dcat-ap-to-schema-org/">the latter</a>, the definitions of mappings between [<cite><a class="bibref" data-link-type="biblio" href="#bib-geodcat-ap" title="GeoDCAT-AP: A geospatial extension for the DCAT application profile for data portals in Europe">GeoDCAT-AP</a></cite>] and [<cite><a class="bibref" data-link-type="biblio" href="#bib-schema-org" title="Schema.org">SCHEMA-ORG</a></cite>].</p> <p>The use of [<cite><a class="bibref" data-link-type="biblio" href="#bib-schema-org" title="Schema.org">SCHEMA-ORG</a></cite>] for describing spatial information is continually evolving; spatial data publishers should familiarize themselves with current practices. A useful <a href="https://developers.google.com/search/docs/appearance/structured-data/intro-structured-data/">Introduction to Structured Data</a> is provided in Google's developer portal.</p> </aside></div> </section> <section class="test"> <div class="header-wrapper"><h5 class="subhead" id="how-to-test-0">How to Test</h5><a class="self-link" href="#how-to-test-0" aria-label="Permalink for this Section"></a></div> <p>Using a Web browser,</p> <ol> <li>Search for the landing page of your dataset, and</li> <li>Check that you can browse to human-readable HTML pages for each <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-61">Spatial Thing</a> that the dataset describes.</li> </ol> <p>Monitor the search consoles of the search engines about the progress in indexing your Web-pages and their structured data. In case any errors are reported, try to fix them.</p> </section> <section class="ucr"> <div class="header-wrapper"><h5 class="subhead" id="evidence-0">Evidence</h5><a class="self-link" href="#evidence-0" aria-label="Permalink for this Section"></a></div> <p><span>Relevant requirements</span>: <a href="https://www.w3.org/TR/sdw-ucr/#BoundingBoxCentroid">R-BoundingBoxCentroid</a>, <a href="https://www.w3.org/TR/sdw-ucr/#Crawlability">R-Crawlability</a>, <a href="https://www.w3.org/TR/sdw-ucr/#Discoverability">R-Discoverability</a>, <a href="https://www.w3.org/TR/sdw-ucr/#Linkability">R-Linkability</a>, <a href="https://www.w3.org/TR/sdw-ucr/#MachineToMachine">R-MachineToMachine</a>.</p> </section> <section class="benefits"> <div class="header-wrapper"><h5 class="subhead" id="benefits-0">Benefits</h5><a class="self-link" href="#benefits-0" aria-label="Permalink for this Section"></a></div> <ul class="benefitsList"> <li class="hidden">Discoverability</li> <li class="hidden">Reuse</li> <li class="icon"><img src="images/discoverability.svg" alt="Discoverability" class="benefitIcon discoverabilityIcon"></li><li class="icon"><img src="images/reuse.svg" alt="Reuse" class="benefitIcon reuseIcon"></li></ul> </section> </div></section> <section id="bp-linking"><div class="header-wrapper"><h4 id="x13-1-3-linking-data"><bdi class="secno">13.1.3 </bdi>Linking data</h4><a class="self-link" href="#bp-linking" aria-label="Permalink for Section 13.1.3"></a></div> <p><a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-10">Links</a>, in whatever machine-readable form, are important. In the wider Web, it is links that enable the discovery of Web pages: from user-agents following a hyperlink to find related information to search engines using links to prioritize and refine search results. This section is concerned with the creation and use of those links to support discovery of the <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-62">Spatial Things</a> described in spatial datasets.</p> <p>For data to be <em>on the Web</em>, the resources it describes need to be connected, or <em>linked</em>, to other resources. The <em>connectedness</em> of data is one of the fundamentals of the <a href="#dfn-linked-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-linked-data-8">Linked Data</a> approach that these best practices build upon.</p> <p>Just like any type of data, <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-52">spatial data</a> benefits massively from linking when publishing on the Web. The widespread use of <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-11">links</a> within data is regarded as one of the most significant departures from contemporary practices used within <a href="#dfn-sdi" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-sdi-14">SDIs</a>. That's why this topic is included in this Best Practice.</p> <p>[<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] identifies <em>Linkability</em> as one of the <a href="https://www.w3.org/TR/dwbp/#BP_Benefits">benefits</a> gained from implementing the Data on the Web best practices (see [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#DataIdentifiers">section 8.7 Data Identifiers</a> <a href="https://www.w3.org/TR/dwbp/#UniqueIdentifiers">Best Practice 9: Use persistent URIs as identifiers of datasets</a> and <a href="https://www.w3.org/TR/dwbp/#identifiersWithinDatasets">Best Practice 10: Use persistent URIs as identifiers within datasets</a>). However, no discussion is provided about how to create <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-12">links</a> that can make use of those persistent URIs. This section of the document extends [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] by providing a best practice about <em>creating</em> links between the resources described inside spatial datasets.</p> <div class="note" role="note" id="issue-container-generatedID-16"><div role="heading" class="note-title marker" id="h-note-13" aria-level="5"><span>Note</span></div><aside class=""> <p>Discussion of <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-13">links</a> in these best practices are limited to simple links that relate exactly two resources: the <em>source</em> and <em>target</em>. Complex links that relate an arbitrary number of resources, such as described in [<cite><a class="bibref" data-link-type="biblio" href="#bib-xlink11" title="XML Linking Language (XLink) Version 1.1">XLINK11</a></cite>] <a href="https://www.w3.org/TR/xlink11/#extended-link">section 5.1 Extended Links</a>, are out of scope.</p> </aside></div> </section> <div class="practicecontainer"> <div class="practice advisement"><a class="marker self-link" href="#linking"><bdi lang="en">Best Practice 3</bdi></a>: <span id="linking" class="practicelab">Link resources together to create the Web of data</span> <p></p> <p class="practicedesc">Bind Spatial Things into the Web of data using <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-14">links</a> to other resources, providing sufficient information for a user to determine whether the target resource specified in a link will be of use.</p> </div> <section class="axioms"> <div class="header-wrapper"><h4 class="subhead" id="why-1">Why</h4><a class="self-link" href="#why-1" aria-label="Permalink for this Section"></a></div> <p>The <a href="https://5stardata.info">5★ rating for Linked Open Data</a> asserts that to achieve the fifth star you must "link your data to other data to provide context". The benefits for consumers and publishers of linking to other data are <a href="https://5stardata.info/en/#addendum5">listed</a> as:</p> <ul> <li>You can discover more (related) data while consuming the data.</li> <li>You can directly learn about the data schema.</li> <li>You make your data discoverable.</li> <li>You increase the value of your data.</li> <li>Your own organization will gain the same benefits from the <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-15">links</a> as the [other] consumers.</li> </ul> <p>There is always a cost to traversal of a <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-16">link</a>, even if it is just a few milliseconds delay and the need to parse a few hundred or thousand bytes returned in response to an HTTP request. In many cases, such as when dealing with large datasets and complex queries, the costs incurred from traversing a link may be significant in terms of time and data volumes. Before a user or software agent decides to traverse a link, they should be able to determine whether acquisition of the target resource, or data <em>about</em> the target resource, will support their application goals. For example, what format can one expect the response in, what type of resource is the target and how is that target related to the source resource?</p> </section> <section class="outcome"> <div class="header-wrapper"><h4 class="subhead" id="intended-outcome-1">Intended Outcome</h4><a class="self-link" href="#intended-outcome-1" aria-label="Permalink for this Section"></a></div> <p><a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-17">Links</a> can be identified and traversed by humans and software agents.</p> <p>Sufficient information is provided to help humans and software agents determine whether the traversal of a given link meets their goals.</p> <p>Your data is more interoperable.</p> </section> <section class="how"> <div class="header-wrapper"><h4 class="subhead" id="possible-approach-to-implementation-1">Possible Approach to Implementation</h4><a class="self-link" href="#possible-approach-to-implementation-1" aria-label="Permalink for this Section"></a></div> <p>The ground-rules for linking <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-53">spatial data</a> are the same as for <em>any</em> type of data.</p> <ol> <li> <p>Use formats that support Web linking (as defined in [<cite><a class="bibref" data-link-type="biblio" href="#bib-webarch" title="Architecture of the World Wide Web, Volume One">WEBARCH</a></cite>] <a href="https://www.w3.org/TR/webarch/#hypertext">section 4.4 Hypertext</a>)</p> <p>Earlier in this document (<a href="#linked-data" class="sectionRef sec-ref"><bdi class="secno">11. </bdi>Linked Data</a>) we explained that <a href="#dfn-linked-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-linked-data-9">linked data</a> requires only that the formats used to publish data support Web linking. In other words, linking <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-54">spatial data</a> does not automatically mean the use of <a href="#dfn-resource-description-framework" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-resource-description-framework-7">RDF</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-rdf11-primer" title="RDF 1.1 Primer">RDF11-PRIMER</a></cite>]; <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-18">links</a> can also be created, for example, using [<cite><a class="bibref" data-link-type="biblio" href="#bib-gml" title="Geography Markup Language (GML) Encoding Standard">GML</a></cite>], HTML or [<cite><a class="bibref" data-link-type="biblio" href="#bib-json-ld" title="JSON-LD 1.0">JSON-LD</a></cite>]. The two key points from [<cite><a class="bibref" data-link-type="biblio" href="#bib-webarch" title="Architecture of the World Wide Web, Volume One">WEBARCH</a></cite>] are:</p> <ul> <li><strong><em>Good practice: Link identification</em></strong> — A [data format] specification <em class="rfc2119">SHOULD</em> provide ways to identify <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-19">links</a> to other resources [...].</li> <li><strong><em>Good practice: Web linking</em></strong> — A [data format] specification <em class="rfc2119">SHOULD</em> allow Web-wide linking, not just internal document linking.</li> </ul> <p>The examples used in this best practice illustrate some of the data formats and mechanisms that support Web linking.</p> </li> <li> <p>Follow the principles for <strong>4★ — Linked</strong> [<cite><a class="bibref" data-link-type="biblio" href="#bib-web-data" title="Web Data">WEB-DATA</a></cite>]</p> <ul> <li> <p>Always use global identifiers when linking between documents, so that <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-20">link</a> identifiers can be taken out of context and shared globally.</p> <div class="note" role="note" id="issue-container-generatedID-17"><div role="heading" class="note-title marker" id="h-note-14" aria-level="5"><span>Note</span></div><aside class=""> <p><strong>4★</strong> [<cite><a class="bibref" data-link-type="biblio" href="#bib-web-data" title="Web Data">WEB-DATA</a></cite>] is predicated on the use of global identifiers for resources. As such, we consider <a href="#globally-unique-ids" class="practiceRef">Best Practice 1: Use globally unique persistent HTTP URIs for Spatial Things</a> as a prerequisite for linking.</p> </aside></div> </li> <li> <p><a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-21">Links</a> should be typed (explicitly or implicitly) so that clients can decide which link to follow when they are traversing a Web of interlinked resources to reach application goals.</p> <aside class="example" id="ex-webdata2-typed-links"><div class="marker"> <a class="self-link" href="#ex-webdata2-typed-links">Example<bdi> 14</bdi></a><span class="example-title">: HTTP response Link header with IANA Link Relation types</span> </div> <pre aria-busy="false"><code class="hljs http"><span class="hljs-meta">HTTP/1.1</span> <span class="hljs-number">200</span> OK <span class="hljs-attribute">Link</span><span class="hljs-punctuation">: </span><http://www.gemeentegeschiedenis.nl/gemeentenaam/Amsterdam/2014>; rel="predecessor-version" <span class="hljs-attribute">Content-type</span><span class="hljs-punctuation">: </span>application/geo+json <span class="hljs-attribute">Connection</span><span class="hljs-punctuation">: </span>close {...}</code></pre> </aside> <p>This example, using HTTP Link headers (as defined in [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc5988" title="Web Linking">RFC5988</a></cite>]), illustrates the use of IANA [<cite><a class="bibref" data-link-type="biblio" href="#bib-iana-relations" title="Link Relations">IANA-RELATIONS</a></cite>] to define the <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-22">link</a> type. According to the IANA registry, <code>predecessor-version</code> <em>points to a resource containing the predecessor version in the version history</em> (as defined in [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc5829" title="Link Relation Types for Simple Version Navigation between Web Resources">RFC5829</a></cite>] "Link Relation Types for Simple Version Navigation between Web Resources").</p> <div class="note" role="note" id="issue-container-generatedID-18"><div role="heading" class="note-title marker" id="h-note-15" aria-level="5"><span>Note</span></div><aside class=""> <p>In simple <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-23">links</a> involving only two resources, the <em>role</em>, or type, of each resource are implicit and can be inferred from the link relation type. It can be useful to include other information to help users judge whether to follow a link such as human-readable labels and hints about the target resource type. Of course, often target resources are maintained by different parties, so information provided with the links that refer to them may or may not turn out to be true when the link is traversed. For example, [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc5988" title="Web Linking">RFC5988</a></cite>] "Web Linking" defines several additional attributes including: <code>hreflang</code> — hints at the language or languages that the target resource is available in; <code>type</code> — indicates the media-type expected; and <code>title</code> — labels the link target such that it can be used as a human-readable identifier etc.</p> <p>Also note that [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#Conneg">Best Practice 19: Use content negotiation for serving data available in multiple formats</a> recommends the use of <a href="https://www.w3.org/DesignIssues/Conneg">content negotiation</a> to help ensure that a user or software agent is provided with useful content when they traverse a <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-24">link</a> and dereference to the target resource. However, HTTP Request headers are limited to specifying media type, character set, encoding (e.g. for compression), and language. There is no mechanism to request that data is provided according to a particular data model or 'profile', nor request data in a particular <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-16">coordinate reference system</a>. This gap in current practice is discussed in <a href="#c-geometrycrs" class="sectionRef sec-ref"><bdi class="secno">15.1 </bdi>Requesting different representations of geometries</a>.</p> </aside></div> </li> <li> <p>Make <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-25">links</a> as specific as possible. If the linked resource supports fragment identification, and the link logically should be to a fragment of the resource (and not just the resource as a whole), try to use fragment identifiers when possible.</p> <div class="note" role="note" id="issue-container-generatedID-19"><div role="heading" class="note-title marker" id="h-note-16" aria-level="5"><span>Note</span></div><aside class=""> <p>Being as specific as possible with links is important; e.g. refer to a particular <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-63">Spatial Thing</a> rather than the dataset in which that <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-64">Spatial Thing</a> is described. That said, we encourage publication of data about Spatial Things as independently resolvable resources (e.g. so that they can be accessed by search engine's Web crawlers, see <a href="#indexable-by-search-engines" class="practiceRef">Best Practice 2: Make your spatial data indexable by search engines</a>) which means that fragment identifiers are usually not required.</p> </aside></div> </li> </ul> </li> </ol> </section> <section class="test"> <div class="header-wrapper"><h4 class="subhead" id="how-to-test-1">How to Test</h4><a class="self-link" href="#how-to-test-1" aria-label="Permalink for this Section"></a></div> <p>Check that hyperlinks are distinguishable within the data — a string-literal that happens to contain a URL is insufficient.</p> <p>Check that hyperlinks use global identifiers, preferably HTTP URIs, to identify the link target.</p> <p>Check that hyperlinks use typed relationships, and that the definition of the link relation type can be located in order to determine how to interpret the hyperlink.</p> <p></p> </section> <section class="ucr"> <div class="header-wrapper"><h4 class="subhead" id="evidence-1">Evidence</h4><a class="self-link" href="#evidence-1" aria-label="Permalink for this Section"></a></div> <p><span>Relevant requirements</span>: <a href="https://www.w3.org/TR/sdw-ucr/#Linkability">R-Linkability</a>, <a href="https://www.w3.org/TR/sdw-ucr/#MachineToMachine">R-MachineToMachine</a>. </p></section> <section class="benefits"> <div class="header-wrapper"><h4 class="subhead" id="benefits-1">Benefits</h4><a class="self-link" href="#benefits-1" aria-label="Permalink for this Section"></a></div> <ul class="benefitsList"> <li class="hidden">Comprehension</li> <li class="hidden">Processability</li> <li class="hidden">Reuse</li> <li class="hidden">Interoperability</li> <li class="icon"><img src="images/comprehension.svg" alt="Comprehension" class="benefitIcon comprehensionIcon"></li><li class="icon"><img src="images/processability.svg" alt="Processability" class="benefitIcon processabilityIcon"></li><li class="icon"><img src="images/reuse.svg" alt="Reuse" class="benefitIcon reuseIcon"></li><li class="icon"><img src="images/interoperability.svg" alt="Interoperability" class="benefitIcon interoperabilityIcon"></li></ul> </section> </div> </section> <section id="bp-spatialdata"><div class="header-wrapper"><h3 id="x13-2-spatial-data"><bdi class="secno">13.2 </bdi>Spatial data</h3><a class="self-link" href="#bp-spatialdata" aria-label="Permalink for Section 13.2"></a></div> <p>The best practices in this section take [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] as a basis and further refine them to provide more specific guidance for <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-55">spatial data</a>.</p> <section id="bp-expressing-spatial"><div class="header-wrapper"><h4 id="x13-2-1-spatial-data-encoding"><bdi class="secno">13.2.1 </bdi>Spatial data encoding</h4><a class="self-link" href="#bp-expressing-spatial" aria-label="Permalink for Section 13.2.1"></a></div> <p>This section does not elaborate on formats for publishing <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-56">spatial data</a> on the Web. The formats are basically the same as for publishing any other data on the Web: <a href="#dfn-extensible-markup-language" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-extensible-markup-language-4">XML</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-xml11" title="Extensible Markup Language (XML) 1.1 (Second Edition)">XML11</a></cite>], <a href="#dfn-javascript-object-notation" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-javascript-object-notation-5">JSON</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7159" title="The JavaScript Object Notation (JSON) Data Interchange Format">RFC7159</a></cite>], <a href="#dfn-csv" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-csv-3">CSV</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc4180" title="Common Format and MIME Type for Comma-Separated Values (CSV) Files">RFC4180</a></cite>], <a href="#dfn-resource-description-framework" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-resource-description-framework-8">RDF</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-rdf11-primer" title="RDF 1.1 Primer">RDF11-PRIMER</a></cite>], etc. Refer to [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#dataFormats">section 8.8 Data Formats</a> for more information and best practices. Refer to <a href="#applicability-formatVbp" class="sectionRef sec-ref"><bdi class="secno">A. </bdi>Applicability of common formats to implementation of best practices</a> for a list of spatial data formats for the Web.</p> <p>That being said, it is important to publish your <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-57">spatial data</a> with clear semantics, i.e. to provide information about the contents of your data. The primary use case for this is you have information about a collection of <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-65">Spatial Things</a> and you want to publish precise information about their attributes and how they are interrelated. Another use case is the publication on the Web of a dataset that has a spatial component in a form that search engines will understand. </p> <p>Depending on the format you use, the semantics may already be described in some form. For example, in GeoJSON [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7946" title="The GeoJSON Format">RFC7946</a></cite>] this description is present in the specification. When using <a href="#dfn-javascript-object-notation" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-javascript-object-notation-6">JSON</a> it is possible to add semantics using a [<cite><a class="bibref" data-link-type="biblio" href="#bib-json-ld" title="JSON-LD 1.0">JSON-LD</a></cite>] <code>@context</code> object. For providing semantics to search engines, using [<cite><a class="bibref" data-link-type="biblio" href="#bib-schema-org" title="Schema.org">SCHEMA-ORG</a></cite>] is a good option, as explained in <a href="#indexable-by-search-engines" class="practiceRef">Best Practice 2: Make your spatial data indexable by search engines</a>. In a <a href="#dfn-linked-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-linked-data-10">linked data</a> setting, the attributes of a <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-66">Spatial Thing</a> can be described using existing vocabularies, where each term has a published definition. If you can't find a suitable existing vocabulary term, you should create your own, and publish a clear definition for the new term, linking it to commonly used existing ones if possible, because this increases its usefulness. An overview and high-level comparison of <a href="#dfn-resource-description-framework" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-resource-description-framework-9">RDF</a> vocabularies / OWL ontologies for <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-58">spatial data</a> is provided in <a href="#applicability-formatVbp" class="sectionRef sec-ref"><bdi class="secno">A. </bdi>Applicability of common formats to implementation of best practices</a>. We do not recommend one vocabulary because this recommendation would not remain durable as vocabularies are released or amended.</p> <p>[<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#dataVocabularies">section 8.9 Data Vocabularies</a> provides guidance on the topic of data modelling; determining which concepts and relationships should be used to describe your area of interest, something usually done by <em>domain experts</em>. Data publishers should not attempt to guess <em>all</em> the purposes for which someone might use or reference their data — ending up with a super-complex data model that tries to cover every possible use case. Instead, data publishers should try to help data consumers make informed decisions about the best way to use the data by providing good metadata.</p> <p>In most cases, the effective use of information resources requires understanding thematic concepts in addition to the spatial ones; "spatial" is just a facet of the broader information space. For example, when the <a href="https://www.brandweer.nl/amsterdam-amstelland/">Dutch Fire Service</a> responded to an incident at a daycare center, they needed to evacuate the children. In this case, the <em>2nd</em> closest alternative day care center was preferred because it was operated by the same organization as the one that was subject of the incident, and they knew who all the children were.</p> <p>This best practice document provides mechanisms for determining how places and locations are related — but determining the compatibility or validity of thematic data elements is beyond our scope; we're not attempting to solve the problem of different views on the same/similar resources.</p> <p>That said, there is one aspect of thematic semantics that must be mentioned. The most important semantic statement you can make when publishing <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-59">spatial data</a> — or any data — is to specify the <em>type</em> of a resource. For <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-67">Spatial Things</a>, there are several types that define "spatialness" (for examples in a <a href="#dfn-linked-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-linked-data-11">linked data</a> context, see <a href="#table-vocabs-matrix">the vocabularies table </a> in <a href="#applicability-formatVbp" class="sectionRef sec-ref"><bdi class="secno">A. </bdi>Applicability of common formats to implementation of best practices</a>). But you should also consider non-spatial aspects when designating the type of a <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-68">Spatial Thing</a>. For example, should a fire incident occur at Amsterdam Central railway station, it might seem sensible for the Municipal Fire Department to designate a type such as <strong>Building</strong> or <strong>Station</strong> (the Dutch Government Base Registry defines Amsterdam Central railway station, identified as <a class="respec-offending-element" title="No matching definition found." id="respec-offender-no-matching-definition-found"><code>https://brt.basisregistraties.overheid.nl/top10nl/id/gebouw/102625209</code></a>, designates both of these types). However, the Fire Departments are concerned with a <em>fire incident</em> — not the railway station itself. The fire incident is a <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-69">Spatial Thing</a> (it has spatial <a href="#dfn-extent" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-extent-6">extent</a>) but it is <em>not</em> the station. For example, the fire may spread to adjacent buildings. The Fire Department might designate their <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-70">Spatial Thing</a> as having type <strong>FireIncident</strong> or similar. Advice on how to assign a persistent identifier to the fire incident is provided in <a href="#globally-unique-ids" class="practiceRef">Best Practice 1: Use globally unique persistent HTTP URIs for Spatial Things</a>, and <a href="#bp-linking" class="sectionRef sec-ref"><bdi class="secno">13.1.3 </bdi>Linking data</a> provides guidance on how one might relate the fire incident to other coincident Spatial Things such as Amsterdam Central railway station.</p> <div class="note" role="note" id="issue-container-generatedID-20"><div role="heading" class="note-title marker" id="h-note-17" aria-level="5"><span>Note</span></div><aside class=""> <p><em>Thematic</em> semantics are out of scope for this best practice document. For associated best practices, please refer to [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#metadata">section 8.2 Metadata</a>, <a href="https://www.w3.org/TR/dwbp/#StructuralMetadata">Best Practice 3: Provide structural metadata</a>; and [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#dataVocabularies">section 8.9 Data Vocabularies</a>, <a href="https://www.w3.org/TR/dwbp/#ReuseVocabularies">Best Practice 15: Reuse vocabularies, preferably standardized ones</a> and <a href="https://www.w3.org/TR/dwbp/#ChooseRightFormalizationLevel">Best Practice 16: Choose the right formalization level</a>.</p> <p>See also [<cite><a class="bibref" data-link-type="biblio" href="#bib-ld-bp" title="Best Practices for Publishing Linked Data">LD-BP</a></cite>] <a href="https://www.w3.org/TR/ld-bp/#VOCABULARIES">Vocabularies</a>.</p> </aside></div> <div class="practicecontainer"> <div class="practice advisement"><a class="marker self-link" href="#semantic-thing"><bdi lang="en">Best Practice 4</bdi></a>: <span id="semantic-thing" class="practicelab">Use spatial data encodings that match your target audience</span> <p></p> <p class="practicedesc">Represent spatial data in a way that matches the needs of the target audiences.</p> </div> <section class="axioms"> <div class="header-wrapper"><h5 class="subhead" id="why-2">Why</h5><a class="self-link" href="#why-2" aria-label="Permalink for this Section"></a></div> <p><a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-60">Spatial data</a> is used by a range of user communities, each with their own purposes, knowledge and preferred tools. Data publishers should consider which communities and purposes they want to serve and make appropriate choices for the approach to encoding data. In general terms, data usefulness is increased when it can be used for more purposes. This might involve providing data in several different formats. (See [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#MultipleFormats">Best Practice 14: Provide data in multiple formats</a>.)</p> </section> <section class="outcome"> <div class="header-wrapper"><h5 class="subhead" id="intended-outcome-2">Intended Outcome</h5><a class="self-link" href="#intended-outcome-2" aria-label="Permalink for this Section"></a></div> <p><a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-61">Spatial data</a> can be used easily and reliably by the target users.</p> <p>Your data is more interoperable.</p> </section> <section class="how"> <div class="header-wrapper"><h5 class="subhead" id="possible-approach-to-implementation-2">Possible Approach to Implementation</h5><a class="self-link" href="#possible-approach-to-implementation-2" aria-label="Permalink for this Section"></a></div> <p>A high-level objective of these best practices is to highlight approaches that data publishers can take to maximize the ease of use of their <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-62">spatial data</a> via the Web and hence present data in a way that meets the needs of as wide a range of users and applications as possible.</p> <p>One way of classifying the applications of spatial data is as follows:</p> <ol> <li>Web pages for people to read about <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-71">Spatial Things</a></li> <li>Web mapping or visualization applications</li> <li>Data integration — combining spatial data with other data</li> <li>Spatial analytics — discover meaningful patterns in spatial data</li> </ol> <p>Each of these has different needs: often it will be possible or desirable to support several of these application groups.</p> <p>The main objective is to encode data in a way that recipients can easily decode and understand. To decide this, you need to consider which purpose(s) and which audience(s) you are aiming to serve and the characteristics of the data that you want to share. For example:</p> <ul> <li>the volume of data</li> <li>how many spatial <a href="#dfn-dimension" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-dimension-2">dimensions</a> it covers (points, lines, areas, 3D)</li> <li>what kind of area it covers (one building, a town, a whole country)</li> <li>how frequently it changes</li> <li>the level of spatial precision that exists in the data and the precision needed by users</li> </ul> <div class="header-wrapper"><h5 id="x1-web-pages-for-people-to-read-about-spatial-things">1. Web pages for people to read about Spatial Things</h5><a class="self-link" href="#x1-web-pages-for-people-to-read-about-spatial-things" aria-label="Permalink for this Section"></a></div> <p>In <a href="#globally-unique-ids" class="practiceRef">Best Practice 1: Use globally unique persistent HTTP URIs for Spatial Things</a>, we recommend the use of HTTP URIs as a way of assigning identifiers to <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-72">Spatial Things</a>. The data publisher should offer the ability to look up ('dereference') such a URI to find out useful information about that <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-73">Spatial Thing</a> in human readable form (as well as machine readable formats — see the discussion below on data integration). Each <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-74">Spatial Thing</a> therefore gets its own Web page — in addition it might be useful to have Web pages about groups of <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-75">Spatial Things</a>, but the 'page per thing' approach enables fine-grained linking of information.</p> <p>To promote the discovery of such Web pages in search engines, each page should contain a clear text description of what it is, ideally in a way that distinguishes it from pages about other similar <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-76">Spatial Things</a>. Including metadata using the [<cite><a class="bibref" data-link-type="biblio" href="#bib-schema-org" title="Schema.org">SCHEMA-ORG</a></cite>] vocabulary, embedded as [<cite><a class="bibref" data-link-type="biblio" href="#bib-microdata" title="HTML Microdata">MICRODATA</a></cite>], [<cite><a class="bibref" data-link-type="biblio" href="#bib-html-rdfa" title="HTML+RDFa 1.1 - Second Edition">HTML-RDFa</a></cite>] or as [<cite><a class="bibref" data-link-type="biblio" href="#bib-json-ld" title="JSON-LD 1.0">JSON-LD</a></cite>] in the <em><head></em> section of the page can provide additional information to search engines to support more precise indexing. See <a href="#indexable-by-search-engines" class="practiceRef">Best Practice 2: Make your spatial data indexable by search engines</a> for a more detailed discussion.</p> <p>It is also very useful in such Web pages to include <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-26">links</a> to descriptions of the <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-77">Spatial Thing</a> in other formats (typically machine-readable formats) as well as linking to related <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-78">Spatial Things</a>.</p> <p>In most cases, a web page about a Spatial Thing should include information on its location. This can be done by providing spatial coordinates (see <a href="#bp-crs-choice" class="practiceRef">Best Practice 7: Choose coordinate reference systems to suit your user's applications</a> for guidance on how to do this).</p> <p>A common way of specifying the location of a building is to use its postal address. Most spatial applications require an address to be turned into spatial coordinates, so that its location can be marked on a map, or compared with locations of other things, a process known as <a href="#dfn-geocoding" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geocoding-3">geocoding</a>. Although a publisher could leave this process of geocoding to the data user, ideally the publisher should take responsibility for this as they are in a better position to check the accuracy of the results. Different ways of specifying addresses can sometimes lead to errors in the geocoding process.</p> <p>Other approaches can be taken to specifying location. <a href="https://what3words.com/">What3words</a> is an example of a service that assigns an alternative kind of address to a location — in this case a sequence of three common words associated with a 3m by 3m square on the ground. It allows every location to be given such an address and what3words also provides a means to relate the address to <a href="#dfn-latitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-latitude-8">latitude</a> and <a href="#dfn-longitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-longitude-8">longitude</a> coordinates. Like conventional addresses, converting to coordinates is necessary for many spatial data applications (e.g. to calculate the distance between points or whether a point is inside a region), but the process of conversion is more reliable and precise.</p> <aside class="example" id="ex-wiki-spatial-things"><div class="marker"> <a class="self-link" href="#ex-wiki-spatial-things">Example<bdi> 15</bdi></a> </div> <p>Wikipedia includes web pages about many Spatial Things, for example <a href="https://en.wikipedia.org/wiki/Florence_Cathedral">Florence Cathedral</a>. This page provides latitude and longitude coordinates for the cathedral, as well as linking to other pages about the city of Florence and the region of Tuscany. It would be better if typical Wikipedia pages about Spatial Things were explicit about the coordinate reference system used. However, a link is also provided to the 'Geohack' service which provides detailed location information, including the CRS.</p> </aside> <div class="header-wrapper"><h5 id="x2-web-mapping-or-visualization-applications">2. Web mapping or visualization applications</h5><a class="self-link" href="#x2-web-mapping-or-visualization-applications" aria-label="Permalink for this Section"></a></div> <p>A common application of <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-63">spatial data</a> on the Web is delivering map data in a tiled form, suitable for display in zoomable 'slippy maps'. The <abbr title="Open Geospatial Consortium">OGC</abbr>'s <a href="#dfn-wmts" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-wmts-1">Web Map Tile Service</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-wmts" title="Web Map Tile Service Implementation Standard">WMTS</a></cite>] is an established standard for doing this. Other approaches in common use include <a href="https://github.com/mapbox/mbtiles-spec">MBTiles</a> or 'Tile layers' in <a href="https://developers.google.com/maps/">Google Maps <abbr title="Application Programming Interfaces">APIs</abbr></a></p> <p>Another frequent requirement is to draw markers or polygons on top of a Web map. A typical approach is for the browser to display a base map, then separately retrieve data about <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-79">Spatial Things</a> of interest, typically as GeoJSON [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7946" title="The GeoJSON Format">RFC7946</a></cite>], [<cite><a class="bibref" data-link-type="biblio" href="#bib-georss" title="W3C Geospatial Vocabulary">GeoRSS</a></cite>] feeds, [<cite><a class="bibref" data-link-type="biblio" href="#bib-gml" title="Geography Markup Language (GML) Encoding Standard">GML</a></cite>] using the Simple Features profile [<cite><a class="bibref" data-link-type="biblio" href="#bib-gml-sf" title="Geography Markup Language (GML) simple features profile">GML-SF</a></cite>] or [<cite><a class="bibref" data-link-type="biblio" href="#bib-kml" title="OGC KML 2.3">KML</a></cite>] files, then combine the two using appropriate JavaScript libraries. For applications involving boundary polygons of geographical areas, a common consideration is how to make this process efficient at different zoom levels. A high level of detail is appropriate when zoomed in, but many areas may be visible when zoomed out, and delivering boundaries of all of those at full detail can lead to very large amounts of data and hence poor performance, so simplified lower resolution versions of polygons may be required.</p> <p>See this <a href="#table-formats-matrix">comparison of different spatial data formats</a> to help guide the choice of which approach is best suited to your purpose.</p> <aside class="example" id="ex-d3-js"><div class="marker"> <a class="self-link" href="#ex-d3-js">Example<bdi> 16</bdi></a> </div> <p><a href="https://d3js.org/">d3.js</a> is a widely used JavaScript library for creating visualizations in web pages. This <a href="https://medium.com/@mbostock/command-line-cartography-part-1-897aa8f8ca2c">tutorial by Mike Bostock</a> describes how to use D3 to work with geometrical data and display it in a web page.</p> </aside> <div class="header-wrapper"><h5 id="x3-data-integration-combining-spatial-data-with-other-data">3. Data integration — combining spatial data with other data</h5><a class="self-link" href="#x3-data-integration-combining-spatial-data-with-other-data" aria-label="Permalink for this Section"></a></div> <p>Many important applications of <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-64">spatial data</a> involve combining it with other kinds of data: for example, opening times of nearby supermarkets, or statistical information on the economy of a town. Often one or more <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-80">Spatial Things</a> are at the center of the data analysis process.</p> <p>Other applications involve distinguishing or selecting <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-81">Spatial Things</a> according to their non-spatial characteristics: hospitals with an emergency department or restaurants that serve Japanese food.</p> <p>To enable such questions to be answered using data from different sources, it is important to describe <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-82">Spatial Things</a> using shared identifiers and vocabularies. This is described in [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#identifiersWithinDatasets">Best Practice 10: Use persistent URIs as identifiers within datasets</a> and [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#ReuseVocabularies">Best Practice 15: Reuse vocabularies, preferably standardized ones</a>.</p> <p>From a <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-65">spatial data</a> perspective, the question of identifiers is discussed in <a href="#globally-unique-ids" class="practiceRef">Best Practice 1: Use globally unique persistent HTTP URIs for Spatial Things</a>. How to relate a <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-83">Spatial Thing</a> to its <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-14">geometry</a> is described in <a href="#describe-geometry" class="practiceRef">Best Practice 5: Provide geometries on the Web in a usable way</a>.</p> <p>A common approach to encoding data to enable data integration is <a href="#dfn-linked-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-linked-data-12">Linked Data</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-ld-bp" title="Best Practices for Publishing Linked Data">LD-BP</a></cite>] and <a href="#dfn-resource-description-framework" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-resource-description-framework-10">RDF</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-rdf11-primer" title="RDF 1.1 Primer">RDF11-PRIMER</a></cite>]. The spatial aspects of the data can either be included in the RDF data model, or the entity in question can link to an external Web resource containing the <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-15">geometry</a> in one of the standard spatial data formats. Although RDF is well-suited to important aspects of best practice, including use of URIs as identifiers and re-use of vocabularies, other data formats are also consistent with this approach. Most spatial data formats enable associating attributes of an entity alongside its geometry.</p> <p>The publisher's choice of data model to represent the data will depend on what data is available and which audiences and purposes it seems most important to support. However, a reasonable general rule is that it is always useful to provide a label and a type for each entity in the data collection. (See [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#ChooseRightFormalizationLevel">Best Practice 16: Choose the right formalization level</a>)</p> <p>Common vocabularies for describing the address or location of a <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-84">Spatial Thing</a> include: [<cite><a class="bibref" data-link-type="biblio" href="#bib-schema-org" title="Schema.org">SCHEMA-ORG</a></cite>], [<cite><a class="bibref" data-link-type="biblio" href="#bib-vcard-rdf" title="vCard Ontology - for describing People and Organizations">VCARD-RDF</a></cite>] and [<cite><a class="bibref" data-link-type="biblio" href="#bib-locn" title="ISA Programme Location Core Vocabulary">LOCN</a></cite>]. See this <a href="#table-vocabs-matrix">comparison of different vocabularies for describing Spatial Things</a> to help decide which is best for your application.</p> <p>Publishing explicit relationships between the Spatial Thing of interest and other related Spatial Things helps support data integration applications: for example, providing hierarchical relationships between different kinds of administrative area.</p> <aside class="example" id="ex-scottish-statistical-data"><div class="marker"> <a class="self-link" href="#ex-scottish-statistical-data">Example<bdi> 17</bdi></a> </div> <p>The Scottish Government makes a lot of statistical data available via their website <a href="http://statistics.gov.scot">Statistics.gov.scot</a>. Every statistical data point is referred to a geographical area, identified by an HTTP URI, making it easy to compare different datasets about an area of interest. See for example this page about the <a href="http://statistics.gov.scot/id/statistical-geography/S12000036">City of Edinburgh Council Area</a>.</p> </aside> <div class="header-wrapper"><h5 id="x4-spatial-analytics-discover-meaningful-patterns-in-spatial-data">4. Spatial analytics — discover meaningful patterns in spatial data</h5><a class="self-link" href="#x4-spatial-analytics-discover-meaningful-patterns-in-spatial-data" aria-label="Permalink for this Section"></a></div> <p>Spatial analytics (or spatial analysis) is about deriving new insights by applying formal techniques to study <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-85">Spatial Things</a> using their topological or geometric properties. Combining <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-66">spatial data</a> with other data (see item 3 above) is a typical preparatory step before analyzing the one or more datasets using <a href="#dfn-spatial-operator" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-operator-1">spatial operators</a>, statistical algorithms, etc.</p> <p>For spatial analytics on the Web, the data should be accessible via an <abbr title="Application Programming Interface">API</abbr> as described in <a href="#bp-exposing-via-api" class="sectionRef sec-ref"><bdi class="secno">13.4 </bdi>Spatial data access</a> and results should be shared using the best practices described in this document. Current <a href="#dfn-sdi" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-sdi-15">spatial data infrastructures</a> have some limitations with respect to sharing spatial data on the Web (as discussed in <a href="#why-are-traditional-sdi-not-enough" class="sectionRef sec-ref"><bdi class="secno">12. </bdi>Why are traditional Spatial Data Infrastructures not enough?</a>). Nonetheless this approach is a well-established and powerful way of distributing <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-67">spatial data</a>, based on open standards and suited to a community of expert users. It is thus one of the options a data publisher should consider when deciding how to encode their <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-68">spatial data</a>.</p> <p>In addition to publishing the data that represents the results of the analysis, maps and other forms of visualization (see item 2 above) are typically used to communicate the results.</p> <aside class="example" id="ex-cbs"><div class="marker"> <a class="self-link" href="#ex-cbs">Example<bdi> 18</bdi></a> </div> <p>The Meteorological Service of Canada (part of Environment and Climate Change Canada) publishes their <a href="https://api.weather.gc.ca/collections/climate-daily">daily climate observations </a> as an <abbr title="Open Geospatial Consortium">OGC</abbr> <abbr title="Application Programming Interface">API</abbr> - Features - Part 1: Core [<cite><a class="bibref" data-link-type="biblio" href="#bib-oaf1" title="OGC API - Features - Part 1: Core">OAF1</a></cite>] service. The landing page of the service can be requested with the following:</p> <code>https://api.weather.gc.ca/?f=json</code> <p>In addition, <abbr title="Application Programming Interface">API</abbr> conformance can be determined in the following way:</p> <code>https://api.weather.gc.ca/conformance</code> <p>Finally, a listing of collections made available through the service as per below:</p> <code>https://api.weather.gc.ca/collections</code> <p>For example, the following request returns the climate data observations at a given named location within a specific time period:</p> <code>https://api.weather.gc.ca/collections/climate-daily/items?f=json&CLIMATE_IDENTIFIER=6158731&datetime=2013-10-30%2000:00:00/2014-10-30%2000:00:00</code> </aside> <div class="header-wrapper"><h4 class="subhead" id="balancing-quality-and-cost">Balancing quality and cost</h4><a class="self-link" href="#balancing-quality-and-cost" aria-label="Permalink for this Section"></a></div> <p>The four main classes of application above have a wide range of requirements. To support such a wide range may require a lot of effort and cost on behalf of a data publisher. There are many aspects to the 'quality' of a <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-69">spatial data</a> publishing approach, but in general terms it relates to how well the data and approach to data delivery meet the needs of the target audience. By choosing to concentrate on only some kinds of application the publisher can keep cost down. Other factors to consider include performance (speed with which data is delivered), timeliness of updates — which can be a significant consideration if the underlying data changes frequently, software complexity or maintenance. </p> <p>In many cases a mixture of technologies can be used together to find a good compromise of quality or performance and cost. The strengths of various approaches can be applied to the part of the publishing 'spectrum' that suits them best. For example, if using a <a href="#dfn-linked-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-linked-data-13">Linked Data</a> approach, one option is to keep all data in a <a href="#dfn-triple-store" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-triple-store-3">triple store</a>; but hybrid approaches are also possible, for example where geometrical information is stored and served from flat files, or where non-geometrical data and metadata is stored in a triple store and used to generate Web pages and machine readable descriptions of <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-86">Spatial Things</a>, while geometrical data is indexed by software such as Lucene Spatial, PostGIS or Elasticsearch. Use of shared Web-accessible identifiers for <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-87">Spatial Things</a> can help support the interconnections between a range of diverse information systems. </p> <p>[<cite><a class="bibref" data-link-type="biblio" href="#bib-eo-qb" title="Publishing and Using Earth Observation Data with the RDF Data Cube and the Discrete Global Grid System">EO-QB</a></cite>] describes a 'spectrum of linkiness' for coverage data. At one end of the spectrum, you can assign each individual data point or pixel within a coverage (such as a satellite image) an individual identifier and web page. At the other, you can link just to an entire dataset and provide metadata for that. An intermediate approach involves dividing the data into tiles, each of which can have its own identifier and metadata. The balance of quality and cost in this example corresponds to the size of tiles that can be individually referenced, described and retrieved.</p> </section> <section class="test"> <div class="header-wrapper"><h5 class="subhead" id="how-to-test-2">How to Test</h5><a class="self-link" href="#how-to-test-2" aria-label="Permalink for this Section"></a></div> <p>Check if spatial data is encoded, so that it can be understood and re-used reliably.</p> <p>Consider the main target audience or audiences of a web page or service, and check if spatial information is provided in a way appropriate for that audience.</p> </section> <section class="ucr"> <div class="header-wrapper"><h5 class="subhead" id="evidence-2">Evidence</h5><a class="self-link" href="#evidence-2" aria-label="Permalink for this Section"></a></div> <p><span>Relevant requirements</span>: <a href="https://www.w3.org/TR/sdw-ucr/#DeterminableCRS">R-DeterminableCRS</a>, <a href="https://www.w3.org/TR/sdw-ucr/#Discoverability">R-Discoverability</a>, <a href="https://www.w3.org/TR/sdw-ucr/#GeoreferencedData">R-GeoreferencedData</a>, <a href="https://www.w3.org/TR/sdw-ucr/#Linkability">R-Linkability</a>, <a href="https://www.w3.org/TR/sdw-ucr/#MachineToMachine">R-MachineToMachine</a>, <a href="https://www.w3.org/TR/sdw-ucr/#SpatialRelationships">R-SpatialRelationships</a> </p> </section> <section class="benefits"> <div class="header-wrapper"><h5 class="subhead" id="benefits-2">Benefits</h5><a class="self-link" href="#benefits-2" aria-label="Permalink for this Section"></a></div> <ul class="benefitsList"> <li class="hidden">Comprehension</li> <li class="hidden">Processability</li> <li class="hidden">Reuse</li> <li class="hidden">Interoperability</li> <li class="hidden">Access</li> <li class="icon"><img src="images/comprehension.svg" alt="Comprehension" class="benefitIcon comprehensionIcon"></li><li class="icon"><img src="images/processability.svg" alt="Processability" class="benefitIcon processabilityIcon"></li><li class="icon"><img src="images/reuse.svg" alt="Reuse" class="benefitIcon reuseIcon"></li><li class="icon"><img src="images/interoperability.svg" alt="Interoperability" class="benefitIcon interoperabilityIcon"></li><li class="icon"><img src="images/access.svg" alt="Access" class="benefitIcon accessIcon"></li></ul> </section> </div> </section> <section id="geometry-and-crs"><div class="header-wrapper"><h4 id="x13-2-2-geometries-and-coordinate-reference-systems"><bdi class="secno">13.2.2 </bdi>Geometries and coordinate reference systems</h4><a class="self-link" href="#geometry-and-crs" aria-label="Permalink for Section 13.2.2"></a></div> <p>Location information is a common constituent of <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-70">spatial data</a> and can be an important 'hook' for finding information and for integrating different datasets. There are different ways of describing the location of <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-88">Spatial Things</a>. You can use and/or refer to the name of a well-known named place, provide position coordinates in a <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-16">geometry</a> or describe one location relative to another location. Providing multiple representations i.e. several <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-17">geometries</a> for one <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-89">Spatial Thing</a> can also be helpful, allowing data users to choose the one that fits their use case. This generally requires each <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-18">geometry</a> to be represented as a structured object that includes not only coordinates of the positions defining the geometry but also an identifier and other properties that describe its specific characteristics. It is especially important to choose the <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-17">coordinate reference system</a> with care and indicate it clearly for each <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-19">geometry</a>.</p> <div class="practicecontainer"> <div class="practice advisement"><a class="marker self-link" href="#describe-geometry"><bdi lang="en">Best Practice 5</bdi></a>: <span id="describe-geometry" class="practicelab">Provide geometries on the Web in a usable way</span> <p></p> <p class="practicedesc"><a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-20">Geometry</a> data should be expressed in a way that allows its publication and use on the Web.</p> </div> <section class="axioms"> <div class="header-wrapper"><h5 class="subhead" id="why-3">Why</h5><a class="self-link" href="#why-3" aria-label="Permalink for this Section"></a></div> <p>The geospatial, Linked Data, and Web communities use different <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-21">geometry</a> formats and tools, which reflect different requirements with respect to data complexity and manipulation.</p> <p>When deciding how a <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-22">geometry</a> should be described, it is therefore necessary to consider the intended uses and the related user communities. This may also imply providing alternative geometry descriptions.</p> <p>This best practice helps with choosing the right format for describing <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-23">geometries</a>, based on aspects like intended use(s), performance, and tool support. It also helps with deciding when encoding geometries as literals rather than as structured objects is a useful simplification.</p> <div class="note" role="note" id="issue-container-generatedID-21"><div role="heading" class="note-title marker" id="h-note-18" aria-level="6"><span>Note</span></div><aside class=""> <p>This best practice is strictly correlated to <a href="#multiplegeometries" class="practiceRef">Best Practice 6: Provide geometries at the right level of accuracy, precision, and size</a>, <a href="#bp-crs-choice" class="practiceRef">Best Practice 7: Choose coordinate reference systems to suit your user's applications</a>, and <a href="#bp-crs" class="practiceRef">Best Practice 8: State how coordinate values are encoded</a>, to which we refer the reader for more information.</p> </aside></div> </section> <section class="outcome"> <div class="header-wrapper"><h5 class="subhead" id="intended-outcome-3">Intended Outcome</h5><a class="self-link" href="#intended-outcome-3" aria-label="Permalink for this Section"></a></div> <p>The format chosen to express geometry data should:</p> <ul> <li>Support the <a href="#dfn-dimension" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-dimension-3">dimensionality</a> of the <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-24">geometry</a> (from points — 0D — to volumes — 3D) — not all geometry formats support all dimensions.</li> <li>Support the <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-18">coordinate reference system</a> you need.</li> <li>Be supported by the software tools used within particular data user communities — the geospatial and Web communities use different tools often suited to different geometry formats.</li> <li>Keep geometry definitions to a level of detail and size that is appropriate for the intended applications — Web applications do not typically require detailed <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-25">geometries</a>.</li> </ul> <p>Ideally, to enable their widest re-use, <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-26">geometries</a> should be described having in mind the geospatial, Linked Data and Web communities. This may not be always feasible, but the objective should at least be to describe geometries (also) for Web consumption.</p> </section> <section class="how"> <div class="header-wrapper"><h5 class="subhead" id="possible-approach-to-implementation-3">Possible Approach to Implementation</h5><a class="self-link" href="#possible-approach-to-implementation-3" aria-label="Permalink for this Section"></a></div> <p>Steps to follow:</p> <ul> <li>Identify the intended uses and applications. In particular, it is important to verify if <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-27">geometries</a> need to be used in one or more of the following scenarios: <ul> <li>specific geospatial applications;</li> <li><a href="#dfn-linked-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-linked-data-14">linked data</a> applications;</li> <li>Web consumption.</li> </ul> </li> <li>For each of the intended uses / applications, provide possibly alternative descriptions of geometries, considering: <ul> <li>The appropriate <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-28">geometry</a> <a href="#dfn-dimension" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-dimension-4">dimensionality</a> (0D — points, 1D — curves, 2D — surfaces, 3D — solids). See <a href="#spatial-things-features-and-geometry" class="sectionRef sec-ref"><bdi class="secno">7. </bdi>Spatial Things, Features and Geometry</a> for more information.</li> <li>The appropriate <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-19">coordinate reference system</a>(s). See <a href="#CRS-background" class="sectionRef sec-ref"><bdi class="secno">10. </bdi>Coordinate Reference Systems (CRS)</a> for more information.</li> <li>The appropriate geometry encoding(s) / representation(s) — also considering the software tools that you anticipate your user community to employ. See <a href="#applicability-formatVbp" class="sectionRef sec-ref"><bdi class="secno">A. </bdi>Applicability of common formats to implementation of best practices</a> for more information.</li> <li>The appropriate level of detail. See <a href="#multiplegeometries" class="sectionRef">Best Practice 6: Provide geometries at the right level of accuracy, precision, and size</a> for more information.</li> </ul> </li> <li>Where multiple representations are required, consider offering as many as you can — balancing the benefit of ease of use against the cost of the additional storage or additional processing if converting on-the-fly. See [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#Conneg" class="practiceRef"></a> for more information. <div class="note" role="note" id="issue-container-generatedID-22"><div role="heading" class="note-title marker" id="h-note-19" aria-level="6"><span>Note</span></div><aside class=""> <p>HTTP content negotiation only works for media type, character set, encoding, and language. Consequently, it is not possible to select one representation that conforms to a given "profile" (e.g. data model, complexity level, <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-20">CRS</a>) from several that all share the same media-type; e.g. asking for the GeoJSON [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7946" title="The GeoJSON Format">RFC7946</a></cite>] features with "simple" <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-29">geometries</a> (compacted polygons or just points) not the "complex" geometries; or asking for the representation that uses CRS84 not Amersfoort-RD.</p> </aside></div> </li> </ul> <p>It is important to note that the steps outlined above are interrelated. For instance, the <a href="#dfn-dimension" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-dimension-5">dimensionality</a> of a <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-30">geometry</a> determines the set of <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-21">coordinate reference systems</a> that can be used, as well as the geometry encodings / representations.</p> <p>Another issue to be considered when choosing the geometry format is whether the coordinate axis order is unambiguous — i.e., whether the order of the position coordinates defining each geometry is, e.g., <a href="#dfn-longitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-longitude-9">longitude</a>/<a href="#dfn-latitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-latitude-9">latitude</a> or latitude/longitude. This specific topic is covered by <a href="#bp-crs">Best Practice 8: State how coordinate values are encoded</a>.</p> <div class="note" role="note" id="issue-container-generatedID-23"><div role="heading" class="note-title marker" id="h-note-20" aria-level="6"><span>Note</span></div><aside class=""> <p>Multiple formats exist for representing <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-31">geometries</a> (and some of them are listed in <a href="#applicability-formatVbp" class="sectionRef sec-ref"><bdi class="secno">A. </bdi>Applicability of common formats to implementation of best practices</a>). It is important to distinguish between the structured <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-32">geometry</a> object itself and the list of two or more position coordinates that places that geometry in space and is typically the most voluminous part of geometry data. Another of the issues to be considered when choosing the format(s) to be supported is where and when to use literals or structured object formats.</p> <ul> <li>For <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-33">geometry</a> literals, several encodings are available, such as Well-Known Text (<a href="#dfn-well-known-text" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-well-known-text-2">WKT</a>) representations, <a href="#dfn-geohash" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geohash-1">Geohash</a> and other <a href="#dfn-geocoding" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geocoding-4">geocoding</a> representations. Literals may lend themselves to compact storage and fast processing, but have the disadvantage that properties of the geometry are not readily Web-accessible. An alternative is to use structured geometry objects. [<cite><a class="bibref" data-link-type="biblio" href="#bib-geosparql" title="GeoSPARQL - A Geographic Query Language for RDF Data">GeoSPARQL</a></cite>], for example, balances accessibility and compactness by using a literal such as <a href="#dfn-well-known-text" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-well-known-text-3">WKT</a> to encode just the position list of a <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-34">geometry</a> but represents other properties in RDF .</li> <li>There are also several suitable binary data formats (e.g. <a href="https://protobuf.dev">Google's protocol buffers</a> for vector tiling); however, some binary formats do not (effectively) work on the Web as there are no software tools for working with those formats from within a typical Web application; to work with data in such formats, you must first download the data and then work with it locally.</li> <li>There are widespread practices for representing geometric data as <a href="#dfn-linked-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-linked-data-15">linked data</a>, such as using [<cite><a class="bibref" data-link-type="biblio" href="#bib-w3c-basic-geo" title="Basic Geo (WGS84 lat/long) Vocabulary">W3C-BASIC-GEO</a></cite>] <code>w3cgeo:lat</code> and <code>w3cgeo:long</code> that are used extensively for describing <code>w3cgeo:Point</code> objects.</li> <li>Concrete geometry types are available, such as those defined in the OpenGIS [<cite><a class="bibref" data-link-type="biblio" href="#bib-simple-features" title="Simple Feature Access - Part 1: Common Architecture">SIMPLE-FEATURES</a></cite>] Specification, namely 0-dimensional Point and MultiPoint; 1-dimensional curve LineString and MultiLineString; 2-dimensional surface Polygon and MultiPolygon; and the heterogeneous GeometryCollection. </li> </ul> </aside></div> <p>Currently, there are two references <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-35">geometry</a> formats widely used in the geospatial and Web communities, respectively, [<cite><a class="bibref" data-link-type="biblio" href="#bib-gml" title="Geography Markup Language (GML) Encoding Standard">GML</a></cite>] and GeoJSON [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7946" title="The GeoJSON Format">RFC7946</a></cite>].</p> <p>[<cite><a class="bibref" data-link-type="biblio" href="#bib-gml" title="Geography Markup Language (GML) Encoding Standard">GML</a></cite>] provides the ability to express any type of <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-36">geometry</a>, in any <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-22">coordinate reference system</a>, and up to 3 <a href="#dfn-dimension" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-dimension-6">dimensions</a> (from points to solids) but is typically serialized in <a href="#dfn-extensible-markup-language" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-extensible-markup-language-5">XML</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-xml11" title="Extensible Markup Language (XML) 1.1 (Second Edition)">XML11</a></cite>].</p> <p>GeoJSON [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7946" title="The GeoJSON Format">RFC7946</a></cite>] supports only one <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-23">coordinate reference system</a> (CRS84 — i.e., WGS 84 longitude/latitude), and <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-37">geometries</a> up to 2 dimensions (points, lines, surfaces) but is serialized in <a href="#dfn-javascript-object-notation" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-javascript-object-notation-7">JSON</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7159" title="The JavaScript Object Notation (JSON) Data Interchange Format">RFC7159</a></cite>], which is often easier for browser-based Web applications to process.</p> <p>To facilitate the use of <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-38">geometry</a> data on the Web as well in <a href="#dfn-geographic-information-system" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geographic-information-system-1">GIS</a>, it is desirable that complex [<cite><a class="bibref" data-link-type="biblio" href="#bib-gml" title="Geography Markup Language (GML) Encoding Standard">GML</a></cite>]-encoded geometries be made available also in simplified form as GeoJSON [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7946" title="The GeoJSON Format">RFC7946</a></cite>], by applying any required <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-24">coordinate reference system</a> transformation, as well as simplifying and generalizing the original geometry as needed (e.g., by transforming a 3D geometry into a 2D one). Simplified geometries may of course also be published in [<cite><a class="bibref" data-link-type="biblio" href="#bib-gml" title="Geography Markup Language (GML) Encoding Standard">GML</a></cite>], for example by conforming to the GML Simple Feature profile [<cite><a class="bibref" data-link-type="biblio" href="#bib-gml-sf" title="Geography Markup Language (GML) simple features profile">GML-SF</a></cite>]. (On this topic, see <a href="#multiplegeometries" class="sectionRef">Best Practice 6: Provide geometries at the right level of accuracy, precision, and size</a>).</p> <div class="note" role="note" id="issue-container-generatedID-24"><div role="heading" class="note-title marker" id="h-note-21" aria-level="6"><span>Note</span></div><aside class=""> <p>Another approach to publishing <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-39">geometries</a> on the Web is to embed them directly in Web pages. This is, for instance, the approach used by [<cite><a class="bibref" data-link-type="biblio" href="#bib-schema-org" title="Schema.org">SCHEMA-ORG</a></cite>], which defines several terms to specify them (see <a href="#indexable-by-search-engines" class="sectionRef">Best Practice 2: Make your spatial data indexable by search engines</a> for more information).</p> <p>Typically, this is used just for 0D-2D <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-40">geometries</a> (points, lines, surfaces). Detailed and complex geometries cannot be published with this methodology, so also in this case only a very simplified representation of the original <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-41">geometry</a> can be published — e.g., the centroid and/or 2D bounding box. (On this topic, see <a href="#multiplegeometries" class="sectionRef">Best Practice 6: Provide geometries at the right level of accuracy, precision, and size</a>).</p> </aside></div> <p>Finally, <a href="#dfn-resource-description-framework" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-resource-description-framework-11">RDF</a>-based representations of <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-42">geometries</a> are used in the Linked Data community. This is achieved by using specific vocabularies, as [<cite><a class="bibref" data-link-type="biblio" href="#bib-w3c-basic-geo" title="Basic Geo (WGS84 lat/long) Vocabulary">W3C-BASIC-GEO</a></cite>] (only for points), [<cite><a class="bibref" data-link-type="biblio" href="#bib-georss" title="W3C Geospatial Vocabulary">GeoRSS</a></cite>] (points, lines, boxes, circles, polygons) or [<cite><a class="bibref" data-link-type="biblio" href="#bib-geosparql" title="GeoSPARQL - A Geographic Query Language for RDF Data">GeoSPARQL</a></cite>] (for any simple features geometries). For a high-level comparison of common spatial data vocabularies, see <a href="#applicability-formatVbp" class="sectionRef sec-ref"><bdi class="secno">A. </bdi>Applicability of common formats to implementation of best practices</a>.</p> <p>These <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-43">geometry</a> representations are either stored with the related data, or are maintained separately, and possibly denoted with HTTP URIs (see <a href="#ex-http-uris-for-geometries" class="box-ref">Example<bdi> 22</bdi></a>).</p> <p><a href="#dfn-resource-description-framework" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-resource-description-framework-12">RDF</a> representations of <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-44">geometries</a> can support most <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-45">geometry</a> types and <a href="#dfn-dimension" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-dimension-7">dimensions</a> (up to at least 2 dimensions), with any level of complexity, in any <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-25">coordinate reference system</a>. On the other hand, many existing <a href="#dfn-semantic-web" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-semantic-web-2">Semantic Web</a> tools such as <a href="#dfn-triple-store" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-triple-store-4">triple stores</a> are currently not efficient enough to perform spatial queries which are complex and/or on complex geometries. It may therefore preferable to maintain geometries separately, in software platforms designed for these specific tasks.</p> <p>It is nonetheless still desirable to make simplified <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-46">geometries</a> available for Web consumption in GeoJSON [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7946" title="The GeoJSON Format">RFC7946</a></cite>] or embedded in Web pages.</p> <div class="note" id="issue-container-generatedID-25"><div role="heading" class="ednote-title marker" id="h-ednote-2" aria-level="6"><span>Editor's note</span></div><aside class=""> <p>In the following text and example, property <code>locn:geometry</code> has been replaced with the more specific property <a href="https://www.w3.org/TR/vocab-dcat-2/#Property:location_bbox"><code>dcat:bbox</code></a>, defined in [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-dcat-2" title="Data Catalog Vocabulary (DCAT) - Version 2">VOCAB-DCAT-2</a></cite>], and adopted in [<cite><a class="bibref" data-link-type="biblio" href="#bib-geodcat-ap-20201223" title="GeoDCAT-AP: A geospatial extension for the DCAT application profile for data portals in Europe. Version 2.0.0">GeoDCAT-AP-20201223</a></cite>].</p> <p>Moreover, the original GeoJSON datatype URI used in the example (corresponding to <a href="https://www.iana.org/assignments/media-types/application/geo+json">the GeoJSON IANA Media Type URL</a>) has been replaced with <code>geosparql:geoJSONLiteral</code>, included in the draft of the new version of [<cite><a class="bibref" data-link-type="biblio" href="#bib-geosparql" title="GeoSPARQL - A Geographic Query Language for RDF Data">GeoSPARQL</a></cite>] (see issues <a href="https://github.com/opengeospatial/ogc-geosparql/issues/1">opengeospatial/ogc-geosparql/issues/1</a> and <a href="https://github.com/opengeospatial/ogc-geosparql/issues/48">opengeospatial/ogc-geosparql/issues/48</a>), already adopted in [<cite><a class="bibref" data-link-type="biblio" href="#bib-geodcat-ap-20201223" title="GeoDCAT-AP: A geospatial extension for the DCAT application profile for data portals in Europe. Version 2.0.0">GeoDCAT-AP-20201223</a></cite>].</p> </aside></div> <p>The following [<cite><a class="bibref" data-link-type="biblio" href="#bib-turtle" title="RDF 1.1 Turtle">TURTLE</a></cite>] snippet shows the [<cite><a class="bibref" data-link-type="biblio" href="#bib-geodcat-ap" title="GeoDCAT-AP: A geospatial extension for the DCAT application profile for data portals in Europe">GeoDCAT-AP</a></cite>] representation of the dataset in <a href="#ex-schemaorg-dataset-and-place" class="box-ref">Example<bdi> 12</bdi></a>. Here the bounding box is provided in multiple literal encodings (<a href="#dfn-well-known-text" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-well-known-text-4">WKT</a>, [<cite><a class="bibref" data-link-type="biblio" href="#bib-gml" title="Geography Markup Language (GML) Encoding Standard">GML</a></cite>], GeoJSON [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7946" title="The GeoJSON Format">RFC7946</a></cite>]), by using property <a href="https://www.w3.org/TR/vocab-dcat-2/#Property:location_bbox"><code>dcat:bbox</code></a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-dcat-2" title="Data Catalog Vocabulary (DCAT) - Version 2">VOCAB-DCAT-2</a></cite>].</p> <aside class="example" id="ex-geodcat-ap-bag-addresses"><div class="marker"> <a class="self-link" href="#ex-geodcat-ap-bag-addresses">Example<bdi> 19</bdi></a><span class="example-title">: [GeoDCAT-AP] representation of dataset spatial coverage (bounding box) in multiple encodings</span> </div> <pre aria-busy="false"><code class="hljs xml">@prefix dcat: <http://www.w3.org/ns/dcat#> . @prefix dcterms: <http://purl.org/dc/terms/> . @prefix geosparql: <http://www.opengis.net/ont/geosparql#> . @prefix locn: <http://www.w3.org/ns/locn#> . <http://www.ldproxy.net/bag/inspireadressen/> a dcat:Dataset ; dcterms:title "Adressen"@nl ; dcterms:title "Addresses"@en ; dcterms:description "INSPIRE Adressen afkomstig uit de basisregistratie Adressen, beschikbaar voor heel Nederland"@nl ; dcterms:description "INSPIRE addresses derived from the Addresses base registry, available for the Netherlands"@en ; dcterms:isPartOf <http://www.ldproxy.net/bag/> ; dcat:theme <http://inspire.ec.europa.eu/theme/ad> ; dcterms:spatial [ a dcterms:Location ; dcat:bbox # Bounding box in WKT "POLYGON((3.053 47.975,7.24 47.975,7.24 53.504,3.053 53.504,3.053 47.975))"^^geosparql:wktLiteral , # Bounding box in GML "<span class="hljs-tag"><<span class="hljs-name">gml:Envelope</span> <span class="hljs-attr">srsName</span>=<span class="hljs-string">\</span>"<span class="hljs-attr">http:</span>//<span class="hljs-attr">www.opengis.net</span>/<span class="hljs-attr">def</span>/<span class="hljs-attr">crs</span>/<span class="hljs-attr">OGC</span>/<span class="hljs-attr">1.3</span>/<span class="hljs-attr">CRS84</span>\"></span> <span class="hljs-tag"><<span class="hljs-name">gml:lowerCorner</span>></span>3.053 47.975<span class="hljs-tag"></<span class="hljs-name">gml:lowerCorner</span>></span> <span class="hljs-tag"><<span class="hljs-name">gml:upperCorner</span>></span>7.24 53.504<span class="hljs-tag"></<span class="hljs-name">gml:upperCorner</span>></span> <span class="hljs-tag"></<span class="hljs-name">gml:Envelope</span>></span>"^^geosparql:gmlLiteral , # Bounding box in GeoJSON "{ \"type\":\"Polygon\",\"coordinates\":[[ [3.053,47.975],[7.24,47.975],[7.24,53.504],[3.053,53.504],[3.053,47.975] ]] }"^^geosparql:geoJSONLiteral ] .</code></pre> </aside> <p>In the above example, the <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-26">coordinate reference system</a> used for the bounding box is CRS84 (equivalent to WGS 84, but with coordinate axis-order longitude/latitude), which is explicitly specified in the [<cite><a class="bibref" data-link-type="biblio" href="#bib-gml" title="Geography Markup Language (GML) Encoding Standard">GML</a></cite>] encoding via attribute <code>@srsName</code>, and by using the relevant HTTP URI from the <a href="http://www.opengis.net/def/crs/EPSG/0"><abbr title="Open Geospatial Consortium">OGC</abbr> CRS registry</a>. The <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-27">coordinate reference system</a> is not specified for the <a href="#dfn-well-known-text" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-well-known-text-5">WKT</a> encoding, since CRS84 is the default <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-28">coordinate reference system</a> for <a href="#dfn-well-known-text" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-well-known-text-6">WKT</a> in [<cite><a class="bibref" data-link-type="biblio" href="#bib-geosparql" title="GeoSPARQL - A Geographic Query Language for RDF Data">GeoSPARQL</a></cite>], and therefore it can be omitted. The <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-29">coordinate reference system</a> is also not specified in the GeoJSON [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7946" title="The GeoJSON Format">RFC7946</a></cite>] encoding, since CRS84 is the only supported <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-30">coordinate reference system</a> in GeoJSON [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7946" title="The GeoJSON Format">RFC7946</a></cite>]. From GeoSPARQL 1.1 onwards, coordinate reference systems of serializations of the same geometry are required to be the same if the serialization format supports the representation of the general coordinate reference system. In future iterations of GeoSPARQL, the coordinate reference system is likely to be represented completely in RDF.</p> <p>Always with reference to <a href="#ex-schemaorg-dataset-and-place" class="exampleRef box-ref">Example<bdi> 12</bdi></a>, the following snippet shows the [<cite><a class="bibref" data-link-type="biblio" href="#bib-gml" title="Geography Markup Language (GML) Encoding Standard">GML</a></cite>] and the <a href="#dfn-resource-description-framework" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-resource-description-framework-13">RDF</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-rdf11-primer" title="RDF 1.1 Primer">RDF11-PRIMER</a></cite>] representations of the entry in the BAG Dutch register concerning the building where Anne Frank's house is located. For the corresponding GeoJSON [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7946" title="The GeoJSON Format">RFC7946</a></cite>] representation, see the relevant <a href="#ex-crs-geojson">example</a> in <a href="#bp-crs">Best Practice 8: State how coordinate values are encoded</a>.</p> <aside class="example" id="ex-anne-frank-building-gml"><div class="marker"> <a class="self-link" href="#ex-anne-frank-building-gml">Example<bdi> 20</bdi></a><span class="example-title">: [GML] description of a building, with detailed geometry</span> </div> <p>A [<cite><a class="bibref" data-link-type="biblio" href="#bib-gml" title="Geography Markup Language (GML) Encoding Standard">GML</a></cite>] representation of Anne Frank's house building:</p> <pre aria-busy="false"><code class="hljs xml"><span class="hljs-tag"><<span class="hljs-name">bag:pand</span> <span class="hljs-attr">gml:id</span>=<span class="hljs-string">"pand.3323294"</span>></span> <span class="hljs-tag"><<span class="hljs-name">bag:identificatie</span>></span>363100012169587<span class="hljs-tag"></<span class="hljs-name">bag:identificatie</span>></span> <span class="hljs-tag"><<span class="hljs-name">bag:bouwjaar</span>></span>1635<span class="hljs-tag"></<span class="hljs-name">bag:bouwjaar</span>></span> <span class="hljs-tag"><<span class="hljs-name">bag:status</span>></span>Pand in gebruik (niet ingemeten)<span class="hljs-tag"></<span class="hljs-name">bag:status</span>></span> <span class="hljs-tag"><<span class="hljs-name">bag:gebruiksdoel</span>></span>woonfunctie<span class="hljs-tag"></<span class="hljs-name">bag:gebruiksdoel</span>></span> <span class="hljs-tag"><<span class="hljs-name">bag:oppervlakte_min</span>></span>1<span class="hljs-tag"></<span class="hljs-name">bag:oppervlakte_min</span>></span> <span class="hljs-tag"><<span class="hljs-name">bag:oppervlakte_max</span>></span>21<span class="hljs-tag"></<span class="hljs-name">bag:oppervlakte_max</span>></span> <span class="hljs-tag"><<span class="hljs-name">bag:aantal_verblijfsobjecten</span>></span>20<span class="hljs-tag"></<span class="hljs-name">bag:aantal_verblijfsobjecten</span>></span> <span class="hljs-tag"><<span class="hljs-name">bag:geometrie</span>></span> <span class="hljs-tag"><<span class="hljs-name">gml:MultiSurface</span> <span class="hljs-attr">srsDimension</span>=<span class="hljs-string">"2"</span> <span class="hljs-attr">axisLabels</span>=<span class="hljs-string">"east north"</span> <span class="hljs-attr">srsName</span>=<span class="hljs-string">"urn:ogc:def:crs:EPSG::28992"</span>></span> <span class="hljs-tag"><<span class="hljs-name">gml:surfaceMember</span>></span> <span class="hljs-tag"><<span class="hljs-name">gml:Polygon</span> <span class="hljs-attr">srsDimension</span>=<span class="hljs-string">"2"</span>></span> <span class="hljs-tag"><<span class="hljs-name">gml:exterior</span>></span> <span class="hljs-tag"><<span class="hljs-name">gml:LinearRing</span>></span> <span class="hljs-tag"><<span class="hljs-name">gml:posList</span>></span> 120749.725 487589.422 120752.55 487594.375 120751.227 487595.129 120732.539 487605.788 120723.505 487589.745 120721.387 487585.939 120740.668 487575.07 120743.316 487573.589 120747.735 487581.337 120751.564 487579.154 120755.411 487576.96 120750.935 487569.172 120755.941 487566.288 120764.369 487581.066 120749.725 487589.422 <span class="hljs-tag"></<span class="hljs-name">gml:posList</span>></span> <span class="hljs-tag"></<span class="hljs-name">gml:LinearRing</span>></span> <span class="hljs-tag"></<span class="hljs-name">gml:exterior</span>></span> <span class="hljs-tag"></<span class="hljs-name">gml:Polygon</span>></span> <span class="hljs-tag"></<span class="hljs-name">gml:surfaceMember</span>></span> <span class="hljs-tag"></<span class="hljs-name">gml:MultiSurface</span>></span> <span class="hljs-tag"></<span class="hljs-name">bag:geometrie</span>></span> <span class="hljs-tag"></<span class="hljs-name">bag:pand</span>></span></code></pre> </aside> <p>The corresponding <a href="#dfn-resource-description-framework" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-resource-description-framework-14">RDF</a> representation is provided in the following [<cite><a class="bibref" data-link-type="biblio" href="#bib-turtle" title="RDF 1.1 Turtle">TURTLE</a></cite>] snippet (taken from the <a href="https://bag.basisregistraties.overheid.nl/resource?subject=http%3A%2F%2Fbag.basisregistraties.overheid.nl%2Fbag%2Fdoc%2F2016083000000000%2Fpand%2F0363100012169587">BAG Linked Data service</a>). NB: The RDF representation below has been complemented with additional properties (marked with <code># Added</code>) for demonstration purposes.</p> <aside class="example" id="ex-anne-frank-building-rdf"><div class="marker"> <a class="self-link" href="#ex-anne-frank-building-rdf">Example<bdi> 21</bdi></a><span class="example-title">: [RDF] description of a building, with detailed geometry</span> </div> <pre aria-busy="false"><code class="hljs">@prefix bag: <http://bag.basisregistraties.overheid.nl/def/bag#> . @prefix dcterms: <http://purl.org/dc/terms/> . @prefix geosparql: <http://www.opengis.net/ont/geosparql#> . @prefix gml-ont: <http://www.opengis.net/ont/gml#> . @prefix locn: <http://www.w3.org/ns/locn#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix schema: <http://schema.org/> . @prefix w3cgeo: <http://www.w3.org/2003/01/geo/wgs84_pos#> . <http://bag.basisregistraties.overheid.nl/bag/id/pand/0363100012169587> a geosparql:Feature, bag:Pand ; rdfs:label "Pand 0363100012169587"@nl; rdfs:isDefinedBy <http://bag.basisregistraties.overheid.nl/bag/doc/2016083000000000/pand/0363100012169587> ; bag:identificatiecode "0363100012169587"^^xsd:string; # Added dcterms:identifier "363100012169587"^^xsd:string ; bag:status <http://bag.basisregistraties.overheid.nl/id/begrip/PandInGebruik_nietIngemeten> ; bag:oorspronkelijkBouwjaar "1635"^^xsd:gYear; # Added dcterms:created "1635"^^xsd:gYear ; # Added locn:address <http://www.ldproxy.net/bag/inspireadressen/inspireadressen.3329155> ; geosparql:hasGeometry <http://bag.basisregistraties.overheid.nl/bag/id/geometry/5C1F8F11324717378B437B2CD12871FF> ; bag:geometriePand <http://bag.basisregistraties.overheid.nl/bag/id/geometry/5C1F8F11324717378B437B2CD12871FF> . <http://bag.basisregistraties.overheid.nl/bag/id/geometry/5C1F8F11324717378B437B2CD12871FF> a geosparql:Geometry, gml-ont:Surface ; geosparql:asWKT "POLYGON (( 4.8842353 52.375108 , 4.884276 52.375153 , 4.8842567 52.375159 , 4.883981 52.375254 , 4.8838502 52.375109 , 4.883819 52.375075 , 4.8841037 52.374979 , 4.884143 52.374965 , 4.8842069 52.375035 , 4.884263 52.375016 , 4.8843200 52.374996 , 4.884255 52.374926 , 4.8843289 52.374901 , 4.884451 52.375034 , 4.8842353 52.375108 ))"^^geosparql:wktLiteral ; # Added geosparql:asWKT "<http://www.opengis.net/def/crs/EPSG/0/28992> POLYGON (( 120749.725 487589.422 , 120752.55 487594.375 , 120751.227 487595.129 , 120732.539 487605.788 , 120723.505 487589.745 , 120721.387 487585.939 , 120740.668 487575.07 , 120743.316 487573.589 , 120747.735 487581.337 , 120751.564 487579.154 , 120755.411 487576.96 , 120750.935 487569.172 , 120755.941 487566.288 , 120764.369 487581.066 , 120749.725 487589.422 ))"^^geosparql:wktLiteral .</code></pre> </aside> <p>The different <a href="#dfn-well-known-text" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-well-known-text-7">WKT</a> encodings in the example show alternative ways of specifying the <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-31">coordinate reference system</a> used.</p> <p>The two instances of property <code>geosparql:asWKT</code> follow the syntax recommended in [<cite><a class="bibref" data-link-type="biblio" href="#bib-geosparql" title="GeoSPARQL - A Geographic Query Language for RDF Data">GeoSPARQL</a></cite>], where the specification of the <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-32">coordinate reference system</a> is required only if different from CRS84. The coordinate axis-order used is determined here by the <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-33">coordinate reference system</a>, and in both cases, it is longitude / latitude (more precisely, east/north for EPSG:28992).</p> <p><a href="#ex-anne-frank-building-rdf" class="box-ref">Example<bdi> 21</bdi></a> shows also how <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-47">geometries</a> for <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-90">Spatial Things</a> can be published as separate Web resources. This approach can be particularly suitable for giving access to huge geometries, consisting of hundreds of vertex positions (as the detailed <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-48">geometry</a> of the boundaries of a geographical region), without attaching them to the relevant <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-91">Spatial Things</a>. Moreover, this allows the same geometry to be linked from (i.e., re-used by) different Spatial Things. Finally, it is possible to use mechanisms (including HTTP content negotiation) to provide access to different representations / encodings of the geometry ([<cite><a class="bibref" data-link-type="biblio" href="#bib-gml" title="Geography Markup Language (GML) Encoding Standard">GML</a></cite>], <a href="#dfn-well-known-text" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-well-known-text-8">WKT</a>, GeoJSON [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7946" title="The GeoJSON Format">RFC7946</a></cite>], etc.) as media types, thus addressing different use cases. (On this topic, see also <a href="#entity-level-links">Best Practice 10: Use appropriate relation types to link Spatial Things</a>).</p> <aside class="example" id="ex-http-uris-for-geometries"><div class="marker"> <a class="self-link" href="#ex-http-uris-for-geometries">Example<bdi> 22</bdi></a><span class="example-title">: HTTP URIs for geometries</span> </div> <p>The following URI:</p> <p><code>https://data.kkg.kadaster.nl/id/gebouw/0200100000085932</code></p> <p>denotes an office of the Dutch Kadaster in Apeldoorn. However, its <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-49">geometry</a> is provided as two separate, standalone resources, denoted by the following URIs:</p> <p><code>https://data.kkg.kadaster.nl/id/gebouw/0200100000085932/bag-geometrie</code></p> <p><code>https://data.kkg.kadaster.nl/id/gebouw/0200100000085932/bgt-geometrie</code></p> <p>An additional example is the <abbr title="Application Programming Interface">API</abbr> of the <a href="http://gadm.geovocab.org/">GADM-RDF project</a> provides an access to spatial <a href="#dfn-linked-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-linked-data-16">linked data</a> concerning administrative areas. For instance, the following URI <a href="http://gadm.geovocab.org/id/0/60.html"><code>http://gadm.geovocab.org/id/0/60</code></a> returns a description of administrative area "Germany", which links to the geometry of Germany's boundaries, provided via a separate URI: <a href="http://gadm.geovocab.org/id/0/60/geometry.html"><code>http://gadm.geovocab.org/id/0/60/geometry</code></a>.</p> <p>Dereferencing the <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-50">geometry</a> URIs operated by the GADM-RDF <abbr title="Application Programming Interface">API</abbr> returns different geometry representations / encodings (SVG included), that can be accessed via HTTP content negotiation or by appending the format extension to the URI. For instance, URI <a href="http://gadm.geovocab.org/id/0/60/geometry.geojson"><code>http://gadm.geovocab.org/id/0/60/geometry.geojson</code></a> returns the GeoJSON [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7946" title="The GeoJSON Format">RFC7946</a></cite>] representation of the geometry. Direct <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-27">links</a> to the supported geometry representations / encodings are specified in the <a href="#dfn-resource-description-framework" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-resource-description-framework-15">RDF</a> and HTML representations of the geometry.</p> </aside> </section> <section class="test"> <div class="header-wrapper"><h5 class="subhead" id="how-to-test-3">How to Test</h5><a class="self-link" href="#how-to-test-3" aria-label="Permalink for this Section"></a></div> <p>Check if:</p> <ol> <li><a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-51">Geometries</a> are made available in possibly different formats and levels of complexity, considering their intended uses and their consumption on the Web.</li> <li>The chosen <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-52">geometry</a> descriptions comply with <a href="#multiplegeometries" class="sectionRef">Best Practice 6: Provide geometries at the right level of accuracy, precision, and size</a>, <a href="#bp-crs-choice" class="sectionRef">Best Practice 7: Choose coordinate reference systems to suit your user's applications</a>, and <a href="#bp-crs" class="sectionRef">Best Practice 8: State how coordinate values are encoded</a>.</li> <li>The (possibly) alternative <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-53">geometry</a> descriptions can be accessible via standard mechanisms, as HTTP content negotiation.</li> </ol> </section> <section class="ucr"> <div class="header-wrapper"><h5 class="subhead" id="evidence-3">Evidence</h5><a class="self-link" href="#evidence-3" aria-label="Permalink for this Section"></a></div> <p><span>Relevant requirements</span>: <a href="https://www.w3.org/TR/sdw-ucr/#MultipleCRS">R-MultipleCRSs</a>, <a href="https://www.w3.org/TR/sdw-ucr/#BoundingBoxCentroid">R-BoundingBoxCentroid</a>, <a href="https://www.w3.org/TR/sdw-ucr/#Compressible">R-Compressible</a>, <a href="https://www.w3.org/TR/sdw-ucr/#CRSDefinition">R-CRSDefinition</a>, <a href="https://www.w3.org/TR/sdw-ucr/#EncodingForVectorGeometry">R-EncodingForVectorGeometry</a>, <a href="https://www.w3.org/TR/sdw-ucr/#IndependenceOnReferenceSystems">R-IndependenceOnReferenceSystems</a>, <a href="https://www.w3.org/TR/sdw-ucr/#MachineToMachine">R-MachineToMachine</a>, <a href="https://www.w3.org/TR/sdw-ucr/#SpatialMetadata">R-SpatialMetadata</a>, <a href="https://www.w3.org/TR/sdw-ucr/#3DSupport">R-3DSupport</a>, <a href="https://www.w3.org/TR/sdw-ucr/#TimeDependentCRS">R-TimeDependentCRS</a>, <a href="https://www.w3.org/TR/sdw-ucr/#TilingSupport">R-TilingSupport</a>.</p> </section> <section class="benefits"> <div class="header-wrapper"><h5 class="subhead" id="benefits-3">Benefits</h5><a class="self-link" href="#benefits-3" aria-label="Permalink for this Section"></a></div> <ul class="benefitsList"> <li class="hidden">Processability</li> <li class="hidden">Reuse</li> <li class="hidden">Interoperability</li> <li class="hidden">Access</li> <li class="icon"><img src="images/processability.svg" alt="Processability" class="benefitIcon processabilityIcon"></li><li class="icon"><img src="images/reuse.svg" alt="Reuse" class="benefitIcon reuseIcon"></li><li class="icon"><img src="images/interoperability.svg" alt="Interoperability" class="benefitIcon interoperabilityIcon"></li><li class="icon"><img src="images/access.svg" alt="Access" class="benefitIcon accessIcon"></li></ul> </section> </div> <div class="practicecontainer"> <div class="practice advisement"><a class="marker self-link" href="#multiplegeometries"><bdi lang="en">Best Practice 6</bdi></a>: <span id="multiplegeometries" class="practicelab">Provide geometries at the right level of accuracy, precision, and size</span> <p></p> <p class="practicedesc"><a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-54">Geometry</a> data should be provided at levels of accuracy, precision, and size fit for their use on the Web.</p> </div> <section class="axioms"> <div class="header-wrapper"><h5 class="subhead" id="why-4">Why</h5><a class="self-link" href="#why-4" aria-label="Permalink for this Section"></a></div> <p><a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-55">Geometry</a> data always provide an approximate description of the shape and <a href="#dfn-extent" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-extent-7">extent</a> of <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-92">Spatial Things</a>, which is fit for specific uses. For instance, portraying a geometry on a Web map would typically not require the level of detail that is needed for using the same geometry for spatial analysis. Moreover, although a 3D description of a geometry of a building might be available, a Web map would be typically capable of portraying just its 2-dimensional footprint.</p> <p>Other issues to be taken into account are network bandwidth and the processing capabilities of the target tools. For instance, a <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-56">geometry</a> of a total size of 1GB or more, could be more efficiently transmitted after being compressed. On the other hand, a tool with limited processing capabilities (as a Web browser) may not be able to efficiently handle such geometry (e.g., for displaying it on a Web map).</p> <p>This best practice complements <a href="#describe-geometry">Best Practice 5: Provide geometries on the Web in a usable way</a> by outlining some of the approaches that can be used to publish alternative versions of <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-57">geometry</a> data, with respect to the level of accuracy, precision, and size, fit for the most general use cases and the reference target communities.</p> <div class="note" role="note" id="issue-container-generatedID-26"><div role="heading" class="note-title marker" id="h-note-22" aria-level="6"><span>Note</span></div><aside class=""> <p>This best practice is not meant to provide detailed guidelines on which is the right level of accuracy and precision, file size, or geometry simplification for different use cases. For more on these topics, see <a href="#convenience-apis">Best Practice 13: Expose spatial data through 'convenience <abbr title="Application Programming Interfaces">APIs</abbr>'</a> and <a href="#desc-accuracy">Best Practice 16: Describe the positional accuracy of spatial data</a>.</p> </aside></div> </section> <section class="outcome"> <div class="header-wrapper"><h5 class="subhead" id="intended-outcome-4">Intended Outcome</h5><a class="self-link" href="#intended-outcome-4" aria-label="Permalink for this Section"></a></div> <p><a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-58">Geometry</a> data should be made available at (possibly different) levels of accuracy, precision, and size, taking into account:</p> <ul> <li>The required level of precision and accuracy of the intended use case(s).</li> <li>The processing capabilities of the target tools.</li> <li>Optimization in terms of network bandwidth consumption</li> </ul> <p>As said in <a href="#describe-geometry">Best Practice 5: Provide geometries on the Web in a usable way</a>, the requirements of the geospatial, Linked Data, and Web communities should be ideally taken into account also with respect to the accuracy, precision, and size of <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-59">geometry</a> data. Whenever this is not feasible, Web consumption requirements should at least be addressed.</p> </section> <section class="how"> <div class="header-wrapper"><h5 class="subhead" id="possible-approach-to-implementation-4">Possible Approach to Implementation</h5><a class="self-link" href="#possible-approach-to-implementation-4" aria-label="Permalink for this Section"></a></div> <p>A number of techniques can be used to deliver representations of <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-60">geometries</a> at an accuracy, precision, and size fitting the requirements of a given use case.</p> <p>The following list, although not exhaustive, outlines the approaches most widely used, especially for the Web delivery and consumption of <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-61">geometry</a> data.</p> <p>Choosing the right technique requires taking primarily into account whether the derived <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-62">geometry</a> is fit for the target use case. Technical limits — as network bandwidth and processing capabilities — are of course important, but secondary. Of course, the ideal situation is when you are able to find the technique offering the right trade-off between these two types of requirements.</p> <p>Whatever option is used, the key requirement is that the derived <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-63">geometry</a> does not replace the original ones, but are made available as alternative representations.</p> <p><a href="#describe-geometry">Best Practice 5: Provide geometries on the Web in a usable way</a>, <a href="#desc-accuracy">Best Practice 16: Describe the positional accuracy of spatial data</a> and <a href="#convenience-apis">Best Practice 13: Expose spatial data through 'convenience <abbr title="Application Programming Interfaces">APIs</abbr>'</a> provide general guidelines that can be used for the publication of alternative representations of <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-64">geometries</a>, providing at the same time information on their characteristics. These include, but are not limited to, the use of different URIs for different representations, and HTTP content negotiation. Moreover, whenever <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-65">geometry</a> is made available in <a href="#dfn-resource-description-framework" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-resource-description-framework-16">RDF</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-rdf11-primer" title="RDF 1.1 Primer">RDF11-PRIMER</a></cite>], specific properties can be used to specify the geometry type and the level of accuracy and precision. More specific examples are included in the approaches described below.</p> <ol> <li> <p>Compress <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-66">geometry</a> data</p> <p>Using standard compression algorithms, as <a href="https://en.wikipedia.org/wiki/Zip_%28file_format%29">zip</a> and <a href="https://en.wikipedia.org/wiki/Gzip">gzip</a>, addresses the issue of efficient transmission of <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-67">geometry</a> data, without information loss. Notably, some formats come with alternative compressed encodings — e.g., <a href="https://developers.google.com/kml/documentation/kmzarchives">KMZ</a> is used to deliver compressed [<cite><a class="bibref" data-link-type="biblio" href="#bib-kml" title="OGC KML 2.3">KML</a></cite>] data.</p> <p>Compression can be easily carried out on the fly, and it is also supported by the HTTP protocol via content negotiation — see [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc2616" title="Hypertext Transfer Protocol -- HTTP/1.1">RFC2616</a></cite>], <a href="https://datatracker.ietf.org/doc/html/rfc2616#section-3.5">section 3.5: Content Codings</a>.</p> </li> <li> <p>Use formats optimizing access to and processing of <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-68">geometry</a> data</p> <p>Some formats support a more compact description of <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-69">geometry</a> data, which potentially results in reducing network bandwidth consumption and/or more efficient client-side processing.</p> <p>This is, for instance, the case of <a href="https://github.com/topojson/topojson">TopoJSON</a>, an extension to GeoJSON [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7946" title="The GeoJSON Format">RFC7946</a></cite>] which reduces redundancy in the description of a geometry, by splitting it into segments (referred to as "arcs") that can be re-used.</p> <p>To achieve the same results, other formats are designed to enable the stream-based delivery of geometry data. For instance, GeoJSON Text Sequences [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc8142" title="GeoJSON Text Sequences">RFC8142</a></cite>] is a format designed to optimize access and processing of GeoJSON [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7946" title="The GeoJSON Format">RFC7946</a></cite>] data, by enabling a client application to use the received data even before the transmission is completed.</p> <p>Another approach, focused on efficient client-side processing, is <a href="https://github.com/mapbox/geojson-vt">GeoJSON-VT</a>, a library that enables a client to create on-the-fly vector tiles from GeoJSON [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7946" title="The GeoJSON Format">RFC7946</a></cite>] data.</p> <p>Finally, <a href="#dfn-geohash" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geohash-2">Geohash</a> provides a compact way of encoding 0-dimensional <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-70">geometries</a> (points), which, at the same time, can be used for spatial indexing.</p> <aside class="example" id="ex-anne-frank-address-geohash"><div class="marker"> <a class="self-link" href="#ex-anne-frank-address-geohash">Example<bdi> 23</bdi></a> </div> <p>The point coordinates of the address of Anne Frank's House (see <a href="#ex-schemaorg-dataset-and-place" class="box-ref">Example<bdi> 12</bdi></a>) can be encoded with <a href="#dfn-geohash" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geohash-3">Geohash</a> as <a href="http://geohash.org/u173zns7thy"><code>u173zns7thy</code></a> (corresponding to the following WGS 84 lat/long coordinates: <code>52.37520</code> <code>4.88399</code>).</p> </aside> </li> <li> <p>Provide geometries at different levels of generalization</p> <p>Generalization is a traditional technique used in <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-71">spatial data</a> — first of all, in cartography — to reduce the precision and/or accuracy of a <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-71">geometry</a> for specific purposes. A typical example is provided by how geometries are portrayed in maps of different scales: for instance, a large-scale map can depict the width of a road (2-dimensional geometry), whereas, at lower scales, the same road can be shown as a line with zero width (1-dimensional geometry).</p> <p>Providing <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-72">geometries</a> at different scales or resolutions is actually one of the first criteria to be considered for addressing different use cases. This is common practice in the geospatial domain, especially, but not only, for reference data. For instance, the dataset of the <a href="http://ec.europa.eu/eurostat/web/nuts/">Nomenclature of Territorial Units for Statistics</a> (NUTS) of the European Union is made available at five different scales — ranging from 1:1,000,000 to 1:60,000,000.</p> <aside class="example" id="ex-admin-areas-at-different-resolution" title=""><div class="marker"> <a class="self-link" href="#ex-admin-areas-at-different-resolution">Example<bdi> 24</bdi></a> </div> <p>The <a href="http://gadm.geovocab.org/">GADM-RDF project</a> provides access to <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-73">geometries</a> of administrative areas at a resolution of 100m, 1km, 10km, and 100km. Each of these variants is associated with a different HTTP URI, and <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-74">geometry</a> is made available in different formats. For instance, the geometry of Germany at 100m resolution is denoted by the following URI <a href="https://gadm.geovocab.org/id/0/60/geometry_100m.html"><code>http://gadm.geovocab.org/id/0/60/geometry_100m</code></a>, whereas the variant at 100km resolution is available from the following URI: <a href="http://gadm.geovocab.org/id/0/60/geometry_100km.html"><code>http://gadm.geovocab.org/id/0/60/geometry_100km</code></a> (see also <a href="#ex-http-uris-for-geometries" class="box-ref">Example<bdi> 22</bdi></a>).</p> </aside> <p>Scale reduction uses a number of generalization techniques that can be used also outside this specific use case in order to provide <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-75">geometries</a> at different levels of accuracy and precision.</p> <p>These techniques include the following:</p> <dl> <dt>Reducing precision</dt> <dd>It boils down to reducing the number of decimals in point coordinates of a <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-76">geometry</a>. This feature is widely supported in geospatial tools and Web libraries, and it provides a way to effectively reduce the size of geometry data without losing too much information about its shape. <div class="note" role="note" id="issue-container-generatedID-27"><div role="heading" class="note-title marker" id="h-note-23" aria-level="6"><span>Note</span></div><aside class=""> <p>The precision with which coordinate positions are reported often does not reflect the accuracy of the measurement. For example, <a href="#dfn-latitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-latitude-10">latitude</a> and <a href="#dfn-longitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-longitude-10">longitude</a> reported to six decimal places corresponds to a precision of around 1cm on the ground. GPS-enabled consumer devices are accurate to within a few meters: centimeter-accuracy can only be achieved with professional equipment. Yet a lot of software defaults to use of six, seven or even more decimal places when expressing coordinate positions which may mislead users to thinking that the data is more accurate than it actually is!</p> <p><a href="#desc-accuracy" class="practiceRef">Best Practice 16: Describe the positional accuracy of spatial data</a> for a discussion on precision and accuracy.</p> </aside></div> </dd> <dt>Simplification</dt> <dd>This basically consists in reducing the number of point coordinates of a <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-77">geometry</a>. Examples of algorithms used for this purpose are <a href="https://en.wikipedia.org/wiki/Ramer%E2%80%93Douglas%E2%80%93Peucker_algorithm">Ramer-Douglas-Peucker</a> (RDP) and <a href="https://www.hull.ac.uk/choose-hull/study-at-hull/library/resources/hydra">Visvalingam-Whyatt</a>.</dd> <dt>Conversion of geometry <a href="#dfn-dimension" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-dimension-8">dimensions</a></dt> <dd>One of the cases is the example mentioned earlier in this section, where the <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-78">geometry</a> of a road, originally, 2-dimensional, is converted into a 1-dimensional object (a line). This can also apply to conversion from 3-dimensional <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-79">geometries</a> into 2-dimensional ones (e.g., the 3D representation of a building is converted into its 2D footprint), and to conversion of an <var>n</var>-dimensional geometry into a point.</dd> </dl> </li> <li> <p>Provide the centroid and bounding box of a geometry</p> <p>Centroids and bounding boxes are another example of how a <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-80">geometry</a> can be generalized, but serving different purposes. More precisely, a centroid is meant to specify the position of a <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-93">Spatial Thing</a> by converting its actual geometry to a point, corresponding to its center. On the other hand, a bounding box provides a simplified description of the maximum <a href="#dfn-extent" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-extent-8">extent</a> of a <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-94">Spatial Thing</a>.</p> <p>Although both these generalization methodologies result in a high-level information loss with respect to the original <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-81">geometry</a>, they play an important role in spatial analysis because of the topological information they provide. Moreover, centroids and bounding boxes could provide an accurate enough description of a geometry for those use cases where, respectively, the extent or precise shape of a <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-95">Spatial Thing</a> is not relevant. Finally, they are widely used also outside the geospatial domain.</p> <p>Computation of centroids and bounding boxes is supported by all <a href="#dfn-geographic-information-system" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geographic-information-system-2">GIS</a> tools and Web mapping libraries, which makes it possible to be carried out on the fly. However, performing this operation client-side can be extremely inefficient if the target tool has limited processing capabilities.</p> <p>This issue can be addressed by providing access to centroids and bounding boxes as alternative representations of a given <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-82">geometry</a>.</p> <aside class="example" id="ex-anne-frank-building-centroid-and-bbox"><div class="marker"> <a class="self-link" href="#ex-anne-frank-building-centroid-and-bbox">Example<bdi> 25</bdi></a> </div> <p>In the following [<cite><a class="bibref" data-link-type="biblio" href="#bib-turtle" title="RDF 1.1 Turtle">TURTLE</a></cite>] snippet, [<cite><a class="bibref" data-link-type="biblio" href="#bib-w3c-basic-geo" title="Basic Geo (WGS84 lat/long) Vocabulary">W3C-BASIC-GEO</a></cite>] and [<cite><a class="bibref" data-link-type="biblio" href="#bib-georss" title="W3C Geospatial Vocabulary">GeoRSS</a></cite>] are used to specify, respectively, the centroid (<code>w3cgeo:lat</code> and <code>w3cgeo:long</code>) and bounding box (<code>georss:box</code>) of the 2-dimensional footprint of the building hosting Anne Frank's Museum (see <a href="#ex-anne-frank-building-rdf" class="box-ref">Example<bdi> 21</bdi></a>).</p> <pre aria-busy="false"><code class="hljs css"><span class="hljs-keyword">@prefix</span> <span class="hljs-attribute">bag</span>: <<span class="hljs-attribute">http</span>://bag.basisregistraties.overheid.nl/def/bag#> . @prefix <span class="hljs-attribute">georss</span>: <<span class="hljs-attribute">http</span>://www.georss.org/georss/> . @prefix <span class="hljs-attribute">geosparql</span>: <<span class="hljs-attribute">http</span>://www.opengis.net/ont/geosparql#> . @prefix <span class="hljs-attribute">rdfs</span>: <<span class="hljs-attribute">http</span>://www.w3.org/<span class="hljs-number">2000</span>/<span class="hljs-number">01</span>/rdf-schema#> . @prefix w3<span class="hljs-attribute">cgeo</span>: <<span class="hljs-attribute">http</span>://www.w3.org/<span class="hljs-number">2003</span>/<span class="hljs-number">01</span>/geo/wgs84_pos#> . <<span class="hljs-attribute">http</span>://bag.basisregistraties.overheid.nl/bag/id/pand/<span class="hljs-number">0363100012169587</span>> a <span class="hljs-attribute">geosparql</span>:Feature, <span class="hljs-attribute">bag</span>:Pand ; rdfs:label <span class="hljs-string">"Pand 0363100012169587"</span>@nl; # Detailed geometry geosparql<span class="hljs-selector-pseudo">:has</span>Geometry <http://bag.basisregistraties.overheid.nl/bag/id/geometry/<span class="hljs-number">5</span>C1F8F11324717378B437B2CD12871FF> ; bag:geometriePand <http://bag.basisregistraties.overheid.nl/bag/id/geometry/<span class="hljs-number">5</span>C1F8F11324717378B437B2CD12871FF> ; # Centroid w3cgeo:lat <span class="hljs-string">"52.37509"</span>^^xsd:float ; w3cgeo:long <span class="hljs-string">"4.88412"</span>^^xsd:float ; # Bounding box georss:box <span class="hljs-string">"52.3749,4.8838 52.3753,4.8845"</span>^^xsd:string ; .</code></pre> <div class="note" id="issue-container-generatedID-28"><div role="heading" class="ednote-title marker" id="h-ednote-3" aria-level="6"><span>Editor's note</span></div><aside class=""> <p>Added the following example on the use of [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-dcat-2" title="Data Catalog Vocabulary (DCAT) - Version 2">VOCAB-DCAT-2</a></cite>] for the specification of centroids and bounding boxes.</p> </aside></div> <p>The same example can be written as follows, using the relevant properties from [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-dcat-2" title="Data Catalog Vocabulary (DCAT) - Version 2">VOCAB-DCAT-2</a></cite>] (<a href="https://www.w3.org/TR/vocab-dcat-2/#Property:location_centroid"><code>dcat:centroid</code></a> and <a href="https://www.w3.org/TR/vocab-dcat-2/#Property:location_bbox"><code>dcat:bbox</code></a>):</p> <pre aria-busy="false"><code class="hljs">@prefix bag: <http://bag.basisregistraties.overheid.nl/def/bag#> . @prefix dcat: <http://www.w3.org/ns/dcat#> . @prefix geosparql: <http://www.opengis.net/ont/geosparql#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . <http://bag.basisregistraties.overheid.nl/bag/id/pand/0363100012169587> a geosparql:Feature, bag:Pand ; rdfs:label "Pand 0363100012169587"@nl; # Detailed geometry ... # Centroid dcat:centroid "POINT(4.88412 52.37509)"^^geosparql:wktLiteral ; # Bounding box dcat:bbox "POLYGON((4.8838 52.3749,4.8838 52.3753,4.8845 52.3753, 4.8845 52.3749,4.8838 52.3749))"^^geosparql:wktLiteral ; .</code></pre> </aside> </li> </ol> </section> <section class="test"> <div class="header-wrapper"><h5 class="subhead" id="how-to-test-4">How to Test</h5><a class="self-link" href="#how-to-test-4" aria-label="Permalink for this Section"></a></div> <p>Check if:</p> <ul> <li>The original and most detailed version of <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-83">geometry</a> data is available.</li> <li>Compressed version of geometry data can be obtained via HTTP content negotiation or other mechanisms.</li> <li>Centroids and bounding boxes are made available, without the need of downloading and processing the relevant geometry data.</li> <li>It is possible to get a 2-dimensional representation of a 3-dimensional geometry.</li> <li>Geometry is available at different levels of precision, e.g., by allowing users to specify the maximum number of decimals in point coordinates.</li> <li>Geometry is available at different scales / spatial resolutions.</li> </ul> </section> <section class="ucr"> <div class="header-wrapper"><h5 class="subhead" id="evidence-4">Evidence</h5><a class="self-link" href="#evidence-4" aria-label="Permalink for this Section"></a></div> <p><span>Relevant requirements</span>: <a href="https://www.w3.org/TR/sdw-ucr/#BoundingBoxCentroid">R-BoundingBoxCentroid</a>, <a href="https://www.w3.org/TR/sdw-ucr/#Compatibility">R-Compatibility</a>, <a href="https://www.w3.org/TR/sdw-ucr/#Compressible">R-Compressible</a>, <a href="https://www.w3.org/TR/sdw-ucr/#CoordinatePrecision">R-CoordinatePrecision</a>, </p> </section> <section class="benefits"> <div class="header-wrapper"><h5 class="subhead" id="benefits-4">Benefits</h5><a class="self-link" href="#benefits-4" aria-label="Permalink for this Section"></a></div> <ul class="benefitsList"> <li class="hidden">Processability</li> <li class="hidden">Reuse</li> <li class="hidden">Access</li> <li class="icon"><img src="images/processability.svg" alt="Processability" class="benefitIcon processabilityIcon"></li><li class="icon"><img src="images/reuse.svg" alt="Reuse" class="benefitIcon reuseIcon"></li><li class="icon"><img src="images/access.svg" alt="Access" class="benefitIcon accessIcon"></li></ul> </section> </div> <div class="practicecontainer"> <div class="practice advisement"><a class="marker self-link" href="#bp-crs-choice"><bdi lang="en">Best Practice 7</bdi></a>: <span id="bp-crs-choice" class="practicelab">Choose coordinate reference systems to suit your user's applications</span> <p></p> <p class="practicedesc">Consider your user's intended application when choosing the <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-34">coordinate reference system</a>(s) used to publish <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-72">spatial data</a>. </p> </div> <section class="axioms"> <div class="header-wrapper"><h5 class="subhead" id="why-5">Why</h5><a class="self-link" href="#why-5" aria-label="Permalink for this Section"></a></div> <p>A multitude of <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-35">coordinate reference systems</a> exist because there is no perfect solution to meet all requirements:</p> <ol> <li> <p>The Earth is a complicated shape (neither spherical nor flat!):</p> <p>For each (Earth-based) <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-36">coordinate reference system</a>, the topographical surface of the Earth is approximated to a <em>geodetic <a href="#dfn-datum" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-datum-4">datum</a></em> that is described using an <a href="#dfn-ellipsoid" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-ellipsoid-3">ellipsoid</a>. The trouble with approximation is that nothing is perfect everywhere, which means that compromise is inevitable. Some datums, like WGS 84, provide a reasonable (but not highly accurate) fit everywhere on the Earth, while other datums (such as the European Terrestrial Reference System 1989 — as used by <a href="https://epsg.org/crs_4258/ETRS89.html">ETRS89 / EPSG:4258</a>) provide a better fit in a given region at the expense of accuracy elsewhere.</p> <p><a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-73">Spatial data</a> is often <em>projected</em> from the curved surface of the Earth onto a flat plane (e.g. a computer screen or a topographical map) to make it easier to compute distances between positions and calculate areas. There are many choices of projection (e.g. equirectangular, mercator, stereographic, orthographic etc.), each of which is designed for particular tasks. As with <a href="#dfn-datum" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-datum-5">datums</a>, projections are often chosen to better support regional, national or local needs.</p> </li> <li> <p>It is also worth noting that as a living planet, the Earth continues to change its shape; for example, continental drift moves Australia north-eastwards several centimeters each year and New Zealand shifts in multiple directions. To retain accuracy, <a href="#dfn-datum" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-datum-6">datums</a> need to be adjusted from time to time — as is the case of the New Zealand Geodetic Datum (NZGD2000) that is frequently revised to take account of earth deformations.</p> <p>Geodesists refer to those coordinate reference systems which are continually updated so that the same set of coordinates refers to the same place on (or near) the surface of the earth as 'plate-fixed' or 'static coordinate reference systems'; others (such as WGS 84) are 'earth-fixed' or 'dynamic' (a set of coordinates will not resolve to the same spot on the moving surface of the earth).</p> <p>If your intended application requires a combination of positional accuracy and persistence over time, then use a static coordinate reference system or ensure that each set of coordinates is accompanied by the date it was measured.</p> <p>See https://www.youtube.com/watch?v=IKM-bR6SwVs for further explanation.</p> </li> <li> <p>Sometimes we don't want to measure relative to the surface of the Earth at all:</p> <p><a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-74">Spatial data</a> such as descriptions of the built environment, geological surveys, satellite imagery, etc. are often captured and stored in an <em>engineering</em> <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-37">coordinate reference system</a> as measurements from a local datum. For example, <em>X</em> <em>Y</em> survey coordinates relative to a building corner, pixel positions within the image swath of a satellite camera, or distance along a line from a fixed origin point.</p> </li> </ol> <p>Although it is possible to convert coordinates from one <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-38">CRS</a> to another, many users will be put off by the need to do so. Furthermore, the need for such transformations introduces a point where errors can be introduced to the <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-75">spatial data</a> — especially where users have limited expertise with spatial data.</p> <p>When publishing <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-76">spatial data</a>, it is best to help users avoid the need for them to transform spatial data between <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-39">coordinate reference systems</a> themselves by providing data in a form, or forms, which they can use directly. To determine which coordinate reference system(s) are needed, data publishers must consider the intended applications of their user community.</p> </section> <section class="outcome"> <div class="header-wrapper"><h5 class="subhead" id="intended-outcome-5">Intended Outcome</h5><a class="self-link" href="#intended-outcome-5" aria-label="Permalink for this Section"></a></div> <p><a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-77">Spatial data</a> is provided in a <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-40">coordinate reference system</a>, or systems, that are sensitive to the needs of user's intended applications.</p> <p>Most of a publisher's anticipated user community do not need to transform coordinate values prior to using the spatial data.</p> </section> <section class="how"> <div class="header-wrapper"><h5 class="subhead" id="possible-approach-to-implementation-5">Possible Approach to Implementation</h5><a class="self-link" href="#possible-approach-to-implementation-5" aria-label="Permalink for this Section"></a></div> <div class="note" role="note" id="issue-container-generatedID-29"><div role="heading" class="note-title marker" id="h-note-24" aria-level="6"><span>Note</span></div><aside class=""> <p>Whichever <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-41">coordinate reference system</a> is chosen for the publication of <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-78">spatial data</a>, it is imperative that that choice is made clear to users. Please refer to <a href="#bp-crs" class="practiceRef">Best Practice 8: State how coordinate values are encoded</a> for further details.</p> </aside></div> <p>The first thing that publishers of <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-79">spatial data</a> need to do is consider their audience.</p> <p>When publishing <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-80">spatial data</a> on the Web, the largest community of potential users will be unknown: anyone might find and use data published on the Web! To support this <em>unanticipated reuse</em>, we recommend <em>always</em> publishing your <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-81">spatial data</a> using a global <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-42">coordinate reference system</a> which allows spatial data from multiple sources to be readily combined for display or computation. For <a href="#dfn-geographic-information" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geographic-information-4">geospatial data</a> with point, line or polygon <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-84">geometries</a> (i.e. <em>vector</em> data), WGS 84 Lat/Long (<a href="https://epsg.org/crs_4326/WGS-84.html">EPSG:4326</a>) or WGS 84 Lat/Long/Elevation (<a href="https://epsg.org/crs_4979/WGS-84.html">EPSG:4979</a>) are good choices as many of the tools and applications used by Web developers are set up to use data from GPS-enabled mobile devices that all use WGS 84. Where you have geo-imagery (i.e. <em>raster</em> data, comprised of a rectangular pattern of pixels on a flat plane) it is best to use Web Mercator (<a href="https://epsg.org/crs_3857/WGS-84-Pseudo-Mercator.html">EPSG:3857</a>) which has near-global extent.</p> <div class="note" role="note" id="issue-container-generatedID-30"><div role="heading" class="note-title marker" id="h-note-25" aria-level="6"><span>Note</span></div><aside class=""> <p>Data publishers should be aware that the geodetic <a href="#dfn-datum" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-datum-7">datum</a> used by Web Mercator is spherical and not true to the shape of the earth. At high <a href="#dfn-latitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-latitude-11">latitudes</a>, this results in positional differences of up to 20 kilometers when compared with WGS 84. However, many Web-mapping tools transparently perform the necessary transformations to ensure that geospatial vector data is correctly plotted on the underlying base map.</p> </aside></div> <p>Where considerations of the known user community (or communities) call for different <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-43">coordinate reference systems</a>, we recommend publishing <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-82">spatial data</a> in multiple representations: one for each of the prioritized coordinate reference systems. Clearly, the number of representations provided needs to be determined with respect to the associated effort. However, remember that a decision not to publish data in a priority <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-44">CRS</a> will result in each member of your user community needing to do that task — or them not using your data.</p> <p>Common reasons for needing to publish in additional coordinate reference systems include:</p> <div class="issue" id="issue-container-number-1037"><div role="heading" class="issue-title marker" id="h-issue-1" aria-level="6"><a href="https://github.com/w3c/sdw/issues/1037"><span class="issue-number">Issue 1037</span></a><span class="issue-label">: Best practice 7 - titles, numbering and IDs for examples <a class="respec-gh-label" style="background-color: rgb(252, 41, 41); color: rgb(0, 0, 0);" href="https://github.com/w3c/sdw/issues/?q=is%3Aissue+is%3Aopen+label%3A%22bug%22" aria-label="GitHub label: bug">bug</a><a class="respec-gh-label" style="background-color: rgb(251, 202, 4); color: rgb(0, 0, 0);" href="https://github.com/w3c/sdw/issues/?q=is%3Aissue+is%3Aopen+label%3A%22bp%22" aria-label="GitHub label: bp">bp</a></span></div><p dir="auto">In writing up a list of examples of the best practices in action I noted that best practice 7 has some sections formatted as (and with class of) example but they're unnumbered and without an ID so they can't be directly linked to.</p> <p dir="auto"><a href="https://www.w3.org/TR/sdw-bp/#bp-crs-choice" rel="nofollow">https://www.w3.org/TR/sdw-bp/#bp-crs-choice</a></p> <p dir="auto">"1. publication through government data portals that require use of a projected CRS defined by the national mapping agency - and similar legislative requirements;</p> <p dir="auto">The Basisregistraties Adressen en Gebouwen (BAG), or Basic Registers for Addresses and Buildings, provided by Kadaster, publishes data in both OGC CRS84 (using the WGS 84 geodetic datum) and the Amersfoort / RD (EPSG:28992) coordinate reference systems.</p> <p dir="auto">The INSPIRE Directive 2007/2/EC of the European Commission requires that the European Terrestrial Reference System 1989 ETRS89 (EPSG:4258) is used for the referencing of spatial datasets."</p></div> <ol> <li> <p>publication through government data portals that require use of a <a href="#dfn-projected-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-projected-crs-4">projected CRS</a> defined by the national mapping agency — and similar legislative requirements;</p> <aside class="example" id="ex-bag-crs"><div class="marker"> <a class="self-link" href="#ex-bag-crs">Example<bdi> 26</bdi></a> </div> <p>The <a href="https://bag.basisregistraties.overheid.nl/">Basisregistraties Adressen en Gebouwen</a> (BAG), or <em>Basic Registers for Addresses and Buildings</em>, provided by <a href="https://www.kadaster.nl/">Kadaster</a>, publishes data in both <abbr title="Open Geospatial Consortium">OGC</abbr> CRS84 (using the WGS 84 geodetic <a href="#dfn-datum" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-datum-8">datum</a>) and the Amersfoort / RD (<a href="https://epsg.org/crs_28992/Amersfoort-RD-New.html">EPSG:28992</a>) <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-45">coordinate reference systems</a>.</p> </aside> <aside class="example" id="ex-inspire-crs"><div class="marker"> <a class="self-link" href="#ex-inspire-crs">Example<bdi> 27</bdi></a> </div> <p>The <a href="https://eur-lex.europa.eu/eli/dir/2007/2/oj">INSPIRE Directive 2007/2/EC</a> of the European Union requires that the European Terrestrial Reference System 1989 ETRS89 (<a href="https://epsg.org/crs_4258/ETRS89.html">EPSG:4258</a>) is used for the referencing of spatial datasets.</p> </aside> </li> <li>applications such as augmented reality, defense and precision agriculture that require coordinates to be accurate to tens of centimeters or less, thereby requiring the use of a <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-46">CRS</a> with an alternative geodetic <a href="#dfn-datum" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-datum-9">datum</a> that provides a superior fit for the local or regional geographic area — noting that every CRS and datum should define the geographic area, and perhaps timescale, within which it is intended to be used;</li> <li>the need to support applications that work in a local frame of reference using an engineering CRS — such as in an urban environment, inside a building complex or using chainage along a survey line;</li> <li>avoiding computationally intensive reprojection of raster data such as satellite imagery or base maps within end-user applications — which may mean publishing vector data in the same <a href="#dfn-projected-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-projected-crs-5">projected CRS</a> so that can be easily aligned with the raster data; and </li> <li>the need to retain the integrity of raster data by publishing in its original projection, thereby avoiding modification of pixel values due to the reprojection.</li> </ol> <div class="note" role="note" id="issue-container-generatedID-31"><div role="heading" class="note-title marker" id="h-note-26" aria-level="6"><span>Note</span></div><aside class=""> <p>There are many cases where WGS 84, or any Earth-based <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-47">coordinate reference system</a>, are not appropriate. For example, when describing location relative to other celestial bodies (e.g. Lunar geography, and <em>areography</em> — the <a href="https://en.wikipedia.org/wiki/Geography_of_Mars">geography of Mars</a>), the arrangement of cells on a microscope slide, tapes in a mass storage unit, or the position of an artifact in a museum warehouse. In such cases, publication of <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-83">spatial data</a> in WGS 84 is either impossible or provides no value.</p> <p>That said, many of these best practices are still relevant. In particular, see <a href="#relative-position" class="practiceRef">Best Practice 9: Describe relative positioning</a>.</p> </aside></div> <div class="note" role="note" id="issue-container-generatedID-32"><div role="heading" class="note-title marker" id="h-note-27" aria-level="6"><span>Note</span></div><aside class=""> <p>Discussion of coordinate system transformations is beyond the scope of this best practice document: converting coordinates between <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-48">CRS</a>s that use different <a href="#dfn-datum" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-datum-10">datums</a> and or projections can be very involved. This is especially true where elevation values are missing from the source data. For reference, EPSG guidelines say that in such cases reasonable assumptions are:</p> <ul> <li>Height = 0 meters (i.e. we are standing on the surface of the <a href="#dfn-ellipsoid" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-ellipsoid-4">ellipsoid</a>); or</li> <li>The height is given by a digital elevation model (i.e. we are standing on the surface of the planet).</li> </ul> <p>That said, we note that there are several open source software implementations available to help users do such conversions. These include: the <a href="https://gdal.org/">Geospatial Data Abstraction Library</a> (GDAL), the <a href="http://proj.osgeo.org/">Cartographic Projections Library</a> (PROJ.4), its associated <a href="http://proj4js.org/">JavaScript implementation</a> (PROJ4.JS) and the <a href="https://sis.apache.org/">Apache Spatial Information System Library</a> (SIS).</p> </aside></div> </section> <section class="test"> <div class="header-wrapper"><h5 class="subhead" id="how-to-test-5">How to Test</h5><a class="self-link" href="#how-to-test-5" aria-label="Permalink for this Section"></a></div> <p>Check that <a href="#dfn-geographic-information" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geographic-information-5">geospatial data</a> (i.e. data about things located relative to the Earth) is available, as a minimum, in a global <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-49">coordinate reference system</a>: for vector data, this should be WGS 84 Lat/Long (<a href="https://epsg.org/crs_4326/WGS-84.html">EPSG:4326</a>) or WGS 84 Lat/Long/Elevation (<a href="https://epsg.org/crs_4979/WGS-84.html">EPSG:4979</a>); for raster data this should be Web Mercator (<a href="https://epsg.org/crs_3857/WGS-84-Pseudo-Mercator.html">EPSG:3857</a>).</p> </section> <section class="ucr"> <div class="header-wrapper"><h5 class="subhead" id="evidence-5">Evidence</h5><a class="self-link" href="#evidence-5" aria-label="Permalink for this Section"></a></div> <p><span>Relevant requirements</span>: <a href="https://www.w3.org/TR/sdw-ucr/#AvoidCoordinateTransformations">R-AvoidCoordinateTransformations</a>, <a href="https://www.w3.org/TR/sdw-ucr/#CoordinatePrecision">R-CoordinatePrecision</a>. </p> </section> <section class="benefits"> <div class="header-wrapper"><h5 class="subhead" id="benefits-5">Benefits</h5><a class="self-link" href="#benefits-5" aria-label="Permalink for this Section"></a></div> <ul class="benefitsList"> <li class="hidden">Comprehension</li> <li class="hidden">Processability</li> <li class="hidden">Reuse</li> <li class="hidden">Interoperability</li> <li class="hidden">Access</li> <li class="icon"><img src="images/comprehension.svg" alt="Comprehension" class="benefitIcon comprehensionIcon"></li><li class="icon"><img src="images/processability.svg" alt="Processability" class="benefitIcon processabilityIcon"></li><li class="icon"><img src="images/reuse.svg" alt="Reuse" class="benefitIcon reuseIcon"></li><li class="icon"><img src="images/interoperability.svg" alt="Interoperability" class="benefitIcon interoperabilityIcon"></li><li class="icon"><img src="images/access.svg" alt="Access" class="benefitIcon accessIcon"></li></ul> </section> </div> <div class="practicecontainer"> <div class="practice advisement"><a class="marker self-link" href="#bp-crs"><bdi lang="en">Best Practice 8</bdi></a>: <span id="bp-crs" class="practicelab">State how coordinate values are encoded</span> <p></p> <p class="practicedesc">Provide enough information for users to determine how coordinate values are encoded.</p> </div> <section class="axioms"> <div class="header-wrapper"><h5 class="subhead" id="why-6">Why</h5><a class="self-link" href="#why-6" aria-label="Permalink for this Section"></a></div> <p>The <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-85">geometry</a> of <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-96">Spatial Things</a> is described using position coordinates; for example, <a href="#dfn-latitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-latitude-12">latitude</a> and <a href="#dfn-longitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-longitude-11">longitude</a>. Because coordinates describe a position relative to a <a href="#dfn-datum" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-datum-11">datum</a> (e.g. zero latitude is the equator and zero longitude is the prime meridian — often the Greenwich Meridian), it is important to understand both the datum and the units that are used for coordinates along with the order which the coordinate axes are defined: the <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-50">coordinate reference system</a> (CRS). <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-84">Spatial data</a> is published in a wide variety of CRS. This variety can create confusion and inconsistencies in using and interpreting spatial data. Unless the CRS is known, errors are likely to be introduced when determining the position and extent of a <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-97">Spatial Thing</a> on the Earth and this makes comparing or combining spatial data from different sources extremely problematic.</p> <p>Where the application requires accuracy over time but the data uses a dynamic coordinate system, you will also need to provide the 'epoch' - the data the coordinates were recorded; see <a href="#bp-crs-choice">Best Practice 7</a>. </p></section> <section class="outcome"> <div class="header-wrapper"><h5 class="subhead" id="intended-outcome-6">Intended Outcome</h5><a class="self-link" href="#intended-outcome-6" aria-label="Permalink for this Section"></a></div> <p>Sufficient information is provided to enable coordinates to be related to the correct position, thereby enabling <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-85">spatial data</a> to be correctly interpreted by humans and software agents.</p> <p><a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-86">Spatial data</a> from different sources can be combined without introducing unwarranted positional errors.</p> </section> <section class="how"> <div class="header-wrapper"><h5 class="subhead" id="possible-approach-to-implementation-6">Possible Approach to Implementation</h5><a class="self-link" href="#possible-approach-to-implementation-6" aria-label="Permalink for this Section"></a></div> <p>A user of <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-87">spatial data</a> will need to know:</p> <ol> <li>which coordinate value relates to which axis;</li> <li>what units used for each coordinate; and</li> <li>what <a href="#dfn-datum" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-datum-12">datum</a> is used</li> </ol> <div class="note" role="note" id="issue-container-generatedID-33"><div role="heading" class="note-title marker" id="h-note-28" aria-level="6"><span>Note</span></div><aside class=""> <p>There is a predominant view that "I just need to use <a href="#dfn-latitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-latitude-13">Lat</a> and <a href="#dfn-longitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-longitude-12">Long</a> — and I'm done".</p> <p>Although the clear majority of <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-88">spatial data</a> published on the Web uses WGS 84 Long/Lat, we <em>strongly</em> recommend that spatial data is published with all the necessary information to interpret coordinate values. Even where the use of <a href="#dfn-latitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-latitude-14">latitude</a> and <a href="#dfn-longitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-longitude-13">longitude</a> angular measurements is obvious; the choices of <a href="#dfn-datum" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-datum-13">datum</a> and units of measurement have an impact. In particular, angular measurements appearing as floating point numbers are most likely to be provided in decimal degrees, but could also be in radians or gons (also known as grads).</p> <p>The problem is that the assumption of a "predominant view" leads to ambiguity. For example, many spatial data users work entirely with information provided in their national <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-51">coordinate reference system</a> (such as the <em>Dutch Amersfoort / RD</em> <a href="https://epsg.org/crs_28992/Amersfoort-RD-New.html">EPSG:28992</a> or <em>British National Grid</em> <a href="https://epsg.org/crs_27700/OSGB-1936-British-National-Grid.html">EPSG:27700</a>) which make all coordinates in WGS 84 Long/Lat (especially the negative numbers) utterly perplexing.</p> <p>In practice, a publisher not documenting their <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-52">CRS</a> and presuming that <a href="#dfn-latitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-latitude-15">latitude</a> and <a href="#dfn-longitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-longitude-14">longitude</a> can be treated as cartesian is often bailed out by fuzzy use cases and software that takes care of projections. However, CRS and coordinate <a href="#dfn-axis-order" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-axis-order-3">axis order</a> ambiguity leads sooner or later to serious and avoidable errors, while ignorance of <a href="#dfn-datum" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-datum-14">datums</a> and <a href="#dfn-map-projection" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-map-projection-2">map projections</a> leads to broken applications. Furthermore, these practices will also become less and less tenable as new applications such as Augmented Reality require higher data precision and accuracy.</p> </aside></div> <p>There are five common ways that this information can be provided:</p> <ol> <li> <p>Describe the <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-53">coordinate reference system</a> in the dataset metadata.</p> <aside class="example" id="ex-crs-dataset-metadata"><div class="marker"> <a class="self-link" href="#ex-crs-dataset-metadata">Example<bdi> 28</bdi></a><span class="example-title">: Coordinate reference system stated in [GeoDCAT-AP] (TTL encoding)</span> </div> <pre aria-busy="false"><code class="hljs css"><span class="hljs-keyword">@prefix</span> <span class="hljs-attribute">ex</span>: <<span class="hljs-attribute">http</span>://data.example.org/datasets/> . @prefix <span class="hljs-attribute">dcat</span>: <<span class="hljs-attribute">http</span>://www.w3.org/ns/dcat#> . @prefix <span class="hljs-attribute">dcterms</span>: <<span class="hljs-attribute">http</span>://purl.org/dc/terms/> . @prefix <span class="hljs-attribute">skos</span>: <<span class="hljs-attribute">http</span>://www.w3.org/<span class="hljs-number">2004</span>/<span class="hljs-number">02</span>/skos/core#> . <span class="hljs-attribute">ex</span>:ExampleDataset a <span class="hljs-attribute">dcat</span>:Dataset ; dcterms:conformsTo <http://www.opengis.net/def/crs/EPSG/<span class="hljs-number">0</span>/<span class="hljs-number">32630</span>> . <http://www.opengis.net/def/crs/EPSG/<span class="hljs-number">0</span>/<span class="hljs-number">32630</span>> a dcterms:Standard, skos:Concept ; dcterms:type <http://inspire.ec.europa.eu/glossary/SpatialReferenceSystem> ; dcterms:identifier <span class="hljs-string">"http://www.opengis.net/def/crs/EPSG/0/32630"</span>^^xsd:anyURI ; skos:prefLabel <span class="hljs-string">"WGS 84 / UTM zone 30N"</span>@en ; skos:inScheme <http://www.opengis.net/def/crs/EPSG/<span class="hljs-number">0</span>/> .</code></pre> </aside> <p>The example above illustrates how to describe the <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-54">coordinate reference system</a> used for a dataset within [<cite><a class="bibref" data-link-type="biblio" href="#bib-geodcat-ap" title="GeoDCAT-AP: A geospatial extension for the DCAT application profile for data portals in Europe">GeoDCAT-AP</a></cite>] metadata. The <code>conformsTo</code> property from [<cite><a class="bibref" data-link-type="biblio" href="#bib-dcterms" title="DCMI Metadata Terms">DCTERMS</a></cite>] is used to assert the relationship between dataset and <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-55">CRS</a> in the same way that conformance with a <em>standard</em> is expressed in [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-dqv" title="Data on the Web Best Practices: Data Quality Vocabulary">VOCAB-DQV</a></cite>].</p> <p>Dataset metadata for <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-89">spatial data</a> should always provide details of the <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-56">CRS</a> used. For more information about dataset metadata, please refer to <a href="#spatial-info-dataset-metadata" class="practiceRef">Best Practice 15: Include spatial metadata in dataset metadata</a>.</p> </li> <li> <p>Provide each coordinate value with explicit labels and provide metadata to indicate what each label means.</p> <aside class="example" id="ex-crs-sepatate-axes-lables-w3c-basic-geo"><div class="marker"> <a class="self-link" href="#ex-crs-sepatate-axes-lables-w3c-basic-geo">Example<bdi> 29</bdi></a><span class="example-title">: Coordinate position provided using [W3C-BASIC-GEO]</span> </div> <pre aria-busy="false"><code class="hljs css"><span class="hljs-keyword">@prefix</span> w3<span class="hljs-attribute">cgeo</span>: <<span class="hljs-attribute">http</span>://www.w3.org/<span class="hljs-number">2003</span>/<span class="hljs-number">01</span>/geo/wgs84_pos#> . @prefix <span class="hljs-attribute">dcterms</span>: <<span class="hljs-attribute">http</span>://purl.org/dc/terms/> . :myPointOfInterest a w3<span class="hljs-attribute">cgeo</span>:SpatialThing ; dcterms:description <span class="hljs-string">"Anne Frank's House, Amsterdam."</span> w3cgeo:lat <span class="hljs-string">"52.37514"</span>^^xsd:float ; w3cgeo:long <span class="hljs-string">"4.88412"</span>^^xsd:float ; .</code></pre> </aside> <p>The labels (or terms) <code>w3cgeo:lat</code> and <code>w3cgeo:long</code> are provided by the [<cite><a class="bibref" data-link-type="biblio" href="#bib-w3c-basic-geo" title="Basic Geo (WGS84 lat/long) Vocabulary">W3C-BASIC-GEO</a></cite>] vocabulary which states that it is:</p> <blockquote>A vocabulary for representing <a href="#dfn-latitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-latitude-16">latitude</a>, <a href="#dfn-longitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-longitude-15">longitude</a> and altitude information in the WGS 84 geodetic reference <a href="#dfn-datum" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-datum-15">datum</a>.</blockquote> <p>The terms themselves (plus <code>w3cgeo:alt</code>) are defined with all the necessary information as follows:</p> <ul> <li><em><strong>lat:</strong> The WGS 84 latitude of a <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-98">Spatial Thing</a> (decimal degrees).</em></li> <li><em><strong>long:</strong> The WGS 84 longitude of a Spatial Thing (decimal degrees).</em></li> <li><em><strong>alt:</strong> The WGS 84 altitude of a Spatial Thing (decimal meters above the local reference <a href="#dfn-ellipsoid" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-ellipsoid-5">ellipsoid</a>).</em></li> </ul> <aside class="example" id="ex-crs-sepatate-axes-lables-schema-geocoordinate"><div class="marker"> <a class="self-link" href="#ex-crs-sepatate-axes-lables-schema-geocoordinate">Example<bdi> 30</bdi></a><span class="example-title">: Coordinate position provided using [JSON-LD] and [SCHEMA-ORG]</span> </div> <pre aria-busy="false"><code class="hljs xml"><span class="hljs-tag"><<span class="hljs-name">script</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"application/ld+json"</span>></span><span class="javascript"> { <span class="hljs-string">"@context"</span> : { <span class="hljs-string">"@vocab"</span> : <span class="hljs-string">"http://schema.org/"</span> }, <span class="hljs-string">"myPointOfInterest"</span> : { <span class="hljs-string">"@type"</span> : <span class="hljs-string">"Place"</span>, <span class="hljs-string">"geo"</span> : { <span class="hljs-string">"@type"</span>: <span class="hljs-string">"GeoCoordinates"</span>, <span class="hljs-string">"latitude"</span>: <span class="hljs-string">"52.37514"</span>, <span class="hljs-string">"longitude"</span>: <span class="hljs-string">"4.88412"</span> } } } </span><span class="hljs-tag"></<span class="hljs-name">script</span>></span></code></pre> </aside> <p>In the example above, the labels <code>latitude</code> and <code>longitude</code> are defined in [<cite><a class="bibref" data-link-type="biblio" href="#bib-schema-org" title="Schema.org">SCHEMA-ORG</a></cite>], as indicated by the [<cite><a class="bibref" data-link-type="biblio" href="#bib-json-ld" title="JSON-LD 1.0">JSON-LD</a></cite>] key <code>@vocab</code>. The associated definitions in [<cite><a class="bibref" data-link-type="biblio" href="#bib-schema-org" title="Schema.org">SCHEMA-ORG</a></cite>] are:</p> <ul> <li><em><strong>latitude:</strong> The <a href="#dfn-latitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-latitude-17">latitude</a> of a location. For example 37.42242 (WGS 84).</em></li> <li><em><strong>longitude:</strong> The <a href="#dfn-longitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-longitude-16">longitude</a> of a location. For example -122.08585 (WGS 84).</em></li> </ul> <div class="note" role="note" id="issue-container-generatedID-34"><div role="heading" class="note-title marker" id="h-note-29" aria-level="6"><span>Note</span></div><aside class=""> <p>The definitions provided in [<cite><a class="bibref" data-link-type="biblio" href="#bib-schema-org" title="Schema.org">SCHEMA-ORG</a></cite>] do not indicate the unit of measure. However, we have included this example as [<cite><a class="bibref" data-link-type="biblio" href="#bib-schema-org" title="Schema.org">SCHEMA-ORG</a></cite>] is very commonly used. The unit of measure used for <code>latitude</code> and <code>longitude</code> are decimal degrees, and decimal meters is used for the remaining coordinate position property <code>elevation</code>.</p> </aside></div> <p>The metadata for axis labels may also be provided in the documentation for an <abbr title="Application Programming Interface">API</abbr> from which the <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-90">spatial data</a> is accessed. For more information on documenting <abbr title="Application Programming Interfaces">APIs</abbr>, please refer to [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#documentYourAPI">Best Practice 25: Provide complete documentation for your <abbr title="Application Programming Interface">API</abbr></a>.</p> <aside class="example" id="ex-crs-sepatate-axes-lables-tabular-data"><div class="marker"> <a class="self-link" href="#ex-crs-sepatate-axes-lables-tabular-data">Example<bdi> 31</bdi></a><span class="example-title">: Coordinate position provided using column in tabular data</span> </div> <pre aria-busy="false"><code class="hljs javascript">GID,On Street,Long,Lat,Species,Trim Cycle,Diameter at Breast Ht,Inventory <span class="hljs-built_in">Date</span>,Comments,Protected <span class="hljs-number">1</span>,ADDISON AV,-<span class="hljs-number">122.15649</span>,<span class="hljs-number">37.44096</span>,Celtis australis,Large Tree Routine Prune,<span class="hljs-number">11</span>,<span class="hljs-number">10</span>/<span class="hljs-number">18</span>/<span class="hljs-number">2010</span>,, <span class="hljs-number">2</span>,EMERSON ST,-<span class="hljs-number">122.15675</span>,<span class="hljs-number">37.44096</span>,Liquidambar styraciflua,Large Tree Routine Prune,<span class="hljs-number">11</span>,<span class="hljs-number">6</span>/<span class="hljs-number">2</span>/<span class="hljs-number">2010</span>,, <span class="hljs-number">6</span>,ADDISON AV,-<span class="hljs-number">122.15630</span>,<span class="hljs-number">37.44115</span>,Robinia pseudoacacia,Large Tree Routine Prune,<span class="hljs-number">29</span>,<span class="hljs-number">6</span>/<span class="hljs-number">1</span>/<span class="hljs-number">2010</span>,cavity or decay; trunk decay; codominant leaders; included bark; large leader or limb decay; previous failure root damage; root decay; beware <span class="hljs-keyword">of</span> BEES,YES</code></pre> </aside> <p>In this example (adapted from the City of Palo Alto tree operations database and published as <a href="#dfn-csv" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-csv-4">tabular data</a> and as an <a class="respec-offending-element" title="No matching definition found." id="respec-offender-no-matching-definition-found-0">interactive map</a>) the coordinate position of each tree is specified using separate columns (<code>Long</code> and <code>Lat</code>).</p> <p>We see the definitions of those <code>Long</code> and <code>Lat</code> columns provided in the dataset metadata, in this case a tabular metadata document, as per approach (1) above. <code>Long</code> and <code>Lat</code> are mapped onto the definitions provided by [<cite><a class="bibref" data-link-type="biblio" href="#bib-w3c-basic-geo" title="Basic Geo (WGS84 lat/long) Vocabulary">W3C-BASIC-GEO</a></cite>] to ensure that the meaning of the data values in those columns is clear:</p> <aside class="example" id="ex-crs-sepatate-axes-lables-tabular-metadata"><div class="marker"> <a class="self-link" href="#ex-crs-sepatate-axes-lables-tabular-metadata">Example<bdi> 32</bdi></a><span class="example-title">: Abridged tabular metadata providing column meanings</span> </div> <pre aria-busy="false"><code class="hljs javascript">{ <span class="hljs-string">"@context"</span>: [<span class="hljs-string">"http://www.w3.org/ns/csvw"</span>, {<span class="hljs-string">"@language"</span>: <span class="hljs-string">"en"</span>}], <span class="hljs-string">"@id"</span>: <span class="hljs-string">"http://example.org/tree-ops-db"</span>, <span class="hljs-string">"url"</span>: <span class="hljs-string">"tree-ops-db.csv"</span>, <span class="hljs-string">"dcterms:title"</span>: <span class="hljs-string">"Tree Operations"</span>, ... <span class="hljs-string">"tableSchema"</span>: { <span class="hljs-string">"columns"</span>: [{ <span class="hljs-string">"name"</span>: <span class="hljs-string">"GID"</span>, <span class="hljs-string">"titles"</span>: [ <span class="hljs-string">"GID"</span>, <span class="hljs-string">"Generic Identifier"</span> ], <span class="hljs-string">"dcterms:description"</span>: <span class="hljs-string">"An identifier for the operation on a tree."</span>, <span class="hljs-string">"datatype"</span>: <span class="hljs-string">"string"</span>, <span class="hljs-string">"required"</span>: <span class="hljs-literal">true</span>, <span class="hljs-string">"suppressOutput"</span>: <span class="hljs-literal">true</span> }, { <span class="hljs-string">"name"</span>: <span class="hljs-string">"on_street"</span>, <span class="hljs-string">"titles"</span>: <span class="hljs-string">"On Street"</span>, <span class="hljs-string">"dcterms:description"</span>: <span class="hljs-string">"The street that the tree is on."</span>, <span class="hljs-string">"datatype"</span>: <span class="hljs-string">"string"</span> }, { <span class="hljs-string">"name"</span>: <span class="hljs-string">"Long"</span>, <span class="hljs-string">"titles"</span>: <span class="hljs-string">"Longitude"</span>, <span class="hljs-string">"dcterms:description"</span>: <span class="hljs-string">"The WGS 84 longitude of the tree (decimal degrees)."</span>, <span class="hljs-string">"propertyUrl"</span>: <span class="hljs-string">"http://www.w3.org/2003/01/geo/wgs84_pos#long"</span> <span class="hljs-string">"datatype"</span>: { <span class="hljs-string">"base"</span>: <span class="hljs-string">"number"</span>, <span class="hljs-string">"minimum"</span>: <span class="hljs-string">"-180"</span>, <span class="hljs-string">"maximum"</span>: <span class="hljs-string">"180"</span> } }, { <span class="hljs-string">"name"</span>: <span class="hljs-string">"Lat"</span>, <span class="hljs-string">"titles"</span>: <span class="hljs-string">"Latitude"</span>, <span class="hljs-string">"propertyUrl"</span>: <span class="hljs-string">"http://www.w3.org/2003/01/geo/wgs84_pos#lat"</span> <span class="hljs-string">"dcterms:description"</span>: <span class="hljs-string">"The WGS 84 latitude of the tree (decimal degrees)."</span>, <span class="hljs-string">"datatype"</span>: { <span class="hljs-string">"base"</span>: <span class="hljs-string">"number"</span>, <span class="hljs-string">"minimum"</span>: <span class="hljs-string">"-90"</span>, <span class="hljs-string">"maximum"</span>: <span class="hljs-string">"90"</span> } }, ... <span class="hljs-string">"primaryKey"</span>: <span class="hljs-string">"GID"</span>, <span class="hljs-string">"aboutUrl"</span>: <span class="hljs-string">"http://example.org/tree-ops-ext#gid-{GID}"</span> } }</code></pre> </aside> <div class="note" role="note" id="issue-container-generatedID-35"><div role="heading" class="note-title marker" id="h-note-30" aria-level="6"><span>Note</span></div><aside class=""> <p>Please refer to [<cite><a class="bibref" data-link-type="biblio" href="#bib-tabular-data-primer" title="CSV on the Web: A Primer">TABULAR-DATA-PRIMER</a></cite>] <a href="https://www.w3.org/TR/tabular-data-primer/#geospatial">section 6.2 How do you support geospatial data?</a> for more details on working with geospatial content in tabular data.</p> </aside></div> </li> <li> <p>Use a data format that specifies axes, their order, <a href="#dfn-datum" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-datum-16">datum</a> and unit of measurement for coordinates.</p> <aside class="example" id="ex-crs-geojson"><div class="marker"> <a class="self-link" href="#ex-crs-geojson">Example<bdi> 33</bdi></a><span class="example-title">: Coordinates encoded using GeoJSON [RFC7946] in HTTP response</span> </div> <pre aria-busy="false"><code class="hljs http"><span class="hljs-meta">HTTP/1.1</span> <span class="hljs-number">200</span> OK <span class="hljs-attribute">Date</span><span class="hljs-punctuation">: </span>Sun, 05 Mar 2017 17:12:35 GMT <span class="hljs-attribute">Content-length</span><span class="hljs-punctuation">: </span>543 <span class="hljs-attribute">Connection</span><span class="hljs-punctuation">: </span>close <span class="hljs-attribute">Content-type</span><span class="hljs-punctuation">: </span>application/geo+json <span class="json">{ <span class="hljs-attr">"type"</span>: <span class="hljs-string">"Feature"</span>, <span class="hljs-attr">"geometry"</span>: { <span class="hljs-attr">"type"</span>: <span class="hljs-string">"Polygon"</span>, <span class="hljs-attr">"coordinates"</span>: [ [ [<span class="hljs-number">4.884235</span>, <span class="hljs-number">52.375108</span>], [<span class="hljs-number">4.884276</span>, <span class="hljs-number">52.375153</span>], [<span class="hljs-number">4.884257</span>, <span class="hljs-number">52.375159</span>], [<span class="hljs-number">4.883981</span>, <span class="hljs-number">52.375254</span>], [<span class="hljs-number">4.883850</span>, <span class="hljs-number">52.375109</span>], [<span class="hljs-number">4.883819</span>, <span class="hljs-number">52.375075</span>], [<span class="hljs-number">4.884104</span>, <span class="hljs-number">52.374979</span>], [<span class="hljs-number">4.884143</span>, <span class="hljs-number">52.374965</span>], [<span class="hljs-number">4.884207</span>, <span class="hljs-number">52.375035</span>], [<span class="hljs-number">4.884263</span>, <span class="hljs-number">52.375016</span>], [<span class="hljs-number">4.884320</span>, <span class="hljs-number">52.374996</span>], [<span class="hljs-number">4.884255</span>, <span class="hljs-number">52.374926</span>], [<span class="hljs-number">4.884329</span>, <span class="hljs-number">52.374901</span>], [<span class="hljs-number">4.884451</span>, <span class="hljs-number">52.375034</span>], [<span class="hljs-number">4.884235</span>, <span class="hljs-number">52.375108</span>] ] ] }, <span class="hljs-attr">"properties"</span>: { <span class="hljs-attr">"name"</span>: <span class="hljs-string">"Anne Frank's House"</span> } }</span></code></pre> </aside> <p>The media type <code>application/geo+json</code> is used to designate that content is provided in GeoJSON format, as specified in [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7946" title="The GeoJSON Format">RFC7946</a></cite>].</p> <p>[<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7946" title="The GeoJSON Format">RFC7946</a></cite>] <a href="https://datatracker.ietf.org/doc/html/rfc7946#section-4">Section 4. Coordinate Reference System</a> provides all the necessary information to interpret the coordinates, stating that:</p> <blockquote>The <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-57">coordinate reference system</a> for all GeoJSON [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7946" title="The GeoJSON Format">RFC7946</a></cite>] coordinates is a geographic coordinate reference system, using the World Geodetic System 1984 (WGS 84) [WGS84] <a href="#dfn-datum" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-datum-17">datum</a>, with <a href="#dfn-longitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-longitude-17">longitude</a> and <a href="#dfn-latitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-latitude-18">latitude</a> units of decimal degrees. This is equivalent to the coordinate reference system identified by the Open Geospatial Consortium (<abbr title="Open Geospatial Consortium">OGC</abbr>) URN urn:ogc:def:crs:<abbr title="Open Geospatial Consortium">OGC</abbr>::CRS84. An <em class="rfc2119">OPTIONAL</em> third-position element <em class="rfc2119">SHALL</em> be the height in meters above or below the WGS 84 reference <a href="#dfn-ellipsoid" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-ellipsoid-6">ellipsoid</a>. In the absence of elevation values, applications sensitive to height or depth <em class="rfc2119">SHOULD</em> interpret positions as being at local ground or sea level.</blockquote> <aside class="example" id="ex-crs-schema-geoshape"><div class="marker"> <a class="self-link" href="#ex-crs-schema-geoshape">Example<bdi> 34</bdi></a><span class="example-title">: Coordinate position provided using [JSON-LD] and [SCHEMA-ORG]</span> </div> <pre aria-busy="false"><code class="hljs xml"><span class="hljs-tag"><<span class="hljs-name">script</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"application/ld+json"</span>></span> { "@context" : { "@vocab" : "http://schema.org/" }, "myPlaceOfInterest" : { "@type" : "Place", "name" : "Anne Frank's House", "geo" : { "@type": "GeoShape", "polygon": "52.375108,4.884235 52.375153,4.884276 52.375159,4.884257 52.375254,4.883981 52.375109,4.883850 52.375075,4.883819 52.374979,4.884104 52.374965,4.884143 52.375035,4.884207 52.375016,4.884263 52.374996,4.884320 52.374926,4.884255 52.374901,4.884329 52.375034,4.884451 52.375108,4.884235" } } } <span class="hljs-tag"></<span class="hljs-name">script</span>></span></code></pre> </aside> <p>The [<cite><a class="bibref" data-link-type="biblio" href="#bib-schema-org" title="Schema.org">SCHEMA-ORG</a></cite>] definition of <code>GeoShape</code> states:</p> <blockquote>The geographic shape of a place. A GeoShape can be described using several properties whose values are based on latitude/longitude pairs. Either whitespace or commas can be used to separate <a href="#dfn-latitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-latitude-19">latitude</a> and <a href="#dfn-longitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-longitude-18">longitude</a>; whitespace should be used when writing a list of several such points.</blockquote> <div class="note" role="note" id="issue-container-generatedID-36"><div role="heading" class="note-title marker" id="h-note-31" aria-level="6"><span>Note</span></div><aside class=""> <p>In these two previous examples, we see a prime example of why coordinate axis order is important: GeoJSON [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7946" title="The GeoJSON Format">RFC7946</a></cite>] uses Long/Lat while [<cite><a class="bibref" data-link-type="biblio" href="#bib-schema-org" title="Schema.org">SCHEMA-ORG</a></cite>] uses Lat/Long. Getting the axis order in the wrong order puts Anne Frank's House somewhere off the coast of Somalia rather than the Netherlands!</p> </aside></div> </li> <li> <p>State within the data itself which <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-58">coordinate reference system</a> is used.</p> <aside class="example" id="ex-crs-gml"><div class="marker"> <a class="self-link" href="#ex-crs-gml">Example<bdi> 35</bdi></a><span class="example-title">: Coordinate reference system stated in [GML]</span> </div> <pre aria-busy="false"><code class="hljs xml"><span class="hljs-tag"><<span class="hljs-name">gml:Polygon</span> <span class="hljs-attr">srsDimension</span>=<span class="hljs-string">"2"</span> <span class="hljs-attr">axisLabels</span>=<span class="hljs-string">"east north"</span> <span class="hljs-attr">srsName</span>=<span class="hljs-string">"http://www.opengis.net/def/crs/EPSG/0/28992"</span>></span> <span class="hljs-tag"><<span class="hljs-name">gml:exterior</span>></span> <span class="hljs-tag"><<span class="hljs-name">gml:LinearRing</span>></span> <span class="hljs-tag"><<span class="hljs-name">gml:posList</span>></span> 120749.725 487589.422 120752.55 487594.375 120751.227 487595.129 120732.539 487605.788 120723.505 487589.745 120721.387 487585.939 120740.668 487575.07 120743.316 487573.589 120747.735 487581.337 120751.564 487579.154 120755.411 487576.96 120750.935 487569.172 120755.941 487566.288 120764.369 487581.066 120749.725 487589.422 <span class="hljs-tag"></<span class="hljs-name">gml:posList</span>></span> <span class="hljs-tag"></<span class="hljs-name">gml:LinearRing</span>></span> <span class="hljs-tag"></<span class="hljs-name">gml:exterior</span>></span> <span class="hljs-tag"></<span class="hljs-name">gml:Polygon</span>></span></code></pre> </aside> <p>The example above encodes the polygon for Anne Frank's House in [<cite><a class="bibref" data-link-type="biblio" href="#bib-gml" title="Geography Markup Language (GML) Encoding Standard">GML</a></cite>]. The <a href="#dfn-extensible-markup-language" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-extensible-markup-language-6">XML</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-xml11" title="Extensible Markup Language (XML) 1.1 (Second Edition)">XML11</a></cite>] attribute <code>srsName</code> (<em>srs</em> meaning "spatial reference system") refers to the <em>Amersfoort / RD</em> CRS (<a href="https://epsg.org/crs_28992/Amersfoort-RD-New.html">EPSG:28992</a>) used in the Netherlands. Also note that additional useful information (<code>srsDimension</code> and <code>axisLabels</code>) is provided within the document for easy reference.</p> <aside class="example" id="ex-crs-wktLiteral-BAG"><div class="marker"> <a class="self-link" href="#ex-crs-wktLiteral-BAG">Example<bdi> 36</bdi></a><span class="example-title">: Coordinate reference system stated in [GeoSPARQL] WKT ([JSON-LD] encoding)</span> </div> <pre aria-busy="false"><code class="hljs">{ "@context": { "geosparql" : "http://www.opengis.net/ont/geosparql#" , "rdfs" : "http://www.w3.org/2000/01/rdf-schema#" , "asWKT" : { "@id" : "http://www.opengis.net/ont/geosparql#asWKT" , "@type" : "geosparql:wktLiteral" } } , "@id" : "http://example.org/register/id/building/0363100012169587" , "@type" : "http://www.opengis.net/ont/geosparql#Feature" , "rdfs:label" : "Building 0363100012169587" , "geosparql:hasGeometry": { "geosparql:asWKT" : "<http://www.opengis.net/def/crs/EPSG/0/4326> POLYGON ((52.375108 4.884235, 52.375153 4.884276, 52.375159 4.884257, 52.375254 4.883981, 52.375109 4.883850, 52.375075 4.883819, 52.374979 4.884104, 52.374965 4.884143, 52.375035 4.884207, 52.375016 4.884263, 52.374996 4.884320, 52.374926 4.884255, 52.374901 4.884329, 52.375034 4.884451, 52.375108 4.884235))" } }</code></pre> </aside> <p>The "Well Known Text" (<a href="#dfn-well-known-text" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-well-known-text-9">WKT</a>) encoding, itself defined in [<cite><a class="bibref" data-link-type="biblio" href="#bib-simple-features" title="Simple Feature Access - Part 1: Common Architecture">SIMPLE-FEATURES</a></cite>], is extended by [<cite><a class="bibref" data-link-type="biblio" href="#bib-geosparql" title="GeoSPARQL - A Geographic Query Language for RDF Data">GeoSPARQL</a></cite>] to include designation of the <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-59">coordinate reference system</a> used, which in turns determines the coordinate axis-order. The example above encodes the polygon as a [<cite><a class="bibref" data-link-type="biblio" href="#bib-geosparql" title="GeoSPARQL - A Geographic Query Language for RDF Data">GeoSPARQL</a></cite>] <code>wktLiteral</code> data type, designating the <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-60">coordinate reference system</a> as <code><http://www.opengis.net/def/crs/EPSG/0/4326></code> (<a href="https://epsg.org/crs_4326/WGS-84.html">EPSG:4326</a>) — WGS 84 Lat/Long.</p> <div class="note" role="note" id="issue-container-generatedID-37"><div role="heading" class="note-title marker" id="h-note-32" aria-level="6"><span>Note</span></div><aside class=""> <p>When using the <code>wktLiteral</code> datatype specified in [<cite><a class="bibref" data-link-type="biblio" href="#bib-geosparql" title="GeoSPARQL - A Geographic Query Language for RDF Data">GeoSPARQL</a></cite>], the <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-61">coordinate reference system</a> URI may be omitted. In such a case, WGS 84 Long/Lat (<code>urn:ogc:def:crs:<abbr title="Open Geospatial Consortium">OGC</abbr>::CRS84</code>) is used. Please refer to [<cite><a class="bibref" data-link-type="biblio" href="#bib-geosparql" title="GeoSPARQL - A Geographic Query Language for RDF Data">GeoSPARQL</a></cite>] <strong>Requirement 11</strong> for more details.</p> <p>The Basisregistraties Adressen en Gebouwen (BAG — the Dutch "Basic Registers for Addresses and Buildings"), provided by <a href="https://www.kadaster.nl/">Kadaster</a>, uses this default behavior. Anne Frank's House, is identified using the URI <a class="respec-offending-element" title="No matching definition found." id="respec-offender-no-matching-definition-found-1"><code>http://bag.basisregistraties.overheid.nl/bag/id/pand/0363100012169587</code></a>. <a href="https://bag.basisregistraties.overheid.nl/resource?subject=http%3A%2F%2Fbag.basisregistraties.overheid.nl%2Fbag%2Fdoc%2F2013090600000000%2Fpand%2F0363100012169587">HTML</a>, <a href="https://bag.basisregistraties.overheid.nl/resource?subject=http%3A%2F%2Fbag.basisregistraties.overheid.nl%2Fbag%2Fdoc%2F2013090600000000%2Fpand%2F0363100012169587&format=json">JSON</a>, <a href="https://bag.basisregistraties.overheid.nl/resource?subject=http%3A%2F%2Fbag.basisregistraties.overheid.nl%2Fbag%2Fdoc%2F2013090600000000%2Fpand%2F0363100012169587&format=ttl">TTL</a> and <a href="http://bag.basisregistraties.overheid.nl/resource?subject=http%3A%2F%2Fbag.basisregistraties.overheid.nl%2Fbag%2Fdoc%2F2013090600000000%2Fpand%2F0363100012169587&format=xml">XML</a> representations are available.</p> </aside></div> <div class="note" role="note" id="issue-container-generatedID-38"><div role="heading" class="note-title marker" id="h-note-33" aria-level="6"><span>Note</span></div><aside class=""> <p>It is worth noting that, in the [<cite><a class="bibref" data-link-type="biblio" href="#bib-simple-features" title="Simple Feature Access - Part 1: Common Architecture">SIMPLE-FEATURES</a></cite>] definition of <a href="#dfn-well-known-text" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-well-known-text-10">WKT</a>, the coordinate axis order is by default longitude / latitude, irrespective of the <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-62">coordinate reference system</a> used. The same applies to <a href="http://www.postgis.net/docs/ST_AsEWKT.html">EWKT</a> (<em>Extended WKT</em>) — a PostGIS extension to <a href="#dfn-well-known-text" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-well-known-text-11">WKT</a> supported also by other <a href="#dfn-geographic-information-system" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geographic-information-system-3">GIS</a> tools -, which includes a parameter (<code>SRID</code>) for specifying the coordinate reference system.</p> <p>For this reason, whenever using <a href="#dfn-well-known-text" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-well-known-text-12">WKT</a> to encode <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-86">geometries</a>, it is important that the reference <a href="#dfn-well-known-text" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-well-known-text-13">WKT</a> specification can be unambiguously determined.</p> </aside></div> </li> <li> <p>Support advertising the used <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-63">CRS</a> in the endpoint serving the data.</p> <p>Because of the inconsistent provision of CRS metadata in geospatial encodings and the continued confusion caused by the axis order of coordinates, <abbr title="Open Geospatial Consortium">OGC</abbr> <abbr title="Application Programming Interface">API</abbr> - Features part 2 [<cite><a class="bibref" data-link-type="biblio" href="#bib-oaf2" title="OGC API - Features - Part 2: Coordinate Reference Systems by Reference">OAF2</a></cite>] defines a mechanism for a server to clearly and unambiguously assert the CRS and axis order being used in a response document independent of the requested output format. The method used is an HTTP header named <code>Content-Crs</code> containing a URI identifying the <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-64">CRS</a>. </p> <aside class="example" id="advertise-crs-oaf"><div class="marker"> <a class="self-link" href="#advertise-crs-oaf">Example<bdi> 37</bdi></a><span class="example-title">: Advertise CRS using OGC API - Features building block</span> </div> <pre aria-busy="false"><code class="hljs javascript"> $ curl -i <span class="hljs-string">"https://example.com/api/v1/collections/poi/items/1?crs=http%3A%2F%2Fwww.opengis.net%2Fdef%2Fcrs%2FEPSG%2F0%2F3395"</span> HTTP/<span class="hljs-number">1.1</span> <span class="hljs-number">200</span> OK <span class="hljs-attr">Date</span>: Sun, <span class="hljs-number">24</span> May <span class="hljs-number">2020</span> <span class="hljs-number">15</span>:<span class="hljs-number">30</span>:<span class="hljs-number">56</span> GMT Content-Type: application/geo+json Content-Language: en Content-Crs: Link: ; rel=<span class="hljs-string">"self"</span>; title=<span class="hljs-string">"This document"</span>; type=<span class="hljs-string">"application/geo+json"</span> <span class="hljs-attr">Link</span>: ; rel=<span class="hljs-string">"alternate"</span>; title=<span class="hljs-string">"This document as HTML"</span>; type=<span class="hljs-string">"text/html"</span> <span class="hljs-attr">Link</span>: ; rel=<span class="hljs-string">"collection"</span>; title=<span class="hljs-string">"The collection the feature belongs to"</span> <span class="hljs-attr">Vary</span>: Accept-Language,Accept-Encoding Content-Length: <span class="hljs-number">1064</span> ... </code></pre> </aside> </li> </ol> </section> <section class="test"> <div class="header-wrapper"><h5 class="subhead" id="how-to-test-6">How to Test</h5><a class="self-link" href="#how-to-test-6" aria-label="Permalink for this Section"></a></div> <p>For a given <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-91">spatial data</a> publication, check that users can find information about the coordinate axes, their order, and unit of measurement, plus the <a href="#dfn-datum" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-datum-18">datum</a> used.</p> </section> <section class="ucr"> <div class="header-wrapper"><h5 class="subhead" id="evidence-6">Evidence</h5><a class="self-link" href="#evidence-6" aria-label="Permalink for this Section"></a></div> <p><span>Relevant requirements</span>: <a href="https://www.w3.org/TR/sdw-ucr/#DeterminableCRS">R-DeterminableCRS</a>, <a href="https://www.w3.org/TR/sdw-ucr/#CRSDefinition">R-CRSDefinition</a>, <a href="https://www.w3.org/TR/sdw-ucr/#GeoreferencedData">R-GeoreferencedData</a>, <a href="https://www.w3.org/TR/sdw-ucr/#LinkingCRS">R-LinkingCRS</a>. </p> </section> <section class="benefits"> <div class="header-wrapper"><h5 class="subhead" id="benefits-6">Benefits</h5><a class="self-link" href="#benefits-6" aria-label="Permalink for this Section"></a></div> <ul class="benefitsList"> <li class="hidden">Comprehension</li> <li class="hidden">Processability</li> <li class="hidden">Reuse</li> <li class="hidden">Interoperability</li> <li class="icon"><img src="images/comprehension.svg" alt="Comprehension" class="benefitIcon comprehensionIcon"></li><li class="icon"><img src="images/processability.svg" alt="Processability" class="benefitIcon processabilityIcon"></li><li class="icon"><img src="images/reuse.svg" alt="Reuse" class="benefitIcon reuseIcon"></li><li class="icon"><img src="images/interoperability.svg" alt="Interoperability" class="benefitIcon interoperabilityIcon"></li></ul> </section> </div> </section> <section id="relative-positioning"><div class="header-wrapper"><h4 id="x13-2-3-relative-positioning"><bdi class="secno">13.2.3 </bdi>Relative positioning</h4><a class="self-link" href="#relative-positioning" aria-label="Permalink for Section 13.2.3"></a></div> <p>Sometimes instead of using <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-87">geometry</a> and coordinates to describe a location, we want or need to describe it in relation to another location. In that case relative positioning can be used.</p> <div class="practicecontainer"> <div class="practice advisement"><a class="marker self-link" href="#relative-position"><bdi lang="en">Best Practice 9</bdi></a>: <span id="relative-position" class="practicelab">Describe relative positioning</span> <p></p> <p class="practicedesc">Provide a relative positioning capability in which one entity can be positioned relative to another entity.</p> </div> <section class="axioms"> <div class="header-wrapper"><h5 class="subhead" id="why-7">Why</h5><a class="self-link" href="#why-7" aria-label="Permalink for this Section"></a></div> <p>Geocentric <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-65">coordinate reference system</a>s describe position relative to the earth itself. It can also be valuable or even necessary to describe the position of an entity relative to a second entity. In some cases, this is a navigation convenience, for example, a tour kiosk might be described as located between the Boston Common Frog Pond and the Park Street T entrance, or in one's lower left view when looking up at the Statehouse. In other cases of moving or generalized entities, it may be that the entity can only usefully be given a relative position. For example, a package is reported left on seat 32L1 on the #59 bus, or part number PRG5460 is always located at position (51, 73, 3) in Acme warehouses. </p> </section> <section class="outcome"> <div class="header-wrapper"><h5 class="subhead" id="intended-outcome-7">Intended Outcome</h5><a class="self-link" href="#intended-outcome-7" aria-label="Permalink for this Section"></a></div> <p>It should be possible to describe the location of an entity in relation to one or more other entities or places, instead of specifying its own geocentric position or <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-88">geometry</a>.</p> <p>The relative positioning descriptions should be machine-interpretable and/or human-readable as required by the intended application. The positions and/or <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-89">geometries</a> of reference entities, if available, should be retrievable through their <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-28">link</a> relations. </p> </section> <section class="how"> <div class="header-wrapper"><h5 class="subhead" id="possible-approach-to-implementation-7">Possible Approach to Implementation</h5><a class="self-link" href="#possible-approach-to-implementation-7" aria-label="Permalink for this Section"></a></div> <p>Positioning of one entity (A) relative to another referenced entity (B) is a combination of two factors: the referencing target, and the means of relative positioning. "Geocentric" referencing targets the planet itself or at least a fixed point on it. "Allocentric" referencing targets another entity. "Egocentric" referencing targets a particular field of view of an observer or camera. Positioning can take the form of a complete <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-66">coordinate reference system</a> (e.g. engineering <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-67">CRS</a>), a qualitative relation such as "beside", or a quantitative relation such as "30m northwest"</p> <table class="simple" id="relative-positioning-modes-table"> <caption>Combinations of relative positioning means and references</caption> <tbody><tr> <th></th> <th>Engineering CRS</th> <th>Qualitative Relation</th> <th>Quantitative Relation</th> </tr> <tr> <th>Geocentric </th> <td>Coordinate position A relative to a fixed earth <a href="#dfn-datum" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-datum-19">datum</a></td> <td>Not Applicable</td> <td>Not Applicable</td> </tr> <tr> <th>Allocentric </th> <td>Coordinate position A relative to a fixed, mobile, or generic entity B</td> <td>A "next to" B</td> <td>A "20m south" of B</td> </tr> <tr> <th>Egocentric </th> <td>Coordinate position A within the field of view B</td> <td>A in "lower left corner" of the field of view B</td> <td>A "30 deg right of center" in field of view B</td> </tr> </tbody></table> <ul> <li>Descriptions of the positions of entities as explicit <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-29">links</a> to target entities. </li> <li>Semantic descriptions of the target entities and type of positioning.</li> <li>Encodings of the specific entity relations or the relative coordinate positions in the case of engineering <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-68">CRS</a>'</li> </ul> <aside class="example" id="ex-metes-bounds"><div class="marker"> <a class="self-link" href="#ex-metes-bounds">Example<bdi> 38</bdi></a> </div> <p>"Metes and Bounds" are a widely-used system for defining land parcel boundary edges as cardinal directions and distances relative to survey markers or other landmarks. This would be considered an allocentric quantitative relation type of relative positioning</p> </aside> <aside class="example" id="ex-pixel-position"><div class="marker"> <a class="self-link" href="#ex-pixel-position">Example<bdi> 39</bdi></a> </div> <p>The positions of pixels in an image captured by a satellite or other camera sensor are originally recorded relative to the field of view of the sensor. A model of the sensor optics, and platform position and orientation, together with transmission path effects (if available), may be used later to derive geocentric pixel positions.</p> </aside> <aside class="example" id="ex-distance-along-stream"><div class="marker"> <a class="self-link" href="#ex-distance-along-stream">Example<bdi> 40</bdi></a> </div> <p>In hydrology, positions of river features and/or observations such as water depth are often recorded as distance along a stream relative to a well-known origin point such as a stream confluence. This provides a reproducible form of positioning even if the <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-90">geometry</a> of the stream has not been precisely determined.</p> </aside> <aside class="example" id="ex-ar"><div class="marker"> <a class="self-link" href="#ex-ar">Example<bdi> 41</bdi></a> </div> <p>Augmented or mixed reality content is presented to the viewer in positions both relative to the real-world entities that it augments and relative to the viewer's visual perspective on those entities. For example, an informational callout needs to be juxtaposed with its target but also occupy the user's field of view in a meaningful fashion.</p> </aside> </section> <section class="test"> <div class="header-wrapper"><h5 class="subhead" id="how-to-test-7">How to Test</h5><a class="self-link" href="#how-to-test-7" aria-label="Permalink for this Section"></a></div> <p>Check that, when positions of entities are described as relative to other entities, these descriptions can be interpreted by a machine as well as humans, and the positions of the reference entities can be retrieved through their <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-30">link</a> relations. </p> </section> <section class="ucr"> <div class="header-wrapper"><h5 class="subhead" id="evidence-7">Evidence</h5><a class="self-link" href="#evidence-7" aria-label="Permalink for this Section"></a></div> <p><span>Relevant requirements</span>: <a href="https://www.w3.org/TR/sdw-ucr/#MachineToMachine">R-MachineToMachine</a>, <a href="https://www.w3.org/TR/sdw-ucr/#SamplingTopology">R-SamplingTopology</a>.</p> </section> <section class="benefits"> <div class="header-wrapper"><h5 class="subhead" id="benefits-7">Benefits</h5><a class="self-link" href="#benefits-7" aria-label="Permalink for this Section"></a></div> <ul class="benefitsList"> <li class="hidden">Processability</li> <li class="icon"><img src="images/processability.svg" alt="Processability" class="benefitIcon processabilityIcon"></li></ul> </section> </div> </section> <section id="bp-linking-2"><div class="header-wrapper"><h4 id="x13-2-4-spatial-links"><bdi class="secno">13.2.4 </bdi>Spatial links</h4><a class="self-link" href="#bp-linking-2" aria-label="Permalink for Section 13.2.4"></a></div> <p>The fundamentals of <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-31">links</a> and how they are encoded are described in <a href="#bp-linking" class="sectionRef sec-ref"><bdi class="secno">13.1.3 </bdi>Linking data</a>. This section provides advice on the resources to use as the <em>source</em> and <em>target</em> of <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-32">links</a> in spatial data, and the common categories of link relation types that might be used.</p> <div class="practicecontainer"> <div class="practice advisement"><a class="marker self-link" href="#entity-level-links"><bdi lang="en">Best Practice 10</bdi></a>: <span id="entity-level-links" class="practicelab">Use appropriate relation types to link Spatial Things</span> <p></p> <p class="practicedesc">Ensure that hyperlinks between Spatial Things and related resources use appropriate semantics.</p> </div> <section class="axioms"> <div class="header-wrapper"><h5 class="subhead" id="why-8">Why</h5><a class="self-link" href="#why-8" aria-label="Permalink for this Section"></a></div> <p>Geography is often described as the "glue that binds Linked Data"; the <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-33">links</a> between <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-99">Spatial Things</a> — and between other resources and <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-100">Spatial Things</a> — describe how the world around us is structured and interrelated and form an important facet of the Web of Data.</p> <p><a href="#dfn-spatial-relation" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-relation-3">Spatial relationships</a> can often be derived mathematically based on <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-91">geometry</a> — but this can be computationally expensive. <em>Topological</em> relationships such as these can be asserted, thereby removing the need to do geometry-based calculations. A useful secondary benefit is that these relationships are easier for humans to understand!</p> <p>Different authorities and agencies seek to describe the world around them by publishing spatial data, and in doing so, each minting their own URIs (as recommended in <a href="#globally-unique-ids" class="practiceRef">Best Practice 1: Use globally unique persistent HTTP URIs for Spatial Things</a>). Where <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-101">Spatial Things</a> are of common interest to multiple agents, it is almost inevitable that a given <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-102">Spatial Thing</a> will end up being identified with several URIs. Given necessary due diligence, multiple identifiers may be linked, thereby supporting a combination of multiple sets of information and yielding new perspectives on Spatial Things. </p> <p>Application domains often require Spatial Things to be related; to convey the correct meaning, specific link relation types need to be used.</p> </section> <section class="outcome"> <div class="header-wrapper"><h5 class="subhead" id="intended-outcome-8">Intended Outcome</h5><a class="self-link" href="#intended-outcome-8" aria-label="Permalink for this Section"></a></div> <p>Spatial things are related to other resources in the Web of data using links with appropriate semantics.</p> <p>Your data is more interoperable.</p> </section> <section class="how"> <div class="header-wrapper"><h5 class="subhead" id="possible-approach-to-implementation-8">Possible Approach to Implementation</h5><a class="self-link" href="#possible-approach-to-implementation-8" aria-label="Permalink for this Section"></a></div> <p>Before examining the link relation types that might be used in spatial data, let's consider <em>what</em> we should link to.</p> <ol> <li> <p>Link to the <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-103">Spatial Thing</a>.</p> <p>The <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-92">geometry</a> description or <a href="#dfn-extent" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-extent-9">extent</a> of a <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-104">Spatial Thing</a> may be expressed using an object with its own URI. For example:</p> <aside class="example" id="ex-linking-geometry-edinburgh"><div class="marker"> <a class="self-link" href="#ex-linking-geometry-edinburgh">Example<bdi> 42</bdi></a><span class="example-title">: Independently identified geometry extent for the City of Edinburgh Council Area (TTL format)</span> </div> <pre aria-busy="false"><code class="hljs css"><span class="hljs-keyword">@prefix</span> <span class="hljs-attribute">rdfs</span>: <<span class="hljs-attribute">http</span>://www.w3.org/<span class="hljs-number">2000</span>/<span class="hljs-number">01</span>/rdf-schema#> . @prefix <span class="hljs-attribute">admingeo</span>: <<span class="hljs-attribute">http</span>://data.ordnancesurvey.co.uk/ontology/admingeo/> . @prefix <span class="hljs-attribute">geom</span>: <<span class="hljs-attribute">http</span>://data.ordnancesurvey.co.uk/ontology/geometry/> <<span class="hljs-attribute">http</span>://data.ordnancesurvey.co.uk/id/<span class="hljs-number">7000000000030505</span>> a <span class="hljs-attribute">admingeo</span>:District ; rdfs:label <span class="hljs-string">"City of Edinburgh"</span> ; geom:extent <http://data.ordnancesurvey.co.uk/id/geometry/<span class="hljs-number">30505</span>-<span class="hljs-number">10</span>> . <http://data.ordnancesurvey.co.uk/id/geometry/<span class="hljs-number">30505</span>-<span class="hljs-number">10</span>> a geom:AbstractGeometry ; geom:asGML <span class="hljs-string">"<gml:MultiPolygon>...</gml:MultiPolygon>"</span>^^rdf:XMLLiteral ; geom:hectares <span class="hljs-number">27300.411</span> .</code></pre> </aside> <p>As can be seen in the example above, the <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-93">geometry</a> <a href="https://data.ordnancesurvey.co.uk/id/geometry/30505-10"><code>30505-10</code></a> is an <em>attribute</em> of the <a href="https://www.ordnancesurvey.co.uk/products/linked-data">City of Edinburgh (osuk:7000000000030505)</a>. If your intent is to make a statement about, or refer to, the real-world entity then make sure you link to the <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-105">Spatial Thing</a> rather than the <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-94">geometry</a>. Furthermore, note that the geometry record may be updated and re-published with a new identifier, for example, if the city boundary was resurveyed and would then result in a broken <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-34">link</a>.</p> <p>Data publishers should also be aware of a common pattern used in the publication of <a href="#dfn-linked-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-linked-data-17">Linked Data</a>, where the <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-106">Spatial Thing</a> and the information resource that describes it are identified separately — often, but not always, using <code>/id</code> as part of the URI for <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-107">Spatial Thing</a>, and <code>/doc</code> for the corresponding page/document/record. When the URI for the Spatial Thing is dereferenced, a <code>HTTP 303 (see other)</code> response is used to redirect the browser to the page/document/record URL. For example:</p> <ul> <li><a href="http://statistics.gov.scot/id/statistical-geography/S12000036"><code>http://statistics.gov.scot<span style="text-decoration: underline;">/id</span>/statistical-geography/S12000036</code></a> redirects to <a href="http://statistics.gov.scot/doc/statistical-geography/S12000036"><code>http://statistics.gov.scot<span style="text-decoration: underline;">/doc</span>/statistical-geography/S12000036</code></a></li> <li><a href="https://dbpedia.org/page/Anne_Frank_House"><code>http://dbpedia.org<span style="text-decoration: underline;">/resource</span>/Anne_Frank_House</code></a> redirects to <a href="https://dbpedia.org/page/Anne_Frank_House"><code>http://dbpedia.org<span style="text-decoration: underline;">/page</span>/Anne_Frank_House</code></a></li> </ul> <p>While this disambiguation has its advantages, it often seems to confuse users (and even some experts). Be aware of this <em>redirect</em> pattern, and make sure you use the correct URI i.e. the identifying one — especially if you're copying the URI from a browser's address bar which usually ends up showing the page/document/record URL.</p> </li> <li> <p>Link to <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-108">Spatial Things</a> from popular repositories.</p> <p>Linking with URIs from popular repositories may improve the discoverability of your data. Not only does this provide users with better context by enabling them to browse the information published by the popular repository, but it also helps relate your data with datasets from other parties who have also used those URIs as points of reference.</p> <p>There are many popular repositories containing sets of identifiers for <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-109">Spatial Things</a>; the following list suggests the primary sources worth checking:</p> <ul> <li><a href="http://www.geonames.org">GeoNames</a></li> <li><a href="https://www.wikidata.org/wiki/Wikidata:Main_Page">Wikidata</a></li> <li><a href="http://wiki.dbpedia.org/">DBpedia</a></li> <li>National open spatial datasets such as are made available by for example the UK and Dutch governments.</li> </ul> <p>Finding out which national open spatial datasets are available, and how they can be accessed, currently requires some insider knowledge — in most cases because these datasets are often not easily discoverable. Look for national data portals / geoportals such as <a href="https://nationaalgeoregister.nl/geonetwork/srv/dut/catalog.search">Nationaal Georegister</a> (Dutch national register of spatial datasets) or <a href="https://data.overheid.nl">Dataportaal van de Nederlandse overheid</a> (Dutch national governmental data portal).</p> <p>Once you've found well-known URIs for <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-110">Spatial Things</a> that you want to link to, proceed to create <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-35">links</a> using properties such as those described above — <code>owl:sameAs</code> (if you're careful!) and <a href="http://www.opengis.net/ont/geosparql#sfWithin"><code>geosparql:sfWithin</code></a>, or perhaps qualitative relationships like <a href="http://www.geonames.org/ontology"><code>geonames:nearby</code></a> or the <em>proposed</em> <code>schema:samePlaceAs</code> (see related discussion in <a href="#c-sameplaceas" class="sectionRef sec-ref"><bdi class="secno">15.6 </bdi>Defining that two places are the same</a>).</p> <p>However, don't try to make <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-36">links</a> to <em>everything</em>. It is not always feasible to link your <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-111">Spatial Things</a> to well-known resources. For example, if you were maintaining a registry of cultural heritage in Amsterdam, it would be reasonably simple to look up identifiers for the city's 50 or so museums and map these to your Spatial Things. But it would be a huge task for, say, a topographic mapping agency to cross-reference their entire catalogue of named places containing tens of thousands of Spatial Things with third-party resources (although in the spirit of crowd-sourcing, if someone else found those links useful, they may take on the task of relating the Spatial Things and publishing those relationships to the Web as a complementary resource!). In essence, you should only create the data that you have the resources to maintain.</p> </li> </ol> <p>Now, let's take a look at link relation types that may be applicable to spatial data. These fall into three broad categories: spatial relations, equality relations, and domain-specific relations.</p> <p>In this best practice document, we cannot cover all the possible vocabularies and ontologies that provide link relation types for spatial data. Other than a few areas of specific guidance, we are not recommending specific vocabularies for spatial linking. Instead, we hope to have introduced patterns that show the types of spatial linking that might be used and leave it to spatial data publishers to determine which specific vocabulary best suits their purpose. In this regard, [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#dataVocabularies">section 8.9 Data Vocabularies</a> and, in particular, [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#ReuseVocabularies">Best Practice 15: Reuse vocabularies, preferably standardized ones</a> are highly relevant.</p> <p>Also, readers should note that in many cases, there will often be value in linking <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-112">Spatial Things</a> with multiple relationships — each of which provides different semantics. Having identified your intended user communities and the vocabularies that they commonly use, choose those <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-37">link</a> relation types that meet their specific needs, and then add more generalized <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-38">link</a> relation types to support broader reuse of your data.</p> <p>However, data publishers should only assert those relationships that they know about and that they think will be of interest to their user community. Don't try to cover all possible requirements! That said, publishers should try to avoid making assumptions about what the user may or may not know. For example, users may lack the expertise or resources to calculate a topological relationship, or lack the domain knowledge to determine how two <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-113">Spatial Things</a> are related, if at all. As the data publisher, you are likely to be in a better position to make these judgements than the user — so help them out by making these relationships clear.</p> <ol> <li id="link-type-spatial-rels"> <p>Spatial relationships</p> <p>Topological relationships between <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-114">Spatial Things</a> can be computed based on assessment of their <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-95">geometry</a>. [<cite><a class="bibref" data-link-type="biblio" href="#bib-geosparql" title="GeoSPARQL - A Geographic Query Language for RDF Data">GeoSPARQL</a></cite>] defines families of topological relationships (based on the <a href="https://en.wikipedia.org/wiki/DE-9IM">DE-9IM</a> pattern) that, in mathematical terms, specify the spatial dimension of the intersections of the interiors, boundaries and exteriors of two geometric objects that may be 2-dimensional (e.g. area), 1-dimensional (e.g. linear) or 0-dimensional (e.g. point).</p> <p>Most commonly used are the simple feature relationship family, described in [<cite><a class="bibref" data-link-type="biblio" href="#bib-simple-features" title="Simple Feature Access - Part 1: Common Architecture">SIMPLE-FEATURES</a></cite>] section <span style="text-decoration: underline;">6.1.15.3 Named spatial relationship predicates based on the DE-9IM</span>. The set of seven named relationships, or <em>spatial predicates</em>, and their associated [<cite><a class="bibref" data-link-type="biblio" href="#bib-geosparql" title="GeoSPARQL - A Geographic Query Language for RDF Data">GeoSPARQL</a></cite>] properties are listed below:</p> <ul> <li><strong>Equals</strong> — <a href="http://www.opengis.net/ont/geosparql#sfEquals"><code>geosparql:sfEquals</code></a></li> <li><strong>Disjoint</strong> — <a href="http://www.opengis.net/ont/geosparql#sfDisjoint"><code>geosparql:sfDisjoint</code></a></li> <li><strong>Touches</strong> — <a href="http://www.opengis.net/ont/geosparql#sfTouches"><code>geosparql:sfTouches</code></a></li> <li><strong>Crosses</strong> — <a href="http://www.opengis.net/ont/geosparql#sfCrosses"><code>geosparql:sfCrosses</code></a></li> <li><strong>Within</strong> — <a href="http://www.opengis.net/ont/geosparql#sfWithin"><code>geosparql:sfWithin</code></a></li> <li><strong>Contains</strong> — <a href="http://www.opengis.net/ont/geosparql#sfContains"><code>geosparql:sfContains</code></a></li> <li><strong>Intersects</strong> — <a href="http://www.opengis.net/ont/geosparql#sfIntersects"><code>geosparql:sfIntersects</code></a></li> </ul> <p>We recommend the use of the Simple Features relation families for describing topological relations between points, lines and areas. Further details are provided in [<cite><a class="bibref" data-link-type="biblio" href="#bib-geosparql" title="GeoSPARQL - A Geographic Query Language for RDF Data">GeoSPARQL</a></cite>] section <span style="text-decoration: underline;">7 Topology Vocabulary Extension</span>.</p> <aside class="example" id="ex-linking-geosparql-sfcrosses"><div class="marker"> <a class="self-link" href="#ex-linking-geosparql-sfcrosses">Example<bdi> 43</bdi></a><span class="example-title">: Asserting topological relationship 'crosses' (JSON format)</span> </div> <pre aria-busy="false"><code class="hljs xml"><span class="hljs-tag"><<span class="hljs-name">script</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"application/hal+json"</span>></span><span class="javascript"> { <span class="hljs-string">"ex:type-nl"</span>: <span class="hljs-string">"brug"</span>, <span class="hljs-string">"ex:type-en"</span>: <span class="hljs-string">"bridge"</span>, <span class="hljs-string">"ex:name"</span>: <span class="hljs-string">"Lelieslius"</span>, <span class="hljs-string">"_links"</span>: { <span class="hljs-string">"self"</span>: { <span class="hljs-string">"href"</span> : <span class="hljs-string">"http://data.example.org/topo/ams/brug/Leliesluis"</span> }, <span class="hljs-string">"curies"</span>: [ { <span class="hljs-string">"name"</span>: <span class="hljs-string">"geosparql"</span>, <span class="hljs-string">"href"</span>: <span class="hljs-string">"http://www.opengis.net/ont/geosparql#{rel}"</span>, <span class="hljs-string">"templated"</span>: <span class="hljs-literal">true</span> } , { <span class="hljs-string">"name"</span>: <span class="hljs-string">"ex"</span>, <span class="hljs-string">"href"</span>: <span class="hljs-string">"http://data.example.org/def/topo#{rel}"</span>, <span class="hljs-string">"templated"</span>: <span class="hljs-string">"true"</span> } ], <span class="hljs-string">"geosparql:sfCrosses"</span>: { <span class="hljs-string">"href"</span> : <span class="hljs-string">"http://data.example.org/topo/ams/kanaal/Prinsengracht"</span> } }, <span class="hljs-string">"_embedded"</span>: { <span class="hljs-string">"ex:type-nl"</span>: <span class="hljs-string">"kanaal"</span>, <span class="hljs-string">"ex:type-en"</span>: <span class="hljs-string">"canal"</span>, <span class="hljs-string">"ex:name"</span>: <span class="hljs-string">"Prinsengracht"</span>, <span class="hljs-string">"_links"</span>: { <span class="hljs-string">"self"</span>: { <span class="hljs-string">"href"</span> : <span class="hljs-string">"http://data.example.org/topo/ams/kanaal/Prinsengracht"</span> } } } } </span><span class="hljs-tag"></<span class="hljs-name">script</span>></span></code></pre> </aside> <p>The example above uses the <a href="https://stateless.co/hal_specification.html">Hypertext Application Language</a> (HAL) conventions for expressing hyperlinks in <a href="#dfn-javascript-object-notation" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-javascript-object-notation-8">JSON</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7159" title="The JavaScript Object Notation (JSON) Data Interchange Format">RFC7159</a></cite>]. It illustrates how one would indicate using <code>geosparql:crosses</code> that two linear <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-115">Spatial Things</a>, a bridge and a canal, cross over each other.</p> <div class="note" role="note" id="issue-container-generatedID-39"><div role="heading" class="note-title marker" id="h-note-34" aria-level="6"><span>Note</span></div><aside class=""> <p>The spatial predicates specified in [<cite><a class="bibref" data-link-type="biblio" href="#bib-geosparql" title="GeoSPARQL - A Geographic Query Language for RDF Data">GeoSPARQL</a></cite>] describe 2-dimensional topological relations. There is no evidence of common practice for describing 3-dimensional topological relationships.</p> </aside></div> <p>In addition to the mathematically precise spatial predicates described above, several vocabularies define similar relationships but without the formal mathematical underpinning. For example, [<cite><a class="bibref" data-link-type="biblio" href="#bib-schema-org" title="Schema.org">SCHEMA-ORG</a></cite>] defines a pair of basic containment relationships for use with <a href="https://schema.org/Place"><code>schema:Place</code></a>:</p> <ul> <li><a href="https://schema.org/containsPlace"><code>schema:containsPlace</code></a>: <em>The basic containment relation between a place and another that it contains.</em></li> <li><a href="https://schema.org/containedInPlace"><code>schema:containedInPlace</code></a>: <em>The basic containment relation between a place and one that contains it.</em></li> </ul> <p>It is also commonplace to use <a href="#dfn-spatial-relation" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-relation-4">spatial relationships</a> to convey distance (e.g. <em>at</em>, <em>nearby</em> or <em>far-away</em>) and direction (e.g. <em>left</em>, <em>inFrontOf</em>, <em>astern</em> and <em>below</em>). However, we find no evidence that points to use of common vocabularies to express these relationships — perhaps because these relationships are often subjective and dependent on application context (e.g. the meaning of “near” will be quite different between an endurance cycling App and the App I use to find the Bluetooth tag attached to my house keys!).</p> <p>Two notable examples of distance relations are:</p> <ul> <li><a href="http://xmlns.com/foaf/0.1/#term_based_near"><code>foaf:based_near</code></a> which states "<em>We do not say much about what 'near' means in this context; it is a 'rough and ready' concept.</em>"; and</li> <li><a href="http://www.geonames.org/ontology#nearby"><code>geonames:nearby</code></a> which simply states, "<em>A <a href="#dfn-feature" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-feature-9">feature</a> close to the reference <a href="#dfn-feature" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-feature-10">feature</a></em>".</li> </ul> <aside class="example" id="ex-linking-geonames-nearby"><div class="marker"> <a class="self-link" href="#ex-linking-geonames-nearby">Example<bdi> 44</bdi></a><span class="example-title">: Asserting distance spatial relationship using GeoNames ontology (GeoJSON [RFC7946] format)</span> </div> <pre aria-busy="false"><code class="hljs xml"><span class="hljs-tag"><<span class="hljs-name">script</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"application/geo+json"</span>></span><span class="javascript"> { <span class="hljs-string">"id"</span> : <span class="hljs-string">"http://sws.geonames.org/6618987/"</span>, <span class="hljs-string">"type"</span>: <span class="hljs-string">"Feature"</span>, <span class="hljs-string">"geometry"</span>: { <span class="hljs-string">"type"</span>: <span class="hljs-string">"Polygon"</span>, <span class="hljs-string">"coordinates"</span>: [ [ ... ] ] }, <span class="hljs-string">"properties"</span>: { <span class="hljs-string">"http://www.geonames.org/ontology#name"</span>: <span class="hljs-string">"Anne Frank's House"</span>, <span class="hljs-string">"http://www.geonames.org/ontology#nearby"</span> : [ <span class="hljs-string">"http://sws.geonames.org/6950949/"</span>, <span class="hljs-string">"http://sws.geonames.org/6951798/"</span>, <span class="hljs-string">"http://sws.geonames.org/6944503/"</span>, ... ] } } </span><span class="hljs-tag"></<span class="hljs-name">script</span>></span></code></pre> </aside> <p>This example snippet, adapted to use the GeoJSON [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7946" title="The GeoJSON Format">RFC7946</a></cite>] format, shows a list of <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-116">Spatial Things</a> (e.g. Westerkerk, Homomonument and Westertoren) that are deemed '<a href="http://sws.geonames.org/6618987/nearby.rdf">nearby</a>' Anne Frank's House according to <a href="https://www.geonames.org">GeoNames</a>.</p> <div class="note" role="note" id="issue-container-generatedID-40"><div role="heading" class="note-title marker" id="h-note-35" aria-level="6"><span>Note</span></div><aside class=""> <p>The <a href="#dfn-javascript-object-notation" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-javascript-object-notation-9">JSON</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7159" title="The JavaScript Object Notation (JSON) Data Interchange Format">RFC7159</a></cite>] format provides only simple primitive types; string, number, boolean etc. The lack of a datatype for URIs means that they must be encoded as strings. As such, conventions (such as those defined in <a href="https://stateless.co/hal_specification.html">HAL</a>) are required to tell applications that a given string value is a URI. However, GeoJSON [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7946" title="The GeoJSON Format">RFC7946</a></cite>] does not define any conventions for describing URIs and forbids any extension of the data format specification.</p> <p>To mitigate this, details about object types, etc. included in data payload should be provided in the documentation for the <abbr title="Application Programming Interface">API</abbr> or service end-point from which the data is accessed. See [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#documentYourAPI">Best Practice 25: Provide complete documentation for your <abbr title="Application Programming Interface">API</abbr></a> for further details.</p> </aside></div> </li> <li> <p>Synonyms and equality</p> <p>As described above, it is not uncommon for a <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-117">Spatial Thing</a> to be identified using more than one URI (also known as the "non-unique naming problem"). If you think that this is the case, the property <code>owl:sameAs</code> may be used to express this. However, caution is advised as <code>owl:sameAs</code> is an extremely strong statement; literally "these two URIs identify the same resource". As there is only <em>one</em> <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-118">Spatial Thing</a>, all the properties and attributes returned when resolving any of the equated URIs are considered to apply to that <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-119">Spatial Thing</a>. Given that spatial data is often published by different parties, each concerned with their own perspective, the <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-120">Spatial Thing</a> equality is often difficult to determine and depends heavily on the semantics involved.</p> <p>So, the advice is: if in doubt, don't use <code>owl:sameAs</code>.</p> <p>By way of example, let's explore some data for Edinburgh.</p> <p>The <em>City of Edinburgh Council Area</em> (e.g. the geographical area that Edinburgh City Council is responsible for) is identified by the <a href="https://www.ons.gov.uk">Office for National Statistics</a> (the recognized national statistical institute of the UK) using their GSS code (a 9 character alpha numeric identifier) <code>S12000036</code> and the URI <a href="https://statistics.data.gov.uk/id/statistical-geography/S12000036"><code>http://statistics.data.gov.uk/id/statistical-geography/S12000036</code></a>. At the same time, the devolved government in Scotland, operating under its own jurisdiction, retains the GSS code but uses the URI <a href="http://statistics.gov.scot/id/statistical-geography/S12000036"><code>http://statistics.gov.scot/id/statistical-geography/S12000036</code></a>. Furthermore, the <a href="https://www.ordnancesurvey.co.uk">Ordnance Survey</a> maintain yet another URI for the City of Edinburgh Council Area as part of its 'Boundary Line' service that contains administrative and statistical geography areas in the UK: <a href="https://www.ordnancesurvey.co.uk/products/linked-data"><code>http://data.ordnancesurvey.co.uk/id/7000000000030505</code></a>. Similarly, Geonames identifies Edinburgh, a <em>second-order administrative division</em>, as <a href="http://sws.geonames.org/2650225/"><code>http://sws.geonames.org/2650225/</code></a>. All of these URIs refer to the same <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-121">Spatial Thing</a> and are equated using <code>owl:sameAs</code>.</p> <aside class="example" id="ex-linking-equality-edinburgh"><div class="marker"> <a class="self-link" href="#ex-linking-equality-edinburgh">Example<bdi> 45</bdi></a><span class="example-title">: Asserting equality between URIs for the City of Edinburgh Council Area (TTL format)</span> </div> <pre aria-busy="false"><code class="hljs css"><span class="hljs-keyword">@prefix</span> <span class="hljs-attribute">owl</span>: <<span class="hljs-attribute">http</span>://www.w3.org/<span class="hljs-number">2002</span>/<span class="hljs-number">07</span>/owl#> . @prefix <span class="hljs-attribute">scotgov-stat</span>: <<span class="hljs-attribute">http</span>://statistics.gov.scot/id/statistical-geography/> . @prefix <span class="hljs-attribute">ukgov-stat</span>: <<span class="hljs-attribute">http</span>://statistics.data.gov.uk/id/statistical-geography/> . @prefix <span class="hljs-attribute">osuk</span>: <<span class="hljs-attribute">http</span>://data.ordnancesurvey.co.uk/id/> . @prefix <span class="hljs-attribute">geonames</span>: <<span class="hljs-attribute">http</span>://sws.geonames.org/> . <span class="hljs-attribute">scotgov-stat</span>:S12000036 <span class="hljs-attribute">owl</span>:sameAs <span class="hljs-attribute">ukgov-stat</span>:S12000036 . <span class="hljs-attribute">osuk</span>:<span class="hljs-number">7000000000030505</span> <span class="hljs-attribute">owl</span>:sameAs <span class="hljs-attribute">ukgov-stat</span>:S12000036 . <span class="hljs-attribute">geonames</span>:<span class="hljs-number">2650225</span> <span class="hljs-attribute">owl</span>:sameAs <span class="hljs-attribute">ukgov-stat</span>:S12000036 .</code></pre> </aside> <p>Also note that in this [<cite><a class="bibref" data-link-type="biblio" href="#bib-turtle" title="RDF 1.1 Turtle">TURTLE</a></cite>] snippet one could easily include additional properties to help users determine whether the <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-39">link</a> is worth traversing, such as providing human-readable labels and specifying the <em>type</em> designated by each data publisher.</p> <p>In contrast, the resource identified by <a href="https://www.ordnancesurvey.co.uk/products/linked-data"><code>http://data.os.uk/id/4000000074558316</code></a> defines the <em>named place</em> Edinburgh — a colloquial definition for the city itself. This is not the same as the <em>City of Edinburgh Area</em> and therefore use of the <code>owl:sameAs</code> relationship is inappropriate.</p> <div class="note" role="note" id="issue-container-generatedID-41"><div role="heading" class="note-title marker" id="h-note-36" aria-level="6"><span>Note</span></div><aside class=""> <p>The mechanics of determining whether the information provided when resolving two or more URIs does indeed describe the same <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-122">Spatial Thing</a> is a complex topic all in its own right and way beyond the scope of this best practice document. Tools such as <a href="https://openrefine.org">Open Refine</a> and the <a href="http://silkframework.org">Silk Linked Data Integration Framework</a> are designed to work with, transform and integrate heterogeneous data sources. Their documentation may provide further insight regarding these challenges.</p> </aside></div> <p>Given the very strong semantics of the <code>owl:sameAs</code> property, alternative properties with weaker semantics are commonly used. Examples include:</p> <ul> <li> <p><a href="https://schema.org/sameAs"><code>schema:sameAs</code></a> defined by [<cite><a class="bibref" data-link-type="biblio" href="#bib-schema-org" title="Schema.org">SCHEMA-ORG</a></cite>] whose description states:</p> <blockquote>URL of a reference Web page that unambiguously indicates the item's identity. E.g. the URL of the item's Wikipedia page, Freebase page, or official website.</blockquote> </li> <li> <p><a href="https://open.vocab.org/terms/similarTo"><code>ov:similarTo</code></a> defined by <a href="https://vocab.org/open/">Open.vocab.org</a>, with the description:</p> <blockquote>Having two things that are not the owl:sameAs but are similar to a certain extent. It is thought of being used where owl:sameAs is too strong but rdfs:seeAlso is too loose.</blockquote> </li> </ul> <p>All of the properties list above, are concerned with equality or similarity about resources themselves. However, we often want to talk about the similarity of Spatial Things in terms of location or <em>place</em>. Spatial relations (see <a href="#link-type-spatial-rels" class="sectionRef">above</a>) can be used to describe how locations are related — either using rigorous topological relationships derived from geometry, such as <a href="http://www.opengis.net/ont/geosparql#sfEquals"><code>geosparql:sfEquals</code></a>, or ones without formal mathematical underpinning, such as <a href="http://www.geonames.org/ontology#nearby"><code>geonames:nearby</code></a>. But <em>place</em> is a social concept that reflect how we humans perceive the space around us, often with a vague or imprecise notion of location; you can’t always define a boundary for a place like <a href="http://sws.geonames.org/2212709/">The Sahara</a> because not everyone agrees where its edge lies!</p> <p>Talking of places, the <em>City of Edinburgh [Administrative] Area</em> and <em>Edinburgh</em> the <em>named place</em> are strongly related; you might say that they are the <em>same place</em> if that makes sense for your application. This also provides an example where it is worthwhile to provide multiple relationships between Spatial Things: Ordnance Survey uses the <a href="https://www.ordnancesurvey.co.uk/linked-data/ontology/spatialrelations/spatialrelations.ttl"><code>within</code></a> <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-40">link</a> relation type to relate the <em>named place</em> <a href="https://data.ordnancesurvey.co.uk/id/4000000074558316">Edinburgh</a> and the <a href="https://www.ordnancesurvey.co.uk/products/linked-data">City of Edinburgh (osuk:7000000000030505)</a> administrative area. <a href="https://www.ordnancesurvey.co.uk/linked-data/ontology/spatialrelations/spatialrelations.ttl"><code>within</code></a> complements a qualitative <em>same-place-as</em> relation between two places.</p> <p>However, while we see people wanting to assert such qualitative <em>same-place-as</em> relationships based on human perception of place, there is no evidence of a best practice in how to achieve this; see <a href="#c-sameplaceas" class="sectionRef sec-ref"><bdi class="secno">15.6 </bdi>Defining that two places are the same</a> for more details about possible approaches that could be adopted.</p> </li> <li> <p>Domain-specific relationships involving <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-123">Spatial Things</a></p> <p>In addition to the <a href="#dfn-spatial-relation" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-relation-5">spatial relationships</a> that are applicable to a wide variety of domains, there are a huge number of cases where asserting a relationship between <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-124">Spatial Thing</a> is useful. Clearly, enumerating all these cases is more than we can do here — but we can look at some of those that commonly occur.</p> <p>First, there are the properties used to describe relationships between <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-125">Spatial Things</a> in a <em>gazetteer</em>. These properties are often used in combination with spatial predicates to describe the relationship between administrative units. For example, <a href="https://www.ordnancesurvey.co.uk">Ordnance Survey</a> define specific properties to describe the relationships between the administrative units used within the UK: <a href="https://www.ordnancesurvey.co.uk/linked-data/ontology/admingeo/admingeo.ttl"><code>county (admingeo:county)</code></a>, <a href="https://www.ordnancesurvey.co.uk/linked-data/ontology/admingeo/admingeo.ttl"><code>district (admingeo:district)</code></a>, <a href="https://www.ordnancesurvey.co.uk/linked-data/ontology/admingeo/admingeo.ttl"><code>ward (admingeo:ward)</code></a>, etc.</p> <aside class="example" id="ex-linking-gazetteer-edinburgh"><div class="marker"> <a class="self-link" href="#ex-linking-gazetteer-edinburgh">Example<bdi> 46</bdi></a><span class="example-title">: Asserting gazetteer relationships for the City of Edinburgh Council Area (TTL format)</span> </div> <pre aria-busy="false"><code class="hljs css"><span class="hljs-keyword">@prefix</span> <span class="hljs-attribute">rdfs</span>: <<span class="hljs-attribute">http</span>://www.w3.org/<span class="hljs-number">2000</span>/<span class="hljs-number">01</span>/rdf-schema#> . @prefix <span class="hljs-attribute">geosparql</span>: <<span class="hljs-attribute">http</span>://www.opengis.net/ont/geosparql#> . @prefix <span class="hljs-attribute">admingeo</span>: <<span class="hljs-attribute">http</span>://data.ordnancesurvey.co.uk/ontology/admingeo/> . <<span class="hljs-attribute">http</span>://data.ordnancesurvey.co.uk/id/<span class="hljs-number">7000000000030505</span>> a <span class="hljs-attribute">admingeo</span>:District ; rdfs:label <span class="hljs-string">"City of Edinburgh"</span> ; admingeo:gssCode <span class="hljs-string">"S12000036"</span> ; admingeo:ward <http://data.ordnancesurvey.co.uk/id/<span class="hljs-number">7000000000043412</span>> , <http://data.ordnancesurvey.co.uk/id/<span class="hljs-number">7000000000043415</span>> , <http://data.ordnancesurvey.co.uk/id/<span class="hljs-number">7000000000043411</span>> , ... ; geosparql:sfTouches <http://data.ordnancesurvey.co.uk/id/<span class="hljs-number">7000000000036552</span>> , <http://data.ordnancesurvey.co.uk/id/<span class="hljs-number">7000000000030509</span>> , <http://data.ordnancesurvey.co.uk/id/<span class="hljs-number">7000000000030634</span>> , <http://data.ordnancesurvey.co.uk/id/<span class="hljs-number">7000000000030632</span>> ; ... .</code></pre> </aside> <p>The example snippet above, provided in [<cite><a class="bibref" data-link-type="biblio" href="#bib-turtle" title="RDF 1.1 Turtle">TURTLE</a></cite>] format, shows the relationships between the <a href="https://www.ordnancesurvey.co.uk/products/linked-data">City of Edinburgh (osuk:7000000000030505)</a> <a href="https://www.ordnancesurvey.co.uk/linked-data/ontology/admingeo/admingeo.ttl">district (admingeo:district)</a> and the <a href="https://www.ordnancesurvey.co.uk/linked-data/ontology/admingeo/admingeo.ttl">electoral wards (admingeo:ward)</a> it contains. Also note that complementary use of <a href="http://www.opengis.net/ont/geosparql#sfTouches"><code>geosparql:sfTouches</code></a> to relate the <a href="https://www.ordnancesurvey.co.uk/products/linked-data">City of Edinburgh (osuk:7000000000030505)</a> to its adjacent districts; Midlothian, West Lothian etc.</p> <p>A second domain where relationships between <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-126">Spatial Things</a> and non-spatial resources occur is earth observing. The example below, provided in [<cite><a class="bibref" data-link-type="biblio" href="#bib-gml" title="Geography Markup Language (GML) Encoding Standard">GML</a></cite>], relates a monitoring point at Deddington on the Nile River, Tasmania, to the sensor that is deployed there (using the <code>sams:hostedProcedure</code> property) and relates that monitoring point to the waterbody whose properties are being measured (using the <code>sam:sampledFeature</code> property). Here, the <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-41">links</a> are defined using [<cite><a class="bibref" data-link-type="biblio" href="#bib-xlink11" title="XML Linking Language (XLink) Version 1.1">XLINK11</a></cite>].</p> <aside class="example" id="ex-linking-gml-monitoring-point"><div class="marker"> <a class="self-link" href="#ex-linking-gml-monitoring-point">Example<bdi> 47</bdi></a><span class="example-title">: Asserting spatial relationship for sensing/earth observation using [XLINK11] and [GML]</span> </div> <pre aria-busy="false"><code class="hljs xml"><span class="hljs-tag"><<span class="hljs-name">wml2:MonitoringPoint</span> <span class="hljs-attr">gml:id</span>=<span class="hljs-string">"xsd-monitoring-point.example"</span> <span class="hljs-attr">xmlns:wml2</span>=<span class="hljs-string">"http://www.opengis.net/waterml/2.0"</span> <span class="hljs-attr">xmlns:gml</span>=<span class="hljs-string">"http://www.opengis.net/gml/3.2"</span> <span class="hljs-attr">xmlns:sam</span>=<span class="hljs-string">"http://www.opengis.net/sampling/2.0"</span> <span class="hljs-attr">xmlns:sams</span>=<span class="hljs-string">"http://www.opengis.net/samplingSpatial/2.0"</span> <span class="hljs-attr">xmlns:xlink</span>=<span class="hljs-string">"http://www.w3.org/1999/xlink"</span>></span> <span class="hljs-tag"><<span class="hljs-name">gml:description</span>></span>Hydrological monitoring point for Nile river at Deddington, South Esk catchment, Tasmania<span class="hljs-tag"></<span class="hljs-name">gml:description</span>></span> <span class="hljs-tag"><<span class="hljs-name">gml:identifier</span> <span class="hljs-attr">codeSpace</span>=<span class="hljs-string">"http://www.example.com/"</span>></span> http://www.example.com/catchment/south-esk/mpoint/deddington <span class="hljs-tag"></<span class="hljs-name">gml:identifier</span>></span> <span class="hljs-tag"><<span class="hljs-name">sam:sampledFeature</span> <span class="hljs-attr">xlink:href</span>=<span class="hljs-string">"http://sws.geonames.org/2155327/"</span> <span class="hljs-attr">xlink:title</span>=<span class="hljs-string">"Nile river"</span>/></span> <span class="hljs-tag"><<span class="hljs-name">sams:shape</span>></span> <span class="hljs-tag"><<span class="hljs-name">gml:Point</span> <span class="hljs-attr">gml:id</span>=<span class="hljs-string">"location_deddington"</span>></span> <span class="hljs-tag"><<span class="hljs-name">gml:pos</span> <span class="hljs-attr">srsName</span>=<span class="hljs-string">"urn:ogc:def:crs:EPSG::4326"</span>></span> -41.814935 147.568517 <span class="hljs-tag"></<span class="hljs-name">gml:pos</span>></span> <span class="hljs-tag"></<span class="hljs-name">gml:Point</span>></span> <span class="hljs-tag"></<span class="hljs-name">sams:shape</span>></span> <span class="hljs-tag"><<span class="hljs-name">sams:hostedProcedure</span>></span> <span class="hljs-tag"><<span class="hljs-name">wml2:ObservationProcess</span> <span class="hljs-attr">gml:id</span>=<span class="hljs-string">"sensor:4c40fd3acdbf"</span>></span> <span class="hljs-tag"><<span class="hljs-name">wml2:processType</span> <span class="hljs-attr">xlink:href</span>=<span class="hljs-string">"http://www.opengis.net/def/waterml/2.0/processType/Sensor"</span> <span class="hljs-attr">xlink:title</span>=<span class="hljs-string">"Sensor"</span>/></span> <span class="hljs-tag"><<span class="hljs-name">wml2:processReference</span> <span class="hljs-attr">xlink:href</span>=<span class="hljs-string">"http://www.example.com/sensor/00d97bbc-77ca-4b3d-91ca-4c40fd3acdbf/conf/1489405706"</span> <span class="hljs-attr">xlink:title</span>=<span class="hljs-string">"Sensor configuration (updated:2017-03-13)"</span>/></span> <span class="hljs-tag"></<span class="hljs-name">wml2:ObservationProcess</span>></span> <span class="hljs-tag"></<span class="hljs-name">sams:hostedProcedure</span>></span> ... <span class="hljs-tag"></<span class="hljs-name">wml2:MonitoringPoint</span>></span></code></pre> </aside> <p>For further information about sensors, sampling, observations and measurements, please refer to [<cite><a class="bibref" data-link-type="biblio" href="#bib-om-xml" title="Observations and Measurements - XML Implementation">OM-XML</a></cite>] and [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-ssn" title="Semantic Sensor Network Ontology">VOCAB-SSN</a></cite>].</p> <div class="note" role="note" id="issue-container-generatedID-42"><div role="heading" class="note-title marker" id="h-note-37" aria-level="6"><span>Note</span></div><aside class=""> <p>[<cite><a class="bibref" data-link-type="biblio" href="#bib-gml" title="Geography Markup Language (GML) Encoding Standard">GML</a></cite>] adopted the [<cite><a class="bibref" data-link-type="biblio" href="#bib-xlink11" title="XML Linking Language (XLink) Version 1.1">XLINK11</a></cite>] standard to represent <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-42">links</a> between resources. At the time of adoption, XLink was the only <abbr title="World Wide Web Consortium">W3C</abbr>-endorsed standard mechanism for describing links between resources within <a href="#dfn-extensible-markup-language" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-extensible-markup-language-7">XML</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-xml11" title="Extensible Markup Language (XML) 1.1 (Second Edition)">XML11</a></cite>] documents. The <a href="https://www.ogc.org/">Open Geospatial Consortium</a> anticipated broad adoption of XLink over time — and, with that adoption, provision of support within software tooling. While XML Schema, XPath, XSLT and XQuery etc. have seen good software support over the years, this never happened with XLink. The authors of [<cite><a class="bibref" data-link-type="biblio" href="#bib-gml" title="Geography Markup Language (GML) Encoding Standard">GML</a></cite>] note that given the lack of widespread support, use of XLink within [<cite><a class="bibref" data-link-type="biblio" href="#bib-gml" title="Geography Markup Language (GML) Encoding Standard">GML</a></cite>] provided no significant advantage over and above use a bespoke mechanism tailored to the needs of [<cite><a class="bibref" data-link-type="biblio" href="#bib-gml" title="Geography Markup Language (GML) Encoding Standard">GML</a></cite>].</p> </aside></div> <p>Our final example of a domain-specific relationship concerns creative works. For example, one may want to indicate the location a social media message was sent from. In the example below, we assume that Maurits, a tourist in Amsterdam, wants to comment on his visit to Anne Frank's House. His social media App uses the [<cite><a class="bibref" data-link-type="biblio" href="#bib-geolocation-api" title="Geolocation API Specification 2nd Edition">GEOLOCATION-API</a></cite>] to determine his location (<code>Lat=52.37590</code> and <code>Long=4.88452</code>) and suggests several places that Maurits might choose from in order to geo-tag his message. Maurits wants people to know roughly where he is, so he chooses "Amsterdam-Centrum" and presses 'send'. The App encodes the message in [<cite><a class="bibref" data-link-type="biblio" href="#bib-schema-org" title="Schema.org">SCHEMA-ORG</a></cite>] and pushes the message to the server for distribution. The geo-information is provided using the <a href="https://schema.org/locationCreated"><code>schema:locationCreated</code></a> property.</p> <aside class="example" id="ex-linking-schema-locationCreated"><div class="marker"> <a class="self-link" href="#ex-linking-schema-locationCreated">Example<bdi> 48</bdi></a><span class="example-title">: Asserting location that a creative work was created using [SCHEMA-ORG] ([JSON-LD] format)</span> </div> <pre aria-busy="false"><code class="hljs xml"><span class="hljs-tag"><<span class="hljs-name">script</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"application/ld+json"</span>></span><span class="javascript"> { <span class="hljs-string">"@context"</span> : { <span class="hljs-string">"@vocab"</span> : <span class="hljs-string">"http://schema.org/"</span> }, <span class="hljs-string">"@id"</span> : <span class="hljs-string">"http://app.example.com/message/867a52e3-6687-4471-b1f2-c7561673552e"</span>, <span class="hljs-string">"@type"</span> : <span class="hljs-string">"Message"</span>, <span class="hljs-string">"sender"</span> : { <span class="hljs-string">"@type"</span> : <span class="hljs-string">"Person"</span>, <span class="hljs-string">"name"</span> : <span class="hljs-string">"Maurits"</span> }, <span class="hljs-string">"datePublished"</span> : <span class="hljs-string">"2017-03-12"</span>, <span class="hljs-string">"locationCreated"</span> : { <span class="hljs-string">"@id"</span> : <span class="hljs-string">"https://g.co/kg/m/0gh6_3j"</span> <span class="hljs-string">"@type"</span> : <span class="hljs-string">"Place"</span>, <span class="hljs-string">"name"</span> : <span class="hljs-string">"Amsterdam-Centrum"</span> } } </span><span class="hljs-tag"></<span class="hljs-name">script</span>></span></code></pre> </aside> <p>If Maurits had wanted to indicate that the subject of the photograph he took moments later was Leliesluis bridge, then the following [<cite><a class="bibref" data-link-type="biblio" href="#bib-schema-org" title="Schema.org">SCHEMA-ORG</a></cite>] markup and <a href="https://schema.org/mainEntity"><code>schema:mainEntity</code></a> property could be used:</p> <aside class="example" id="ex-linking-schema-mainEntity"><div class="marker"> <a class="self-link" href="#ex-linking-schema-mainEntity">Example<bdi> 49</bdi></a><span class="example-title">: Asserting the subject of a creative work using [SCHEMA-ORG] ([JSON-LD] format)</span> </div> <pre aria-busy="false"><code class="hljs xml"><span class="hljs-tag"><<span class="hljs-name">script</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"application/ld+json"</span>></span><span class="javascript"> { <span class="hljs-string">"@context"</span> : { <span class="hljs-string">"@vocab"</span> : <span class="hljs-string">"http://schema.org/"</span> }, <span class="hljs-string">"@id"</span> : <span class="hljs-string">"http://app.example.com/user/Maurits/photo/e35f1132-461e-4acb-8a76-a5d622a85958"</span>, <span class="hljs-string">"@type"</span> : <span class="hljs-string">"Photograph"</span>, <span class="hljs-string">"sender"</span> : { <span class="hljs-string">"@type"</span> : <span class="hljs-string">"Person"</span>, <span class="hljs-string">"name"</span> : <span class="hljs-string">"Maurits"</span> }, <span class="hljs-string">"datePublished"</span> : <span class="hljs-string">"2017-03-12"</span>, <span class="hljs-string">"mainEntity"</span> : { <span class="hljs-string">"@id"</span> : <span class="hljs-string">"http://data.example.org/topo/ams/brug/Leliesluis"</span> <span class="hljs-string">"@type"</span> : <span class="hljs-string">"Bridge"</span>, <span class="hljs-string">"name"</span> : <span class="hljs-string">"Leliesluis bridge"</span>, <span class="hljs-string">"geo"</span> : { <span class="hljs-string">"@type"</span> : <span class="hljs-string">"GeoCoordinates"</span>, <span class="hljs-string">"longitude"</span> : <span class="hljs-string">"4.88435"</span>, <span class="hljs-string">"latitude"</span> : <span class="hljs-string">"52.37608"</span> } } } </span><span class="hljs-tag"></<span class="hljs-name">script</span>></span></code></pre> </aside> </li> </ol> </section> <section class="test"> <div class="header-wrapper"><h5 class="subhead" id="how-to-test-8">How to Test</h5><a class="self-link" href="#how-to-test-8" aria-label="Permalink for this Section"></a></div> <p>Check that hyperlinks use typed relationships, and that <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-43">link</a> relation type can be located in order to determine how to interpret the hyperlink.</p> <p>Check that the source and target of the hyperlink are <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-127">Spatial Things</a> unless the <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-44">link</a> relation type definition indicates that this should be otherwise (e.g. when relating a Spatial Thing to its <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-96">geometry</a>).</p> </section> <section class="ucr"> <div class="header-wrapper"><h5 class="subhead" id="evidence-8">Evidence</h5><a class="self-link" href="#evidence-8" aria-label="Permalink for this Section"></a></div> <p><span>Relevant requirements</span>: <a href="https://www.w3.org/TR/sdw-ucr/#Linkability">R-Linkability</a>, <a href="https://www.w3.org/TR/sdw-ucr/#MachineToMachine">R-MachineToMachine</a>, <a href="https://www.w3.org/TR/sdw-ucr/#SpatialRelationships">R-SpatialRelationships</a>, <a href="https://www.w3.org/TR/sdw-ucr/#SpatialOperators">R-SpatialOperators</a>.</p> </section> <section class="benefits"> <div class="header-wrapper"><h5 class="subhead" id="benefits-8">Benefits</h5><a class="self-link" href="#benefits-8" aria-label="Permalink for this Section"></a></div> <ul class="benefitsList"> <li class="hidden">Comprehension</li> <li class="hidden">Processability</li> <li class="hidden">Linkability</li> <li class="hidden">Interoperability</li> <li class="icon"><img src="images/comprehension.svg" alt="Comprehension" class="benefitIcon comprehensionIcon"></li><li class="icon"><img src="images/processability.svg" alt="Processability" class="benefitIcon processabilityIcon"></li><li class="icon"><img src="images/linkability.svg" alt="Linkability" class="benefitIcon linkabilityIcon"></li><li class="icon"><img src="images/interoperability.svg" alt="Interoperability" class="benefitIcon interoperabilityIcon"></li></ul> </section> </div> </section> <section id="bp-dataversioning"><div class="header-wrapper"><h4 id="x13-2-5-spatial-data-versioning"><bdi class="secno">13.2.5 </bdi>Spatial data versioning</h4><a class="self-link" href="#bp-dataversioning" aria-label="Permalink for Section 13.2.5"></a></div> <p><a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-128">Spatial things</a> and their attributes can change over time. For example, a lake may grow or shrink due to changes in climate, water extraction or any number of reasons. For many applications, it is important that information about <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-129">Spatial Things</a> is kept up to date. When new information is available, the data publisher may make this available on the Web according to their update schedule and policies. [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#dataVersioning">section 8.6 Data Versioning</a> and <a href="https://www.w3.org/TR/dwbp/#AccessUptoDate">Best Practice 21: Provide data up to date</a> provide directly applicable guidance.</p> <p>When dealing with change to a <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-130">Spatial Thing</a>, you should consider its lifecycle; in particular, how much change is acceptable before a Spatial Thing can no longer be considered as the same resource. Consider Eddystone Lighthouse for example: the “Eddystone Light”, a maritime navigation aid, has existed in (more or less) the same place on Eddystone Rocks since 1698. A single HTTP URI (such as <a href="https://dbpedia.org/page/Eddystone_Lighthouse"><code>http://dbpedia.org/resource/Eddystone_Lighthouse</code></a>) is used to identify “the lighthouse on Eddystone rocks” for all that period. The lighthouse's attributes (such as its focal height, visible range and light characteristic) have changed over that period, but we still consider it to be the same lighthouse. However, if our interest is historic buildings, we would identify the four different structures that have stood on that site as different Spatial Things, from Winstanley's Eddystone Lighthouse (the first incarnation) to Douglass' Eddystone Lighthouse (the 4th and current incarnation). In that context, incremental change for these structures during the entire period from 1698 is not appropriate; one structure replaces another and so each structure should be assigned a unique identifier. In summary, different things are important to different people!</p> <p>All that said, if you consider that the change affects the fundamental nature of the <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-131">Spatial Thing</a>, then you should assign a new identifier. See <a href="#bp-identifiers" class="sectionRef sec-ref"><bdi class="secno">13.1.1 </bdi>Spatial data identifiers</a> for more details. Otherwise, read on for guidance on how to describe properties that change over time.</p> </section> <div class="practicecontainer"> <div class="practice advisement"><a class="marker self-link" href="#desc-changing-properties"><bdi lang="en">Best Practice 11</bdi></a>: <span id="desc-changing-properties" class="practicelab">Provide information on the changing nature of spatial things</span> <p></p> <p class="practicedesc">Spatial data should include metadata that allows a user to determine when it is valid for.</p> </div> <section class="axioms"> <div class="header-wrapper"><h4 class="subhead" id="why-9">Why</h4><a class="self-link" href="#why-9" aria-label="Permalink for this Section"></a></div> <p><a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-132">Spatial things</a> and their attributes change over time. When it comes to <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-133">Spatial Things</a>, or <em>any</em> resource, that changes over time, it is important to provide metadata about the life cycle of those entities and the resources used to describe them. Given that information, data consumers can make considered choices about which resource they want to link to. Mostly, they are interested in current information. They need to be able to determine whether the published description of a Spatial Thing meets their needs. For example, is the published geographic <a href="#dfn-extent" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-extent-10">extent</a> of the City of Amsterdam relevant for a land-usage study of the nineteenth century? (<a href="http://www.gemeentegeschiedenis.nl">Gemeentegeschiedenis.nl</a>, "Municipality History", illustrates how the extent of Amsterdam has changed during the past 200-years, in <a href="http://www.gemeentegeschiedenis.nl/gemeentenaam/Amsterdam">HTML</a> and <a href="http://www.gemeentegeschiedenis.nl/gemeentenaam/json/Amsterdam">GeoJSON</a>). Where the information is available, a user may want to browse older versions of the published information to understand the nature of any changes or to find historical information.</p> </section> <section class="outcome"> <div class="header-wrapper"><h4 class="subhead" id="intended-outcome-9">Intended Outcome</h4><a class="self-link" href="#intended-outcome-9" aria-label="Permalink for this Section"></a></div> <p>Users are provided with the most recent version of information about a <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-134">Spatial Thing</a> and its attributes by default.</p> <p>Users can determine the time period for which data is applicable.</p> <p>If a version history of changes is available, users can browse through a set of changes to see how a <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-135">Spatial Thing</a> and its attributes have changed over time.</p> </section> <section class="how"> <div class="header-wrapper"><h4 class="subhead" id="possible-approach-to-implementation-9">Possible Approach to Implementation</h4><a class="self-link" href="#possible-approach-to-implementation-9" aria-label="Permalink for this Section"></a></div> <p>When publishing information about a <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-136">Spatial Thing</a> that is subject to change there are four approaches to consider in response to a change:</p> <ol> <li>simply updating the description of the Spatial Thing;</li> <li>republish the entire dataset with a new URI;</li> <li>providing a series of immutable snapshots that describe the Spatial Thing at various points in its lifecycle; and</li> <li>capturing a time-series of data values within an attribute of the Spatial Thing.</li> </ol> <p>Whichever approach is chosen, publishers of <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-92">spatial data</a> should consider how dataset metadata plays an important part in helping users determine whether a dataset is fit for their use. Particularly where the contents of a dataset change with time, statements about the (most recent) publication date, the frequency of update and the time-period for which the dataset is relevant (i.e. temporal extent) should be provided. Please refer to [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#DescriptiveMetadata">section 8.2 Metadata</a> for more details about dataset metadata.</p> <p>A description of the lifecycle of the <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-137">Spatial Things</a> (e.g. what triggers a change and whether those changes are versioned etc.) should also be provided in either the dataset's metadata, schema or specification. For example, the European Commission's <a href="https://eur-lex.europa.eu/eli/reg/2010/1089/oj">INSPIRE Regulation on interoperability of spatial data sets</a> states that data publishers should provide lifecycle information; the technical guidance for most themes recommends how the data publisher's specific rules should be published.</p> <p>Approach (1) is lightweight and should only be used where there are no user requirements that require access to older descriptions of the <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-138">Spatial Things</a>. Data publishers simply replace the old description of the Spatial Thing with the amended description and keep users informed about updates by providing the appropriate metadata (e.g. when the data was changed). This may be achieved using dataset metadata (as outlined above) or by including the metadata attributes in the description of each Spatial Thing.</p> <p>Where users are anticipated to need to understand <em>how</em> a <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-139">Spatial Thing</a> has changed over time, approaches (2), (3) and (4) should be considered.</p> <p>Approach (2) is a simple variant of approach (1); the difference being that the entire dataset is assigned a new URI when changes are made, thereby enabling older versions of the dataset to be addressed separately. See [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#VersionIdentifiers">Best Practice 11: Assign URIs to dataset versions and series</a> for further details. Using this approach, a user should be able to compare two versions of the dataset to determine what has changed. Although simple for data publishers, the downside of this approach is that the effort is passed on to the users.</p> <p>Approach (3) requires the data publisher to publish immutable resources that describe the <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-140">Spatial Thing</a> at specific points in time (i.e. "snapshots") and provide a mechanism for users to browse between those snapshots. Effectively, the dataset becomes an accumulation of these snapshots that users can browse through. However, given that each snapshot of the Spatial Thing is published as a separate resource, this approach is suited to infrequent changes so that the number of snapshots does not become unwieldy.</p> <p>The URI for the <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-141">Spatial Thing</a>, the <em>base</em> URI, should dereference to provide the current information and a <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-45">link</a> to its version history of snapshots. [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#VersionHistory">Best Practice 8: Provide version history</a> describes how a version history may be implemented. Each snapshot resource within the version history must be uniquely identified; a common approach is to append a date/time stamp to the base URI as a version indicator. [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#VersioningInfo">Best Practice 7: Provide a version indicator</a> provides relevant guidance.</p> <aside class="example" id="ex-municp-history"><div class="marker"> <a class="self-link" href="#ex-municp-history">Example<bdi> 50</bdi></a><span class="example-title">: Changing boundary of Amsterdam</span> </div> <p>The <a href="#dfn-extent" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-extent-11">extent</a> of the City of Amsterdam has changed during the last 200 years. This example, based on <a href="http://www.gemeentegeschiedenis.nl">Gemeentegeschiedenis.nl</a> ("Municipality history") (condensed and changed to reflect the recommendations in this best practice), shows how the version history of Amsterdam's boundary can be provided as a series of immutable snapshots in GeoJSON [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7946" title="The GeoJSON Format">RFC7946</a></cite>]. </p> <p>The current information on Amsterdam including the current boundary: </p> <pre aria-busy="false"><code class="hljs json">{ <span class="hljs-attr">"uri"</span>: <span class="hljs-string">"http://www.gemeentegeschiedenis.nl/gemeentenaam/Amsterdam"</span>, <span class="hljs-attr">"name"</span>: <span class="hljs-string">"Amsterdam"</span>, <span class="hljs-attr">"inProvince"</span>: <span class="hljs-string">"Noord-Holland"</span>, <span class="hljs-attr">"cbscode"</span>: <span class="hljs-string">"0363"</span>, <span class="hljs-attr">"absorbed"</span>: <span class="hljs-string">"http://www.gemeentegeschiedenis.nl/gemeentenaam/Weesperkarspel"</span>, <span class="hljs-attr">"2016"</span>: { <span class="hljs-attr">"type"</span>: <span class="hljs-string">"FeatureCollection"</span>, <span class="hljs-attr">"features"</span>: [{ <span class="hljs-attr">"type"</span>: <span class="hljs-string">"Feature"</span>, <span class="hljs-attr">"versionedUri"</span>: <span class="hljs-string">"http://www.gemeentegeschiedenis.nl/gemeentenaam/Amsterdam/2016"</span>, <span class="hljs-attr">"replaces"</span>: <span class="hljs-string">"http://www.gemeentegeschiedenis.nl/gemeentenaam/Amsterdam/2014"</span>, <span class="hljs-attr">"year"</span>: <span class="hljs-string">"2016"</span>, <span class="hljs-attr">"geometry"</span>: { <span class="hljs-attr">"type"</span>: <span class="hljs-string">"MultiPolygon"</span>, <span class="hljs-attr">"coordinates"</span>: [...], }}]}}</code></pre> <p>The previous boundary of Amsterdam: </p> <pre aria-busy="false"><code class="hljs json">{ <span class="hljs-attr">"2014"</span>: { <span class="hljs-attr">"type"</span>: <span class="hljs-string">"FeatureCollection"</span>, <span class="hljs-attr">"features"</span>: [{ <span class="hljs-attr">"type"</span>: <span class="hljs-string">"Feature"</span>, <span class="hljs-attr">"versionedUri"</span>: <span class="hljs-string">"http://www.gemeentegeschiedenis.nl/gemeentenaam/Amsterdam/2014"</span>, <span class="hljs-attr">"replacedBy"</span>: <span class="hljs-string">"http://www.gemeentegeschiedenis.nl/gemeentenaam/Amsterdam/2016"</span>, <span class="hljs-attr">"replaces"</span>: <span class="hljs-string">"http://www.gemeentegeschiedenis.nl/gemeentenaam/Amsterdam/2013"</span>, <span class="hljs-attr">"year"</span>: <span class="hljs-string">"2014"</span>, <span class="hljs-attr">"geometry"</span>: { <span class="hljs-attr">"type"</span>: <span class="hljs-string">"MultiPolygon"</span>, <span class="hljs-attr">"coordinates"</span>: [...], }]}}</code></pre> </aside> <p>Approach (4) is suitable where a <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-142">Spatial Thing</a> has a small number of attributes that are frequently updated. For example, the GPS position of a runner or when streaming data from a sensor, such as the water level from a stream gauge.</p> <p>With this approach, the description of the <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-143">Spatial Thing</a> must include a property that contains a sequentially-ordered set of data points, each of which defines a time-stamp and the values for the time-varying attribute(s). By definition, this property can be considered as a time-series <a href="#dfn-coverage" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-coverage-10">coverage</a>. Standard data encodings are available for time-series data, including: [<cite><a class="bibref" data-link-type="biblio" href="#bib-timeseriesml" title="TimeseriesML 1.0 – XML Encoding of the Timeseries Profile of Observations and Measurements">TIMESERIESML</a></cite>] for [<cite><a class="bibref" data-link-type="biblio" href="#bib-gml" title="Geography Markup Language (GML) Encoding Standard">GML</a></cite>], plus [<cite><a class="bibref" data-link-type="biblio" href="#bib-covjson-overview" title="Overview of the CoverageJSON format">COVJSON-OVERVIEW</a></cite>] and the <a href="#dfn-sensorthings" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-sensorthings-1">SensorThings</a> <abbr title="Application Programming Interface">API</abbr> [<cite><a class="bibref" data-link-type="biblio" href="#bib-sensorthings" title="OGC ® SensorThings API Part 1: Sensing">SENSORTHINGS</a></cite>] for <a href="#dfn-javascript-object-notation" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-javascript-object-notation-10">JSON</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7159" title="The JavaScript Object Notation (JSON) Data Interchange Format">RFC7159</a></cite>]. [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-data-cube" title="The RDF Data Cube Vocabulary">VOCAB-DATA-CUBE</a></cite>] provides a generic mechanism to express well-structured data, such as time series, in <a href="#dfn-resource-description-framework" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-resource-description-framework-17">RDF</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-rdf11-primer" title="RDF 1.1 Primer">RDF11-PRIMER</a></cite>]. Although not yet widely used enough to be considered <em>best practices</em>, [<cite><a class="bibref" data-link-type="biblio" href="#bib-eo-qb" title="Publishing and Using Earth Observation Data with the RDF Data Cube and the Discrete Global Grid System">EO-QB</a></cite>] and [<cite><a class="bibref" data-link-type="biblio" href="#bib-qb4st" title="QB4ST: RDF Data Cube extensions for spatio-temporal components">QB4ST</a></cite>] (developed alongside this best practice Note within the <a href="https://www.ogc.org/about-ogc/committees/swg/">Spatial Data on the Web Working Group</a>) illustrate how [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-data-cube" title="The RDF Data Cube Vocabulary">VOCAB-DATA-CUBE</a></cite>] may be used in this way.</p> <div class="note" role="note" id="issue-container-generatedID-43"><div role="heading" class="note-title marker" id="h-note-38" aria-level="5"><span>Note</span></div><aside class=""> <p>The <abbr title="Open Geospatial Consortium">OGC</abbr> [<cite><a class="bibref" data-link-type="biblio" href="#bib-moving-features-xml" title="OGC ® Moving Features Encoding Part I: XML Core">MOVING-FEATURES-XML</a></cite>] and [<cite><a class="bibref" data-link-type="biblio" href="#bib-moving-features-csv" title="OGC ® Moving Features Encoding Extension: Simple Comma Separated Values (CSV)">MOVING-FEATURES-CSV</a></cite>] specifications follow the pattern described above. A <code>trajectory</code> element is used to describe the position of a <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-144">Spatial Thing</a>, and varying attributes (such as orientation or rotation) can be added alongside the tuples in the trajectory. However, there is limited evidence of adoption outside of Japan.</p> </aside></div> <aside class="example" id="ex-alpine-runner"><div class="marker"> <a class="self-link" href="#ex-alpine-runner">Example<bdi> 51</bdi></a><span class="example-title">: Changing position of a runner traversing the Alps</span> </div> <p>This example shows a snippet of a file storing the changing GPS position of <a class="respec-offending-element" title="No matching definition found." id="respec-offender-no-matching-definition-found-2">a runner traversing the Alps</a>. The format is <abbr title="GPS eXchange Format">GPX</abbr>, a common format for exchanging a series of GPS positions. For each track point, the coordinates as well as a timestamp are stored.</p> <pre aria-busy="false"><code class="hljs xml"><span class="hljs-tag"><<span class="hljs-name">gpx</span> <span class="hljs-attr">version</span>=<span class="hljs-string">"1.1"</span>></span> <span class="hljs-tag"><<span class="hljs-name">trk</span>></span> <span class="hljs-tag"><<span class="hljs-name">name</span>></span>Move<span class="hljs-tag"></<span class="hljs-name">name</span>></span> <span class="hljs-tag"><<span class="hljs-name">trkseg</span>></span> <span class="hljs-tag"><<span class="hljs-name">trkpt</span> <span class="hljs-attr">lat</span>=<span class="hljs-string">"47.24239"</span> <span class="hljs-attr">lon</span>=<span class="hljs-string">"10.749514"</span>></span> <span class="hljs-tag"><<span class="hljs-name">ele</span>></span>784<span class="hljs-tag"></<span class="hljs-name">ele</span>></span> <span class="hljs-tag"><<span class="hljs-name">time</span>></span>2016-09-06T06:01:25.009Z<span class="hljs-tag"></<span class="hljs-name">time</span>></span> <span class="hljs-tag"></<span class="hljs-name">trkpt</span>></span> <span class="hljs-tag"><<span class="hljs-name">trkpt</span> <span class="hljs-attr">lat</span>=<span class="hljs-string">"47.242403"</span> <span class="hljs-attr">lon</span>=<span class="hljs-string">"10.749489"</span>></span> <span class="hljs-tag"><<span class="hljs-name">ele</span>></span>784<span class="hljs-tag"></<span class="hljs-name">ele</span>></span> <span class="hljs-tag"><<span class="hljs-name">time</span>></span>2016-09-06T06:01:26.009Z<span class="hljs-tag"></<span class="hljs-name">time</span>></span> <span class="hljs-tag"></<span class="hljs-name">trkpt</span>></span> [...] <span class="hljs-tag"><<span class="hljs-name">trkpt</span> <span class="hljs-attr">lat</span>=<span class="hljs-string">"46.968127"</span> <span class="hljs-attr">lon</span>=<span class="hljs-string">"10.870573"</span>></span> <span class="hljs-tag"><<span class="hljs-name">ele</span>></span>1677<span class="hljs-tag"></<span class="hljs-name">ele</span>></span> <span class="hljs-tag"><<span class="hljs-name">time</span>></span>2016-09-06T17:41:50.009Z<span class="hljs-tag"></<span class="hljs-name">time</span>></span> <span class="hljs-tag"></<span class="hljs-name">trkpt</span>></span> <span class="hljs-tag"></<span class="hljs-name">trkseg</span>></span> <span class="hljs-tag"></<span class="hljs-name">trk</span>></span> <span class="hljs-tag"></<span class="hljs-name">gpx</span>></span></code></pre> </aside> </section> <section class="test"> <div class="header-wrapper"><h4 class="subhead" id="how-to-test-9">How to Test</h4><a class="self-link" href="#how-to-test-9" aria-label="Permalink for this Section"></a></div> <p>Information about a given <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-145">Spatial Thing</a>, or set of Spatial Things, will be relevant for a particular time or time-period. Check that this information is stated.</p> <p>Check that dataset metadata provides details about how often the dataset is updated; e.g. date of the most recent publication, and frequency of update.</p> <p>If a version history of changes is available, check that <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-46">links</a> to previous versions are available.</p> <p>If the Spatial Thing contains an attribute that varies with time, check that those attribute values are provided as a time-series.</p> </section> <section class="ucr"> <div class="header-wrapper"><h4 class="subhead" id="evidence-9">Evidence</h4><a class="self-link" href="#evidence-9" aria-label="Permalink for this Section"></a></div> <p><span>Relevant requirements</span>: <a href="https://www.w3.org/TR/sdw-ucr/#MachineToMachine">R-MachineToMachine</a>, <a href="https://www.w3.org/TR/sdw-ucr/#MovingFeatures">R-MovingFeatures</a>, <a href="https://www.w3.org/TR/sdw-ucr/#Streamable">R-Streamable</a>, <a href="https://www.w3.org/TR/sdw-ucr/#CoverageTemporalExtent">R-CoverageTemporalExtent</a> </p> </section> <section class="benefits"> <div class="header-wrapper"><h4 class="subhead" id="benefits-9">Benefits</h4><a class="self-link" href="#benefits-9" aria-label="Permalink for this Section"></a></div> <ul class="benefitsList"> <li class="hidden">Comprehension</li> <li class="hidden">Trust</li> <li class="hidden">Access</li> <li class="icon"><img src="images/comprehension.svg" alt="Comprehension" class="benefitIcon comprehensionIcon"></li><li class="icon"><img src="images/trust.svg" alt="Trust" class="benefitIcon trustIcon"></li><li class="icon"><img src="images/access.svg" alt="Access" class="benefitIcon accessIcon"></li></ul> </section> </div> </section> <section id="bp-validation"><div class="header-wrapper"><h3 id="x13-3-spatial-data-validation"><bdi class="secno">13.3 </bdi>Spatial data validation</h3><a class="self-link" href="#bp-validation" aria-label="Permalink for Section 13.3"></a></div> <p>Spatial data, especially spatial data hosted in spatial data infrastructures, are usually expected to conform to specific schema definitions. Schema definitions may be open standards and are often based on open standards, for example [<cite><a class="bibref" data-link-type="biblio" href="#bib-gml" title="Geography Markup Language (GML) Encoding Standard">GML</a></cite>]. Schema definitions help to verify the conformity of the spatial data set to the semantic and syntactic requirements. They specify how the general standard such as [<cite><a class="bibref" data-link-type="biblio" href="#bib-gml" title="Geography Markup Language (GML) Encoding Standard">GML</a></cite>] is used in specific application contexts. They are sometimes called "application schemas" or "application profiles". Where the schemas are documented as XML Schemas, JSON Schemas, or in other formal languages, these "executable test suites" can be used to check the consistency and conformity of your data.</p> <div class="practicecontainer"> <div class="practice advisement"><a class="marker self-link" href="#validation"><bdi lang="en">Best Practice 12</bdi></a>: <span id="validation" class="practicelab">Expose spatial data validation schemas online</span> <p></p> <p class="practicedesc">If you publish spatial data which conforms to a specific data schema, that schema should be published online using unique persistent HTTP URIs and referenced in your dataset.</p> </div> <section class="axioms"> <div class="header-wrapper"><h4 class="subhead" id="why-10">Why</h4><a class="self-link" href="#why-10" aria-label="Permalink for this Section"></a></div> <p>Spatial objects and feature collections published on the web should be verifiable with respect to the intentions of the original data publishers. Data schemas provide the means to validate data types used in a given dataset, to check constraints of values used in the dataset and to check the dataset's logical consistency.</p> <p>Spatial data which validate in a given schema expression can be considered of higher quality, as they conform to the requirements which were originally set out by the data publishers.</p> </section> <section class="outcome"> <div class="header-wrapper"><h4 class="subhead" id="intended-outcome-10">Intended Outcome</h4><a class="self-link" href="#intended-outcome-10" aria-label="Permalink for this Section"></a></div> <p>Spatial data should reference data schemas which describe how spatial data can be validated. In this way, data validation using a machine becomes possible and the consistency of datasets related to the same specification can be assured.</p> </section> <section class="how"> <div class="header-wrapper"><h4 class="subhead" id="possible-approach-to-implementation-10">Possible Approach to Implementation</h4><a class="self-link" href="#possible-approach-to-implementation-10" aria-label="Permalink for this Section"></a></div> <p>[<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#identifiersWithinDatasets">Best Practice 10: Use persistent URIs as identifiers within datasets</a> provides directly applicable guidance when identifying resources. It advises:</p> <ol> <li>Seek and reuse existing URIs, ensuring that the URIs are persistent and they are published by a trusted group or organization; or</li> <li>Create your own persistent URIs.</li> </ol> <p>This best practice can be directly applied to hosting data schemas at trusted organizations or simply along with the published datasets. Data schemas need to be hosted under a unique and persistent URI and data need to reference the data schema appropriately in their respective data structures. XML-based data may reference to XML schemas, JSON-based data may reference JSON-schemas. Linked open data might be verified using constraints in OWL or SHACL.</p> </section> <section class="test"> <div class="header-wrapper"><h4 class="subhead" id="how-to-test-10">How to Test</h4><a class="self-link" href="#how-to-test-10" aria-label="Permalink for this Section"></a></div> <p>Check that within an applicable geospatial data set, there is a reference to a data schema and that this reference is dereferenceable.</p> </section> <section class="ucr"> <div class="header-wrapper"><h4 class="subhead" id="evidence-10">Evidence</h4><a class="self-link" href="#evidence-10" aria-label="Permalink for this Section"></a></div> <p><span>Relevant requirements</span>: <a href="https://www.w3.org/TR/sdw-ucr/#Validation">R-Validation</a> </p> </section> <section class="benefits"> <div class="header-wrapper"><h4 class="subhead" id="benefits-10">Benefits</h4><a class="self-link" href="#benefits-10" aria-label="Permalink for this Section"></a></div> <ul class="benefitsList"> <li class="hidden">Processability</li> <li class="hidden">Reuse</li> <li class="hidden">Trust</li> <li class="icon"><img src="images/processability.svg" alt="Processability" class="benefitIcon processabilityIcon"></li><li class="icon"><img src="images/reuse.svg" alt="Reuse" class="benefitIcon reuseIcon"></li><li class="icon"><img src="images/trust.svg" alt="Trust" class="benefitIcon trustIcon"></li></ul> </section> </div> </section> <section id="bp-exposing-via-api"><div class="header-wrapper"><h3 id="x13-4-spatial-data-access"><bdi class="secno">13.4 </bdi>Spatial data access</h3><a class="self-link" href="#bp-exposing-via-api" aria-label="Permalink for Section 13.4"></a></div> <p>In recent years, we have seen the widespread emergence of Web applications that use <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-93">spatial data</a>. Often these applications do not access all the spatial data they use via the Web. While there are good reasons for this, e.g. licensing restrictions, it is often the case, too, that the spatial data is not available via the Web at all, or in ways that application developers find too complex to use, or with insufficient or unclear quality-of-service commitments.</p> <p>[<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] provides best practices discussing access to data using Web infrastructure (see [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#dataAccess">section 8.10 Data Access</a>). This section provides additional insight for publishers of <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-94">spatial data</a>. </p> <div class="note" role="note" id="issue-container-generatedID-44"><div role="heading" class="note-title marker" id="h-note-39" aria-level="4"><span>Note</span></div><aside class=""> <p>This section is about <abbr title="Application Programming Interfaces">APIs</abbr> for access to <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-95">spatial data</a>. This includes access to metadata that is shared with the dataset. Access to metadata that is published separately in catalogs is covered in <a href="#spatial-info-dataset-metadata" class="practiceRef">Best Practice 15: Include spatial metadata in dataset metadata</a>. </p> </aside></div> <p>Making data available on the Web requires data publishers to provide some form of access to the data. There are numerous mechanisms available, each providing varying levels of utility and incurring differing levels of effort and cost to implement and maintain. Publishers of spatial data should make their data available on the Web using affordable mechanisms to ensure long-term, sustainable access to their data.</p> <p>When determining the mechanism to be used to provide Web access to data, publishers need to assess utility against cost. In order of increasing usefulness and cost:</p> <ol> <li>Bulk-download or streaming of the entire or pre-defined subsets of a dataset</li> <li>Generalized spatial data access <abbr title="Application Programming Interface">API</abbr></li> <li>Bespoke <abbr title="Application Programming Interface">API</abbr> designed to support a particular type of use</li> </ol> <p>Let's take a closer look at these options.</p> <p>The download of a dataset — or a pre-defined subset of it — via a single HTTP request is mainly covered by these [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] best practices:</p> <ul> <li>[<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#BulkAccess">Best Practice 17: Provide bulk download</a>,</li> <li>[<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#ProvideSubsets">Best Practice 18: Provide Subsets for Large Datasets</a>, and</li> <li>[<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#Conneg">Best Practice 19: Use content negotiation for serving data available in multiple formats</a>.</li> </ul> <p>Providing bulk download or streaming access to data is useful in any case and is relatively inexpensive to support as it relies on the standard capabilities of Web servers for datasets that may be published as downloadable files stored on a server. However, this option is more complex for frequently changing datasets or real-time data.</p> <p>[<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#ProvideSubsets">Best Practice 18: Provide Subsets for Large Datasets</a> explains why providing subsets is important and how this could be implemented. Spatial datasets, particularly <a href="#dfn-coverage" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-coverage-11">coverages</a> such as satellite imagery, sensor measurement time series and climate prediction data are often very large. In these cases, it is useful to provide subsets by having identifiers for conveniently sized subsets of large datasets that Web applications can work with.</p> <p>Effectively, breaking up a large <a href="#dfn-coverage" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-coverage-12">coverage</a> into pre-defined lumps that you can access via HTTP GET requests is a <em>very simple</em> <abbr title="Application Programming Interface">API</abbr>.</p> <p>When a subset is provided, this should include information about the relationship to the complete dataset. In HTML, this could be descriptive text or it is implicitly clear for humans in the way the subset is presented. In [<cite><a class="bibref" data-link-type="biblio" href="#bib-schema-org" title="Schema.org">SCHEMA-ORG</a></cite>] it could be <a href="https://schema.org/isPartOf">schema:isPartOf</a> property. In <a href="#dfn-resource-description-framework" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-resource-description-framework-18">RDF</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-rdf11-primer" title="RDF 1.1 Primer">RDF11-PRIMER</a></cite>], <a href="https://www.w3.org/TR/prov-o/">PROV-O</a> could be used to describe the relationship between the subset and the complete dataset as well as the mechanism used to derive the subset. In ISO 19115 metadata, the LI_Lineage element may be used for a similar purpose. Etc.</p> <p>The use of <abbr title="Application Programming Interfaces">APIs</abbr> to access data is covered in [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] by the following best practices:</p> <ul> <li>[<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#useanAPI">Best Practice 23: Make data available through an <abbr title="Application Programming Interface">API</abbr></a>,</li> <li>[<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#APIHttpVerbs">Best Practice 24: Use Web Standards as the foundation of <abbr title="Application Programming Interfaces">APIs</abbr></a>,</li> <li>[<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#documentYourAPI">Best Practice 25: Provide complete documentation for your <abbr title="Application Programming Interface">API</abbr></a>, and</li> <li>[<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#avoidBreakingChangesAPI">Best Practice 26: Avoid Breaking Changes to Your <abbr title="Application Programming Interface">API</abbr></a></li> </ul> <p>For <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-96">spatial data</a>, <a href="#dfn-sdi" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-sdi-16">SDIs</a> have long been used to provide generalized access to spatial data via Web services, typically using open standard specifications from the <a href="https://www.ogc.org/">Open Geospatial Consortium</a> (<abbr title="Open Geospatial Consortium">OGC</abbr>). In traditional SDIs, these web services, such as <a href="#dfn-wfs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-wfs-1">Web Feature Service</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-wfs" title="Web Feature Service 2.0 Interface Standard">WFS</a></cite>], were XML based and difficult for non-expert users. These <abbr title="Open Geospatial Consortium">OGC</abbr> standards have not seen widespread adoption beyond the geospatial expert community. This has changed with the release of a number of resource-oriented <abbr title="Open Geospatial Consortium">OGC</abbr> <abbr title="Application Programming Interfaces">APIs</abbr> (e.g. <abbr title="Open Geospatial Consortium">OGC</abbr> <abbr title="Application Programming Interface">API</abbr> - Features [<cite><a class="bibref" data-link-type="biblio" href="#bib-oaf1" title="OGC API - Features - Part 1: Core">OAF1</a></cite>]), which are aligned to generally accepted patterns and practices in the web community, and specifically to the recommendations described in this Best Practice document. </p> <p>In addition, commercial offerings for publishing <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-97">spatial data</a> on the Web often provide access via product-specific <abbr title="Application Programming Interfaces">APIs</abbr>, too. These <abbr title="Application Programming Interfaces">APIs</abbr> are typically not restricted to HTTP-based Web service <abbr title="Application Programming Interfaces">APIs</abbr> in the sense of [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#APIHttpVerbs">Best Practice 24: Use Web Standards as the foundation of <abbr title="Application Programming Interfaces">APIs</abbr></a>, but include <abbr title="Application Programming Interfaces">APIs</abbr> targeted at a specific programming language, for example, JavaScript.</p> <p>In the list of options above, the third option - Bespoke <abbr title="Application Programming Interface">API</abbr> - is included because sharing <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-98">spatial data</a> on the Web using the first two options (bulk download or generalized <abbr title="Application Programming Interfaces">APIs</abbr>) may not be sufficient for reaching application developers. Reasons for this include:</p> <ul> <li>Generalized spatial data access <abbr title="Application Programming Interfaces">APIs</abbr>, like the <abbr title="Open Geospatial Consortium">OGC</abbr> standards, typically and intentionally cover a wide range of usages, including requirements of users that are geospatial experts, and they support a broad range of <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-146">Spatial Thing</a>s. While they are documented comprehensively, they are often not easy to understand and the "Time to First Successful Call" (see [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#documentYourAPI">Best Practice 25: Provide complete documentation for your <abbr title="Application Programming Interface">API</abbr></a>) may be too high for application developers. A typical convenience <abbr title="Application Programming Interface">API</abbr> is a simple <abbr title="Application Programming Interface">API</abbr> that implements frequently asked for, but complex requirements and hides the complexity, e.g. <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-69">coordinate reference system</a> handling, from the application developer.</li> <li>Spatial data as it is used by expert users may be complex. As users need to understand how the data is structured to work effectively with that data, this burdens the data user with significant effort before they can even perform simple queries on data they have downloaded or access through a generalized data access <abbr title="Application Programming Interface">API</abbr>.</li> <li>Spatial datasets tend to be large, often too large for direct use in Web applications.</li> </ul> <p>Sharing <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-99">spatial data</a> on the Web using a spatial data <abbr title="Application Programming Interface">API</abbr> based on modern <abbr title="Open Geospatial Consortium">OGC</abbr> <abbr title="Application Programming Interface">API</abbr> standards, which are based on Spatial Data on the Web Best Practices, is often sufficient for reaching application developers. It provides convenience to developers of the targeted applications, because the <abbr title="Application Programming Interface">API</abbr> designer has thought about the needs of those developers when consuming the <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-100">spatial data</a> shared via the <abbr title="Application Programming Interface">API</abbr>.</p> <div class="practicecontainer"> <div class="practice advisement"><a class="marker self-link" href="#convenience-apis"><bdi lang="en">Best Practice 13</bdi></a>: <span id="convenience-apis" class="practicelab">Expose spatial data through 'convenience <abbr title="Application Programming Interfaces">APIs</abbr>'</span> <p></p> <p class="practicedesc">If you have a specific type of application in mind for your data, tailor a spatial data access <abbr title="Application Programming Interface">API</abbr> to meet that goal.</p> </div> <div class="issue" id="issue-container-number-1243"><div role="heading" class="issue-title marker" id="h-issue-2" aria-level="4"><a href="https://github.com/w3c/sdw/issues/1243"><span class="issue-number">Issue 1243</span></a><span class="issue-label">: Defining "convenience API" <a class="respec-gh-label" style="background-color: rgb(132, 182, 235); color: rgb(0, 0, 0);" href="https://github.com/w3c/sdw/issues/?q=is%3Aissue+is%3Aopen+label%3A%22enhancement%22" aria-label="GitHub label: enhancement">enhancement</a><a class="respec-gh-label" style="background-color: rgb(251, 202, 4); color: rgb(0, 0, 0);" href="https://github.com/w3c/sdw/issues/?q=is%3Aissue+is%3Aopen+label%3A%22bp%22" aria-label="GitHub label: bp">bp</a></span></div><p dir="auto">The OGC Architecture Board has been trying to define the term "convenience API". I pointed them to the description in <a href="https://www.w3.org/TR/sdw-bp/#convenience-apis" rel="nofollow">https://www.w3.org/TR/sdw-bp/#convenience-apis</a>. This could be the basis of their definition, but it seemed from the discussion I had with them that they were looking for a somewhat less narrow definition.</p> <p dir="auto">I re-read the BP myself and think that the descriptions under <strong>Why</strong> and <strong>Intended outcome</strong> provide good input for a definition.</p> <p dir="auto">Some key quotes from the BP:</p> <blockquote> <p dir="auto">tailored to meet a specific goal; enabling a user to engage with complex data structures using (a set of) simple queries</p> </blockquote> <blockquote> <p dir="auto">provides a coherent set of queries and operations, including spatial ones, that help users get working with the data quickly to achieve common tasks. The API provides both machine readable data and human readable HTML markup. The human-readable markup will also support search engine's Web crawlers to enable indexing of spatial data.</p> </blockquote> <p dir="auto">... And there's more under <strong>Possible approach for implementation</strong>, although these are perhaps too specific for a definition - they are more like suggestions on how to make a spatial data API convenient:</p> <blockquote> <p dir="auto">well documented and easy to understand, both in terms of the options to access / filter the data and of the data structures that are returned</p> </blockquote> <blockquote> <p dir="auto">Return data in chunks fit for use in Web applications and as useful sets of information.</p> </blockquote> <blockquote> <p dir="auto">simplifying the geometries</p> </blockquote> <blockquote> <p dir="auto">overly small pieces of data are inconvenient to use</p> </blockquote> <blockquote> <p dir="auto">Support queries for Spatial Things based on user needs</p> </blockquote> <p dir="auto">Do we still think all these are aspects of (spatial) convenience APIs? Is there more?</p></div> <section class="axioms"> <div class="header-wrapper"><h4 class="subhead" id="why-11">Why</h4><a class="self-link" href="#why-11" aria-label="Permalink for this Section"></a></div> <p>Providing access to <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-101">spatial data</a> via bulk download would be too complex for application developers with relatively simple requirements, if the spatial data is complex to understand or too large to handle in a Web application. Providing access via traditional SDIs is not recommended because they are often not easy to understand and the "Time to First Successful Call" (see [DWBP] <a href="https://www.w3.org/TR/dwbp/#documentYourAPI">Best Practice 25: Provide complete documentation for your <abbr title="Application Programming Interface">API</abbr></a>) may be too high for application developers. <strong>Convenience <abbr title="Application Programming Interfaces">APIs</abbr></strong> are tailored to meet a specific goal; enabling a user to engage with complex data structures using (a set of) simple queries, including spatial search.</p> </section> <section class="outcome"> <div class="header-wrapper"><h4 class="subhead" id="intended-outcome-11">Intended Outcome</h4><a class="self-link" href="#intended-outcome-11" aria-label="Permalink for this Section"></a></div> <p>The <abbr title="Application Programming Interface">API</abbr> provides a coherent set of queries and operations, including spatial ones, that help users get working with the data quickly to achieve common tasks. The <abbr title="Application Programming Interface">API</abbr> provides both machine-readable data and human-readable HTML markup. The human-readable markup will also support search engine's Web crawlers to enable indexing of <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-102">spatial data</a>.</p> </section> <section class="how"> <div class="header-wrapper"><h4 class="subhead" id="possible-approach-to-implementation-11">Possible Approach to Implementation</h4><a class="self-link" href="#possible-approach-to-implementation-11" aria-label="Permalink for this Section"></a></div> <p>The <abbr title="Application Programming Interface">API</abbr> should:</p> <ul> <li>Offer <em>both</em> machine readable data and human readable HTML that includes the structured metadata required by search engines seeking to index content (see <a href="#indexable-by-search-engines" class="sectionRef">Best Practice 4: Make your entity-level data indexable by search engines</a> for details);</li> <li>Follow the architectural guidance of the [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#APIHttpVerbs">Best Practice 24: Use Web Standards as the foundation of <abbr title="Application Programming Interfaces">APIs</abbr></a> and [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#Conneg">Best Practice 19: Use content negotiation for serving data available in multiple formats</a>;</li> <li>Be well documented and easy to understand, both in terms of the options to access / filter the data and of the data structures that are returned (see [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#documentYourAPI">Best Practice 25: Provide complete documentation for your <abbr title="Application Programming Interface">API</abbr></a>);</li> <li>Return data in chunks fit for use in Web applications and as useful sets of information.<br> For large datasets, this is related to [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#ProvideSubsets">Best Practice 18: Provide Subsets for Large Datasets</a>; this may be achieved, for example, by filtering options that return appropriately sized subsets of the specific dataset or by supporting paging (returning larger subsets in pages with forward/backward <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-47">links</a>). For paging, some patterns have been established, see for example <a href="https://www.w3.org/TR/ldp-paging/"><abbr title="World Wide Web Consortium">W3C</abbr> Linked Data Platform Paging</a> or <a href="https://www.w3.org/community/hydra/wiki/Pagination">Hydra pagination</a>.</li> <li>For <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-97">geometries</a> with many coordinates, simplifying the geometries for display at large map scales — think about all administrative boundaries of Europe on a map display with scale 1:30,000,000 — is another option; the simplification may be controlled by the client using a query parameter indicating the target scale; <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-98">geometry</a> simplification including its caveats are discussed in <a href="#describe-geometry" class="practiceRef">Best Practice 5: Provide geometries on the Web in a usable way</a>.</li> <li>At the other end of the spectrum, overly small pieces of data are inconvenient to use, too. Data should be packaged in lumps that are convenient to work with. An approach where very small, fine-grained units of information are published that require further HTTP requests to get the related information sufficient to determine context is not useful;</li> <li>Support queries for <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-147">Spatial Things</a> based on user needs. For <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-103">spatial data</a>, typical needs that should be considered are neighborhood searches (e.g., "what is near me?" or "what is near this Spatial Thing?") and searching for things located in a specific area (e.g., an area shown as a map in an application). Users will often look for a particular <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-148">Spatial Thing</a> without knowing its identifier, too, in which case a fault-tolerant, free-text search on the name, label or other property may be useful.</li> </ul> <p>The bulk of these recommendations can be satisfied by using <a href="https://ogcapi.ogc.org"><abbr title="Open Geospatial Consortium">OGC</abbr> <abbr title="Application Programming Interface">API</abbr></a> building blocks. For example, if it is convenient for users to be able to search for spatial data using a bounding box, the <abbr title="Open Geospatial Consortium">OGC</abbr> <abbr title="Application Programming Interface">API</abbr> Features <a href="https://github.com/opengeospatial/bblocks/blob/master/registereditems/geo/common/schemas/json-bbox.yaml">Bounding Box</a> building block can be incorporated into the <abbr title="Application Programming Interface">API</abbr>.</p> <aside class="example" id="ex-elda"><div class="marker"> <a class="self-link" href="#ex-elda">Example<bdi> 52</bdi></a> </div> <p>The <a href="http://environment.data.gov.uk/bwq/">Environment Agency Bathing Water Quality <abbr title="Application Programming Interface">API</abbr></a> is implemented using the Epimorphic's <a href="http://epimorphics.github.io/elda/current/index.html">ELDA implementation</a> of the <a href="https://github.com/UKGovLD/linked-data-api/blob/wiki/Specification.md">Linked Data <abbr title="Application Programming Interface">API</abbr></a> and enables configured queries against (general) <a href="#dfn-sparql" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-sparql-2">SPARQL</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-sparql11-overview" title="SPARQL 1.1 Overview">SPARQL11-OVERVIEW</a></cite>] endpoints to be exposed as RESTful Web services.</p> </aside> <aside class="example" id="ex-opensearch"><div class="marker"> <a class="self-link" href="#ex-opensearch">Example<bdi> 53</bdi></a> </div> <p>Use of <a href="https://www.opensearch.org/">OpenSearch</a> to find <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-149">Spatial Things</a>. For spatial or temporal searches use the <a href="https://www.ogc.org/standard/opensearch/"><abbr title="Open Geospatial Consortium">OGC</abbr> Geo and Temporal extensions</a>.</p> </aside> <aside class="example" id="ex-data-ordnancesurvey"><div class="marker"> <a class="self-link" href="#ex-data-ordnancesurvey">Example<bdi> 54</bdi></a> </div> <p>The <abbr title="Application Programming Interfaces">APIs</abbr> of <a href="https://www.ordnancesurvey.co.uk/products/linked-data">data.ordnancesurvey.co.uk</a> support both textual and spatial searches.</p> </aside> <p>In a White Paper about open geospatial <abbr title="Application Programming Interfaces">APIs</abbr> [<cite><a class="bibref" data-link-type="biblio" href="#bib-ogc-api-wp" title="Open Geospatial APIs - White Paper">OGC-API-WP</a></cite>], the Open Geospatial Consortium (<abbr title="Open Geospatial Consortium">OGC</abbr>) has defined the concept of the "<abbr title="Open Geospatial Consortium">OGC</abbr> <abbr title="Application Programming Interface">API</abbr> Essentials" — a set of items defined in <abbr title="Open Geospatial Consortium">OGC</abbr> standards and other open standards that are reusable modules for use in geospatial <abbr title="Application Programming Interfaces">APIs</abbr>. The White Paper provides <a href="https://docs.ogc.org/wp/16-019r4/16-019r4.html#_ogc_api_essentials_initial_list">an initial list</a> and many of the identified standards are mentioned in this document. Reuse of standardized building blocks improves consistency and interoperability across <abbr title="Application Programming Interfaces">APIs</abbr>. It is recommended to consider the <abbr title="Open Geospatial Consortium">OGC</abbr> <abbr title="Application Programming Interface">API</abbr> Essentials, and consult the <a href="https://blocks.ogc.org/register.html"><abbr title="Open Geospatial Consortium">OGC</abbr> <abbr title="Application Programming Interface">API</abbr> Building Blocks Register</a> when defining an <abbr title="Application Programming Interface">API</abbr> to access <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-104">spatial data</a>.</p> <p>One such essential is a set of well-known spatial predicates for use in queries to select <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-150">Spatial Things</a> based on their <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-99">geometry</a>. Most commonly supported is the following set: <em>equal</em>, <em>disjoint</em>, <em>touches</em>, <em>within</em>, <em>overlaps</em>, <em>crosses</em>, <em>intersects</em>, <em>contains</em>. These predicates were originally defined in [<cite><a class="bibref" data-link-type="biblio" href="#bib-simple-features" title="Simple Feature Access - Part 1: Common Architecture">SIMPLE-FEATURES</a></cite>], but are also supported by [<cite><a class="bibref" data-link-type="biblio" href="#bib-geosparql" title="GeoSPARQL - A Geographic Query Language for RDF Data">GeoSPARQL</a></cite>] and others. For more information about the definition of the predicates, see [<cite><a class="bibref" data-link-type="biblio" href="#bib-simple-features" title="Simple Feature Access - Part 1: Common Architecture">SIMPLE-FEATURES</a></cite>].</p> <p>If the data is already published in a traditional <a href="#dfn-sdi" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-sdi-17">Spatial Data Infrastructure</a>, it is possible to put <abbr title="Open Geospatial Consortium">OGC</abbr> <abbr title="Application Programming Interface">API</abbr> facades on top of WxS as a transitional approach. However, for an <abbr title="Open Geospatial Consortium">OGC</abbr> Web <abbr title="Application Programming Interface">API</abbr> in production, it is recommended to directly access the data source, typically some database.</p> </section> <section class="test"> <div class="header-wrapper"><h4 class="subhead" id="how-to-test-11">How to Test</h4><a class="self-link" href="#how-to-test-11" aria-label="Permalink for this Section"></a></div> <p>See the "How to test" sections in [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#useanAPI">Best Practice 23: Make data available through an <abbr title="Application Programming Interface">API</abbr></a>, [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#APIHttpVerbs">Best Practice 24: Use Web Standards as the foundation of <abbr title="Application Programming Interfaces">APIs</abbr></a> and [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#documentYourAPI">Best Practice 25: Provide complete documentation for your <abbr title="Application Programming Interface">API</abbr></a>.</p> </section> <section class="ucr"> <div class="header-wrapper"><h4 class="subhead" id="evidence-11">Evidence</h4><a class="self-link" href="#evidence-11" aria-label="Permalink for this Section"></a></div> <p><span>Relevant requirements</span>: <a href="https://www.w3.org/TR/sdw-ucr/#Compatibility">R-Compatibility</a>, <a href="https://www.w3.org/TR/sdw-ucr/#LightweightAPI">R-LightweightAPI</a>, <a href="https://www.w3.org/TR/sdw-ucr/#SpatialOperators">R-SpatialOperators</a>, <a href="https://www.w3.org/TR/sdw-ucr/#ReferenceDataChunks">R-ReferenceDataChunks</a>.</p> </section> <section class="benefits"> <div class="header-wrapper"><h4 class="subhead" id="benefits-11">Benefits</h4><a class="self-link" href="#benefits-11" aria-label="Permalink for this Section"></a></div> <ul class="benefitsList"> <li class="hidden">Access</li> <li class="hidden">Reuse</li> <li class="hidden">Interoperability</li> <li class="icon"><img src="images/access.svg" alt="Access" class="benefitIcon accessIcon"></li><li class="icon"><img src="images/reuse.svg" alt="Reuse" class="benefitIcon reuseIcon"></li><li class="icon"><img src="images/interoperability.svg" alt="Interoperability" class="benefitIcon interoperabilityIcon"></li></ul> </section> </div> <div class="practicecontainer"> <div class="practice advisement"><a class="marker self-link" href="#request-return-crs"><bdi lang="en">Best Practice 14</bdi></a>: <span id="request-return-crs" class="practicelab"> Support requesting and returning geometries in a specific CRS </span> <p></p> <p class="practicedesc"> If you expose spatial data in various <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-70">CRS</a>s via an <abbr title="Application Programming Interface">API</abbr> or other data access endpoint, offer a way for users to find out which CRSs are available, to do requests, and to access geometries in the CRS of their choice. </p> </div> <section class="axioms"> <div class="header-wrapper"><h4 class="subhead" id="why-12">Why</h4><a class="self-link" href="#why-12" aria-label="Permalink for this Section"></a></div> <p> It is often useful to make <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-100">geometries</a> available in different <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-71">CRS</a>s. <a href="#bp-crs-choice" class="sectionRef">Best Practice 7: Choose coordinate reference systems to suit your user's applications</a> describes why this is a good idea as well as how to decide which CRSs to provide. <a href="#bp-crs" class="sectionRef">Best Practice 8: State how coordinate values are encoded</a> explains how the CRS of geometries should be made known. It follows that the default CRS that is offered should be WGS-84; and further that users should be able to find out which other CRSs are available and access geometries in the CRS of their choice. </p> </section> <section class="outcome"> <div class="header-wrapper"><h4 class="subhead" id="intended-outcome-12">Intended Outcome</h4><a class="self-link" href="#intended-outcome-12" aria-label="Permalink for this Section"></a></div> <p> The endpoint allows the discovery of the supported <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-72">CRS</a>s and provides the ability to access geometries in the CRS of the user's choice. </p> </section> <section class="how"> <div class="header-wrapper"><h4 class="subhead" id="possible-approach-to-implementation-12">Possible Approach to Implementation</h4><a class="self-link" href="#possible-approach-to-implementation-12" aria-label="Permalink for this Section"></a></div> <p>It is generally recommended to limit the number of supported <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-73">CRS</a>s in a data dissemination endpoint for clarity. Only support <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-74">CRS</a>s that make sense for the data. If a <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-75">CRS</a> doesn't cover the data, do not support it.</p> <p>Offering geospatial data in different <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-76">CRS</a> in practice means the data needs to be transformed from the orinigal CRS to other supported CRSs. Database software and libraries for most programming languages are available which can do this. Reprojection can be done in advance and stored, or calculated at the time of a request. If reprojecting on request, since geographic data can be large and complex, it is recommended to cache the converted data to eliminate the need of reprojecting the same data more than once.</p> <p>For Web <abbr title="Application Programming Interfaces">APIs</abbr>, CRS support should be offered in conformance to the <abbr title="Open Geospatial Consortium">OGC</abbr> <abbr title="Application Programming Interface">API</abbr> building blocks related to CRS [<cite><a class="bibref" data-link-type="biblio" href="#bib-oaf2" title="OGC API - Features - Part 2: Coordinate Reference Systems by Reference">OAF2</a></cite>]. These building blocks can be supported in any Web <abbr title="Application Programming Interface">API</abbr>: </p> <ul> <li>Users can discover the supported CRS by going to the collection object of a spatial thing. The collection contains a <code>crs</code> property which contains the identifiers for the list of CRSs supported by the server for that collection.</li> <li>Users can request spatial things by sending a bounding box using coordinates in the <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-77">CRS</a> of their choice. The <abbr title="Application Programming Interface">API</abbr> supports a <code>bbox-crs</code> parameter in order to do this.</li> <li>Users can request that spatial things are returned in the <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-78">CRS</a> of their choice. The <abbr title="Application Programming Interface">API</abbr> supports a <code>crs</code> parameter to this end. If the <code>crs</code> parameter is absent, spatial features are returned in the default <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-79">CRS</a>, which is WGS-84 (that is, http://www.opengis.net/def/crs/<abbr title="Open Geospatial Consortium">OGC</abbr>/1.3/CRS84 for coordinates without ellipsoidal height and http://www.opengis.net/def/crs/<abbr title="Open Geospatial Consortium">OGC</abbr>/0/CRS84h for coordinates with ellipsoidal height).</li> <li>Not every geometry representation format supports different <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-80">CRS</a>s. If the user requests a content format that doesn't, the spatial things should not be returned in that format with coordinates in the requested CRS. Note that GeoJSON normatively supports WGS 84, but the "prior arrangement" provision allows other coordinate systems to be used. An explicit request by a client with a query parameter crs establishes a prior arrangement.</li> </ul> <aside class="example" id="example-oaf-collections"><div class="marker"> <a class="self-link" href="#example-oaf-collections">Example<bdi> 55</bdi></a><span class="example-title">: Example of OGC API - Features Collections endpoint</span> </div> Response body of an <abbr title="Open Geospatial Consortium">OGC</abbr> <abbr title="Application Programming Interface">API</abbr> - Features [<cite><a class="bibref" data-link-type="biblio" href="#bib-oaf1" title="OGC API - Features - Part 1: Core">OAF1</a></cite>] /Collections endpoint with support for 5 coordinate reference systems: <pre aria-busy="false"><code class="hljs json">{ <span class="hljs-attr">"links"</span>: [ { <span class="hljs-attr">"href"</span>: <span class="hljs-string">"/collections"</span>, <span class="hljs-attr">"rel"</span>: <span class="hljs-string">"self"</span>, <span class="hljs-attr">"type"</span>: <span class="hljs-string">"application/json"</span>, <span class="hljs-attr">"title"</span>: <span class="hljs-string">"this document"</span> } ], <span class="hljs-attr">"crs"</span>: [ <span class="hljs-string">"http://www.opengis.net/def/crs/OGC/1.3/CRS84"</span>, <span class="hljs-string">"http://www.opengis.net/def/crs/EPSG/0/4326"</span>, <span class="hljs-string">"http://www.opengis.net/def/crs/EPSG/0/28992"</span>, <span class="hljs-string">"http://www.opengis.net/def/crs/EPSG/0/3857"</span>, <span class="hljs-string">"http://www.opengis.net/def/crs/EPSG/0/4258"</span> ], <span class="hljs-attr">"collections"</span>: [ { <span class="hljs-attr">"id"</span>: <span class="hljs-string">"Inspire_RCE rce_inspire_points"</span>, <span class="hljs-attr">"title"</span>: <span class="hljs-string">"Inspire_RCE rce_inspire_points"</span>, <span class="hljs-attr">"description"</span>: <span class="hljs-string">""</span>, <span class="hljs-attr">"extent"</span>: { <span class="hljs-attr">"spatial"</span>: { <span class="hljs-attr">"bbox"</span>: [ [ <span class="hljs-number">13854</span>, <span class="hljs-number">306993.058008078</span>, <span class="hljs-number">277502.058333333</span>, <span class="hljs-number">617910</span> ] ], <span class="hljs-attr">"crs"</span>: <span class="hljs-string">"http://www.opengis.net/def/crs/EPSG/0/28992"</span> } }, <span class="hljs-attr">"itemType"</span>: <span class="hljs-string">"feature"</span>, <span class="hljs-attr">"links"</span>: [ { <span class="hljs-attr">"href"</span>: <span class="hljs-string">"/collections/Inspire_RCE rce_inspire_points/items"</span>, <span class="hljs-attr">"rel"</span>: <span class="hljs-string">"items"</span>, <span class="hljs-attr">"type"</span>: <span class="hljs-string">"application/geo+json"</span>, <span class="hljs-attr">"title"</span>: <span class="hljs-string">"Inspire_RCE rce_inspire_points: items"</span> } ], <span class="hljs-attr">"crs"</span>: [ <span class="hljs-string">"#/crs"</span> ] } ] }</code></pre> </aside> <aside class="example" id="example-oaf-request-crs"><div class="marker"> <a class="self-link" href="#example-oaf-request-crs">Example<bdi> 56</bdi></a><span class="example-title">: Example of an OGC API - Features CRS request and response</span> </div> An example request and response for a specific spatial thing in a specific CRS: <pre aria-busy="false"><code class="hljs javascript"> curl -X <span class="hljs-string">'GET'</span> \ <span class="hljs-string">'https://geoservice-ogc-api.azurewebsites.net/collections/Inspire_RCE%20rce_inspire_points/items/1?crs=http%3A%2F%2Fwww.opengis.net%2Fdef%2Fcrs%2FEPSG%2F0%2F4326'</span> \ -H <span class="hljs-string">'accept: application/json'</span> Request URL <span class="hljs-attr">https</span>:<span class="hljs-comment">//geoservice-ogc-api.azurewebsites.net/collections/Inspire_RCE%20rce_inspire_points/items/1?crs=http%3A%2F%2Fwww.opengis.net%2Fdef%2Fcrs%2FEPSG%2F0%2F4326</span> Response body { <span class="hljs-string">"links"</span>: [ { <span class="hljs-string">"href"</span>: <span class="hljs-string">"collections/Inspire_RCE rce_inspire_points/items/1"</span>, <span class="hljs-string">"rel"</span>: <span class="hljs-string">"self"</span>, <span class="hljs-string">"type"</span>: <span class="hljs-string">"application/json"</span>, <span class="hljs-string">"title"</span>: <span class="hljs-string">"this document"</span> }, { <span class="hljs-string">"href"</span>: <span class="hljs-string">"collections/Inspire_RCE rce_inspire_points"</span>, <span class="hljs-string">"rel"</span>: <span class="hljs-string">"collection"</span>, <span class="hljs-string">"type"</span>: <span class="hljs-string">"application/json"</span>, <span class="hljs-string">"title"</span>: <span class="hljs-string">"the collection containing this feature"</span> } ], <span class="hljs-string">"feature"</span>: { <span class="hljs-string">"id"</span>: <span class="hljs-string">"Inspire_RCE rce_inspire_points.1"</span>, <span class="hljs-string">"bbox"</span>: [ <span class="hljs-number">4.90005196383485</span>, <span class="hljs-number">52.3741456950321</span>, <span class="hljs-number">4.90005196383485</span>, <span class="hljs-number">52.3741456950321</span> ], <span class="hljs-string">"geometry"</span>: { <span class="hljs-string">"type"</span>: <span class="hljs-string">"Point"</span>, <span class="hljs-string">"coordinates"</span>: [ <span class="hljs-number">4.90005196383485</span>, <span class="hljs-number">52.3741456950321</span> ] }, <span class="hljs-string">"geometry_name"</span>: <span class="hljs-string">"geom"</span>, <span class="hljs-string">"properties"</span>: { <span class="hljs-string">"id"</span>: <span class="hljs-number">1</span>, <span class="hljs-string">"fid"</span>: <span class="hljs-string">"1"</span>, <span class="hljs-string">"localid"</span>: <span class="hljs-string">"32478"</span>, <span class="hljs-string">"namespace"</span>: <span class="hljs-string">"nlps-rijksmonumenten"</span>, <span class="hljs-string">"versionid"</span>: <span class="hljs-string">"2021-11-30T15:36:47Z"</span>, <span class="hljs-string">"legalfoundationdate"</span>: <span class="hljs-string">"2021-11-30T15:36:47Z"</span>, <span class="hljs-string">"ci_citation"</span>: <span class="hljs-string">"https://monumentenregister.cultureelerfgoed.nl/monumenten/1?MonumentId=1"</span>, <span class="hljs-string">"designationscheme"</span>: <span class="hljs-string">"https://data.cultureelerfgoed.nl/term/id/rn/b6103f26-22c6-4f0f-b480-0bd44d77c424"</span>, <span class="hljs-string">"disignation"</span>: <span class="hljs-string">"onroerend gebouwd"</span>, <span class="hljs-string">"percentageunderdesignation"</span>: <span class="hljs-string">"100"</span>, <span class="hljs-string">"language"</span>: <span class="hljs-string">"nld"</span>, <span class="hljs-string">"text"</span>: <span class="hljs-literal">null</span>, <span class="hljs-string">"script"</span>: <span class="hljs-string">"Latn"</span>, <span class="hljs-string">"siteprotectionclassification"</span>: <span class="hljs-string">"cultural"</span> }, <span class="hljs-string">"type"</span>: <span class="hljs-string">"Feature"</span> } }</code></pre> </aside> <p>In linked data endpoints, [<cite><a class="bibref" data-link-type="biblio" href="#bib-geosparql" title="GeoSPARQL - A Geographic Query Language for RDF Data">GeoSPARQL</a></cite>] can be used to support user-requested <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-81">CRS</a>s.</p> <p>In [<cite><a class="bibref" data-link-type="biblio" href="#bib-geosparql" title="GeoSPARQL - A Geographic Query Language for RDF Data">GeoSPARQL</a></cite>] the <code>getSRID</code> function returns the spatial reference system of a <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-101">geometry</a>, thus making it possible to request a specific CRS at a (Geo)SPARQL endpoint. </p> <aside class="example" id="example-57"><div class="marker"> <a class="self-link" href="#example-57">Example<bdi> 57</bdi></a> </div> <pre aria-busy="false"><code class="hljs css">SELECT ?geo_wkt WHERE { ?geo geo:asWKT ?geo_wkt . <span class="hljs-built_in">FILTER</span>(geof:<span class="hljs-built_in">getSRID</span>(?geo_wkt)==http://www.opengis.net/def/crs/OGC/<span class="hljs-number">1.3</span>/CRS84) }</code></pre> </aside> </section> <section class="test"> <div class="header-wrapper"><h4 class="subhead" id="how-to-test-12">How to Test</h4><a class="self-link" href="#how-to-test-12" aria-label="Permalink for this Section"></a></div> <p> Check if a test client can discover the supported CRSs, request spatial things using a bounding box in one of the supported CRS, and if the spatial things are returned in the requested CRS. </p> </section> <section class="ucr"> <div class="header-wrapper"><h4 class="subhead" id="evidence-12">Evidence</h4><a class="self-link" href="#evidence-12" aria-label="Permalink for this Section"></a></div> <p><span>Relevant requirements</span>: <a href="https://www.w3.org/TR/sdw-ucr/#MultipleCRS">R-MultipleCRSs</a>, <a href="https://www.w3.org/TR/sdw-ucr/#AvoidCoordinateTransformations">R-AvoidCoordinateTransformations</a>, and <a href="https://www.w3.org/TR/sdw-ucr/#DeterminableCRS">R-DeterminableCRS</a>. </p> </section> <section class="benefits"> <div class="header-wrapper"><h4 class="subhead" id="benefits-12">Benefits</h4><a class="self-link" href="#benefits-12" aria-label="Permalink for this Section"></a></div> <ul class="benefitsList"> <li class="hidden">Access</li> <li class="hidden">Discoverability</li> <li class="hidden">Processability</li> <li class="hidden">Reuse</li> <li class="icon"><img src="images/access.svg" alt="Access" class="benefitIcon accessIcon"></li><li class="icon"><img src="images/discoverability.svg" alt="Discoverability" class="benefitIcon discoverabilityIcon"></li><li class="icon"><img src="images/processability.svg" alt="Processability" class="benefitIcon processabilityIcon"></li><li class="icon"><img src="images/reuse.svg" alt="Reuse" class="benefitIcon reuseIcon"></li></ul> </section> </div> </section> <section id="bp-metadata"><div class="header-wrapper"><h3 id="x13-5-spatial-metadata"><bdi class="secno">13.5 </bdi>Spatial metadata</h3><a class="self-link" href="#bp-metadata" aria-label="Permalink for Section 13.5"></a></div> <p>[<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] provides best practices discussing the provision of metadata to support discovery and reuse of data (see [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#metadata">section 8.2 Metadata</a> for more details). Providing metadata at the <em>dataset</em> level supports a mode of discovery well aligned with the practices used in <a href="#dfn-sdi" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-sdi-18">Spatial Data Infrastructure</a> (<abbr title="Spatial Data Infrastructure">SDI</abbr>) where a user begins their search for <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-105">spatial data </a>by submitting a query to a catalog. Once the appropriate dataset has been located, the information provided by the catalog enables the user to find a service end-point from which to access the data itself — which may be as simple as providing a mechanism to download the entire dataset for local usage or may provide a rich <abbr title="Application Programming Interface">API</abbr> enabling the users to request only the required parts for their needs. The dataset-level metadata is used by the catalog to match the appropriate dataset(s) with the user's query.</p> <p>This section includes best practices for including the spatial <a href="#dfn-extent" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-extent-12">extent</a>, <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-82">CRS</a>, and other spatial details of the dataset in the metadata. These are the extra metadata items needed to make spatial datasets both discoverable and usable. A third best practice in this section goes a step further in granularity: exposing <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-106">spatial data</a> on the Web in such a way that individual entities or "granules" within a dataset can be discovered, evaluated, and utilized. </p> <p>Quality information is also an important part of spatial metadata, especially for asserting if data is fit for a certain purpose. [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] provides a best practice discussing how the quality of data on the Web should be described (see [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#quality">section 8.5 Data Quality</a> for more details). This section is based on the Data Quality section from [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] and adds a best practice specific for spatial data, which concentrates on the accuracy of the positions in the data — how close are they to the actual positions of the real-world things?</p> <p>In the Spatial Metadata section, we provided a <a href="#bp-crs-choice" class="practiceRef">Best Practice</a> on how to deal with <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-83">CRS</a> in <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-107">spatial data</a> on the Web. There is also a clear link between CRS and data quality, because the accuracy of spatial data depends for a large part on the CRS used. This can be seen as conformance of data with a "standard" — in this case, a (spatial or temporal) reference system. This is how you can describe spatial data quality using different vocabularies. We will provide an example in this section. </p> <p>For some uses, it may be sufficient to simply state conformance to a published specification:</p> <aside class="example" id="ex-geodcat-ap-dataset-conformance-with-specification"><div class="marker"> <a class="self-link" href="#ex-geodcat-ap-dataset-conformance-with-specification">Example<bdi> 58</bdi></a><span class="example-title">: GeoDCAT-AP specification of a dataset conformance with the INSPIRE Regulation on spatial data and services interoperability</span> </div> <pre aria-busy="false"><code class="hljs">a:Dataset a dcat:Dataset ; dcterms:conformsTo <http://data.europa.eu/eli/reg/2010/1089/oj> . <http://data.europa.eu/eli/reg/2010/1089/oj> a dcterms:Standard , foaf:Document ; dcterms:title "COMMISSION REGULATION (EU) No 1089/2010 of 23 November 2010 implementing Directive 2007/2/EC of the European Parliament and of the Council as regards interoperability of spatial data sets and services"@en ; dcterms:issued "2010-12-08"^^xsd:date .</code></pre> </aside> <p>However, that specification makes no statement about the positional accuracy of the data, so on its own, it is only a useful quality statement for users to whom positional accuracy is not that important.</p> <div class="practicecontainer"> <div class="practice advisement"><a class="marker self-link" href="#spatial-info-dataset-metadata"><bdi lang="en">Best Practice 15</bdi></a>: <span id="spatial-info-dataset-metadata" class="practicelab">Include spatial metadata in dataset metadata</span> <p></p> <p class="practicedesc">The description of datasets that have <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-151">Spatial Things</a> should include explicit metadata about their spatial <a href="#dfn-extent" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-extent-13">extent</a>, coverage, and representation</p> <div class="note" role="note" id="issue-container-generatedID-45"><div role="heading" class="note-title marker" id="h-note-40" aria-level="4"><span>Note</span></div><aside class=""> <p>This best practice extends [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#DescriptiveMetadata">Best Practice 2: Provide descriptive metadata</a>.</p> </aside></div> </div> <section class="axioms"> <div class="header-wrapper"><h4 class="subhead" id="why-13">Why</h4><a class="self-link" href="#why-13" aria-label="Permalink for this Section"></a></div> <p>Since location is such a powerful organizing principle, it is usually necessary to specifically describe the spatial details and nature of a dataset to discover it as well as to determine its fitness for use. This information is used, for example, by <a href="#dfn-sdi" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-sdi-19"><abbr title="Spatial Data Infrastructure">SDI</abbr></a> catalog services that offer spatial querying to find data — but also by users to understand the nature of the dataset. In some cases, for example when dealing with crowd-sourced data, provenance information or how the dataset came to be in its published form and with what quality, is important as well.</p> <p>The first level of spatial description is the spatial <a href="#dfn-extent" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-extent-14">extent</a> of the dataset, the area of the world that the dataset describes. This often suffices for initial discovery, but further levels of description are needed to evaluate a dataset for use. These include the dataset spatial coverage (continuity, resolution, properties) as well as the spatial representation or geometric model (for example, grid <a href="#dfn-coverage" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-coverage-13">coverage</a>, discrete <a href="#dfn-coverage" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-coverage-14">coverage</a>, point cloud, linear network).</p> <p>Dataset quality measures such as positional accuracy are also important for determining applicability. In the case of datasets whose spatial characteristics vary over their temporal duration, spatial descriptions must include an explicit temporal aspect.</p> </section> <section class="outcome"> <div class="header-wrapper"><h4 class="subhead" id="intended-outcome-13">Intended Outcome</h4><a class="self-link" href="#intended-outcome-13" aria-label="Permalink for this Section"></a></div> <ul> <li>Dataset metadata should include the information necessary to enable spatial queries within catalog services such as those provided by <a href="#dfn-sdi" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-sdi-20">SDIs</a>.</li> <li>Dataset metadata should also include the information required for a user to evaluate whether a spatial dataset is suitable for their intended application.</li> <li>Your data is more findable.</li> </ul> </section> <section class="how"> <div class="header-wrapper"><h4 class="subhead" id="possible-approach-to-implementation-13">Possible Approach to Implementation</h4><a class="self-link" href="#possible-approach-to-implementation-13" aria-label="Permalink for this Section"></a></div> <p>When publishing a dataset, provide as much spatial metadata as necessary, but at least the spatial <a href="#dfn-extent" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-extent-15">extent</a>, coverage, and representation. Other examples of spatial metadata include: </p> <ul> <li>number of <a href="#dfn-dimension" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-dimension-9">dimensions</a> (1D, 2D, 3D, 4D)</li> <li>spatial representation type (e.g. grid, vector, text table)</li> <li>geometric property (e.g. boundary, bounding box, region, centerline, centroid, field) — expressed in the WGS 84 <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-84">coordinate reference system</a> to make the metadata consumable by as broad an audience as possible (see <a href="#bp-crs-choice" class="practiceRef">Best Practice 7: Choose coordinate reference systems to suit your user's applications</a> for more information).</li> <li>Coordinate Reference System(s) — refer to <a href="#CRS-background" class="sectionRef sec-ref"><bdi class="secno">10. </bdi>Coordinate Reference Systems (CRS)</a> for an introduction to that topic</li> <li>spatial resolution — <a href="#desc-accuracy" class="practiceRef">Best Practice 16: Describe the positional accuracy of spatial data</a></li> <li>spatial significance of non-spatial properties (e.g. point value, interpolation, unit average, sum)</li> </ul> <p>In <a href="#dfn-sdi" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-sdi-21">Spatial Data Infrastructures</a>, the accepted standard for describing metadata is [<cite><a class="bibref" data-link-type="biblio" href="#bib-iso-19115" title="Geographic information -- Metadata">ISO-19115</a></cite>] or profiles thereof. </p> <p>To provide information about the spatial attributes of the dataset on the Web one can: </p> <ul> <li>As shown in [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#DescriptiveMetadata">Best Practice 2: Provide descriptive metadata</a>: Include the spatial extent of the things described by the dataset using [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-dcat-2" title="Data Catalog Vocabulary (DCAT) - Version 2">VOCAB-DCAT-2</a></cite>] and a reference to a named place in a common vocabulary for geospatial semantics (e.g. <a href="http://www.geonames.org/ontology/documentation.html">GeoNames</a>).</li> <li> <p>Again, use [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-dcat-2" title="Data Catalog Vocabulary (DCAT) - Version 2">VOCAB-DCAT-2</a></cite>], but instead of a reference to a named place, use a set of coordinates to specify the boundaries of the area either as a bounding box or a polygon — see <a href="#ex-geodcat-ap-bag-addresses" class="box-ref">Example<bdi> 19</bdi></a>.</p> </li> <li> <p>Use [<cite><a class="bibref" data-link-type="biblio" href="#bib-geodcat-ap" title="GeoDCAT-AP: A geospatial extension for the DCAT application profile for data portals in Europe">GeoDCAT-AP</a></cite>] to specify spatial attributes that are not available in [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-dcat-2" title="Data Catalog Vocabulary (DCAT) - Version 2">VOCAB-DCAT-2</a></cite>] — see <a href="#ex-geodcat-ap-dataset-spatial-representation-type" class="box-ref">Example<bdi> 60</bdi></a> and <a href="#ex-geodcat-ap-spatial-resolution" class="box-ref">Example<bdi> 66</bdi></a>.</p> <div class="note" role="note" id="issue-container-generatedID-46"><div role="heading" class="note-title marker" id="h-note-41" aria-level="5"><span>Note</span></div><aside class=""> <p>[<cite><a class="bibref" data-link-type="biblio" href="#bib-geodcat-ap" title="GeoDCAT-AP: A geospatial extension for the DCAT application profile for data portals in Europe">GeoDCAT-AP</a></cite>] provides an <a href="#dfn-resource-description-framework" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-resource-description-framework-19">RDF</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-rdf11-primer" title="RDF 1.1 Primer">RDF11-PRIMER</a></cite>] syntax binding for the metadata elements defined in the core profile of [<cite><a class="bibref" data-link-type="biblio" href="#bib-iso-19115" title="Geographic information -- Metadata">ISO-19115</a></cite>] and in the INSPIRE metadata schema [<cite><a class="bibref" data-link-type="biblio" href="#bib-inspire-md" title="Technical Guidance for the implementation of INSPIRE dataset and service metadata based on ISO/TS 19139:2007. Version 2.0.1">INSPIRE-MD</a></cite>].</p> </aside></div> </li> <li>Use geospatial ontologies to describe the <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-108">spatial data</a> for the datasets — see the matrix of spatial data vocabularies in <a href="#applicability-formatVbp" class="sectionRef sec-ref"><bdi class="secno">A. </bdi>Applicability of common formats to implementation of best practices</a>.</li> <li>Publish metadata in both machine- and human-readable format, following [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#ProvideMetadata">Best Practice 1: Provide metadata</a>.</li> </ul> <aside class="example" id="ex-geodcat-ap-api"><div class="marker"> <a class="self-link" href="#ex-geodcat-ap-api">Example<bdi> 59</bdi></a> </div> <p>The experimental <a href="https://github.com/SEMICeu/iso-19139-to-dcat-ap/tree/master/api">GeoDCAT-AP <abbr title="Application Programming Interface">API</abbr></a> allows data publishers to serve [<cite><a class="bibref" data-link-type="biblio" href="#bib-iso-19115" title="Geographic information -- Metadata">ISO-19115</a></cite>] records in different <a href="#dfn-resource-description-framework" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-resource-description-framework-20">RDF</a> serialization formats, [<cite><a class="bibref" data-link-type="biblio" href="#bib-html-rdfa" title="HTML+RDFa 1.1 - Second Edition">HTML-RDFa</a></cite>] included, on top of a geospatial catalog, by using the standard [<cite><a class="bibref" data-link-type="biblio" href="#bib-csw" title="Catalogue Services 3.0 - General Model">CSW</a></cite>] query interface, and supporting HTTP content negotiation.</p> </aside> <aside class="example" id="ex-geodcat-ap-dataset-spatial-representation-type"><div class="marker"> <a class="self-link" href="#ex-geodcat-ap-dataset-spatial-representation-type">Example<bdi> 60</bdi></a><span class="example-title">: Specification of spatial representation type in [GeoDCAT-AP]</span> </div> <p>[<cite><a class="bibref" data-link-type="biblio" href="#bib-geodcat-ap" title="GeoDCAT-AP: A geospatial extension for the DCAT application profile for data portals in Europe">GeoDCAT-AP</a></cite>] models this information by using <code>adms:representationTechnique</code> [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-adms" title="Asset Description Metadata Schema (ADMS)">VOCAB-ADMS</a></cite>], with URIs corresponding to the items in the appropriate <a href="https://schemas.isotc211.org/schemas/Resources/codelists.xml#MD_SpatialRepresentationTypeCode">ISO 19115 code list</a>.</p> <p>The following [<cite><a class="bibref" data-link-type="biblio" href="#bib-turtle" title="RDF 1.1 Turtle">TURTLE</a></cite>] snippet provides an example of the [<cite><a class="bibref" data-link-type="biblio" href="#bib-geodcat-ap" title="GeoDCAT-AP: A geospatial extension for the DCAT application profile for data portals in Europe">GeoDCAT-AP</a></cite>] specification of two datasets using, respectively, a vector and a grid spatial representation type. The URIs in the example, denoting the spatial representation type, are taken from the corresponding code list of the <a href="https://inspire.ec.europa.eu/metadata-codelist/SpatialRepresentationType">INSPIRE Registry</a>.</p> <pre aria-busy="false"><code class="hljs css"><span class="hljs-selector-tag">a</span>:Dataset a dcat:Dataset ; adms:representationTechnique <https://inspire.ec.europa.eu/metadata-codelist/SpatialRepresentationType/vector> . another:Dataset a dcat:Dataset ; adms:representationTechnique <https://inspire.ec.europa.eu/metadata-codelist/SpatialRepresentationType/grid> .</code></pre> </aside> <aside class="example" id="ex-crowd-sourced-data-metadata"><div class="marker"> <a class="self-link" href="#ex-crowd-sourced-data-metadata">Example<bdi> 61</bdi></a><span class="example-title">: Metadata for crowd-sourced data</span> </div> <p>Quality, trust and density levels of crowd-sourced data varies and it is important that the data is provided with contextual information that helps people judge the probable completeness and accuracy of the observations. Human-readable and machine-readable metadata should be provided with crowd-sourced data.</p> <p>An example of crowd-sourced data that is being put to use is the <a href="https://twitter.com/hashtag/uksnow">Twitter hashtag #uksnow</a> for snowfall observations, which are shown on the <a href="https://uksnowmap.com">#uksnow Map</a>. In this case, the Twitter accounts from which observations originate are shown, giving users an idea of the source and its trustworthiness.</p> </aside> </section> <section class="test"> <div class="header-wrapper"><h4 class="subhead" id="how-to-test-13">How to Test</h4><a class="self-link" href="#how-to-test-13" aria-label="Permalink for this Section"></a></div> <p>Check if the spatial metadata for the dataset itself includes the overall features of the dataset in a human-readable format.</p> <p>Check if the descriptive spatial metadata is available in a valid machine-readable format.</p> </section> <section class="ucr"> <div class="header-wrapper"><h4 class="subhead" id="evidence-13">Evidence</h4><a class="self-link" href="#evidence-13" aria-label="Permalink for this Section"></a></div> <p><span>Relevant requirements</span>: <a href="https://www.w3.org/TR/sdw-ucr/#Discoverability">R-Discoverability</a>, <a href="https://www.w3.org/TR/sdw-ucr/#Compatibility">R-Compatibility</a>, <a href="https://www.w3.org/TR/sdw-ucr/#BoundingBoxCentroid">R-BoundingBoxCentroid</a>, <a href="https://www.w3.org/TR/sdw-ucr/#Crawlability">R-Crawlability</a>, <a href="https://www.w3.org/TR/sdw-ucr/#SpatialMetadata">R-SpatialMetadata</a> and <a href="https://www.w3.org/TR/sdw-ucr/#Provenance">R-Provenance</a>.</p> </section> <section class="benefits"> <div class="header-wrapper"><h4 class="subhead" id="benefits-13">Benefits</h4><a class="self-link" href="#benefits-13" aria-label="Permalink for this Section"></a></div> <ul class="benefitsList"> <li class="hidden">Comprehension</li> <li class="hidden">Reuse</li> <li class="hidden">Trust</li> <li class="hidden">Discoverability</li> <li class="icon"><img src="images/comprehension.svg" alt="Comprehension" class="benefitIcon comprehensionIcon"></li><li class="icon"><img src="images/reuse.svg" alt="Reuse" class="benefitIcon reuseIcon"></li><li class="icon"><img src="images/trust.svg" alt="Trust" class="benefitIcon trustIcon"></li><li class="icon"><img src="images/discoverability.svg" alt="Discoverability" class="benefitIcon discoverabilityIcon"></li></ul> </section> </div> <div class="practicecontainer"> <div class="practice advisement"><a class="marker self-link" href="#desc-accuracy"><bdi lang="en">Best Practice 16</bdi></a>: <span id="desc-accuracy" class="practicelab">Describe the positional accuracy of spatial data</span> <p></p> <p class="practicedesc">Accuracy of spatial data should be specified in machine-interpretable and human-readable form.</p> </div> <div class="issue" id="issue-container-number-1086"><div role="heading" class="issue-title marker" id="h-issue-3" aria-level="4"><a href="https://github.com/w3c/sdw/issues/1086"><span class="issue-number">Issue 1086</span></a><span class="issue-label">: Spatial Data on the Web - Best Practice 14 - Approach for describing positional accuracy <a class="respec-gh-label" style="background-color: rgb(132, 182, 235); color: rgb(0, 0, 0);" href="https://github.com/w3c/sdw/issues/?q=is%3Aissue+is%3Aopen+label%3A%22enhancement%22" aria-label="GitHub label: enhancement">enhancement</a><a class="respec-gh-label" style="background-color: rgb(21, 152, 24); color: rgb(0, 0, 0);" href="https://github.com/w3c/sdw/issues/?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22" aria-label="GitHub label: help wanted">help wanted</a><a class="respec-gh-label" style="background-color: rgb(251, 202, 4); color: rgb(0, 0, 0);" href="https://github.com/w3c/sdw/issues/?q=is%3Aissue+is%3Aopen+label%3A%22bp%22" aria-label="GitHub label: bp">bp</a></span></div><p dir="auto">So far none of the implementation reports (<a href="https://github.com/w3c/sdw/blob/gh-pages/bp/BP-implementation-report-00002.md#best-practice-14-describe-the-positional-accuracy-of-spatial-data">GNAF</a>, <a href="https://github.com/w3c/sdw/blob/gh-pages/bp/BP-implementation-report-00003.md#best-practice-14-describe-the-positional-accuracy-of-spatial-data">NRW</a>, <a href="https://data.labs.pdok.nl/publications/SDWBP-Kadaster.html" rel="nofollow">PDOK</a>) implement <a href="https://www.w3.org/TR/sdw-bp/#desc-accuracy" rel="nofollow">BP 14: Describe the positional accuracy of spatial data</a>.</p> <p dir="auto">Notably it was felt in the GNAF implementation that there was a need for some form of code list to facilitate the discovery of meaning - I believe this view was also shared by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/andrea-perego/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/andrea-perego">@andrea-perego</a></p> <p dir="auto">Currently there is no detailed discussion of a code list approach in the best practices. This could be an enhancement needed to facilitate implementation.</p></div> <section class="axioms"> <div class="header-wrapper"><h4 class="subhead" id="why-14">Why</h4><a class="self-link" href="#why-14" aria-label="Permalink for this Section"></a></div> <p>The amount of detail that is provided in <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-109">spatial data</a> and the resolution of the data can vary. No measurement system is infinitely precise and in some cases the spatial data can be intentionally generalized (e.g. merging entities, reducing the details, and aggregation of the data) [<cite><a class="bibref" data-link-type="biblio" href="#bib-veregin" title="Data quality parameters. In: Geographical Information Systems: Principles, Techniques, Management and Applications">Veregin</a></cite>]. Some spatial data applications, such as aircraft navigation, require highly accurate data. For others, such as human navigation, a horizontal accuracy of a few meters is good enough. For yet others, such as overlaying weather forecasts on a map, the map is only giving a general indication of place. If the positional accuracy is published together with the data, the user can determine whether it is appropriate to use for their application. Potentially, this makes existing data more reusable.</p> <div class="note" role="note" id="issue-container-generatedID-47"><div role="heading" class="note-title marker" id="h-note-42" aria-level="5"><span>Note</span></div><aside class=""> <p>It is important to understand the difference between precision and accuracy. Seven decimal places of a <a href="#dfn-latitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-latitude-20">latitude</a> degree correspond to about one centimeter. Whatever the precision of the specified coordinates, the accuracy of positioning on the actual earth's surface using WGS 84 will only approach about a meter horizontally and may have apparent errors of up to 100 meters vertically, because of assumptions about reference systems, tectonic plate movements and which definition of the earth's 'surface' is used.</p> </aside></div> </section> <section class="outcome"> <div class="header-wrapper"><h4 class="subhead" id="intended-outcome-14">Intended Outcome</h4><a class="self-link" href="#intended-outcome-14" aria-label="Permalink for this Section"></a></div> <p>For many uses, the positional accuracy of the data is an important aspect of assessing its fitness for purpose (quality). As with other data quality statements, this can be a quantitative measure, a statement of conformance to a standard or policy, or an assertion or report of fitness for a particular purpose.</p> </section> <section class="how"> <div class="header-wrapper"><h4 class="subhead" id="possible-approach-to-implementation-14">Possible Approach to Implementation</h4><a class="self-link" href="#possible-approach-to-implementation-14" aria-label="Permalink for this Section"></a></div> <p>Describe the accuracy of <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-110">spatial data</a> in a way that is understandable for humans. </p> <p>In addition, describe the accuracy of spatial data in a machine-readable format. [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-dqv" title="Data on the Web Best Practices: Data Quality Vocabulary">VOCAB-DQV</a></cite>] is such a format. It is a vocabulary for describing data quality, including the details of quality metrics and measurements. </p> <p>For observed (measured) datasets, it is possible to make specific quantitative statements about positional accuracy, based on knowledge of the equipment used to make the observations, and any processing carried out.</p> <p>For <a href="#dfn-coverage" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-coverage-15">coverages</a>, the sampling distance is an effective way of indicating the amount of detail in the dataset — this is one of the meanings of the term "resolution". Alternatively, samples of the data could be independently checked against the real world, and the results of that check reported. Either way, this is usually a statement of <a href="#dfn-absolute-positional-accuracy" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-absolute-positional-accuracy-1">absolute positional accuracy</a>, but for some uses, relative positional accuracy is more important.</p> <p>Positional accuracy measurements, whether observed or asserted based on process, can be given using QualityMeasurement.</p> <p>For modelled datasets, for example in planning and construction, there is no 'real world' against which to assess the positional accuracy — but relative positional accuracy can still be stated.</p> <p>For many uses, a statement of the amount of detail provided is sufficient to assess fitness for purpose; examples include "level of detail" (building models), "navigational purpose" (marine navigation), "equivalent scale" or "zoom level" (cartography). Sometimes, this is expressed as if it were a statement of positional accuracy.</p> <p>These can be expressed in the same way as for non-spatial data; for example, using the <code>QualityAnnotation</code>, <code>Standard</code>, and <code>QualityPolicy</code> statements of [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-dqv" title="Data on the Web Best Practices: Data Quality Vocabulary">VOCAB-DQV</a></cite>].</p> <aside class="example" id="ex-sampling-quality"><div class="marker"> <a class="self-link" href="#ex-sampling-quality">Example<bdi> 62</bdi></a> </div> <p>Examples:</p> <ul> <li>The ends of a 'sampling traverse' could be known in a national/global <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-85">CRS</a> to within ±5m, whilst the position of the samples themselves may be accurate to ±0.01 along the traverse.</li> <li>A hydrographic survey may conform to the 'special order' survey specification in IHO S-44.</li> <li>A <a href="#dfn-coverage" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-coverage-16">coverage</a> dataset may have a ground sampling distance of 1000 meters.</li> </ul> </aside> <p>The following example shows how [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-dqv" title="Data on the Web Best Practices: Data Quality Vocabulary">VOCAB-DQV</a></cite>] can express conformance to a specified positional accuracy</p> <aside class="example" id="ex-geodcat-ap-dataset-conformance-with-specification2"><div class="marker"> <a class="self-link" href="#ex-geodcat-ap-dataset-conformance-with-specification2">Example<bdi> 63</bdi></a><span class="example-title">: GeoDCAT-AP specification of a dataset conformance with IHO's S44</span> </div> <pre aria-busy="false"><code class="hljs css"><span class="hljs-selector-tag">a</span>:Dataset a dcat:Dataset ; dcterms:conformsTo <https://iho.int/uploads/user/pubs/standards/s-<span class="hljs-number">44</span>/S-<span class="hljs-number">44</span>_5E.pdf#Special> . <https://iho.int/uploads/user/pubs/standards/s-<span class="hljs-number">44</span>/S-<span class="hljs-number">44</span>_5E.pdf> a dcterms:Standard , foaf:Document ; dcterms:title <span class="hljs-string">"IHO Standards for Hydrographic Surveys"</span>@en ; dcterms<span class="hljs-selector-pseudo">:is</span>sued "<span class="hljs-number">2008</span>-<span class="hljs-number">02</span>-<span class="hljs-number">01</span>"^^xsd:date ; .</code></pre> </aside> <p>The following example shows how [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-dqv" title="Data on the Web Best Practices: Data Quality Vocabulary">VOCAB-DQV</a></cite>] can express the amount of detail in a <a href="#dfn-coverage" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-coverage-17">coverage</a> dataset: </p> <div class="note" id="issue-container-generatedID-48"><div role="heading" class="ednote-title marker" id="h-ednote-4" aria-level="5"><span>Editor's note</span></div><aside class=""> <p>Revised the existing examples to use the QUDT Units Vocabulary instead of Ontology of units of Measure (used originally), for consistency with the new examples.</p> </aside></div> <div class="note" role="note" id="issue-container-generatedID-49"><div role="heading" class="note-title marker" id="h-note-43" aria-level="5"><span>Note</span></div><aside class=""> <p>In the following examples, we use the <a href="http://qudt.org/vocab/unit/">QUDT Units Vocabulary</a> for the specification of units of measure.</p> <p>For more details on the use of quantities and units of measure, see <a href="#c-unitofmeasure" class="sectionRef sec-ref"><bdi class="secno">15.5 </bdi>Helping software understand units of measure</a>.</p> </aside></div> <aside class="example" id="ex-dqv-dataset-quality"><div class="marker"> <a class="self-link" href="#ex-dqv-dataset-quality">Example<bdi> 64</bdi></a><span class="example-title">: [VOCAB-DQV] specification of data quality</span> </div> <pre aria-busy="false"><code class="hljs">:myDataset a dcat:Dataset ; dqv:hasQualityMeasurement :myDatasetPrecision, :myDatasetAccuracy ; . :myDatasetPrecision a dqv:QualityMeasurement ; dqv:isMeasurementOf :spatialResolutionAsDistance ; dqv:value "1000"^^xsd:decimal ; sdmx-attribute:unitMeasure <http://qudt.org/vocab/unit/M> ; . :spatialResolutionAsDistance a dqv:Metric; skos:definition "Spatial resolution of a dataset expressed as distance"@en ; dqv:expectedDataType xsd:decimal ; dqv:inDimension dqv:precision ; . :myDatasetAccuracy a dqv:QualityMeasurement ; dqv:isMeasurementOf :spatialAccuracy ; dqv:value "98.2"^^xsd:decimal ; sdmx-attribute:unitMeasure <http://qudt.org/vocab/unit/PERCENT> . :spatialAccuracy a dqv:Metric; skos:definition "Percentage of spatial elements that are found accurate according to methodology XYZ"@en ; dqv:expectedDataType xsd:decimal ; dqv:inDimension ldqd:semanticAccuracy ; .</code></pre> <div class="note" id="issue-container-generatedID-50"><div role="heading" class="ednote-title marker" id="h-ednote-5" aria-level="5"><span>Editor's note</span></div><aside class=""> <p>In its original version, <a href="#ex-dqv-dataset-quality" class="exampleRef box-ref">Example<bdi> 64</bdi></a> for some reasons did not include the statements describing <code>:myDatasetAccuracy</code> and <code>:spatialAccuracy</code>, which are available from the reference [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-dqv" title="Data on the Web Best Practices: Data Quality Vocabulary">VOCAB-DQV</a></cite>] examples in <a href="https://www.w3.org/TR/vocab-dqv/#h-expressdatasetaccuracyprecision">the relevant section</a>.</p> <p>To be decided if they should be kept, revised, or dropped.</p> </aside></div> </aside> <p>This example was taken from [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-dqv" title="Data on the Web Best Practices: Data Quality Vocabulary">VOCAB-DQV</a></cite>]. For more examples of expressing <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-111">spatial data</a> precision and accuracy see [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-dqv" title="Data on the Web Best Practices: Data Quality Vocabulary">VOCAB-DQV</a></cite>], <a href="https://www.w3.org/TR/vocab-dqv/#h-expressdatasetaccuracyprecision">Express dataset precision and accuracy</a>. </p> <div class="note" id="issue-container-generatedID-51"><div role="heading" class="ednote-title marker" id="h-ednote-6" aria-level="5"><span>Editor's note</span></div><aside class=""> <p>The following paragraphs have been added in order to update the BP wrt to [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-dcat-2" title="Data Catalog Vocabulary (DCAT) - Version 2">VOCAB-DCAT-2</a></cite>] and [<cite><a class="bibref" data-link-type="biblio" href="#bib-geodcat-ap-20201223" title="GeoDCAT-AP: A geospatial extension for the DCAT application profile for data portals in Europe. Version 2.0.0">GeoDCAT-AP-20201223</a></cite>].</p> </aside></div> <p>The [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-dqv" title="Data on the Web Best Practices: Data Quality Vocabulary">VOCAB-DQV</a></cite>] approach is recommended also in [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-dcat-2" title="Data Catalog Vocabulary (DCAT) - Version 2">VOCAB-DCAT-2</a></cite>] as a general solution to specify precision and accuracy. However, in order to address the most common case of spatial resolution (i.e., as horizontal ground distance), [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-dcat-2" title="Data Catalog Vocabulary (DCAT) - Version 2">VOCAB-DCAT-2</a></cite>] defines also a specific property, <a href="https://www.w3.org/TR/vocab-dcat-2/#Property:dataset_spatial_resolution"><code>dcat:spatialResolutionInMeters</code></a>. By using this property, <a href="#ex-dqv-dataset-quality" class="exampleRef box-ref">Example<bdi> 64</bdi></a> can be re-written as follows:</p> <aside class="example" id="ex-dcat-dataset-quality"><div class="marker"> <a class="self-link" href="#ex-dcat-dataset-quality">Example<bdi> 65</bdi></a><span class="example-title">: [VOCAB-DCAT-2] specification of spatial resolution and accuracy</span> </div> <pre aria-busy="false"><code class="hljs">:myDataset a dcat:Dataset ; dqv:hasQualityMeasurement :myDatasetAccuracy ; dcat:spatialResolutionInMeters "1000"^^xsd:decimal ; . :myDatasetAccuracy a dqv:QualityMeasurement ; dqv:isMeasurementOf :spatialAccuracy ; dqv:value "98.2"^^xsd:decimal ; sdmx-attribute:unitMeasure <http://qudt.org/vocab/unit/PERCENT> ; . :spatialAccuracy a dqv:Metric; skos:definition "Percentage of spatial elements that are found accurate according to methodology XYZ"@en ; dqv:expectedDataType xsd:decimal ; dqv:inDimension ldqd:semanticAccuracy ; .</code></pre> </aside> <p>Finally, [<cite><a class="bibref" data-link-type="biblio" href="#bib-geodcat-ap" title="GeoDCAT-AP: A geospatial extension for the DCAT application profile for data portals in Europe">GeoDCAT-AP</a></cite>], building upon the [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-dqv" title="Data on the Web Best Practices: Data Quality Vocabulary">VOCAB-DQV</a></cite>] approach, defines specific individuals for the different types of spatial resolution in [<cite><a class="bibref" data-link-type="biblio" href="#bib-iso-19115" title="Geographic information -- Metadata">ISO-19115</a></cite>] and [<cite><a class="bibref" data-link-type="biblio" href="#bib-iso-19115-1-2014" title="Geographic information -- Metadata -- Part 1: Fundamentals">ISO-19115-1-2014</a></cite>] — namely:</p> <ul> <li>equivalent scale (<a href="https://semiceu.github.io/GeoDCAT-AP/releases/#metric-spatial-resolution-as-scale"><code>geodcatap:spatialResolutionAsScale</code></a>);</li> <li>angular distance (<a href="https://semiceu.github.io/GeoDCAT-AP/releases/#metric-spatial-resolution-as-angular-distance"><code>geodcatap:spatialResolutionAsAngularDistance</code></a>);</li> <li>vertical distance (<a href="https://semiceu.github.io/GeoDCAT-AP/releases/#metric-spatial-resolution-as-vertical-distance"><code>geodcatap:spatialResolutionAsVerticalDistance</code></a>);</li> <li>horizontal ground distance (<a href="https://semiceu.github.io/GeoDCAT-AP/releases/#metric-spatial-resolution-as-distance"><code>geodcatap:spatialResolutionAsDistance</code></a>) can be used if the distance isn't expressed in metres.</li> </ul> <p>These are illustrated in the following example:</p> <aside class="example" id="ex-geodcat-ap-spatial-resolution"><div class="marker"> <a class="self-link" href="#ex-geodcat-ap-spatial-resolution">Example<bdi> 66</bdi></a><span class="example-title">: [GeoDCAT-AP] specification of different types of spatial resolution</span> </div> <pre aria-busy="false"><code class="hljs css">resource:a12345 dqv:hasQualityMeasurement [ a dqv:QualityMeasurement ; dqv<span class="hljs-selector-pseudo">:is</span>MeasurementOf geodcatap:spatialResolutionAsScale ; dqv:value <span class="hljs-string">"0.000001"</span>^^xsd:decimal ] ; . resource:c34567 dqv:hasQualityMeasurement [ a dqv:QualityMeasurement ; sdmx-attribute:unitMeasure <http://qudt.org/vocab/unit/DEG> ; dqv<span class="hljs-selector-pseudo">:is</span>MeasurementOf geodcatap:spatialResolutionAsAngularDistance ; dqv:value <span class="hljs-string">"0.02"</span>^^xsd:decimal ] ; . resource:d45678 dqv:hasQualityMeasurement [ a dqv:QualityMeasurement ; sdmx-attribute:unitMeasure <http://qudt.org/vocab/unit/M> ; dqv<span class="hljs-selector-pseudo">:is</span>MeasurementOf geodcatap:spatialResolutionAsVerticalDistance ; dqv:value <span class="hljs-string">"10.0"</span>^^xsd:decimal ] ; . resource:b23456 dqv:hasQualityMeasurement [ a dqv:QualityMeasurement ; sdmx-attribute:unitMeasure </code></pre></aside> </section> <section class="test"> <div class="header-wrapper"><h4 class="subhead" id="how-to-test-14">How to Test</h4><a class="self-link" href="#how-to-test-14" aria-label="Permalink for this Section"></a></div> <p>Check if the metadata contains at least one human and machine-readable statement regarding positional accuracy </p> <p>Check that the kind of statement is relevant to the kind of data, e.g. not an absolute positional accuracy measure for Atlantis</p> <p>Checking whether the accuracy statement is actually correct is beyond the scope of this best practice.</p> </section> <section class="ucr"> <div class="header-wrapper"><h4 class="subhead" id="evidence-14">Evidence</h4><a class="self-link" href="#evidence-14" aria-label="Permalink for this Section"></a></div> <p><span>Relevant requirements</span>: <a href="https://www.w3.org/TR/sdw-ucr/#MachineToMachine">R-MachineToMachine</a>, <a href="https://www.w3.org/TR/sdw-ucr/#QualityPerSample">R-QualityPerSample</a>.</p> </section> <section class="benefits"> <div class="header-wrapper"><h4 class="subhead" id="benefits-14">Benefits</h4><a class="self-link" href="#benefits-14" aria-label="Permalink for this Section"></a></div> <ul class="benefitsList"> <li class="hidden">Comprehension</li> <li class="hidden">Reuse</li> <li class="hidden">Trust</li> <li class="hidden">Interoperability</li> <li class="icon"><img src="images/comprehension.svg" alt="Comprehension" class="benefitIcon comprehensionIcon"></li><li class="icon"><img src="images/reuse.svg" alt="Reuse" class="benefitIcon reuseIcon"></li><li class="icon"><img src="images/trust.svg" alt="Trust" class="benefitIcon trustIcon"></li><li class="icon"><img src="images/interoperability.svg" alt="Interoperability" class="benefitIcon interoperabilityIcon"></li></ul> </section> </div> </section> <section id="bp-ethics"><div class="header-wrapper"><h3 id="x13-6-spatial-data-ethics"><bdi class="secno">13.6 </bdi>Spatial data ethics</h3><a class="self-link" href="#bp-ethics" aria-label="Permalink for Section 13.6"></a></div> <p>Data ethics is a topic that has gained a lot of interest over the last few years, leading to the creation of frameworks, codes and guidelines on the topic. In the Data on the Web Best Practices [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>], which largely predates this growing interest, ethical concerns are mentioned once, in <a href="https://www.w3.org/TR/dwbp/#enrichment">section 8.13 Data Enrichment</a>. Ethical concerns may arise when data are "enhanced, refined or otherwise improved". For example, results or statistical outcomes may be distorted, privacy issues may arise when datasets are combined, and so on. In the case of spatial data, privacy concerns are especially obvious in the case of location tracking of individuals. It is therefore important to act in a responsible way when dealing with spatial data, especially the locations of individuals and mobility data.</p> <div class="practicecontainer"> <div class="practice advisement"><a class="marker self-link" href="#desc-responsible"><bdi lang="en">Best Practice 17</bdi></a>: <span id="desc-responsible" class="practicelab">Interact with spatial data in a responsible way</span> <p></p> <p class="practicedesc">Practitioners carry a certain responsibility to ensure their publications of spatial data on the web or the tools they develop that make it easy for others to work with spatial data, are ethical.</p> </div> <section class="axioms"> <div class="header-wrapper"><h4 class="subhead" id="why-15">Why</h4><a class="self-link" href="#why-15" aria-label="Permalink for this Section"></a></div> <p><a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-112">Spatial data</a> may be seen as a fingerprint: For an individual every combination of their location in space, time, and theme is unique. The collection and sharing of individuals spatial data can lead to beneficial insights and services, but it can also compromise citizens' privacy. This, in turn, may make them vulnerable to governmental overreach, tracking, discrimination, unwanted advertisement, and so forth. Hence, spatial data must be handled with due care.</p> <p>That being said, too often, data ethics is presented as a solution to avoid the unacceptable consequences of data misuse. However, acting responsibly is not only necessary out of fear of misuse, but more importantly, to unlock full potential of spatial data. Users will only contribute and apply spatial data if they trust the systems collecting these data and drawing inferences from them. These data may, in turn, improve the well-being and sustainability of our societies.</p> </section> <section class="outcome"> <div class="header-wrapper"><h4 class="subhead" id="intended-outcome-15">Intended Outcome</h4><a class="self-link" href="#intended-outcome-15" aria-label="Permalink for this Section"></a></div> <p>Practitioners carefully consider the impact of their interaction with <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-113">spatial data</a> on primary stakeholders (those impacted by the interaction with spatial data) and society as a whole.</p> </section> <section class="how"> <div class="header-wrapper"><h4 class="subhead" id="possible-approach-to-implementation-15">Possible Approach to Implementation</h4><a class="self-link" href="#possible-approach-to-implementation-15" aria-label="Permalink for this Section"></a></div> <p>There are many guidelines, principles, and legal frameworks that offer support on how to be a responsible data practitioner. However, very few focus on the unique characteristics of <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-114">spatial data</a> within the broader realm of ethical use of data. Members of the <abbr title="World Wide Web Consortium">W3C</abbr> have published a note to raise awareness of the ethical responsibilities of both practitioners and users of spatial data on the web. The note illustrates the issues specifically associated with the nature of spatial data and both the benefits and risks of sharing this information implicitly or explicitly on the web. However, the note is not intended as a list of commandments. It is intended as a conversation starter on how its readers define "responsible use" of spatial data. In their own role and from their own perspective as the developer, the user, or the legislator interacting with spatial data.</p> <p>A brief overview of the key pieces of advice the note has for responsible developers are:</p> <ul> <li>Does the user's location provide intrinsic value to my application? If not, it should not be collected. </li> <li>Do I need the user's precise location, or can I selectively reduce its precision without reducing the value I provide back to the user? If so, I should reduce location precision.</li> <li>Do I need to store the user's location? If not, I should use it and then forget it.</li> <li>How long do I need to store the user's location for? Can I, for instance, remove it after a certain period of time? If so, I should remove it as soon as possible.</li> </ul> <p>A possible approach to implementation would be for practitioners to have conversations about these pieces of advice and implement those they align with.</p> <p>The note offers further insights which can help and support with implementing this particular best practice. It is published under the name: “The Responsible Use of Spatial Data” [<cite><a class="bibref" data-link-type="biblio" href="#bib-responsible-use-spatial" title="The Responsible Use of Spatial Data">responsible-use-spatial</a></cite>].</p> </section> <section class="test"> <div class="header-wrapper"><h4 class="subhead" id="how-to-test-15">How to Test</h4><a class="self-link" href="#how-to-test-15" aria-label="Permalink for this Section"></a></div> <p>Check if the application follows the guidelines in "The Responsible Use of Spatial Data” [<cite><a class="bibref" data-link-type="biblio" href="#bib-responsible-use-spatial" title="The Responsible Use of Spatial Data">responsible-use-spatial</a></cite>].</p> </section> <section class="ucr"> <div class="header-wrapper"><h4 class="subhead" id="evidence-15">Evidence</h4><a class="self-link" href="#evidence-15" aria-label="Permalink for this Section"></a></div> <p><span>Relevant requirements</span>: None</p> </section> <section class="benefits"> <div class="header-wrapper"><h4 class="subhead" id="benefits-15">Benefits</h4><a class="self-link" href="#benefits-15" aria-label="Permalink for this Section"></a></div> <ul class="benefitsList"> <li class="hidden">Trust</li> <li class="icon"><img src="images/trust.svg" alt="Trust" class="benefitIcon trustIcon"></li></ul> </section> </div> </section> </section> <section id="emergingtechnologies"><div class="header-wrapper"><h2 id="x14-emerging-technologies"><bdi class="secno">14. </bdi>Emerging technologies</h2><a class="self-link" href="#emergingtechnologies" aria-label="Permalink for Section 14."></a></div> <p>Besides the best practices in this document which have been observed in real-world applications, this section aims to highlight in-development standards which in the opinion of the authors might gain in relevance in the upcoming time.</p> <section id="e-geopose"><div class="header-wrapper"><h3 id="x14-1-geopose"><bdi class="secno">14.1 </bdi>GeoPose</h3><a class="self-link" href="#e-geopose" aria-label="Permalink for Section 14.1"></a></div> <p>All physical world objects inherently have a geographically-anchored pose. A real object in space can have three components of translation – up and down (z), left and right (x), and forward and backward (y) and three components of rotation – Pitch, Roll and Yaw. Hence the real object has six degrees of freedom. </p> <p>The combination of position and orientation with 6 degrees of freedom of objects in computer graphics and robotics are usually referred to as the object’s “pose.” Pose can be expressed as being in relation to other objects and/or to the user. Some part of the object must be recognized as the anchor (or origin) of the position. When a pose is defined relative to a geographical frame of reference or coordinate system, it will be called a geographically-anchored pose, or GeoPose for short. </p> <p>When a person seeks to view spatial data on the web, they may wish to see information or a map in position and oriented with respect to the observer (or another view point). Providing the view point's location and orientation with respect to a desired person, place or a thing (which also has a GeoPose) will permit the resulting perspective to accurately reflect the observer and the focus of attention in their respective positions and orientations. </p> <p>Unfortunately, there is no standard for universally expressing the geographically-anchored pose in a manner that can be interpreted and used by modern computing platforms. </p> <p>The purpose of the GeoPose SWG is to develop a standard for geographically-anchored pose (GeoPose) with 6 degrees of freedom referenced to one or more standardized Coordinate Reference Systems (CRSs). </p> <p>In addition to the standard, the GeoPose SWG is developing guides for reviewers and implementers of GeoPose. </p> <p>For more information, the GeoPose SWG description is found <a href="https://www.ogc.org/about-ogc/committees/swg/">here</a>. The draft specification and all work is being conducted in the open on the <a href="https://github.com/opengeospatial/GeoPose">GeoPose SWG GitHub repository</a>. The <a href="http://www.geopose.org">GeoPose web site</a> will be published shortly. </p></section> <section id="e-pointofinterest"><div class="header-wrapper"><h3 id="x14-2-point-of-interest-standard"><bdi class="secno">14.2 </bdi>Point Of Interest Standard</h3><a class="self-link" href="#e-pointofinterest" aria-label="Permalink for Section 14.2"></a></div> <p>A “point of interest” (PoI) is a location for which information is available. A PoI can be as simple as a set of coordinates, a name, and a unique identifier, or more complex such as a three-dimensional model of a building with names in multiple languages information about opening and closing hours, and a civic address. </p> <p>There are numerous use cases for PoI. They include location-based social networking, games, assessments of gaps or needs, mapping and navigation systems, etc. </p> <p>End users may search databases of PoIs to identify properties for sale, financial institutions, accommodations, retail shops, or transportation. There are also numerous ways the public sector can use PoI data. For example, government agencies can provide information to citizens about services and locations by publishing their PoI datasets. </p> <p>Unfortunately, there is no standard for universally expressing information about a point of interest in a manner that can be interpreted and used by modern computing platforms. </p> <p>The purpose of the PoI SWG is to develop the PoI standard. The first goal of the PoI standard is interoperable PoI data and systems. Complying with this standard will permit systems that populate a PoI database regardless of authoring platform or application, to do so without transcoding, delays or costs that are incurred when data is compiled from many different contributors using proprietary formats. </p> <p>Further, with a standard encoding, PoIs can be stored in open, non-proprietary formats and technology providers can focus on their respective competitive advantages. </p> <p>When PoI publishers support this PoI standard, they will be able to make available PoI data and to transmit the data to the applications of the user’s choice, regardless of devices, and thereby focus on the value of the data, not the development and maintenance of proprietary applications or interfaces. </p> <p>Furthermore, when data are encoded in compliance with the PoI standard, third parties are able to create, interact with, and query across platforms from multiple, diverse sources, to compare, merge, and, at the end of life cycle, to archive, PoI without loss of accuracy, metadata or value. </p> <p>Finally, as a result of higher confidence in PoI data quality, validity, and security, a widely-adopted PoI standard will increase the use of and trust in PoI, in general. </p> <p>More information is available on the <a href="https://www.ogc.org/about-ogc/committees/swg/">PoI SWG description page</a> and on the <a href="https://github.com/opengeospatial/poi">PoI SWG GitHub repository</a>. </p></section> <section id="e-mapml"><div class="header-wrapper"><h3 id="x14-3-maps-for-html-and-map-markup-language"><bdi class="secno">14.3 </bdi>Maps for HTML and Map Markup Language</h3><a class="self-link" href="#e-mapml" aria-label="Permalink for Section 14.3"></a></div> <p id="mapml-who">The Maps for HTML Community Group is an open, free public forum of <a href="https://www.w3.org/community/maps4html/participants">stakeholders</a> who are interested in integrating maps and location technologies into browsers via Hypertext Markup Language (HTML) and related Web standards, especially including Cascading Style Sheets (CSS), the Document Object Model (DOM) and JavaScript. The community works in an open public Web space provided by the World Wide Web Consortium (<abbr title="World Wide Web Consortium">W3C</abbr>), so that all interested parties have equal opportunity to contribute to and comment on the objectives of the group.</p> <p id="mapml-what">The community’s interest is in integrating maps and location information technology into browsers, to simplify and standardize an accessible, performant, interoperable and privacy-enhancing Web map experience that can be created and used by persons and organizations of all abilities and with diverse needs, globally.</p> <p id="mapml-why">It is through the integration of geospatial coordinate semantics into browser engines, that we imagine unlocking the potential of an interoperable geospatial Web that allows us to virtually describe, document, search, navigate and save, our physical world.</p> <div id="mapml-how"> <p id="mapml-how-1">On the one hand, there are well-established spatial semantics and standards, such as simple features, spatial referencing by coordinates, and map, tile, and feature services. On the other hand, there are the civilization-critical open Web standards, including HTML, HTTP, CSS, DOM, and JavaScript. </p> <p id="mapml-how-2">The keystone that enables integration of location information into browser engines and Web standards is the application of the Web architectural style to spatial semantics, which necessitates hypermedia controls, ranging from maps and layers to simple links between spatial resource representations.</p> <p id="mapml-how-3">The central product of the community is our <a href="https://github.com/Maps4HTML/MapML-Proposal">proposal</a> to extend the HTML language with a small set of new and extended existing HTML elements. This extended subset of HTML is called “Map Markup Language” (MapML). The details of MapML are subject to change, as we perform ongoing research into best practices for usability, accessibility, performance and so on, for Web maps. </p> </div> <p id="mapml-where-0">Our work is continuously reflected in updates to several public GitHub repositories. The repositories below organize our work and range from Use Cases and Requirements to end-user documentation of it. </p> <p>The <a href="https://maps4html.org/HTML-Map-Element-UseCases-Requirements/">Use Cases and Requirements for Web Maps</a> is a pivotal document; once we can resolve each accepted use case into one or more agreed-upon requirements, this document will be final and will be used to measure the progress of all downstream products. </p> <p>We intend to convene a formal <abbr title="World Wide Web Consortium">W3C</abbr> working group to help develop the <a href="https://maps4html.org/MapML/spec/">draft specification for MapML</a>, which, once it addresses all requirements, will be merged with the HTML Living Standard. </p> <p>The <a href="https://www.w3.org/2001/tag/doc/polyfills/#nomenclature-what-is-a-polyfill-">speculative polyfill</a> <a href="https://github.com/Maps4HTML/Web-Map-Custom-Element">source code</a> will implement the MapML specification in parallel to specification development, with elements in a polyfill-appropriate namespace. The logical behavior of the speculative polyfill will be transcribed, tested, and merged into browser source code repositories for Chrome/Blink, Safari/Webkit and Firefox/Gecko.</p> <p>The Web Platform Tests repository that confirms the function of the speculative polyfill will be refactored to test the interoperability of browser changes resulting from the integration of MapML into the HTML Living Standard.</p> <p>The <a href="https://maps4html.org/web-map-doc/">end-user documentation</a> of the speculative polyfill will be merged with the Web platform documentation on the Mozilla Developers Network. </p> <p id="mapml-when">Our work will be complete when we have formulated and successfully merged pull requests into the various target repositories. </p> </section> </section> <section id="conclusions"><div class="header-wrapper"><h2 id="x15-gaps-in-current-practice"><bdi class="secno">15. </bdi>Gaps in current practice</h2><a class="self-link" href="#conclusions" aria-label="Permalink for Section 15."></a></div> <p>The best practices described in this best practice document are compiled based on evidence of real-world application, as described in <a href="#best-practice-criteria" class="sectionRef sec-ref"><bdi class="secno">4.4 </bdi>Best practice criteria</a>. However, there are several issues that inhibit the use or interoperability of <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-115">spatial data</a> on the Web, for which no evidence of real-world applied solutions is available. These issues are denoted “gaps in current practice”. In the case of gaps, there might be emerging practice i.e. a solution that has been theorized for a certain issue and has possibly been experimented on in beta settings, but not in production environments. Gaps and emerging practices in the area of publishing spatial data on the Web are discussed in this section. </p> <p>The best practices, and also the gaps described in this document, focus on geometry-based spatial data, i.e., vector data. There are other types of spatial data, like coverages and meshes, but we do not discuss those in this section.</p> <section id="c-geometrycrs"><div class="header-wrapper"><h3 id="x15-1-requesting-different-representations-of-geometries"><bdi class="secno">15.1 </bdi>Requesting different representations of geometries</h3><a class="self-link" href="#c-geometrycrs" aria-label="Permalink for Section 15.1"></a></div> <p>Different use cases may require geometries at different levels of accuracy, precision, and size. <a href="#multiplegeometries" class="sectionRef">Best Practice 6: Provide geometries at the right level of accuracy, precision, and size</a> outlines some of the approaches to address this requirement, considering general application scenarios and providing guidance on the criteria to be taken into account for choosing the appropriate technique (e.g., compress geometry data, use compact formats, apply geometry generalization mechanisms). The overall recommendation is to make available multiple representations of geometry data, and to give data consumers the ability to identify those most fit for purpose. A variety of mechanisms can be used to achieve this, as publishing different geometry representations at different URIs, and accompanying them with a human- and/or machine-readable description of their characteristics (e.g., format, spatial resolution, scale, level of generalization). However, the lack of common practices in this area makes it difficult to provide consistent guidelines on how to publish and access different geometry representations.</p> <p>A standardized way of requesting a geometry in a different CRS is described in <abbr title="Open Geospatial Consortium">OGC</abbr> <abbr title="Application Programming Interface">API</abbr> Features part 2: Coordinate Reference Systems by Reference [<cite><a class="bibref" data-link-type="biblio" href="#bib-oaf2" title="OGC API - Features - Part 2: Coordinate Reference Systems by Reference">OAF2</a></cite>]. This is done using parameters, which are defined in the standard, and with a <code>Content-Crs</code> response header to tell the client which CRS was used with the geometries in the response. </p> <div class="note" role="note" id="issue-container-generatedID-52"><div role="heading" class="note-title marker" id="h-note-44" aria-level="4"><span>Note</span></div><aside class=""> <p>On a more general level, content negotiation (as recommended in <a href="https://www.w3.org/TR/dwbp/#Conneg">DWBP Best Practice 19: Use content negotiation for serving data available in multiple formats</a>) could be a way to deal with requesting different representations of geometries - be it different data formats, CRSs, levels of accuracy, etc. Content negotiation could be expanded to enable its use for choosing a 'profile' concerning the semantics and structure of the data, such as a data vocabulary. The <a href="https://www.w3.org/2017/dxwg/charter">Dataset Exchange WG (DXWG)</a> aspires to provide a REC for "content negotiation by profile" (see also [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc6906" title="The 'profile' Link Relation Type">RFC6906</a></cite>] "profile" Link Relation Type).</p> </aside></div> </section> <section id="c-spatialdatavoc"><div class="header-wrapper"><h3 id="x15-2-spatial-data-vocabulary"><bdi class="secno">15.2 </bdi>Spatial data vocabulary</h3><a class="self-link" href="#c-spatialdatavoc" aria-label="Permalink for Section 15.2"></a></div> <p>Although a large amount of <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-116">spatial data</a> has been published on the Web, so far, there are few authoritative datasets containing geometrical descriptions of their boundaries. Their number is growing (e.g. at the time of writing there are three authoritative spatial datasets publicly available as <a href="#dfn-linked-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-linked-data-18">linked data</a> in the Netherlands containing topographic, cadastral, and address data), but currently there is no common practice in the sense of the same spatial vocabulary being used by most spatial data publishers. Direct georeferencing of data implies representing coordinates or <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-102">geometries</a> and associating them to a <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-86">CRS</a>. This requires vocabularies for geometries and CRSs. The consequence is the lack of a baseline during the mapping process for application developers trying to consume specific incoming data. Datasets describing administrative units, points of interest or postal addresses with their labels and geometries, and identifying these <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-152">Spatial Things</a> with URIs could be beneficial not only for georeferencing other datasets, but also for interlinking datasets georeferenced by direct and indirect location information. </p> <p>Currently, no single standardized vocabulary is available that covers all needs. Version 1.0 of the [<cite><a class="bibref" data-link-type="biblio" href="#bib-geosparql" title="GeoSPARQL - A Geographic Query Language for RDF Data">GeoSPARQL</a></cite>] vocabulary is too limited to provide a good basis, but work to update the [<cite><a class="bibref" data-link-type="biblio" href="#bib-geosparql" title="GeoSPARQL - A Geographic Query Language for RDF Data">GeoSPARQL</a></cite>] spatial ontology is underway. The first iteration of this update includes the addition of common classes for spatial object collections, and common properties for spatial object size, centroid, bounding box, etc. A companion CRS ontology is also on the way. This work will provide an agreed spatial ontology, i.e. a bridge or common ground between geographical and non-geographical <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-117">spatial data</a> and between <abbr title="World Wide Web Consortium">W3C</abbr> and <abbr title="Open Geospatial Consortium">OGC</abbr> standards; conformant to the [<cite><a class="bibref" data-link-type="biblio" href="#bib-iso-19107" title="Geographic information -- Spatial schema">ISO-19107</a></cite>] abstract model and aligned to existing available ontologies such as [<cite><a class="bibref" data-link-type="biblio" href="#bib-geosparql" title="GeoSPARQL - A Geographic Query Language for RDF Data">GeoSPARQL</a></cite>] 1.0, the [<cite><a class="bibref" data-link-type="biblio" href="#bib-w3c-basic-geo" title="Basic Geo (WGS84 lat/long) Vocabulary">W3C-BASIC-GEO</a></cite>] vocabulary, [<cite><a class="bibref" data-link-type="biblio" href="#bib-neogeo" title="NeoGeo Vocabulary Specification">NeoGeo</a></cite>] and the ISA Programme Location Core Vocabulary [<cite><a class="bibref" data-link-type="biblio" href="#bib-locn" title="ISA Programme Location Core Vocabulary">LOCN</a></cite>]. Still, as GeoSPARQL 1.1 Annex E describes, at least 15 different vocabularies to encode geometries on the web exist. While this annex provides a much needed way to relate and interlink data in these different vocabularies, the adoption of an improved GeoSPARQL vocabulary will take a significant amount of time.</p> <p>The ideal vocabulary would define basic semantics for the concept of a reference system for spatial coordinates, a basic datatype, or basic datatypes for <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-103">geometry</a>, how geometry and real world objects are related and how different versions of <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-104">geometries</a> for a single real world object can be distinguished. For example, it makes sense to publish different geometric representations of a spatial object that can be used for different purposes. The same object could be modelled as a point, a 2D polygon or a 3D polygon. The polygons could have different versions with different resolutions (generalization levels). And all those different geometries could be published with different <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-87">coordinate reference systems</a>. Thus, the vocabulary would provide a foundation for harmonization of the many different geometry encodings that exist today.</p> <p>Finally, a spatial data vocabulary would need to be validatable. For Semantic Web Standards, this is usually achieved by defining SHACL shapes which can validate the graph structure defined by the spatial vocabulary and its valid datatypes. For a complete validation, also the contents of geometry literals need to be considered, which is at the time of writing not possible using SHACL alone and requires the usage of GIS software libraries.</p> </section> <section id="describing-dataset-structure-and-service-behaviors"><div class="header-wrapper"><h3 id="x15-3-describing-dataset-structure-and-service-behaviors"><bdi class="secno">15.3 </bdi>Describing dataset structure and service behaviors</h3><a class="self-link" href="#describing-dataset-structure-and-service-behaviors" aria-label="Permalink for Section 15.3"></a></div> <p>Even if all <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-118">spatial data</a> should become findable directly through search engines, data portals would still remain important hubs for data discovery — for example, because the metadata records registered there can be made crawlable. But in addition, different data portals can harvest each other's information provided there is consistency in the types and meaning of included information, even if structures and technologies vary. In the eGovernment sector, [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-dcat-2" title="Data Catalog Vocabulary (DCAT) - Version 2">VOCAB-DCAT-2</a></cite>] is a standard for dataset metadata publication and harvesting implemented by these portals. Version 1 of DCAT, and therefore its European Union profile, was not good at describing spatial datasets, so [<cite><a class="bibref" data-link-type="biblio" href="#bib-geodcat-ap" title="GeoDCAT-AP: A geospatial extension for the DCAT application profile for data portals in Europe">GeoDCAT-AP</a></cite>] extended the EU application profile for <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-119">spatial data</a>. Some of the ideas of GeoDCAT-AP have been adopted in DCAT2, and GeoDCAT-AP has been updated accordingly. [<cite><a class="bibref" data-link-type="biblio" href="#bib-geodcat-ap-20201223" title="GeoDCAT-AP: A geospatial extension for the DCAT application profile for data portals in Europe. Version 2.0.0">GeoDCAT-AP-20201223</a></cite>] is mentioned in the "Possible approach" section of several Best Practices in this document. It still adds some properties beyond DCAT2 that are useful in certain cases.</p> <p>With the goal of sharing spatial metadata, [<cite><a class="bibref" data-link-type="biblio" href="#bib-geodcat-ap-20201223" title="GeoDCAT-AP: A geospatial extension for the DCAT application profile for data portals in Europe. Version 2.0.0">GeoDCAT-AP-20201223</a></cite>] defined <a href="#dfn-resource-description-framework" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-resource-description-framework-21">RDF</a> bindings covering the core profile of [<cite><a class="bibref" data-link-type="biblio" href="#bib-iso-19115" title="Geographic information -- Metadata">ISO-19115</a></cite>] and the INSPIRE metadata schema [<cite><a class="bibref" data-link-type="biblio" href="#bib-inspire-md" title="Technical Guidance for the implementation of INSPIRE dataset and service metadata based on ISO/TS 19139:2007. Version 2.0.1">INSPIRE-MD</a></cite>], enabling the harmonized <a href="#dfn-resource-description-framework" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-resource-description-framework-22">RDF</a> representation of existing spatial metadata. The reason of this choice was to focus first on the most used metadata elements, whereas additional mappings could be defined in future versions of the specification, based on users’ and implementation feedback.</p> <p>The next step is an evolution towards a single standard for metadata as it is used in data portals without loss of relevant metadata while still understandable and not too complicated. A working group in the Open Geospatial Consortium is currently working on a standardized Web <abbr title="Application Programming Interface">API</abbr>, <a href="https://ogcapi.ogc.org/records/"><abbr title="Open Geospatial Consortium">OGC</abbr> <abbr title="Application Programming Interface">API</abbr> Records</a>, for metadata publication and discovery. It offers the capability to create, modify, and query metadata on the Web by providing a simple, extendable record schema for describing datasets and other resources, a way to organize records in collections, and an <abbr title="Application Programming Interface">API</abbr> to access and interact with these collections. When finished, this standard will support the publication of metadata catalogs in conformance to the best practices in this document.</p> </section> <section id="c-dynamicdata"><div class="header-wrapper"><h3 id="x15-4-publishing-dynamic-and-large-datasets-on-the-web"><bdi class="secno">15.4 </bdi>Publishing dynamic and large datasets on the Web</h3><a class="self-link" href="#c-dynamicdata" aria-label="Permalink for Section 15.4"></a></div> <p>Large and complex datasets, for example, data gathered using automated sensors, may be impossible to download in their entirety due to their dynamic nature and potential volumes. It is therefore necessary in these cases to be able to adequately describe the structure of such data and how services interact to expose subsets of it — even individual records. Currently, there is no established Best Practice for dealing with this, especially when taking the spatial and temporal dimensions into account.</p> <p>Several approaches and standards have been recently developed: </p><ul> <li>web <abbr title="Application Programming Interfaces">APIs</abbr>, such as <a href="#dfn-ogc-api-features" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-ogc-api-features-3"><abbr title="Open Geospatial Consortium">OGC</abbr> <abbr title="Application Programming Interface">API</abbr> - Features</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-oaf1" title="OGC API - Features - Part 1: Core">OAF1</a></cite>] and <abbr title="Open Geospatial Consortium">OGC</abbr> <abbr title="Application Programming Interface">API</abbr> - EDR [<cite><a class="bibref" data-link-type="biblio" href="#bib-oaedr" title="OGC API - Environmental Data Retrieval Standard">OAEDR</a></cite>] (Environmental Data Retrieval) will soon have filter capabilities to allow one to extract a small subset of the data (<abbr title="Open Geospatial Consortium">OGC</abbr> <abbr title="Application Programming Interface">API</abbr> Features: Part 3), or <abbr title="Open Geospatial Consortium">OGC</abbr> <abbr title="Application Programming Interface">API</abbr> - EDR [OAEDR] (Environmental Data Retrieval) which allows multi-dimensional geometric patterns of data to be extracted, such as for points, polygons, cubes or trajectories.</li> <li>Cloud Optimised GeoTIFF (COG) [<cite><a class="bibref" data-link-type="biblio" href="#bib-cog" title="Cloud Optimized GeoTIFF">COG</a></cite>] explains how to optimize a large GeoTIFF file to allow the use of the general web architecture HTTP Range Requests. COG is under consideration as an <abbr title="Open Geospatial Consortium">OGC</abbr> standard, extending <abbr title="Open Geospatial Consortium">OGC</abbr>'s GeoTIFF</li> <li>Zarr [<cite><a class="bibref" data-link-type="biblio" href="#bib-zarr" title="Zarr">ZARR</a></cite>] provides for access to "chunks" within an n-dimensional array. Zarr is under consideration as an <abbr title="Open Geospatial Consortium">OGC</abbr> Community Standard.</li> <li>Cloud Optimised Point Cloud (COPC) enhances an LAZ file (LiDAR data) with an index to variable-sized chunks. COPC is a community development published in 2021; LAZ is the compressed form of the LAS format from the American Society for Photogrammetry and Remote Sensing (ASPRS).</li> <li>the RDF Data Cube vocabulary [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-data-cube" title="The RDF Data Cube Vocabulary">VOCAB-DATA-CUBE</a></cite>]. Large, complex datasets are common in the information processing world and commonly organized in “hypercubes” — where “data dimensions” are used to locate values holding results. RDF Data Cube is based on this dimensional model of data. It has been used to publish sensor data, but lacks a way to describe the spatio-temporal aspects of data, which are very important for observations. One of the work items in the Spatial Data on the Web working group has been to extend the existing RDF Data Cube ontology to support specification of key metadata required to interpret spatio-temporal data, called [<cite><a class="bibref" data-link-type="biblio" href="#bib-qb4st" title="QB4ST: RDF Data Cube extensions for spatio-temporal components">QB4ST</a></cite>].<p></p> <p>QB4ST is an extension to RDF Data Cube to provide mechanisms for defining spatio-temporal aspects of dimension and measure descriptions. It is intended to enable the development of semantic descriptions of specific spatio-temporal data elements by appropriate communities of interest, rather than to enumerate a static list of such definitions. It provides a minimal ontology of spatio-temporal properties and defines abstract classes for data cube components (i.e. dimensions and measures) that use these, to allow classification and discovery of specialized component definitions using general terms.</p> <p>QB4ST is designed to support the publication of consistently described re-usable and comparable definitions of spatial and temporal data elements by appropriate communities of practice. One obvious such case is the use of GPS coordinates described as decimal <a href="#dfn-latitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-latitude-21">latitude</a> and <a href="#dfn-longitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-longitude-19">longitude</a> measures. Another example is the intended publication of a register of <a href="#dfn-discrete-global-grid-system" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-discrete-global-grid-system-1">Discrete Global Grid Systems</a> (DGGS) by the <a href="https://www.ogc.org/about-ogc/committees/swg/"><abbr title="Open Geospatial Consortium">OGC</abbr> DGGS Working Group</a>. QB4ST is intended to support publication of descriptions of such data using a common set of attributes that can be attached to a property description (extending the available RDF-QB mechanisms for attributes of observations).</p> </li> </ul><p></p> </section> <section id="c-unitofmeasure"><div class="header-wrapper"><h3 id="x15-5-helping-software-understand-units-of-measure"><bdi class="secno">15.5 </bdi>Helping software understand units of measure</h3><a class="self-link" href="#c-unitofmeasure" aria-label="Permalink for Section 15.5"></a></div> <p>Spatial data is often concerned with measurements (distance, angles etc.) — for example, when specifying the position of a feature according to a <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-88">Coordinate Reference System</a> or the accuracy of that position.</p> <p>For measurement values to be correctly interpreted, a <em>unit of measurement</em> must also be specified. The challenge here is specifying units of measurement in a way that can be widely understood.</p> <p>As humans, we’re usually quite good at guessing. For example, given a discussion about the accuracy of a position, the assertion <code>±3.1 m</code> probably means 3.1 <em>meters</em>. That seems reasonable — but it might also be 3.1 <em>miles</em>. Unfortunately, software systems mostly lack the human ability to guess. So we need to unambiguously express which unit of measure is being used — and this is where the problems exist.</p> <p>There are essentially two mechanisms that can be used:</p> <ol> <li> <p>Use a named serialization scheme that provides string-literal notation for both base units and derived units. Given that there are an infinite number of derived units, such a serialization should specify a formal grammar that software applications use to interpret those strings; enabling automated conversion between units and other useful functions like verifying that two measured quantities can be combined based on the dimensionality of those measurements (e.g. you can’t combine a length with an area and get a sensible answer!).</p> </li> <li> <p>Use a URI; such as those provided by Quantities, Units, Dimensions and Data Types Ontologies (<a href="https://qudt.org/">QUDT</a>) and <a href="https://github.com/HajoRijgersberg/OM/blob/master/README.md">Ontology of units of Measure (OM)</a>. For example, the unit of measure <em>meter</em> has the URIs <code>http://qudt.org/vocab/unit/M</code> (QUDT) and <code>http://www.ontology-of-units-of-measure.org/resource/om-2/metre</code> (OM).</p> </li> </ol> <p>Earlier versions of [<cite><a class="bibref" data-link-type="biblio" href="#bib-gml" title="Geography Markup Language (GML) Encoding Standard">GML</a></cite>] required that every unit was specified using a URI. But, in practice, many were using symbols like "<code>m</code>" instead of a URI anyway, as they are shorter and often better understood. As a result, [<cite><a class="bibref" data-link-type="biblio" href="#bib-gml" title="Geography Markup Language (GML) Encoding Standard">GML</a></cite>] <span style="text-decoration: underline;">clause 8.2.3.6 MeasureType, UomIdentifier</span> now allows the <a href="https://unitsofmeasure.org/ucum">Unified Code for Units of Measure (UCUM)</a> unit of measure serialization in addition to URIs.</p> <p>If you choose to use a serialization scheme for expressing units of measure, you should select one that is well-known among your community of users.</p> <p>It’s also worth noting that, if your format or vocabulary allows, you should include a human readable label. For the simple case of displaying the data on a Web page, this removes the need to look up this information from the serialization scheme specification or vocabulary.</p> <p>The trouble with the use of serialization schemes is that we can’t assume client applications understand the notation. We need some mechanism to indicate which serialization is being used — either so that application developers can find the specification and source some software (e.g. the <a href="https://github.com/jmandel/ucum.js">ucum.js</a> library) to process the unit strings, or so that the client application can map the notation to a well-known URI whose definition conforms to a data model that the application can understand.</p> <p>There is no evidence of best practice here — nor is there consensus on which data model is best for describing units of measure. Possible approaches to identify the serialization scheme used include:</p> <ul> <li> <p>Provide this information in the data itself, e.g.:</p> <aside class="example" id="ex-uom-def-in-data"><div class="marker"> <a class="self-link" href="#ex-uom-def-in-data">Example<bdi> 67</bdi></a><span class="example-title">: Definiting use of UCUM named serialization scheme for units of measure</span> </div> <pre aria-busy="false"><code class="hljs json">{ <span class="hljs-attr">"@context"</span>: { <span class="hljs-attr">"type"</span>: <span class="hljs-string">"@type"</span>, <span class="hljs-attr">"value"</span>: <span class="hljs-string">"@value"</span>, <span class="hljs-attr">"rdf"</span>: <span class="hljs-string">"http://www.w3.org/1999/02/22-rdf-syntax-ns#"</span>, <span class="hljs-attr">"qudt"</span>: <span class="hljs-string">"http://qudt.org/schema/qudt#"</span>, <span class="hljs-attr">"skos"</span>: <span class="hljs-string">"http://www.w3.org/2004/02/skos/core#"</span>, <span class="hljs-attr">"measurement"</span>: <span class="hljs-string">"http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#hasDataValue"</span>, <span class="hljs-attr">"unit"</span>: <span class="hljs-string">"qudt:unit"</span>, <span class="hljs-attr">"label"</span>: {<span class="hljs-attr">"@id"</span>: <span class="hljs-string">"skos:prefLabel"</span>, <span class="hljs-attr">"@container"</span>: <span class="hljs-string">"@language"</span>}, <span class="hljs-attr">"symbol"</span>: <span class="hljs-string">"qudt:symbol"</span>, <span class="hljs-attr">"UCUM"</span>: <span class="hljs-string">"http://www.opengis.net/def/uom/UCUM/"</span> }, <span class="hljs-attr">"measurement"</span>: <span class="hljs-number">3.1</span>, <span class="hljs-attr">"unit"</span>: { <span class="hljs-attr">"label"</span>: { <span class="hljs-attr">"en"</span>: <span class="hljs-string">"meters"</span> }, <span class="hljs-attr">"symbol"</span>: { <span class="hljs-attr">"type"</span>: <span class="hljs-string">"UCUM"</span>, <span class="hljs-attr">"value"</span>: <span class="hljs-string">"m"</span> } } }</code></pre> </aside> <div class="note" id="issue-container-generatedID-53"><div role="heading" class="ednote-title marker" id="h-ednote-7" aria-level="4"><span>Editor's note</span></div><aside class=""> <p>Added pointer to other examples using units of measure.</p> </aside></div> <p>For other examples, see <a href="#desc-accuracy" class="practiceRef">Best Practice 16: Describe the positional accuracy of spatial data</a>.</p> </li> <li> <p>Provide this information in the description of the <abbr title="Application Programming Interface">API</abbr> that provides access to your data; see [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] <a href="https://www.w3.org/TR/dwbp/#documentYourAPI">Best Practice 25: Provide complete documentation for your <abbr title="Application Programming Interface">API</abbr></a>.</p> </li> <li> <p>Convey this information in the HTTP response headers; e.g. using the <em>profile</em> Link Relation Type [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc6906" title="The 'profile' Link Relation Type">RFC6906</a></cite>].</p> </li> </ul> <p>In summary, if you think that your users will need to support automated processing of units of measure, then, in lieu of widespread best practice, it will likely be worth engaging with your user community to determine how best to meet their needs.</p> <p>Looking to the future, the <a href="https://www.w3.org/WoT/IG/"><abbr title="World Wide Web Consortium">W3C</abbr> Web of Things Interest Group</a> has created a task force to address the challenges of semantic interoperability relating to units of measure, which may lead to emergence of best practices can be adopted by spatial data publishers.</p> </section> <section id="c-sameplaceas"><div class="header-wrapper"><h3 id="x15-6-defining-that-two-places-are-the-same"><bdi class="secno">15.6 </bdi>Defining that two places are the same</h3><a class="self-link" href="#c-sameplaceas" aria-label="Permalink for Section 15.6"></a></div> <p>Unlike administrative areas and other topographic features that have clearly defined boundaries, places often have ill-defined, fuzzy boundaries that are based on human perception of ‘place’; you can’t always define a boundary for a place. For example, <a href="https://www.ordnancesurvey.co.uk/products/linked-data">Edinburgh (osuk:4000000074558316)</a> the <em>named place</em>, published by <a href="https://www.ordnancesurvey.co.uk/">Ordnance Survey</a>, is described using only a notional point <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-105">geometry</a>; information is not provided about the geometric <a href="#dfn-extent" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-extent-16">extent</a>. Other examples of places with ill-defined, fuzzy <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-106">geometries</a> include <a href="http://sws.geonames.org/2212709/"><em>The Sahara</em></a>, the <em>American West</em> and <em>Renaissance Italy</em>. The relationships between places, with their ill-defined (or even absent) geometrical extents, defy description using the topological relationships which are computed mathematically from geometry.</p> <p>Given the lack of existing best practice, we propose the use of a <em>qualitative</em> assertion based on human perceptions to relate places that are deemed to be the same: <strong>samePlaceAs</strong>.</p> <p>Given that the notion of <em>place</em> concerns a social perspective, we consider it to be distinct from <em>location</em> which is based on <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-107">geometry</a>. As a result, <code>samePlaceAs</code> can be used to assert the imprecise, social perceptions about the equality of places. <code>samePlaceAs</code> does not overlap with the topological relationships described later in this best practice document that can be computed from geometry.</p> <p>As with all assertions of an imprecise nature that lack formal semantics, <code>samePlaceAs</code> may have limited value for semantic reasoning. Exactly what constitutes the ‘same place’ will always be somewhat debatable. For example, is <a href="https://dbpedia.org/page/Byzantium">ancient Byzantium</a> the same place as <a href="https://dbpedia.org/page/Istanbul">modern Istanbul</a>? Is a historical hotel that was moved across the street to save it from demolition in a redevelopment scheme that same place that it used to be?</p> <p>[<cite><a class="bibref" data-link-type="biblio" href="#bib-schema-org" title="Schema.org">SCHEMA-ORG</a></cite>] would be a good home for this link relation type. The definition would be something as follows:</p> <blockquote> <p><a href="https://schema.org/Thing"><code>Thing</code></a> > <a href="https://schema.org/Property"><code>Property</code></a> > <code>samePlaceAs</code></p> <p>Used to relate two places that are perceived to be the same; the physical <a href="#dfn-extent" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-extent-17">extent</a> of the two places should be broadly comparable but do not need to be equal in a topological or geometric sense.</p> <p><strong>Values expected to be one of these types:</strong> <a href="https://schema.org/Place"><code>Place</code></a></p> <p><strong>Used on these types:</strong> <a href="https://schema.org/Place"><code>Place</code></a></p> </blockquote> <p>However, the current definition of <a href="https://schema.org/Place"><code>schema:Place</code></a> is a little too general:</p> <blockquote>Entities that have a somewhat fixed, physical extension.</blockquote> <p>This definition includes <em>anything</em> with spatial extent (i.e. all <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-153">Spatial Things</a>); we would consider "my car keys" to be a Spatial Thing, but not a place.</p> </section> <section id="c-inboundlinks"><div class="header-wrapper"><h3 id="x15-7-discovering-what-refers-to-a-spatial-thing"><bdi class="secno">15.7 </bdi>Discovering what refers <em>to</em> a Spatial Thing</h3><a class="self-link" href="#c-inboundlinks" aria-label="Permalink for Section 15.7"></a></div> <p><a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-48">Links</a> by their nature are a directional relationship between source and target. Most often, a link is published within the dataset that describes the source resource specified in the link, enabling users to browse through information; traversing the links they find in documents (i.e. <em>outbound</em> links). While many links specify source and target resources that are described in the same dataset, it is commonplace, and encouraged as per the 5★ rating, to link <em>between</em> datasets, thereby 'stitching' together the Web of data. In these situations, a link refers to some remote target resource. A dataset access <abbr title="Application Programming Interface">API</abbr> may interpret such links to enable a user to specify a well-known URI of a <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-154">Spatial Thing</a> they are interested in (for example from popular data repositories such as <a href="http://www.geonames.org/">GeoNames</a>, <a href="https://www.wikidata.org/wiki/Wikidata:Main_Page">Wikidata</a> or <a href="http://wiki.dbpedia.org/">DBpedia</a>) in order to search for related information (see <a href="#convenience-apis" class="practiceRef">Best Practice 13: Expose spatial data through 'convenience <abbr title="Application Programming Interfaces">APIs</abbr>'</a> for more on <abbr title="Application Programming Interfaces">APIs</abbr> and search). But how does a user know of the existence of a link referring <em>to</em> their target Spatial Thing (and potentially identifying a related resource that is useful for their intended goal) when that link is published within a remote dataset resource (i.e. an <em>inbound</em> link)?</p> <p>Making these inbound <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-49">links</a> discoverable makes the Web of data symmetric; e.g. where both inbound and outbound links are visible to data users who may then choose to traverse them. However, links provide a secondary benefit in terms of a citation; indicating some subjective trustworthiness of the data (e.g. "it's good enough quality for me to use"). Not only do such link-based citations convey the value of the dataset in a way that the original publisher can objectively quantify (and hence continue to publish and maintain those datasets), but they can provide a subjective indication of quality; like a search engine’s page ranking algorithm, the larger the number of sources of inbound links, the greater the likelihood that a given dataset is of high quality.</p> <p>Search engines play an important role in the Web ecosystem; if <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-120">spatial data</a> is published in a way that is indexable by search engines (see <a href="#indexable-by-search-engines" class="practiceRef">Best Practice 2: Make your spatial data indexable by search engines</a>) then it should be possible to find the relationships between <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-155">Spatial Things</a>. However, the internals of search engines are opaque to most users, and the necessary query-patterns may not be offered.</p> <p>An alternative is to publish or harvest <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-50">links</a> into a common repository that can be queried. For example, the <a href="http://sameas.org"><sameAs></a> service exposes a collection of links defined using the <code>owl:sameAs</code> relation type that can be queried to find related resources. As an illustration, the HTTP GET request <a href="http://sameas.org/store/freebase/n3?uri=%3Chttp%3A%2F%2Frdf.freebase.com%2Fns%2Fm.02s5hd%3E"><code>http://sameas.org/store/freebase/n3?uri=<http://rdf.freebase.com/ns/m.02s5hd></code></a> finds four matches, all of which identify Anne Frank's House. The problem with this ad-hoc approach is that a client application would need to be configured to query an arbitrary number of known service end-points to discover <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-51">links</a> published across all the domains deemed of interest. As such, this kind of approach is only likely to be useful where one can alert the user community which services they should refer to.</p> <p>Publishing summary information about datasets and the <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-52">links</a> defined in them using the Vocabulary of Interlinked Datasets [<cite><a class="bibref" data-link-type="biblio" href="#bib-void" title="Describing Linked Datasets with the VoID Vocabulary">VoID</a></cite>] may provide a workable approach — but is yet to be widely adopted.</p> <p>In [<cite><a class="bibref" data-link-type="biblio" href="#bib-void" title="Describing Linked Datasets with the VoID Vocabulary">VoID</a></cite>], <a href="https://www.w3.org/TR/void/#linkset" class="externalDFN">Linksets</a> provide summary description of the relationships between two datasets; identifying the source and target datasets, the link relation type(s) used plus optional metadata such as URI templates for identifying participating resources and the number of <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-53">links</a> specified for each relation type, and may describe <em>technical features</em> such as <abbr title="Application Programming Interfaces">APIs</abbr> through which the participating datasets can be accessed.</p> <p>Applications could be configured to harvest [<cite><a class="bibref" data-link-type="biblio" href="#bib-void" title="Describing Linked Datasets with the VoID Vocabulary">VoID</a></cite>] descriptions from data publishers in their community, enabling them to build a searchable graph of relationships between datasets — a <em>Data Network</em>. Because this information is summarized at the set level, the data network graph is convenient to work with, allowing simple discovery of numbers and relation types of both <em>inbound</em> and <em>outbound</em> <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-54">links</a> within a given dataset. Once the presence of interesting links within a dataset has been identified, the user would then work directly with the dataset in question (or the <abbr title="Application Programming Interface">API</abbr> through which it is accessed) to acquire the detailed information about specific links defined in that dataset.</p> <p>Interactions such as those described above would be quite intensive for a human using a browser. However, the [<cite><a class="bibref" data-link-type="biblio" href="#bib-void" title="Describing Linked Datasets with the VoID Vocabulary">VoID</a></cite>] descriptions could be used to drive a software agent that hides much of the complexity from the user; for example, automatically harvesting individual <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-55">links</a> once a set-level relationship is considered interesting, and then allowing the user to traverse those links either forwards or backwards.</p> <p>As the use of [<cite><a class="bibref" data-link-type="biblio" href="#bib-void" title="Describing Linked Datasets with the VoID Vocabulary">VoID</a></cite>] becomes more widespread, best practices regarding its use in building a searchable <em>data network</em> may emerge.</p> </section> </section> <section class="appendix" id="applicability-formatVbp"><div class="header-wrapper"><h2 id="a-applicability-of-common-formats-to-implementation-of-best-practices"><bdi class="secno">A. </bdi>Applicability of common formats to implementation of best practices</h2><a class="self-link" href="#applicability-formatVbp" aria-label="Permalink for Appendix A."></a></div> <div> <p> This section gives two tables that aim to be helpful in selecting the right spatial data encoding in a given situation. There is not one most appropriate format: which format is best may depend on many things. The first table gives an overview of common spatial data formats; the second, an overview of common spatial data <a href="#dfn-resource-description-framework" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-resource-description-framework-23">RDF</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-rdf11-primer" title="RDF 1.1 Primer">RDF11-PRIMER</a></cite>] vocabularies. </p> </div> <p>The first table is a matrix of the common formats, showing in general terms how well these formats help achieve goals such as discoverability, granularity etc. </p> <p>Please note that all the listed formats are open and text-based.</p> <table class="simple" id="table-formats-matrix"> <caption>Common formats for spatial data and what you can or can't achieve with them.</caption> <thead> <tr> <th></th> <th>WKT</th> <th>GML</th> <th>KML</th> <th>GeoJSON</th> <th>HTML</th> </tr> </thead> <tbody> <tr> <th>Based on</th> <td><a href="#dfn-well-known-text" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-well-known-text-14">WKT</a></td> <td><a href="#dfn-extensible-markup-language" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-extensible-markup-language-8">XML</a></td> <td><a href="#dfn-extensible-markup-language" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-extensible-markup-language-9">XML</a></td> <td><a href="#dfn-javascript-object-notation" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-javascript-object-notation-11">JSON</a></td> <td>HTML</td> </tr> <tr> <th>Media type</th> <td><a href="https://www.iana.org/assignments/media-types/text"><code>text/plain</code></a></td> <td><a href="https://www.iana.org/assignments/media-types/application/gml+xml"><code>application/gml+xml</code></a></td> <td><a href="https://www.iana.org/assignments/media-types/application/vnd.google-earth.kml+xml"><code>application/vnd.google-earth.kml+xml</code></a>, <a href="https://www.iana.org/assignments/media-types/application/vnd.google-earth.kmz"><code>application/vnd.google-earth.kmz</code></a></td> <td><a href="https://www.iana.org/assignments/media-types/application/geo+json"><code>application/geo+json</code></a></td> <td><a href="https://www.iana.org/assignments/media-types/text/html"><code>text/html</code></a></td> </tr> <tr> <th>Usage</th> <td>Representation of 0D-2D geometries, CRS and CRS transformation</td> <td>Representation of Spatial Things and 0D-3D geometries. Comprehensive and supporting many use cases.</td> <td>Representation of Spatial Things and 0D-3D geometries. Main focus on spatial data visualization and interaction</td> <td>Representation of Spatial Things and 0D-2D geometries</td> <td>Description of Spatial Things and geometries can be embedded by using mechanisms as [<cite><a class="bibref" data-link-type="biblio" href="#bib-html-rdfa" title="HTML+RDFa 1.1 - Second Edition">HTML-RDFa</a></cite>], [<cite><a class="bibref" data-link-type="biblio" href="#bib-microdata" title="HTML Microdata">MICRODATA</a></cite>], [<cite><a class="bibref" data-link-type="biblio" href="#bib-json-ld" title="JSON-LD 1.0">JSON-LD</a></cite>], using vocabularies as [<cite><a class="bibref" data-link-type="biblio" href="#bib-schema-org" title="Schema.org">SCHEMA-ORG</a></cite>]</td> </tr> <tr> <th>Tool support</th> <td> <p>Widely supported in <a href="#dfn-geographic-information-system" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geographic-information-system-4">GIS</a> tools</p> <p>Supported by some Web libraries, usually converted in GeoJSON [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7946" title="The GeoJSON Format">RFC7946</a></cite>]</p> <p>Supported by most <a href="#dfn-triple-store" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-triple-store-5">triple stores</a></p> </td> <td> <p>Widely supported in <a href="#dfn-geographic-information-system" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geographic-information-system-5">GIS</a> tools</p> <p>Supported by some Web libraries, usually converted in GeoJSON [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7946" title="The GeoJSON Format">RFC7946</a></cite>], but not when the <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-108">geometry</a> is 3-dimensional (volumes)</p> <p>Supported only by <a href="#dfn-triple-store" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-triple-store-6">triple stores</a> supporting [<cite><a class="bibref" data-link-type="biblio" href="#bib-geosparql" title="GeoSPARQL - A Geographic Query Language for RDF Data">GeoSPARQL</a></cite>]</p> </td> <td> <p>Mainly supported by Earth browsers, as Google Earth</p> </td> <td> <p>Supported in some <a href="#dfn-geographic-information-system" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geographic-information-system-6">GIS</a> tools</p> <p>Widely supported in Web libraries and mapping <abbr title="Application Programming Interfaces">APIs</abbr></p> </td> <td> <p>Optimal for Web publication and discovery</p> </td> </tr> <tr> <th>Web discoverability</th> <td>Low</td> <td>Low</td> <td>Low</td> <td>Low</td> <td>Good</td> </tr> <tr> <th><a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-56">Link</a> support</th> <td>No</td> <td>Via [<cite><a class="bibref" data-link-type="biblio" href="#bib-xlink11" title="XML Linking Language (XLink) Version 1.1">XLINK11</a></cite>]</td> <td>Via [<cite><a class="bibref" data-link-type="biblio" href="#bib-xlink11" title="XML Linking Language (XLink) Version 1.1">XLINK11</a></cite>]</td> <td>No</td> <td>Yes</td> </tr> <tr> <th colspan="6">Geometry specification</th> </tr> <tr> <th><a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-89">CRS</a> support</th> <td>Depends on the flavor — e.g., <a href="http://www.postgis.net/docs/ST_AsEWKT.html">EWKT</a> and [<cite><a class="bibref" data-link-type="biblio" href="#bib-geosparql" title="GeoSPARQL - A Geographic Query Language for RDF Data">GeoSPARQL</a></cite>]'s WKT support arbitrary CRSs, and the latter defaults to WGS 84 long/lat (CRS84)</td> <td>Any, and it can be explicitly specified (via attribute <code>@srsName</code>)</td> <td>WGS 84 long/lat (CRS84) only</td> <td>WGS 84 long/lat (CRS84) only</td> <td>Depends on the vocabulary used — e.g., [<cite><a class="bibref" data-link-type="biblio" href="#bib-schema-org" title="Schema.org">SCHEMA-ORG</a></cite>] supports WGS 84 only</td> </tr> <tr> <th><a href="#dfn-axis-order" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-axis-order-4">Axis order</a> support</th> <td>Any, but it cannot be explicitly specified — e.g., in [<cite><a class="bibref" data-link-type="biblio" href="#bib-simple-features" title="Simple Feature Access - Part 1: Common Architecture">SIMPLE-FEATURES</a></cite>]'s <a href="#dfn-well-known-text" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-well-known-text-15">WKT</a> and <a href="http://www.postgis.net/docs/ST_AsEWKT.html">EWKT</a> it defaults to longitude/latitude, whereas in [<cite><a class="bibref" data-link-type="biblio" href="#bib-geosparql" title="GeoSPARQL - A Geographic Query Language for RDF Data">GeoSPARQL</a></cite>]'s WKT it is determined by the CRS used</td> <td>Determined by the CRS used</td> <td>Longitude / latitude only, with optional altitude</td> <td>Longitude / latitude only, with optional altitude</td> <td>Depends on the vocabulary used — e.g., [<cite><a class="bibref" data-link-type="biblio" href="#bib-schema-org" title="Schema.org">SCHEMA-ORG</a></cite>] supports lat/long only</td> </tr> <tr> <th>3D support</th> <td>No</td> <td>Yes</td> <td>Yes</td> <td>No</td> <td>Depends on the vocabulary used — e.g., [<cite><a class="bibref" data-link-type="biblio" href="#bib-schema-org" title="Schema.org">SCHEMA-ORG</a></cite>] does not support 3D geometries</td> </tr> </tbody> </table> <div class="note" role="note" id="issue-container-generatedID-54"><div role="heading" class="note-title marker" id="h-note-45" aria-level="3"><span>Note</span></div><aside class=""> <p>Formats such as <a href="https://en.wikipedia.org/wiki/GRIB"><abbr title="Gridded Binary">GRIB</abbr></a>, <a href="https://en.wikipedia.org/wiki/Hierarchical_Data_Format"><abbr title="Hierarchical Data Format">HDF</abbr></a> and <a href="https://en.wikipedia.org/wiki/NetCDF"><abbr title="Network Common Data Format">netCDF</abbr></a> are used pervasively throughout the sciences to encode <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-121">spatial data</a>. However, working with data in these formats requires specialist software which is not typically available within a Web browser, thereby driving people to download the data to use offline. Technically, there is nothing that stops one from writing, say, a <abbr title="Gridded Binary">GRIB</abbr> decoder in JavaScript — but none exist today.</p> <p>All the formats listed in the table above are easy to work with directly in a Web browser, because they share characteristics such as:</p> <ol> <li>being text-based, thereby avoiding the need for specialist decoder software;</li> <li>enabling data to be packaged into individual files small enough to load entirely into a Web browser's memory;</li> <li>providing a mechanism to link between files, so that larger datasets can be split into sets of smaller linked files; and</li> <li>using open, non-proprietary specifications.</li> </ol> <p>The ability to work with scientific spatial data in a Web browser was the driving motivation for [<cite><a class="bibref" data-link-type="biblio" href="#bib-covjson-overview" title="Overview of the CoverageJSON format">COVJSON-OVERVIEW</a></cite>]. <abbr title="Open Geospatial Consortium">OGC</abbr> has now adopted CoverageJSOn as a formal Community Standard.</p> </aside></div> <p>The following table compares common spatial data vocabularies and what you can do with them.</p> <p>Additional vocabularies can be discovered from <a href="https://lov.linkeddata.es/dataset/lov/">Linked Open Vocabularies (LOV)</a>; using search terms like '<a href="https://lov.linkeddata.es/dataset/lov/terms?q=location">location</a>' and '<a href="https://lov.linkeddata.es/dataset/lov/terms?q=place">place</a>', or tags <a href="https://lov.linkeddata.es/dataset/lov/vocabs?tag=Geography">Geography</a>, <a href="https://lov.linkeddata.es/dataset/lov/vocabs?tag=Geometry">Geometry</a> and <a href="https://lov.linkeddata.es/dataset/lov/vocabs?tag=Time">Time</a>.</p> <div class="note" id="issue-container-generatedID-55"><div role="heading" class="ednote-title marker" id="h-ednote-8" aria-level="3"><span>Editor's note</span></div><aside class=""> <p>Added column for [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-dcat-2" title="Data Catalog Vocabulary (DCAT) - Version 2">VOCAB-DCAT-2</a></cite>].</p> </aside></div> <table class="simple" id="table-vocabs-matrix"> <caption>Common spatial vocabularies, and what you can and can't do with them.</caption> <thead> <tr> <th></th> <th>[<cite><a class="bibref" data-link-type="biblio" href="#bib-dcterms" title="DCMI Metadata Terms">DCTERMS</a></cite>]</th> <th>[<cite><a class="bibref" data-link-type="biblio" href="#bib-w3c-basic-geo" title="Basic Geo (WGS84 lat/long) Vocabulary">W3C-BASIC-GEO</a></cite>]</th> <th>[<cite><a class="bibref" data-link-type="biblio" href="#bib-vcard-rdf" title="vCard Ontology - for describing People and Organizations">VCARD-RDF</a></cite>]</th> <th>[<cite><a class="bibref" data-link-type="biblio" href="#bib-georss" title="W3C Geospatial Vocabulary">GeoRSS</a></cite>]</th> <th>[<cite><a class="bibref" data-link-type="biblio" href="#bib-schema-org" title="Schema.org">SCHEMA-ORG</a></cite>]</th> <th>[<cite><a class="bibref" data-link-type="biblio" href="#bib-geosparql" title="GeoSPARQL - A Geographic Query Language for RDF Data">GeoSPARQL</a></cite>]</th> <th>[<cite><a class="bibref" data-link-type="biblio" href="#bib-locn" title="ISA Programme Location Core Vocabulary">LOCN</a></cite>]</th> <th>[<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-dcat-2" title="Data Catalog Vocabulary (DCAT) - Version 2">VOCAB-DCAT-2</a></cite>]</th> </tr> </thead> <tbody> <tr> <th>Description</th> <td>Includes terms for describing location and temporal information, as classes <a href="http://purl.org/dc/terms/Location"><code>dcterms:Location</code></a>, <a href="http://purl.org/dc/terms/PeriodOfTime"><code>dcterms:PeriodOfTime</code></a>, and properties <a href="http://purl.org/dc/terms/spatial"><code>dcterms:spatial</code></a>, <a href="http://purl.org/dc/terms/temporal"><code>dcterms:temporal</code></a>, and <a href="http://purl.org/dc/terms/coverage"><code>dcterms:coverage</code></a>.</td> <td>A widely used vocabulary, although not an official standard, for specifying point coordinates in the WGS 84 <a href="#dfn-datum" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-datum-20">datum</a>.</td> <td>Includes terms for describing <a href="https://www.w3.org/TR/vcard-rdf/#Delivery_Addressing_Properties">postal addresses</a> and <a href="https://www.w3.org/TR/vcard-rdf/#Geographical_Properties">0D geometries</a> (points).</td> <td> <p>Vocabulary defined by the <abbr title="World Wide Web Consortium">W3C</abbr> Geospatial Incubator Group (GeoXG) for the representation of geospatial properties of Web resources.</p> <p>On 28 March 2017, [<cite><a class="bibref" data-link-type="biblio" href="#bib-georss" title="W3C Geospatial Vocabulary">GeoRSS</a></cite>] has been proposed as a <a href="https://www.ogc.org/pressroom/pressreleases/2570">candidate <abbr title="Open Geospatial Consortium">OGC</abbr> Community Standard</a>.</p></td> <td>Designed for annotating Web pages with machine-readable metadata, it supports a number of classes and properties for specifying location information, including <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-109">geometries</a>. See <a href="#indexable-by-search-engines">Best Practice 2: Make your spatial data indexable by search engines</a> for more information.</td> <td>Official <abbr title="Open Geospatial Consortium">OGC</abbr> standard, defining a set of terms and functions for modeling and querying spatial information. Coordinates are encoded by using <a href="#dfn-well-known-text" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-well-known-text-16">WKT</a> or [<cite><a class="bibref" data-link-type="biblio" href="#bib-gml" title="Geography Markup Language (GML) Encoding Standard">GML</a></cite>].</td> <td>Defines a set of general terms for describing location information that can be extended based on domain-specific requirements. Covers geographical names, <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-110">geometries</a>, and postal addresses.</td> <td>Reuses [<cite><a class="bibref" data-link-type="biblio" href="#bib-dcterms" title="DCMI Metadata Terms">DCTERMS</a></cite>]. [<cite><a class="bibref" data-link-type="biblio" href="#bib-owl-time" title="Time Ontology in OWL">OWL-TIME</a></cite>], and [<cite><a class="bibref" data-link-type="biblio" href="#bib-locn" title="ISA Programme Location Core Vocabulary">LOCN</a></cite>] for describing location and temporal information, and it defines additional terms — namely, <a href="https://www.w3.org/TR/vocab-dcat-2/#Property:location_centroid"><code>dcat:centroid</code></a>, <a href="https://www.w3.org/TR/vocab-dcat-2/#Property:location_bbox"><code>dcat:bbox</code></a>, <a href="https://www.w3.org/TR/vocab-dcat-2/#Property:period_start_date"><code>dcat:startDate</code></a>, <a href="https://www.w3.org/TR/vocab-dcat-2/#Property:period_end_date"><code>dcat:endDate</code></a>, <a href="https://www.w3.org/TR/vocab-dcat-2/#Property:dataset_spatial_resolution"><code>dcat:spatialResolutionInMeters</code></a>, <a href="https://www.w3.org/TR/vocab-dcat-2/#Property:dataset_temporal_resolution"><code>dcat:temporalResolution</code></a>.</td> </tr> <tr> <th>Spatial things</th> <td><a href="http://purl.org/dc/terms/Location"><code>dcterms:Location</code></a></td> <td><code>w3cgeo:SpatialThing</code></td> <td><a href="https://www.w3.org/TR/vcard-rdf/#d4e1819"><code>vcard:Kind</code></a>, and its subclasses; <a href="https://www.w3.org/TR/vcard-rdf/#d4e1292"><code>vcard:Address</code></a></td> <td><code>georss:_Feature</code> is placeholder for <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-156">Spatial Thing</a></td> <td><a href="https://schema.org/Place"><code>schema:Place</code></a>, and its subclasses; <a href="https://schema.org/PostalAddress"><code>schema:PostalAddress</code></a></td> <td><code>geosparql:Feature</code></td> <td><a href="https://www.w3.org/ns/locn#dcterms:Location"><code>dcterms:Location</code></a>, <a href="https://www.w3.org/ns/locn#locn:Address"><code>locn:Address</code></a></td> <td><a href="http://purl.org/dc/terms/Location"><code>dcterms:Location</code></a></td> </tr> <tr> <th>Properties to associate <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-157">Spatial Things</a> with <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-111">geometries</a></th> <td>-</td> <td><code>w3cgeo:location</code>, <code>w3cgeo:lat_long</code>, <code>w3cgeo:lat</code>, <code>w3cgeo:long</code>, <code>w3cgeo:alt</code></td> <td><a href="https://www.w3.org/TR/vcard-rdf/#d4e239"><code>vcard:hasGeo</code></a></td> <td><a href="https://www.w3.org/2005/Incubator/geo/XGR-geo-20071023/#where"><code>georss:where</code></a>, <a href="https://www.w3.org/2005/Incubator/geo/XGR-geo-20071023/#point"><code>georss:point</code></a>, <a href="https://www.w3.org/2005/Incubator/geo/XGR-geo-20071023/#line"><code>georss:line</code></a>, <a href="https://www.w3.org/2005/Incubator/geo/XGR-geo-20071023/#polygon"><code>georss:polygon</code></a>, <a href="https://www.w3.org/2005/Incubator/geo/XGR-geo-20071023/#box"><code>georss:box</code></a></td> <td><a href="https://schema.org/geo"><code>schema:geo</code></a></td> <td><code>geosparql:hasGeometry</code>, <code>geosparql:defaultGeometry</code></td> <td><a href="https://www.w3.org/ns/locn#locn:geometry"><code>locn:geometry</code></a></td> <td><a href="https://www.w3.org/ns/locn#locn:geometry"><code>locn:geometry</code></a>, <a href="https://www.w3.org/TR/vocab-dcat-2/#Property:location_centroid"><code>dcat:centroid</code></a>, <a href="https://www.w3.org/TR/vocab-dcat-2/#Property:location_bbox"><code>dcat:bbox</code></a></td> </tr> <tr> <th><a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-112">Geometries</a></th> <td>-</td> <td><code>w3cgeo:Point</code> (subclass of <code>w3cgeo:SpatialThing</code>)</td> <td>Geometries are represented with the <code>geo</code> URI scheme [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc5870" title="A Uniform Resource Identifier for Geographic Locations ('geo' URI)">RFC5870</a></cite>]</td> <td>Geometries are represented with a literal encoding of point coordinates</td> <td> <ul> <li><a href="https://schema.org/GeoCoordinates"><code>schema:GeoCoordinates</code></a></li> <li><a href="https://schema.org/GeoShape"><code>schema:GeoShape</code></a></li> <li><a href="https://schema.org/GeoCircle"><code>schema:GeoCircle</code></a></li> </ul> </td> <td><code>geosparql:Geometry</code>, and its subclasses (<code>sf:Point</code>, <code>sf:Polygon</code>, etc.)</td> <td><a href="https://www.w3.org/ns/locn#locn:Geometry"><code>locn:Geometry</code></a> (it denotes either a structured object or a literal)</td> <td></td> </tr> <tr> <th colspan="9">Geometry specification</th> </tr> <tr> <th><a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-90">CRS</a> support</th> <td>-</td> <td>WGS 84 only</td> <td>WGS 84 only</td> <td>WGS 84 only</td> <td>WGS 84 only</td> <td>Any</td> <td>Any (depends on how the geometry is represented)</td> <td>Any (depends on how the geometry is represented)</td> </tr> <tr> <th><a href="#dfn-axis-order" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-axis-order-5">Axis order</a> support</th> <td>-</td> <td>lat/long only</td> <td>lat/long only</td> <td>lat/long only</td> <td>lat/long only</td> <td>Determined by the CRS used</td> <td>Any (depends on how the geometry is represented)</td> <td>Any (depends on how the geometry is represented)</td> </tr> <tr> <th>0D support</th> <td>-</td> <td>lat/long coordinate pair (<code>w3cgeo:lat_long</code>), decimal degrees (<code>w3cgeo:lat</code>, <code>w3cgeo:long</code>), decimal meters (<code>w3cgeo:alt</code>)</td> <td><code>geo</code> URI scheme [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc5870" title="A Uniform Resource Identifier for Geographic Locations ('geo' URI)">RFC5870</a></cite>]</td> <td>lat/long coordinate pair</td> <td>lat/long coordinate pair</td> <td>[<cite><a class="bibref" data-link-type="biblio" href="#bib-gml" title="Geography Markup Language (GML) Encoding Standard">GML</a></cite>], <a href="#dfn-well-known-text" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-well-known-text-17">WKT</a></td> <td>[<cite><a class="bibref" data-link-type="biblio" href="#bib-gml" title="Geography Markup Language (GML) Encoding Standard">GML</a></cite>], <a href="#dfn-well-known-text" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-well-known-text-18">WKT</a>, GeoJSON [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7946" title="The GeoJSON Format">RFC7946</a></cite>], <code>geo</code> URI scheme [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc5870" title="A Uniform Resource Identifier for Geographic Locations ('geo' URI)">RFC5870</a></cite>], <a href="#dfn-geohash" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geohash-4">Geohash</a></td> <td>[<cite><a class="bibref" data-link-type="biblio" href="#bib-gml" title="Geography Markup Language (GML) Encoding Standard">GML</a></cite>], <a href="#dfn-well-known-text" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-well-known-text-19">WKT</a>, GeoJSON [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7946" title="The GeoJSON Format">RFC7946</a></cite>]</td> </tr> <tr> <th>1D and 2D support</th> <td>-</td> <td>-</td> <td>-</td> <td>lat/long coordinate pairs, separated by a comma</td> <td>lat/long coordinate pairs, separated by a comma or a space</td> <td>[<cite><a class="bibref" data-link-type="biblio" href="#bib-gml" title="Geography Markup Language (GML) Encoding Standard">GML</a></cite>], <a href="#dfn-well-known-text" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-well-known-text-20">WKT</a></td> <td>[<cite><a class="bibref" data-link-type="biblio" href="#bib-gml" title="Geography Markup Language (GML) Encoding Standard">GML</a></cite>], <a href="#dfn-well-known-text" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-well-known-text-21">WKT</a>, GeoJSON [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7946" title="The GeoJSON Format">RFC7946</a></cite>]</td> <td>[<cite><a class="bibref" data-link-type="biblio" href="#bib-gml" title="Geography Markup Language (GML) Encoding Standard">GML</a></cite>], <a href="#dfn-well-known-text" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-well-known-text-22">WKT</a>, GeoJSON [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7946" title="The GeoJSON Format">RFC7946</a></cite>]</td> </tr> <tr> <th>3D support</th> <td>-</td> <td>-</td> <td>-</td> <td>-</td> <td>-</td> <td>[<cite><a class="bibref" data-link-type="biblio" href="#bib-gml" title="Geography Markup Language (GML) Encoding Standard">GML</a></cite>]</td> <td>[<cite><a class="bibref" data-link-type="biblio" href="#bib-gml" title="Geography Markup Language (GML) Encoding Standard">GML</a></cite>]</td> <td>[<cite><a class="bibref" data-link-type="biblio" href="#bib-gml" title="Geography Markup Language (GML) Encoding Standard">GML</a></cite>]</td> </tr> </tbody> </table> <div class="note" role="note" id="issue-container-generatedID-56"><div role="heading" class="note-title marker" id="h-note-46" aria-level="3"><span>Note</span></div><aside class=""> <p>An update to [<cite><a class="bibref" data-link-type="biblio" href="#bib-geosparql" title="GeoSPARQL - A Geographic Query Language for RDF Data">GeoSPARQL</a></cite>] is in progress to divide the vocabulary into several modules for distinct levels of functionality and ease of use.</p> </aside></div> </section> <section class="appendix informative" id="BP_Benefits"><div class="header-wrapper"><h2 id="b-best-practices-benefits"><bdi class="secno">B. </bdi>Best Practices Benefits</h2><a class="self-link" href="#BP_Benefits" aria-label="Permalink for Appendix B."></a></div><p><em>This section is non-normative.</em></p> <p>The list below describes the main benefits of applying the Spatial Data on the Web Best Practice. The benefits are identical to those defined in [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>]. Each benefit represents an improvement in the way how spatial datasets are available on the Web.</p> <ul> <li>Comprehension: humans will have a better understanding about the data structure, the data meaning, the metadata and the nature of the dataset. </li> <li>Processability: machines will be able to automatically process and manipulate the data within a dataset.</li> <li>Discoverability machines will be able to automatically discover a dataset or data within a dataset.</li> <li>Reuse: the chances of dataset reuse by different groups of data consumers will increase.</li> <li>Trust: the confidence that consumers have in the dataset will improve.</li> <li>Linkability: it will be possible to create <a href="#dfn-link" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-link-57">links</a> between data resources (datasets and data items).</li> <li>Access: humans and machines will be able to access up to date data in a variety of forms.</li> <li>Interoperability: it will be easier to reach consensus among data publishers and consumers.</li> </ul> <p>The following table relates Best Practices and Benefits.</p> <table class="simple bptable" id="bpbenefitstable"> <caption>Best Practices and Benefits</caption> <thead> <tr> <th>Best Practice</th> <th>Benefits</th> </tr> </thead> <tbody> <tr><td><a href="#globally-unique-ids">Use globally unique persistent HTTP URIs for Spatial Things</a></td><td><ul class="benefitsList"><li class="hidden">Discoverability</li><li class="hidden">Reuse</li><li class="hidden">Linkability</li><li class="icon"><img src="images/discoverability.svg" alt="Discoverability" class="benefitIcon discoverabilityIcon"></li><li class="icon"><img src="images/reuse.svg" alt="Reuse" class="benefitIcon reuseIcon"></li><li class="icon"><img src="images/linkability.svg" alt="Linkability" class="benefitIcon linkabilityIcon"></li></ul></td></tr><tr><td><a href="#indexable-by-search-engines">Make your spatial data indexable by search engines</a></td><td><ul class="benefitsList"><li class="hidden">Discoverability</li><li class="hidden">Reuse</li><li class="icon"><img src="images/discoverability.svg" alt="Discoverability" class="benefitIcon discoverabilityIcon"></li><li class="icon"><img src="images/reuse.svg" alt="Reuse" class="benefitIcon reuseIcon"></li></ul></td></tr><tr><td><a href="#linking">Link resources together to create the Web of data</a></td><td><ul class="benefitsList"><li class="hidden">Comprehension</li><li class="hidden">Processability</li><li class="hidden">Reuse</li><li class="hidden">Interoperability</li><li class="icon"><img src="images/comprehension.svg" alt="Comprehension" class="benefitIcon comprehensionIcon"></li><li class="icon"><img src="images/processability.svg" alt="Processability" class="benefitIcon processabilityIcon"></li><li class="icon"><img src="images/reuse.svg" alt="Reuse" class="benefitIcon reuseIcon"></li><li class="icon"><img src="images/interoperability.svg" alt="Interoperability" class="benefitIcon interoperabilityIcon"></li></ul></td></tr><tr><td><a href="#semantic-thing">Use spatial data encodings that match your target audience</a></td><td><ul class="benefitsList"><li class="hidden">Comprehension</li><li class="hidden">Processability</li><li class="hidden">Reuse</li><li class="hidden">Interoperability</li><li class="hidden">Access</li><li class="icon"><img src="images/comprehension.svg" alt="Comprehension" class="benefitIcon comprehensionIcon"></li><li class="icon"><img src="images/processability.svg" alt="Processability" class="benefitIcon processabilityIcon"></li><li class="icon"><img src="images/reuse.svg" alt="Reuse" class="benefitIcon reuseIcon"></li><li class="icon"><img src="images/interoperability.svg" alt="Interoperability" class="benefitIcon interoperabilityIcon"></li><li class="icon"><img src="images/access.svg" alt="Access" class="benefitIcon accessIcon"></li></ul></td></tr><tr><td><a href="#describe-geometry">Provide geometries on the Web in a usable way</a></td><td><ul class="benefitsList"><li class="hidden">Processability</li><li class="hidden">Reuse</li><li class="hidden">Interoperability</li><li class="hidden">Access</li><li class="icon"><img src="images/processability.svg" alt="Processability" class="benefitIcon processabilityIcon"></li><li class="icon"><img src="images/reuse.svg" alt="Reuse" class="benefitIcon reuseIcon"></li><li class="icon"><img src="images/interoperability.svg" alt="Interoperability" class="benefitIcon interoperabilityIcon"></li><li class="icon"><img src="images/access.svg" alt="Access" class="benefitIcon accessIcon"></li></ul></td></tr><tr><td><a href="#multiplegeometries">Provide geometries at the right level of accuracy, precision, and size</a></td><td><ul class="benefitsList"><li class="hidden">Processability</li><li class="hidden">Reuse</li><li class="hidden">Access</li><li class="icon"><img src="images/processability.svg" alt="Processability" class="benefitIcon processabilityIcon"></li><li class="icon"><img src="images/reuse.svg" alt="Reuse" class="benefitIcon reuseIcon"></li><li class="icon"><img src="images/access.svg" alt="Access" class="benefitIcon accessIcon"></li></ul></td></tr><tr><td><a href="#bp-crs-choice">Choose coordinate reference systems to suit your user's applications</a></td><td><ul class="benefitsList"><li class="hidden">Comprehension</li><li class="hidden">Processability</li><li class="hidden">Reuse</li><li class="hidden">Interoperability</li><li class="hidden">Access</li><li class="icon"><img src="images/comprehension.svg" alt="Comprehension" class="benefitIcon comprehensionIcon"></li><li class="icon"><img src="images/processability.svg" alt="Processability" class="benefitIcon processabilityIcon"></li><li class="icon"><img src="images/reuse.svg" alt="Reuse" class="benefitIcon reuseIcon"></li><li class="icon"><img src="images/interoperability.svg" alt="Interoperability" class="benefitIcon interoperabilityIcon"></li><li class="icon"><img src="images/access.svg" alt="Access" class="benefitIcon accessIcon"></li></ul></td></tr><tr><td><a href="#bp-crs">State how coordinate values are encoded</a></td><td><ul class="benefitsList"><li class="hidden">Comprehension</li><li class="hidden">Processability</li><li class="hidden">Reuse</li><li class="hidden">Interoperability</li><li class="icon"><img src="images/comprehension.svg" alt="Comprehension" class="benefitIcon comprehensionIcon"></li><li class="icon"><img src="images/processability.svg" alt="Processability" class="benefitIcon processabilityIcon"></li><li class="icon"><img src="images/reuse.svg" alt="Reuse" class="benefitIcon reuseIcon"></li><li class="icon"><img src="images/interoperability.svg" alt="Interoperability" class="benefitIcon interoperabilityIcon"></li></ul></td></tr><tr><td><a href="#relative-position">Describe relative positioning</a></td><td><ul class="benefitsList"><li class="hidden">Processability</li><li class="icon"><img src="images/processability.svg" alt="Processability" class="benefitIcon processabilityIcon"></li></ul></td></tr><tr><td><a href="#entity-level-links">Use appropriate relation types to link Spatial Things</a></td><td><ul class="benefitsList"><li class="hidden">Comprehension</li><li class="hidden">Processability</li><li class="hidden">Linkability</li><li class="hidden">Interoperability</li><li class="icon"><img src="images/comprehension.svg" alt="Comprehension" class="benefitIcon comprehensionIcon"></li><li class="icon"><img src="images/processability.svg" alt="Processability" class="benefitIcon processabilityIcon"></li><li class="icon"><img src="images/linkability.svg" alt="Linkability" class="benefitIcon linkabilityIcon"></li><li class="icon"><img src="images/interoperability.svg" alt="Interoperability" class="benefitIcon interoperabilityIcon"></li></ul></td></tr><tr><td><a href="#desc-changing-properties">Provide information on the changing nature of spatial things</a></td><td><ul class="benefitsList"><li class="hidden">Comprehension</li><li class="hidden">Trust</li><li class="hidden">Access</li><li class="icon"><img src="images/comprehension.svg" alt="Comprehension" class="benefitIcon comprehensionIcon"></li><li class="icon"><img src="images/trust.svg" alt="Trust" class="benefitIcon trustIcon"></li><li class="icon"><img src="images/access.svg" alt="Access" class="benefitIcon accessIcon"></li></ul></td></tr><tr><td><a href="#validation">Expose spatial data validation schemas online</a></td><td><ul class="benefitsList"><li class="hidden">Processability</li><li class="hidden">Reuse</li><li class="hidden">Trust</li><li class="icon"><img src="images/processability.svg" alt="Processability" class="benefitIcon processabilityIcon"></li><li class="icon"><img src="images/reuse.svg" alt="Reuse" class="benefitIcon reuseIcon"></li><li class="icon"><img src="images/trust.svg" alt="Trust" class="benefitIcon trustIcon"></li></ul></td></tr><tr><td><a href="#convenience-apis">Expose spatial data through 'convenience <abbr title="Application Programming Interfaces">APIs</abbr>'</a></td><td><ul class="benefitsList"><li class="hidden">Access</li><li class="hidden">Reuse</li><li class="hidden">Interoperability</li><li class="icon"><img src="images/access.svg" alt="Access" class="benefitIcon accessIcon"></li><li class="icon"><img src="images/reuse.svg" alt="Reuse" class="benefitIcon reuseIcon"></li><li class="icon"><img src="images/interoperability.svg" alt="Interoperability" class="benefitIcon interoperabilityIcon"></li></ul></td></tr><tr><td><a href="#request-return-crs"> Support requesting and returning geometries in a specific CRS </a></td><td><ul class="benefitsList"><li class="hidden">Access</li><li class="hidden">Discoverability</li><li class="hidden">Processability</li><li class="hidden">Reuse</li><li class="icon"><img src="images/access.svg" alt="Access" class="benefitIcon accessIcon"></li><li class="icon"><img src="images/discoverability.svg" alt="Discoverability" class="benefitIcon discoverabilityIcon"></li><li class="icon"><img src="images/processability.svg" alt="Processability" class="benefitIcon processabilityIcon"></li><li class="icon"><img src="images/reuse.svg" alt="Reuse" class="benefitIcon reuseIcon"></li></ul></td></tr><tr><td><a href="#spatial-info-dataset-metadata">Include spatial metadata in dataset metadata</a></td><td><ul class="benefitsList"><li class="hidden">Comprehension</li><li class="hidden">Reuse</li><li class="hidden">Trust</li><li class="hidden">Discoverability</li><li class="icon"><img src="images/comprehension.svg" alt="Comprehension" class="benefitIcon comprehensionIcon"></li><li class="icon"><img src="images/reuse.svg" alt="Reuse" class="benefitIcon reuseIcon"></li><li class="icon"><img src="images/trust.svg" alt="Trust" class="benefitIcon trustIcon"></li><li class="icon"><img src="images/discoverability.svg" alt="Discoverability" class="benefitIcon discoverabilityIcon"></li></ul></td></tr><tr><td><a href="#desc-accuracy">Describe the positional accuracy of spatial data</a></td><td><ul class="benefitsList"><li class="hidden">Comprehension</li><li class="hidden">Reuse</li><li class="hidden">Trust</li><li class="hidden">Interoperability</li><li class="icon"><img src="images/comprehension.svg" alt="Comprehension" class="benefitIcon comprehensionIcon"></li><li class="icon"><img src="images/reuse.svg" alt="Reuse" class="benefitIcon reuseIcon"></li><li class="icon"><img src="images/trust.svg" alt="Trust" class="benefitIcon trustIcon"></li><li class="icon"><img src="images/interoperability.svg" alt="Interoperability" class="benefitIcon interoperabilityIcon"></li></ul></td></tr><tr><td><a href="#desc-responsible">Interact with spatial data in a responsible way</a></td><td><ul class="benefitsList"><li class="hidden">Trust</li><li class="icon"><img src="images/trust.svg" alt="Trust" class="benefitIcon trustIcon"></li></ul></td></tr></tbody> </table> <p>The figure below shows the benefits that data publishers will gain with adoption of the Best Practices.</p> <div id="benefitsTables"><div class="benefit-list-panel" id="benefitListReuse"><p class="benefitsPanelTitle">Reuse</p><p>All Best Practices</p></div><div class="benefit-list-panel" id="benefitListAccess"><p class="benefitsPanelTitle">Access</p><ul id="accessBPs"><li><a href="#semantic-thing">Use spatial data encodings that match your target audience</a></li><li><a href="#describe-geometry">Provide geometries on the Web in a usable way</a></li><li><a href="#multiplegeometries">Provide geometries at the right level of accuracy, precision, and size</a></li><li><a href="#bp-crs-choice">Choose coordinate reference systems to suit your user's applications</a></li><li><a href="#desc-changing-properties">Provide information on the changing nature of spatial things</a></li><li><a href="#convenience-apis">Expose spatial data through 'convenience <abbr title="Application Programming Interfaces">APIs</abbr>'</a></li><li><a href="#request-return-crs"> Support requesting and returning geometries in a specific CRS </a></li></ul></div><div class="benefit-list-panel" id="benefitListDiscoverability"><p class="benefitsPanelTitle">Discoverability</p><ul id="discoverabilityBPs"><li><a href="#globally-unique-ids">Use globally unique persistent HTTP URIs for Spatial Things</a></li><li><a href="#indexable-by-search-engines">Make your spatial data indexable by search engines</a></li><li><a href="#request-return-crs"> Support requesting and returning geometries in a specific CRS </a></li><li><a href="#spatial-info-dataset-metadata">Include spatial metadata in dataset metadata</a></li></ul></div><div class="benefit-list-panel" id="benefitListProcessability"><p class="benefitsPanelTitle">Processability</p><ul id="processabilityBPs"><li><a href="#linking">Link resources together to create the Web of data</a></li><li><a href="#semantic-thing">Use spatial data encodings that match your target audience</a></li><li><a href="#describe-geometry">Provide geometries on the Web in a usable way</a></li><li><a href="#multiplegeometries">Provide geometries at the right level of accuracy, precision, and size</a></li><li><a href="#bp-crs-choice">Choose coordinate reference systems to suit your user's applications</a></li><li><a href="#bp-crs">State how coordinate values are encoded</a></li><li><a href="#relative-position">Describe relative positioning</a></li><li><a href="#entity-level-links">Use appropriate relation types to link Spatial Things</a></li><li><a href="#validation">Expose spatial data validation schemas online</a></li><li><a href="#request-return-crs"> Support requesting and returning geometries in a specific CRS </a></li></ul></div><div class="benefit-list-panel" id="benefitListTrust"><p class="benefitsPanelTitle">Trust</p><ul id="trustBPs"><li><a href="#desc-changing-properties">Provide information on the changing nature of spatial things</a></li><li><a href="#validation">Expose spatial data validation schemas online</a></li><li><a href="#spatial-info-dataset-metadata">Include spatial metadata in dataset metadata</a></li><li><a href="#desc-accuracy">Describe the positional accuracy of spatial data</a></li><li><a href="#desc-responsible">Interact with spatial data in a responsible way</a></li></ul></div><div class="benefit-list-panel" id="benefitListInteroperability"><p class="benefitsPanelTitle">Interoperability</p><ul id="interoperabilityBPs"><li><a href="#linking">Link resources together to create the Web of data</a></li><li><a href="#semantic-thing">Use spatial data encodings that match your target audience</a></li><li><a href="#describe-geometry">Provide geometries on the Web in a usable way</a></li><li><a href="#bp-crs-choice">Choose coordinate reference systems to suit your user's applications</a></li><li><a href="#bp-crs">State how coordinate values are encoded</a></li><li><a href="#entity-level-links">Use appropriate relation types to link Spatial Things</a></li><li><a href="#convenience-apis">Expose spatial data through 'convenience <abbr title="Application Programming Interfaces">APIs</abbr>'</a></li><li><a href="#desc-accuracy">Describe the positional accuracy of spatial data</a></li></ul></div><div class="benefit-list-panel" id="benefitListLinkability"><p class="benefitsPanelTitle">Linkability</p><ul id="linkabilityBPs"><li><a href="#globally-unique-ids">Use globally unique persistent HTTP URIs for Spatial Things</a></li><li><a href="#entity-level-links">Use appropriate relation types to link Spatial Things</a></li></ul></div><div class="benefit-list-panel" id="benefitListComprehension"><p class="benefitsPanelTitle">Comprehension</p><ul id="comprehensionBPs"><li><a href="#linking">Link resources together to create the Web of data</a></li><li><a href="#semantic-thing">Use spatial data encodings that match your target audience</a></li><li><a href="#bp-crs-choice">Choose coordinate reference systems to suit your user's applications</a></li><li><a href="#bp-crs">State how coordinate values are encoded</a></li><li><a href="#entity-level-links">Use appropriate relation types to link Spatial Things</a></li><li><a href="#desc-changing-properties">Provide information on the changing nature of spatial things</a></li><li><a href="#spatial-info-dataset-metadata">Include spatial metadata in dataset metadata</a></li><li><a href="#desc-accuracy">Describe the positional accuracy of spatial data</a></li></ul></div></div> </section> <section class="appendix" id="requirements"><div class="header-wrapper"><h2 id="c-cross-reference-of-use-case-requirements-against-best-practices"><bdi class="secno">C. </bdi>Cross reference of use case requirements against best practices</h2><a class="self-link" href="#requirements" aria-label="Permalink for Appendix C."></a></div> <p>The list below illustrates how the requirements defined in [<cite><a class="bibref" data-link-type="biblio" href="#bib-sdw-ucr" title="Spatial Data on the Web Use Cases & Requirements">SDW-UCR</a></cite>] are met by a combination of the best practices defined in this document (<em>Spatial Data Best Practices</em>) and those defined in [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] (<em>General Data Best Practices</em>).</p> <table class="simple bptable" id="requirementsbpstable"> <caption>Cross reference of requirements against best practices</caption> <thead> <tr> <th>Requirements</th> <th>Spatial Data Best Practice</th> <th>General Data Best Practice</th> </tr> </thead> <tbody> <tr><td><a href="https://www.w3.org/TR/sdw-ucr/#Linkability">Linkability</a></td><td><p><a href="#globally-unique-ids">Use globally unique persistent HTTP URIs for Spatial Things</a></p><p><a href="#indexable-by-search-engines">Make your spatial data indexable by search engines</a></p><p><a href="#linking">Link resources together to create the Web of data</a></p><p><a href="#semantic-thing">Use spatial data encodings that match your target audience</a></p><p><a href="#entity-level-links">Use appropriate relation types to link Spatial Things</a></p></td><td><p><a href="https://www.w3.org/TR/dwbp/#UniqueIdentifiers">Use persistent URIs as identifiers</a></p><p><a href="https://www.w3.org/TR/dwbp/#identifiersWithinDatasets">Use persistent URIs as identifiers within datasets</a></p><p><a href="https://www.w3.org/TR/dwbp/#VersionIdentifiers">Assign URIs to dataset versions and series</a></p></td></tr><tr><td><a href="https://www.w3.org/TR/sdw-ucr/#GeoreferencedData">GeoreferencedData</a></td><td><p><a href="#globally-unique-ids">Use globally unique persistent HTTP URIs for Spatial Things</a></p><p><a href="#semantic-thing">Use spatial data encodings that match your target audience</a></p><p><a href="#bp-crs">State how coordinate values are encoded</a></p></td><td></td></tr><tr><td><a href="https://www.w3.org/TR/sdw-ucr/#IndependenceOnReferenceSystems">IndependenceOnReferenceSystems</a></td><td><p><a href="#globally-unique-ids">Use globally unique persistent HTTP URIs for Spatial Things</a></p><p><a href="#describe-geometry">Provide geometries on the Web in a usable way</a></p></td><td><p><a href="https://www.w3.org/TR/dwbp/#LocaleParametersMetadata">Use locale-neutral data representations</a></p></td></tr><tr><td><a href="https://www.w3.org/TR/sdw-ucr/#BoundingBoxCentroid">BoundingBoxCentroid</a></td><td><p><a href="#indexable-by-search-engines">Make your spatial data indexable by search engines</a></p><p><a href="#describe-geometry">Provide geometries on the Web in a usable way</a></p><p><a href="#multiplegeometries">Provide geometries at the right level of accuracy, precision, and size</a></p><p><a href="#spatial-info-dataset-metadata">Include spatial metadata in dataset metadata</a></p></td><td></td></tr><tr><td><a href="https://www.w3.org/TR/sdw-ucr/#Crawlability">Crawlability</a></td><td><p><a href="#indexable-by-search-engines">Make your spatial data indexable by search engines</a></p><p><a href="#spatial-info-dataset-metadata">Include spatial metadata in dataset metadata</a></p></td><td><p><a href="https://www.w3.org/TR/dwbp/#ProvideMetadata">Provide metadata</a></p><p><a href="https://www.w3.org/TR/dwbp/#DescriptiveMetadata">Provide descriptive metadata</a></p><p><a href="https://www.w3.org/TR/dwbp/#StructuralMetadata">Provide structural metadata</a></p><p><a href="https://www.w3.org/TR/dwbp/#useanAPI">Make data available through an <abbr title="Application Programming Interface">API</abbr></a></p></td></tr><tr><td><a href="https://www.w3.org/TR/sdw-ucr/#Discoverability">Discoverability</a></td><td><p><a href="#indexable-by-search-engines">Make your spatial data indexable by search engines</a></p><p><a href="#semantic-thing">Use spatial data encodings that match your target audience</a></p><p><a href="#spatial-info-dataset-metadata">Include spatial metadata in dataset metadata</a></p></td><td><p><a href="https://www.w3.org/TR/dwbp/#ProvideMetadata">Provide metadata</a></p><p><a href="https://www.w3.org/TR/dwbp/#DescriptiveMetadata">Provide descriptive metadata</a></p><p><a href="https://www.w3.org/TR/dwbp/#StructuralMetadata">Provide structural metadata</a></p><p><a href="https://www.w3.org/TR/dwbp/#useanAPI">Make data available through an <abbr title="Application Programming Interface">API</abbr></a></p></td></tr><tr><td><a href="https://www.w3.org/TR/sdw-ucr/#MachineToMachine">MachineToMachine</a></td><td><p><a href="#indexable-by-search-engines">Make your spatial data indexable by search engines</a></p><p><a href="#linking">Link resources together to create the Web of data</a></p><p><a href="#semantic-thing">Use spatial data encodings that match your target audience</a></p><p><a href="#describe-geometry">Provide geometries on the Web in a usable way</a></p><p><a href="#relative-position">Describe relative positioning</a></p><p><a href="#entity-level-links">Use appropriate relation types to link Spatial Things</a></p><p><a href="#desc-changing-properties">Provide information on the changing nature of spatial things</a></p><p><a href="#desc-accuracy">Describe the positional accuracy of spatial data</a></p></td><td><p><a href="https://www.w3.org/TR/dwbp/#ProvideMetadata">Provide metadata</a></p><p><a href="https://www.w3.org/TR/dwbp/#DescriptiveMetadata">Provide descriptive metadata</a></p><p><a href="https://www.w3.org/TR/dwbp/#StructuralMetadata">Provide structural metadata</a></p><p><a href="https://www.w3.org/TR/dwbp/#useanAPI">Make data available through an <abbr title="Application Programming Interface">API</abbr></a></p></td></tr><tr><td><a href="https://www.w3.org/TR/sdw-ucr/#DeterminableCRS">DeterminableCRS</a></td><td><p><a href="#semantic-thing">Use spatial data encodings that match your target audience</a></p><p><a href="#bp-crs">State how coordinate values are encoded</a></p><p><a href="#request-return-crs"> Support requesting and returning geometries in a specific CRS </a></p></td><td><p><a href="https://www.w3.org/TR/dwbp/#ReuseVocabularies">Reuse vocabularies, preferably standardized ones</a></p></td></tr><tr><td><a href="https://www.w3.org/TR/sdw-ucr/#SpatialRelationships">SpatialRelationships</a></td><td><p><a href="#semantic-thing">Use spatial data encodings that match your target audience</a></p><p><a href="#entity-level-links">Use appropriate relation types to link Spatial Things</a></p></td><td></td></tr><tr><td><a href="https://www.w3.org/TR/sdw-ucr/#MultipleCRS">MultipleCRS</a></td><td><p><a href="#describe-geometry">Provide geometries on the Web in a usable way</a></p><p><a href="#request-return-crs"> Support requesting and returning geometries in a specific CRS </a></p></td><td></td></tr><tr><td><a href="https://www.w3.org/TR/sdw-ucr/#Compressible">Compressible</a></td><td><p><a href="#describe-geometry">Provide geometries on the Web in a usable way</a></p><p><a href="#multiplegeometries">Provide geometries at the right level of accuracy, precision, and size</a></p></td><td><p><a href="https://www.w3.org/TR/dwbp/#BulkAccess">Provide bulk download</a></p><p><a href="https://www.w3.org/TR/dwbp/#ProvideSubsets">Provide Subsets for Large Datasets</a></p></td></tr><tr><td><a href="https://www.w3.org/TR/sdw-ucr/#CRSDefinition">CRSDefinition</a></td><td><p><a href="#describe-geometry">Provide geometries on the Web in a usable way</a></p><p><a href="#bp-crs">State how coordinate values are encoded</a></p></td><td></td></tr><tr><td><a href="https://www.w3.org/TR/sdw-ucr/#EncodingForVectorGeometry">EncodingForVectorGeometry</a></td><td><p><a href="#describe-geometry">Provide geometries on the Web in a usable way</a></p></td><td><p><a href="https://www.w3.org/TR/dwbp/#MachineReadableStandardizedFormat">Use machine-readable standardized data formats</a></p></td></tr><tr><td><a href="https://www.w3.org/TR/sdw-ucr/#SpatialMetadata">SpatialMetadata</a></td><td><p><a href="#describe-geometry">Provide geometries on the Web in a usable way</a></p><p><a href="#spatial-info-dataset-metadata">Include spatial metadata in dataset metadata</a></p></td><td><p><a href="https://www.w3.org/TR/dwbp/#ProvideMetadata">Provide metadata</a></p><p><a href="https://www.w3.org/TR/dwbp/#DescriptiveMetadata">Provide descriptive metadata</a></p></td></tr><tr><td><a href="https://www.w3.org/TR/sdw-ucr/#3DSupport">3DSupport</a></td><td><p><a href="#describe-geometry">Provide geometries on the Web in a usable way</a></p></td><td><p><a href="https://www.w3.org/TR/dwbp/#ChooseRightFormalizationLevel">Choose the right formalization level</a></p></td></tr><tr><td><a href="https://www.w3.org/TR/sdw-ucr/#TimeDependentCRS">TimeDependentCRS</a></td><td><p><a href="#describe-geometry">Provide geometries on the Web in a usable way</a></p></td><td><p><a href="https://www.w3.org/TR/dwbp/#CiteOriginalPublication">Cite the Original Publication</a></p></td></tr><tr><td><a href="https://www.w3.org/TR/sdw-ucr/#TilingSupport">TilingSupport</a></td><td><p><a href="#describe-geometry">Provide geometries on the Web in a usable way</a></p></td><td></td></tr><tr><td><a href="https://www.w3.org/TR/sdw-ucr/#Compatibility">Compatibility</a></td><td><p><a href="#multiplegeometries">Provide geometries at the right level of accuracy, precision, and size</a></p><p><a href="#convenience-apis">Expose spatial data through 'convenience <abbr title="Application Programming Interfaces">APIs</abbr>'</a></p><p><a href="#spatial-info-dataset-metadata">Include spatial metadata in dataset metadata</a></p></td><td><p><a href="https://www.w3.org/TR/dwbp/#ReuseVocabularies">Reuse vocabularies, preferably standardized ones</a></p></td></tr><tr><td><a href="https://www.w3.org/TR/sdw-ucr/#CoordinatePrecision">CoordinatePrecision</a></td><td><p><a href="#multiplegeometries">Provide geometries at the right level of accuracy, precision, and size</a></p><p><a href="#bp-crs-choice">Choose coordinate reference systems to suit your user's applications</a></p></td><td><p><a href="https://www.w3.org/TR/dwbp/#DataQuality">Provide data quality information</a></p></td></tr><tr><td><a href="https://www.w3.org/TR/sdw-ucr/#AvoidCoordinateTransformations">AvoidCoordinateTransformations</a></td><td><p><a href="#bp-crs-choice">Choose coordinate reference systems to suit your user's applications</a></p><p><a href="#request-return-crs"> Support requesting and returning geometries in a specific CRS </a></p></td><td><p><a href="https://www.w3.org/TR/dwbp/#ReuseVocabularies">Reuse vocabularies, preferably standardized ones</a></p></td></tr><tr><td><a href="https://www.w3.org/TR/sdw-ucr/#LinkingCRS">LinkingCRS</a></td><td><p><a href="#bp-crs">State how coordinate values are encoded</a></p></td><td></td></tr><tr><td><a href="https://www.w3.org/TR/sdw-ucr/#SamplingTopology">SamplingTopology</a></td><td><p><a href="#relative-position">Describe relative positioning</a></p></td><td></td></tr><tr><td><a href="https://www.w3.org/TR/sdw-ucr/#SpatialOperators">SpatialOperators</a></td><td><p><a href="#entity-level-links">Use appropriate relation types to link Spatial Things</a></p><p><a href="#convenience-apis">Expose spatial data through 'convenience <abbr title="Application Programming Interfaces">APIs</abbr>'</a></p></td><td></td></tr><tr><td><a href="https://www.w3.org/TR/sdw-ucr/#MovingFeatures">MovingFeatures</a></td><td><p><a href="#desc-changing-properties">Provide information on the changing nature of spatial things</a></p></td><td></td></tr><tr><td><a href="https://www.w3.org/TR/sdw-ucr/#Streamable">Streamable</a></td><td><p><a href="#desc-changing-properties">Provide information on the changing nature of spatial things</a></p></td><td><p><a href="https://www.w3.org/TR/dwbp/#VersionIdentifiers">Assign URIs to dataset versions and series</a></p><p><a href="https://www.w3.org/TR/dwbp/#AccessRealTime">Provide real-time access</a></p><p><a href="https://www.w3.org/TR/dwbp/#AccessUptoDate">Provide data up to date</a></p></td></tr><tr><td><a href="https://www.w3.org/TR/sdw-ucr/#CoverageTemporalExtent">CoverageTemporalExtent</a></td><td><p><a href="#desc-changing-properties">Provide information on the changing nature of spatial things</a></p></td><td></td></tr><tr><td><a href="https://www.w3.org/TR/sdw-ucr/#Validation">Validation</a></td><td><p><a href="#validation">Expose spatial data validation schemas online</a></p></td><td></td></tr><tr><td><a href="https://www.w3.org/TR/sdw-ucr/#LightweightAPI">LightweightAPI</a></td><td><p><a href="#convenience-apis">Expose spatial data through 'convenience <abbr title="Application Programming Interfaces">APIs</abbr>'</a></p></td><td></td></tr><tr><td><a href="https://www.w3.org/TR/sdw-ucr/#ReferenceDataChunks">ReferenceDataChunks</a></td><td><p><a href="#convenience-apis">Expose spatial data through 'convenience <abbr title="Application Programming Interfaces">APIs</abbr>'</a></p></td><td></td></tr><tr><td><a href="https://www.w3.org/TR/sdw-ucr/#Provenance">Provenance</a></td><td><p><a href="#spatial-info-dataset-metadata">Include spatial metadata in dataset metadata</a></p></td><td><p><a href="https://www.w3.org/TR/dwbp/#DataProvenance">Provide data provenance information</a></p></td></tr><tr><td><a href="https://www.w3.org/TR/sdw-ucr/#QualityPerSample">QualityPerSample</a></td><td><p><a href="#desc-accuracy">Describe the positional accuracy of spatial data</a></p></td><td></td></tr><tr><td><a href="https://www.w3.org/TR/sdw-ucr/#MultilingualSupport">MultilingualSupport</a></td><td></td><td><p><a href="https://www.w3.org/TR/dwbp/#ProvideMetadata">Provide metadata</a></p><p><a href="https://www.w3.org/TR/dwbp/#DescriptiveMetadata">Provide descriptive metadata</a></p></td></tr><tr><td><a href="https://www.w3.org/TR/sdw-ucr/#SubjectEquality">SubjectEquality</a></td><td></td><td><p><a href="https://www.w3.org/TR/dwbp/#MultipleFormats">Provide data in multiple formats</a></p><p><a href="https://www.w3.org/TR/dwbp/#Conneg">Use content negotiation for serving data available in multiple formats</a></p></td></tr></tbody> </table> </section> <section class="appendix" id="FAIRPrinciples"><div class="header-wrapper"><h2 id="d-fair-principles"><bdi class="secno">D. </bdi>FAIR Principles</h2><a class="self-link" href="#FAIRPrinciples" aria-label="Permalink for Appendix D."></a></div> <p>The FAIR Principles are described at <a href="https://www.go-fair.org/fair-principles/">FAIR Principles - GO FAIR</a></p> <section id="findable"><div class="header-wrapper"><h3 id="d-1-findable"><bdi class="secno">D.1 </bdi>Findable</h3><a class="self-link" href="#findable" aria-label="Permalink for Appendix D.1"></a></div> <ul> <li> <a href="https://www.go-fair.org/fair-principles/f1-meta-data-assigned-globally-unique-persistent-identifiers/">F1. (Meta)data are assigned a globally unique and persistent identifier</a> is partially fulfilled by Best Practice 1 </li><li> <a href="https://www.go-fair.org/fair-principles/f2-data-described-rich-metadata/">F2. Data are described with rich metadata</a> is a close match to Best Practice 13 </li><li> <a href="https://www.go-fair.org/fair-principles/f3-metadata-clearly-explicitly-include-identifier-data-describe/">F3. Metadata clearly and explicitly include the identifier of the data they describe</a> is fulfilled by using the standard described in Best Practice 13 </li><li> <a href="https://www.go-fair.org/fair-principles/f4-metadata-registered-indexed-searchable-resource/">F4. (Meta)data are registered or indexed in a searchable resource</a> – the context of these best practices is publication on the web, which is by definition a searchable resource – which is acknowledged in F4! It is also supported by <a href="#indexable-by-search-engines">Best Practice 2</a>. </li> </ul> Taken together, following these best practice guidelines covers the F in the FAIR Principles. It should result in it being easier for potential users to find your data. </section><section id="accessible"><div class="header-wrapper"><h3 id="d-2-accessible"><bdi class="secno">D.2 </bdi>Accessible</h3><a class="self-link" href="#accessible" aria-label="Permalink for Appendix D.2"></a></div> “Once the user finds the required data, she/he/they need to know how can they be accessed, possibly including authentication and authorisation.” <ul><li> <a href="https://www.go-fair.org/fair-principles/metadata-retrievable-identifier-standardised-communication-protocol/">A1. (Meta)data are retrievable by their identifier using a standardised communications protocol</a> is satisfied by publishing the data and metadata on the web. <br> See also <a href="https://www.w3.org/TR/dwbp/#metadata">DWBP Best Practice 1: Provide Metadata</a> "to help tasks such as data discovery" (although the intended outcome focuses on 'understand the metadata' (!)) <br> See also <a href="https://www.w3.org/TR/dwbp/#BulkAccess">DWBP Best Practice 17: Provide Bulk Download</a>, <a href="https://www.w3.org/TR/dwbp/#ProvideSubsets">Best Practice 18: Provide Subsets for Large Datasets</a> <br> See also <a href="https://www.w3.org/TR/dwbp/#useanAPI">DWBP Best Practice 23: Make data available through an <abbr title="Application Programming Interface">API</abbr></a> </li><li> <a href="https://www.go-fair.org/fair-principles/a2-metadata-accessible-even-data-no-longer-available/">A2. Metadata are accessible, even when the data are no longer available</a> – this is not covered in this best practice <i>(because once the data is not available on the web, this BP no longer applies?)</i> </li></ul> </section><section id="interoperable"><div class="header-wrapper"><h3 id="d-3-interoperable"><bdi class="secno">D.3 </bdi>Interoperable</h3><a class="self-link" href="#interoperable" aria-label="Permalink for Appendix D.3"></a></div> <p>"The data usually need to be integrated with other data. In addition, the data need to interoperate with applications or workflows for analysis, storage, and processing."</p> <ul><li> <a href="https://www.go-fair.org/fair-principles/i1-metadata-use-formal-accessible-shared-broadly-applicable-language-knowledge-representation/">I1. (Meta)data use a formal, accessible, shared, and broadly applicable language for knowledge representation.</a> <br> This covers (minimally) data formats, for which see <a href="#semantic-thing">Best Practice 4</a> (<a href="https://www.w3.org/TR/dwbp/#MultipleFormats">DWBP 14</a>), but also commonly used controlled vocabularies and “a good data model”. <i>(Is there a SDWBP/DWBP for this? There is a little bit about vocabs for the geometry, and some of the metadata standards allow reference to vocab & data model)</i> </li><li> <a href="https://www.go-fair.org/fair-principles/i2-metadata-use-vocabularies-follow-fair-principles/">I2. (Meta)data use vocabularies that follow FAIR principles</a> </li><li> <a href="https://www.go-fair.org/fair-principles/i3-metadata-include-qualified-references-metadata/">I3. (Meta)data include qualified references to other (meta)data</a> is similar to <a href="#linking">Best Practice 3</a> and <a href="#entity-level-links">Best Practice 10</a>. </li></ul> </section><section id="reusable"><div class="header-wrapper"><h3 id="d-4-reusable"><bdi class="secno">D.4 </bdi>Reusable</h3><a class="self-link" href="#reusable" aria-label="Permalink for Appendix D.4"></a></div> <p>"The ultimate goal of FAIR is to optimise the reuse of data. To achieve this, metadata and data should be well-described so that they can be replicated and/or combined in different settings.</p> <ul><li> <a href="https://www.go-fair.org/fair-principles/r1-metadata-richly-described-plurality-accurate-relevant-attributes/">R1. (Meta)data are richly described with a plurality of accurate and relevant attributes</a> <br> See <a href="https://www.w3.org/TR/dwbp/#StructuralMetadata">DWBP Best Practice 3: Provide structural metadata</a>, which doesn’t require the attibution to be 'richly described' or for there to be many attributes (let alone that they be accurate & relevant); but it does at least say that whatever attribution you do provide should be described. <br> See <a href="https://www.w3.org/TR/dwbp/#EnrichData">DWBP Best Practice 31: Enrich data by generating new data</a> </li> <li><a href="https://www.go-fair.org/fair-principles/r1-1-metadata-released-clear-accessible-data-usage-license/">R1.1. (Meta)data are released with a clear and accessible data usage license</a> <br> <a href="https://www.w3.org/TR/dwbp/#DataLicense">DWBP Best Practice 4: Provide data license information</a>; again, this doesn’t say that the license should be "clear", but it does say that it should be accessible - "attached to data" (via a link from the metadata or embedded in the metadata). </li><li> <a href="https://www.go-fair.org/fair-principles/r1-2-metadata-associated-detailed-provenance/">R1.2. (Meta)data are associated with detailed provenance</a> <br> <a href="https://www.w3.org/TR/dwbp/#DataProvenance">DWBP Best Practice 5: Provide data provenance information</a> "Provide complete information about the origins of the data and any changes you have made." </li><li> <a href="https://www.go-fair.org/fair-principles/r1-3-metadata-meet-domain-relevant-community-standards/">R1.3. (Meta)data meet domain-relevant community standards</a> <br> See <a href="https://www.w3.org/TR/dwbp/#MachineReadableStandardizedFormat">DWBP Best Practice 12: Use machine-readable standardized data formats</a> "Make data available in a machine-readable, standardized data format that is well suited to its intended or potential use." This addresses the "low level", data format, aspect of (community) standards <br> <a href="https://www.w3.org/TR/dwbp/#ReuseVocabularies">DWBP Best Practice 15: Reuse vocabularies, preferably standardized ones</a> "Use terms from shared vocabularies, preferably standardized ones, to encode data and metadata." This addresses more of the semantic standardization that exists in some community standards: "Use of vocabularies already in use by others captures and facilitates consensus in communities." <i>I’m not so sure of the match(es) here</i> <div class="header-wrapper"><h3 id="FAIRChallenges">FAIR Challenges/extensions</h3><a class="self-link" href="#FAIRChallenges" aria-label="Permalink for this Appendix"></a></div> <p>The Research Data Alliance's <a href="https://doi.org/10.15497/rda00050">FAIR Data Maturity Model. Specification and Guidelines</a> usefully tries to define precise criteria to assess compliance with the FAIR principles.</p> <div class="header-wrapper"><h4 id="a-accessibility-for-humans-and-machines">A – Accessibility for Humans and Machines</h4><a class="self-link" href="#a-accessibility-for-humans-and-machines" aria-label="Permalink for this Appendix"></a></div> <p> <a href="https://www.w3.org/WAI/">Web Accessibility</a> is a well-established and vital domain of activity involving Web standards implementers, Web developers, and users. The range of use cases of maps and spatial data on the Web is almost as diverse as humanity itself, and it is consequently incumbent upon spatial data on the Web providers to facilitate consumption of spatial information by persons of all abilities. In this regard, the FAIR principles, and in particular the “A” in FAIR, are deficient. Natural Resources Canada has suggested that “FAIR+” denote an extension of FAIR with the goal of supporting human accessibility to spatial content. FAIR+ importantly includes users with disabilities, but also includes developers and users who belong to <a href="https://webfoundation.org/2016/06/the-web-is-for-everyone-new-documentary-on-its-invention/">typically under-represented or disadvantaged communities</a>. </p><p> Search engine crawlers navigate the web using structured HTML to look for human readable information to index. The more “human readable” your content is, the more likely it is to be findable, and ranked highly by web searches – for humans or machines. The <a href="https://www.w3.org/community/maps4html/">Maps for HTML Community Group</a> is following <a href="https://www.w3.org/WAI/standards-guidelines/">Web Accessibility Initiative standards</a> to extend the structure of HTML to include maps and spatial information, so that not only can maps be made accessible for humans, but so that spatial things may be spatially indexed, ranked and found. </p> <p>Sources: </p><ul> <li><a href="https://geoscan.nrcan.gc.ca/starweb/geoscan/servlet.starweb?path=geoscan/fulle.web&search1=R=329856">Natural Resources Canada "FAIR+"</a></li> <li>For the specific case of map visualising, see <a href="https://www.w3.org/2020/maps/supporting-material-uploads/presentations/Nicolo_Carpignoli-Maps-for-the-Web.pdf">Towards Accessible Annotations for a Native Map Viewer for the Web Platform: User Needs and Requirements</a></li> <li>European Commission FAIR Data Expert Group's <a href="https://doi.org/10.2777/1524">Turning FAIR into reality Final Report and Action Plan</a> "focuses on actions needed in terms of research culture and technology to ensure data, code and other research outputs are made FAIR. Research culture and technology are two sides of one whole. Coordinated, simultaneous interventions are needed in each to enable FAIR in this broad sense".</li> </ul> <p></p> <div class="header-wrapper"><h4 id="q-quality">Q – quality</h4><a class="self-link" href="#q-quality" aria-label="Permalink for this Appendix"></a></div> <p> No matter how easy it is to find, access, and even use your data, it is of little use unless it is of sufficient quality for the user’s task. However, what is “good” for one task is not necessarily “good” for another. </p><p> There are a variety of approaches in use to try to match users with data that will be useful to them. These range from telling the user a lot about the quality of the data to telling them what you (& others) have successfully used it for. </p> <p>See <a href="https://www.w3.org/TR/dwbp/#DataQuality">DWBP Best Practice 6: Provide data quality information</a>. This often includes <a href="https://www.w3.org/TR/dwbp/#AccessUptoDate">DWBP Best Practice 21: Provide data up to date</a></p> <p>Sources: </p><ul> <li>United Kingdom Geospatial Commission "Q-FAIR" <a href="https://geospatialcommission.blog.gov.uk/2021/06/25/byte-ing-back-better-introducing-a-q-fair-approach-to-geospatial-data-improvement/">blog post</a>; planned regular "Q-FAIR" assessments of UK geographic data.</li> <li>Earth Sciences Information Partnership <a href="https://osf.io/xsu4p/">FAIR Data Quality Information</a></li> </ul> <p></p> </li></ul></section></section> <section class="appendix" id="glossary"><div class="header-wrapper"><h2 id="e-glossary"><bdi class="secno">E. </bdi>Glossary</h2><a class="self-link" href="#glossary" aria-label="Permalink for Appendix E."></a></div> <p><dfn id="dfn-absolute-positional-accuracy" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Absolute positional accuracy</dfn>: The closeness of reported coordinate values to values accepted as or being true [<cite><a class="bibref" data-link-type="biblio" href="#bib-iso-19159-2" title="Geographic information -- Calibration and validation of remote sensing imagery sensors and data -- Part 2: Lidar">ISO-19159-2</a></cite>].</p> <p><dfn id="dfn-axis-order" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Axis order</dfn>: The order in which coordinates are presented. For example, some systems use (latitude, longitude) rather than (longitude, latitude). The latter is more similar to the mathematical convention of (<var>x</var>, <var>y</var>) ordering. The order used may differ from the order used to define the coordinate system.</p> <p><dfn data-lt="CRS|Coordinate Reference System|Coordinate Reference Systems|Coordinate Reference System (CRS)" data-plurals="coordinate reference systems|coordinate reference system" id="dfn-crs" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Coordinate Reference System (CRS)</dfn>: A coordinate system to locate entities of interest with respect to an object using a <a href="#dfn-datum" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-datum-21">datum</a> [<cite><a class="bibref" data-link-type="biblio" href="#bib-iso-19111" title="Geographic information -- Spatial referencing by coordinates">ISO-19111</a></cite>]. If the entities of interest and the object and datum are in the real world, the CRS is a <em>Spatial Reference System</em> (SRS). If the object is the Earth, the SRS is a <em>Geo-Spatial Reference System</em> (GRS). A GRS may be local, regional or global in scope. An example of a CRS that is not a SRS is the wavelength of a signal in the electromagnetic spectrum.</p> <p><dfn data-lt="Coverage|Coverages|Coverage Function" data-plurals="coverages" id="dfn-coverage" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Coverage</dfn>: A coverage is a function that describe characteristics of real-world phenomena that vary over space and/or time. Typical examples are temperature, elevation and precipitation. A coverage is typically represented as a data structure containing a set of such values, each associated with one of the positions in a spatial, temporal or spatiotemporal domain. Typical spatial domains are point sets (e.g. sensor locations), curve sets (e.g. contour lines), grids (e.g. orthoimages, elevation models), etc. A property whose value varies as a function of time may be represented as a temporal coverage or time-series [<cite><a class="bibref" data-link-type="biblio" href="#bib-iso-19109" title="Geographic information -- Rules for application schema">ISO-19109</a></cite>].</p> <p><dfn data-lt="CSV|Comma Separated Values|Tabular Data|Comma Separate Values (CSV)" id="dfn-csv" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Comma Separate Values (CSV)</dfn>: A file format for tabular data that writes each row on a separate line and each cell is separated from the next with a comma; see [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc4180" title="Common Format and MIME Type for Comma-Separated Values (CSV) Files">RFC4180</a></cite>]. CSV is just one variety of tabular data; for more information refer to [<cite><a class="bibref" data-link-type="biblio" href="#bib-tabular-data-primer" title="CSV on the Web: A Primer">TABULAR-DATA-PRIMER</a></cite>].</p> <p><dfn data-lt="datum|datums|Datum" id="dfn-datum" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Datum</dfn>: Parameter or set of parameters that define the position of the origin, the scale, and the orientation of a coordinate system [<cite><a class="bibref" data-link-type="biblio" href="#bib-iso-19111" title="Geographic information -- Spatial referencing by coordinates">ISO-19111</a></cite>].</p> <p><dfn data-lt="dimension|dimensions|dimensional|dimensionality|Dimension (geometry)" id="dfn-dimension" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Dimension (geometry)</dfn>: In physics and mathematics, the dimension of a mathematical space (or object) is informally defined (see <a href="https://en.wikipedia.org/w/index.php?title=Dimension&oldid=775064678">Wikipedia entry</a>) as the minimum number of coordinates needed to specify any point within it. Thus, a point has no dimension (0D) as there is no inside, whereas a line has a dimension of one (1D) because only one coordinate is needed to specify a point along it – for example, the point at 5 on a number line. A surface such as a plane or the surface of a cylinder, torus or sphere has a dimension of two (2D) because two coordinates are needed to specify a point on it – for example, both a <a href="#dfn-latitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-latitude-22">latitude</a> and <a href="#dfn-longitude" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-longitude-20">longitude</a> are required to locate a point on the surface of a sphere. The inside of a cube, cylinder, torus or sphere is three-dimensional (3D) because three coordinates are needed to locate a point within these spaces. For a formal rigorous mathematical definition see the ISO definition [<cite><a class="bibref" data-link-type="biblio" href="#bib-iso-19107" title="Geographic information -- Spatial schema">ISO-19107</a></cite>].</p> <p><dfn data-lt="Discrete Global Grid System|Discrete Global Grid Systems|DGGS" data-plurals="discrete global grid systems" id="dfn-discrete-global-grid-system" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Discrete Global Grid System</dfn>: A DGGS is a form of Earth reference that, unlike its established counterpart the <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-91">coordinate reference system</a> that represents the Earth as a continual lattice of points, represents the Earth with a tessellation of nested cells. Generally, a DGGS will exhaustively partition the globe in closely packed hierarchical tessellations, each cell representing a homogenous value, with a unique identifier or indexing that allows for linear ordering, parent-child operations, and nearest neighbour algebraic operations.</p> <p><dfn data-lt="ellipsoid|ellipsoids|Ellipsoid" id="dfn-ellipsoid" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Ellipsoid</dfn>: An ellipsoid is a closed quadric surface that is a three-dimensional analogue of an ellipse. In <em>geodesy</em>, a <strong>reference ellipsoid</strong> is a mathematically defined surface that approximates the <a href="#dfn-geoid" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geoid-2">geoid</a>.</p> <p><dfn data-lt="Extensible Markup Language|XML|Extensible Markup Language (XML)" id="dfn-extensible-markup-language" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Extensible Markup Language (XML)</dfn>: A simple, very flexible text-based markup language derived from SGML (ISO 8879). It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable [<cite><a class="bibref" data-link-type="biblio" href="#bib-xml11" title="Extensible Markup Language (XML) 1.1 (Second Edition)">XML11</a></cite>].</p> <p><dfn id="dfn-extent" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Extent</dfn>: The area covered by something. Within this document, we always imply spatial extent; e.g. size or shape that may be expresses using coordinates. </p> <p><dfn data-lt="feature|features|Feature" id="dfn-feature" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Feature</dfn>: Abstraction of real world phenomena. A digital representation of a real-world entity or an abstraction of the real world. Examples of features include almost anything that can be placed in time and space, including desks, buildings, cities, trees, forest stands, ecosystems, delivery vehicles, snow removal routes, oil wells, oil pipelines, oil spill, and so on. The terms feature and object are often used synonymously [<cite><a class="bibref" data-link-type="biblio" href="#bib-iso-19101-1-2014" title="Geographic information -- Reference model -- Part 1: Fundamentals">ISO-19101-1-2014</a></cite>].</p> <p><dfn data-lt="Geocoding|Forward geocoding|reverse geocoding" id="dfn-geocoding" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Geocoding</dfn>: Forward geocoding, often just referred to as geocoding, is the process of converting addresses into geographic coordinates. Reverse geocoding is the opposite process; converting geographic coordinates to addresses. See also the ISO definition [<cite><a class="bibref" data-link-type="biblio" href="#bib-iso-19133" title="Geographic information -- Location-based services -- Tracking and navigation">ISO-19133</a></cite>].</p> <p><dfn data-lt="Geographic information|Geospatial data|Geographic information (also geospatial data)" id="dfn-geographic-information" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Geographic information (also geospatial data)</dfn>: Information concerning phenomena implicitly or explicitly associated with a location relative to the Earth. [<cite><a class="bibref" data-link-type="biblio" href="#bib-iso-19101-1-2014" title="Geographic information -- Reference model -- Part 1: Fundamentals">ISO-19101-1-2014</a></cite>].</p> <p><dfn data-lt="Geographic information system|GIS|Geographic information system (GIS)" id="dfn-geographic-information-system" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Geographic information system (GIS)</dfn>: An information system dealing with information concerning phenomena associated with locations relative to the Earth. [<cite><a class="bibref" data-link-type="biblio" href="#bib-iso-19101-1-2014" title="Geographic information -- Reference model -- Part 1: Fundamentals">ISO-19101-1-2014</a></cite>].</p> <p><dfn id="dfn-geohash" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Geohash</dfn>: A specific <a href="#dfn-geocoding" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geocoding-5">geocoding</a> system with a hierarchical spatial data structure which subdivides space into nested regions. Geohashes and some other geocoding systems offer properties like arbitrary precision and the possibility of repeatedly truncating characters from the end of the code to reduce its size and precision. As a consequence of the gradual precision degradation, nearby places will often (but not always) present similar prefixes. The longer a shared prefix is, the closer the two places are. Coordinate and address systems generally do not have this property. (Source: <a href="https://en.wikipedia.org/w/index.php?title=Geohash&oldid=773644736">wikipedia</a>). </p> <p><dfn id="dfn-geoid" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Geoid</dfn>: An equipotential surface where the gravitational field of the Earth has the same value at all locations. This surface is perpendicular to a plumb line at all points on the Earth's surface and is roughly equivalent to the mean sea level excluding the effects of winds and permanent currents such as the Gulf Stream.</p> <p><dfn data-lt="geometry|geometries|Geometry" id="dfn-geometry" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Geometry</dfn>: An ordered set of <var>n</var>-<a href="#dfn-dimension" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-dimension-10">dimensional</a> points in a given <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-92">coordinate reference system</a>; can be used to model the spatial <a href="#dfn-extent" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-extent-18">extent</a> or shape of a <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-158">Spatial Thing</a>.</p> <p><dfn data-lt="IoT|Internet of Things|Internet of Things (IoT)" id="dfn-iot" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Internet of Things (IoT)</dfn>: The network of physical objects or "things" embedded with electronics, software, sensors, and network connectivity, which enables these objects to be controlled remotely and to collect and exchange data.</p> <p><dfn data-lt="JavaScript Object Notation|JSON|JavaScript Object Notation (JSON)" id="dfn-javascript-object-notation" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">JavaScript Object Notation (JSON)</dfn>: A lightweight, text-based, language-independent data interchange format defined in [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc7159" title="The JavaScript Object Notation (JSON) Data Interchange Format">RFC7159</a></cite>]. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</p> <p><dfn data-lt="latitude|lat|latitudes|Latitude" id="dfn-latitude" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Latitude</dfn>: The angular distance north or south of the equator. Often abbreviated to <em>Lat</em>.</p> <p><dfn data-lt="link|links|Link" id="dfn-link" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Link</dfn>: A typed connection between two resources that are identified by Internationalized Resource Identifiers (IRIs) [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc3987" title="Internationalized Resource Identifiers (IRIs)">RFC3987</a></cite>], and is comprised of: (i) a context IRI, (ii) a link relation type, (iii) a target IRI, and (iv) optionally, target attributes. Note that in the common case, the IRI will also be a URI [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc3986" title="Uniform Resource Identifier (URI): Generic Syntax">RFC3986</a></cite>], because many protocols (such as HTTP) do not support dereferencing IRIs [<cite><a class="bibref" data-link-type="biblio" href="#bib-rfc5988" title="Web Linking">RFC5988</a></cite>].</p> <p><dfn id="dfn-linked-data" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Linked data</dfn>: The term ‘Linked Data’ refers to an approach to publishing data that puts linking at the heart of the notion of data, and uses the linking technologies provided by the Web to enable the weaving of a global distributed database [<cite><a class="bibref" data-link-type="biblio" href="#bib-ldp-primer" title="Linked Data Platform 1.0 Primer">LDP-PRIMER</a></cite>].</p> <p><dfn data-lt="longitude|long|lon|Longitude" id="dfn-longitude" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Longitude</dfn>: The angular distance east or west of the prime meridian. Often abbreviated to <em>Long</em>.</p> <p><dfn data-lt="map projection|map projections|Map Projection" id="dfn-map-projection" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Map Projection</dfn>: A coordinate conversion from an ellipsoidal coordinate system to a plane, e.g. Transverse Mercator.</p> <p><dfn id="dfn-ogc-api-features" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn"><abbr title="Open Geospatial Consortium">OGC</abbr> <abbr title="Application Programming Interface">API</abbr> - Features</dfn>: A set of resource-oriented <abbr title="Application Programming Interface">API</abbr> building blocks for creating, modifying, and querying geographical features. There are several other consistent <abbr title="Application Programming Interfaces">APIs</abbr> published or under development to create a suite of geospatial ‘building blocks’.</p> <p><dfn data-lt="Open-world assumption|open world assumption|OWA|Open-world assumption (OWA)" id="dfn-open-world-assumption" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Open-world assumption (OWA)</dfn>: In a formal system of logic used for knowledge representation, the open-world assumption asserts that the truth value of a statement may be true irrespective of whether or not it is known to be true. This assumption codifies the informal notion that in general no single agent or observer has complete knowledge. In essence, from the absence of a statement alone, a deductive reasoner cannot (and must not) infer that the statement is false. That is, a valid response to a logical query may be: true, false or unknown.</p> <p><dfn data-lt="Projected CRS|Projected Coordinate Reference Systems|Projected Coordinate Reference System" id="dfn-projected-crs" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Projected Coordinate Reference System</dfn>: A <a href="#dfn-crs" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-crs-93">coordinate reference system</a> derived from a two-dimensional geodetic coordinate reference system by applying a <a href="#dfn-map-projection" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-map-projection-3">map projection</a>.</p> <p><dfn data-lt="Resource description framework|RDF|Resource Description Framework (RDF)" id="dfn-resource-description-framework" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Resource Description Framework (RDF)</dfn>: A directed, labeled graph data model for representing information in the Web. It may be serialized in several data formats such as N-Triples [<cite><a class="bibref" data-link-type="biblio" href="#bib-n-triples" title="RDF 1.1 N-Triples">N-TRIPLES</a></cite>], XML [<cite><a class="bibref" data-link-type="biblio" href="#bib-rdf-syntax-grammar" title="RDF 1.1 XML Syntax">RDF-SYNTAX-GRAMMAR</a></cite>], Terse Triple Language (“turtle” or TTL) [<cite><a class="bibref" data-link-type="biblio" href="#bib-turtle" title="RDF 1.1 Turtle">TURTLE</a></cite>] and [<cite><a class="bibref" data-link-type="biblio" href="#bib-json-ld" title="JSON-LD 1.0">JSON-LD</a></cite>].</p> <p><dfn id="dfn-semantic-web" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Semantic Web</dfn>: The term “Semantic Web” refers to World Wide Web Consortium's vision of the Web of <a href="#dfn-linked-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-linked-data-19">linked data</a>. Semantic Web technologies enable people to create data stores on the Web, build vocabularies, and write rules for handling data.</p> <p><dfn data-lt="SensorThings|SensorThings API" id="dfn-sensorthings" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">SensorThings <abbr title="Application Programming Interface">API</abbr></dfn>: An open, geospatial-enabled and unified way to interconnect the <a href="#dfn-iot" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-iot-1">Internet of Things</a> (IoT) devices, data, and applications over the Web. [<cite><a class="bibref" data-link-type="biblio" href="#bib-sensorthings" title="OGC ® SensorThings API Part 1: Sensing">SENSORTHINGS</a></cite>].</p> <p><dfn id="dfn-sparql" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">SPARQL</dfn>: A query language for <a href="#dfn-resource-description-framework" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-resource-description-framework-24">RDF</a>; it can be used to express queries across diverse data sources [<cite><a class="bibref" data-link-type="biblio" href="#bib-sparql11-overview" title="SPARQL 1.1 Overview">SPARQL11-OVERVIEW</a></cite>].</p> <p><dfn id="dfn-spatial-data" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Spatial data</dfn>: Data describing anything with spatial <a href="#dfn-extent" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-extent-19">extent</a>; i.e. size, shape or position. In addition to describing things that are positioned relative to the Earth (also see <a href="#dfn-geographic-information" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geographic-information-6">geospatial data</a>), spatial data may also describe things using other coordinate systems that are not related to position on the Earth, such as the size, shape and positions of cellular and sub-cellular <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-159">Spatial Things</a> described using the 2D or 3D Cartesian coordinate system of a specific tissue sample.</p> <p><dfn data-lt="SDI|SDIs|Spatial Data Infrastructure|Spatial Data Infrastructures|Spatial Data Infrastructure (SDI)" data-plurals="sdis|sdi|spatial data infrastructures|spatial data infrastructure" id="dfn-sdi" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Spatial Data Infrastructure (<abbr title="Spatial Data Infrastructure">SDI</abbr>)</dfn>: An ecosystem of geographic data, metadata, tools, applications, policies and users that are necessary to acquire, process, distribute, use, maintain, and preserve <a href="#dfn-spatial-data" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-data-122">spatial data</a>. Due to its nature (size, cost, number of interactors) an <abbr title="Spatial Data Infrastructure">SDI</abbr> is often government-related.</p> <p><dfn data-lt="spatial operator|spatial query function|spatial operators|spatial query functions|Spatial operator, spatial query function" id="dfn-spatial-operator" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Spatial operator, spatial query function</dfn>: Function or procedure that has at least one spatial parameter in its domain or range [<cite><a class="bibref" data-link-type="biblio" href="#bib-iso-19107" title="Geographic information -- Spatial schema">ISO-19107</a></cite>].</p> <p><dfn data-lt="spatial relation|spatial relations|spatial relationship|spatial relationships|Spatial relation, spatial relationship" id="dfn-spatial-relation" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Spatial relation, spatial relationship</dfn>: Specifies how a <a href="#dfn-spatial-thing" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-thing-160">Spatial Thing</a> is located in space in relation to another Spatial Thing. Typically determined using a <a href="#dfn-spatial-operator" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-spatial-operator-2">spatial operator</a>.</p> <p><dfn data-lt="Spatial Thing|Spatial Things|SpatialThing|SpatialThings|Spatial thing" data-plurals="spatial things" id="dfn-spatial-thing" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Spatial thing</dfn>: Anything with spatial <a href="#dfn-extent" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-extent-20">extent</a>, (i.e. size, shape, or position) and is a combination of the real-world phenomenon and its abstraction (the <a href="#dfn-feature" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-feature-11">feature</a>). Examples are: people, places, or bowling balls. </p> <p>This is different from the [<cite><a class="bibref" data-link-type="biblio" href="#bib-iso-19107" title="Geographic information -- Spatial schema">ISO-19107</a></cite>] definition of a <em>Spatial Object</em> which is a <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-113">geometry</a> or a topology object.</p> <p><dfn data-lt="triple-store|triple store|triple stores|quad-store|quadstore|Triple-store (or quadstore)" id="dfn-triple-store" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Triple-store (or quadstore)</dfn>: A triple-store or <a href="#dfn-resource-description-framework" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-resource-description-framework-25">RDF</a> store is a purpose-built database for the storage and retrieval of RDF subject-predicate-object “triples” through semantic queries. Many implementations are actually “quad-stores” as they also hold the name of the graph within which a triple is stored.</p> <p><dfn id="dfn-universe-of-discourse" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Universe of discourse</dfn>: view of the real or hypothetical world that includes everything of interest [<cite><a class="bibref" data-link-type="biblio" href="#bib-iso-19101-1-2014" title="Geographic information -- Reference model -- Part 1: Fundamentals">ISO-19101-1-2014</a></cite>].</p> <p><dfn data-lt="WFS|Web Feature Service|Web Feature Service (WFS)" id="dfn-wfs" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Web Feature Service (WFS)</dfn>: A standardized HTTP interface allowing requests for geographical <a href="#dfn-feature" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-feature-12">features</a> across the Web using platform-independent calls. [<cite><a class="bibref" data-link-type="biblio" href="#bib-wfs" title="Web Feature Service 2.0 Interface Standard">WFS</a></cite>].</p> <p><dfn data-lt="WMTS|Web Map Tile Service|Web Map Tile Service (WMTS)" id="dfn-wmts" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Web Map Tile Service (WMTS)</dfn>: A standardized HTTP interface for requesting tiled, geo-referenced map images from one or more distributed spatial databases. [<cite><a class="bibref" data-link-type="biblio" href="#bib-wmts" title="Web Map Tile Service Implementation Standard">WMTS</a></cite>]</p> <p><dfn data-lt="well known text|well-known-text|wkt|Well Known Text (WKT)" id="dfn-well-known-text" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Well Known Text (WKT)</dfn>: A text mark-up language for representing vector <a href="#dfn-geometry" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-geometry-114">geometry</a> objects on a map, spatial reference systems of spatial objects and transformations between spatial reference systems. (Sources: [<cite><a class="bibref" data-link-type="biblio" href="#bib-iso-19162" title="ISO 19162:2015 Geographic information -- Well-known text representation of coordinate reference systems">ISO-19162</a></cite>], [<cite><a class="bibref" data-link-type="biblio" href="#bib-simple-features" title="Simple Feature Access - Part 1: Common Architecture">SIMPLE-FEATURES</a></cite>], <a href="https://en.wikipedia.org/w/index.php?title=Well-known_text&oldid=769578506">Wikipedia entry</a>).</p> </section> <section class="appendix" id="acknowledgments"><div class="header-wrapper"><h2 id="f-acknowledgments"><bdi class="secno">F. </bdi>Acknowledgments</h2><a class="self-link" href="#acknowledgments" aria-label="Permalink for Appendix F."></a></div> <p>The editors gratefully acknowledge the contributions made to this document by <a href="https://www.w3.org/2000/09/dbwg/details?group=75471&public=1">all members of the working group</a>; especially, the contributions received from those listed in the Contributors list. </p> <p>This document would not have been possible without the tremendous efforts of the Data on the Web Working Group; their [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] provides the essential underpinnings for our own work. Special thanks are due to Newton Calegari, Riccardo Albertoni, Annette Grainer, Antoine Isaac, and Eric Stephan.</p> <p>The editors are also grateful for comments received from Ig Ibert Bittencourt, Marco Brattinga, Martin Desruisseaux, Neil McNaughton, Simeon Nedkov, James Passmore, Stefan Proell, Maik Riechert and Erik Wilde.</p> <p>The editors also gratefully acknowledge the chairs of this Working Group: Ed Parsons and Kerry Taylor — and staff contacts Phil Archer and François Daoust.</p> </section> <section class="appendix" id="changes"><div class="header-wrapper"><h2 id="g-changes-since-previous-versions"><bdi class="secno">G. </bdi>Changes since previous versions</h2><a class="self-link" href="#changes" aria-label="Permalink for Appendix G."></a></div> <p>A full change-log is available on <a href="https://github.com/w3c/sdw/commits/gh-pages/bp">GitHub</a></p> <section id="changes-since-20170928"><div class="header-wrapper"><h3 id="g-1-changes-since-working-group-note-of-28-september-2017"><bdi class="secno">G.1 </bdi>Changes since working group note of 28 September 2017</h3><a class="self-link" href="#changes-since-20170928" aria-label="Permalink for Appendix G.1"></a></div> <p>The document has been updated to take into account further support for spatial and temporal aspects added in the new version of the <abbr title="World Wide Web Consortium">W3C</abbr> Data Catalog Vocabulary (DCAT) [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-dcat-2" title="Data Catalog Vocabulary (DCAT) - Version 2">VOCAB-DCAT-2</a></cite>] and GeoDCAT-AP [<cite><a class="bibref" data-link-type="biblio" href="#bib-geodcat-ap-20201223" title="GeoDCAT-AP: A geospatial extension for the DCAT application profile for data portals in Europe. Version 2.0.0">GeoDCAT-AP-20201223</a></cite>].</p> <p>In particular:</p> <ul> <li>Revised <a href="#ex-geodcat-ap-bag-addresses" class="box-ref">Example<bdi> 19</bdi></a> in <a href="#describe-geometry" class="practiceRef">Best Practice 5: Provide geometries on the Web in a usable way</a>. Property <code>locn:geometry</code> has been replaced with the more specific property <a href="https://www.w3.org/TR/vocab-dcat-2/#Property:location_bbox"><code>dcat:bbox</code></a>, defined in [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-dcat-2" title="Data Catalog Vocabulary (DCAT) - Version 2">VOCAB-DCAT-2</a></cite>]. Moreover, the original GeoJSON datatype URI used in the example (corresponding to <a href="https://www.iana.org/assignments/media-types/application/geo+json">the GeoJSON IANA Media Type URL</a>) has been replaced with <code>geosparql:geoJSONLiteral</code>, included in the draft of the new version of [<cite><a class="bibref" data-link-type="biblio" href="#bib-geosparql" title="GeoSPARQL - A Geographic Query Language for RDF Data">GeoSPARQL</a></cite>] (see issues <a href="https://github.com/opengeospatial/ogc-geosparql/issues/1">opengeospatial/ogc-geosparql/issues/1</a> and <a href="https://github.com/opengeospatial/ogc-geosparql/issues/48">opengeospatial/ogc-geosparql/issues/48</a>), and already adopted in [<cite><a class="bibref" data-link-type="biblio" href="#bib-geodcat-ap-20201223" title="GeoDCAT-AP: A geospatial extension for the DCAT application profile for data portals in Europe. Version 2.0.0">GeoDCAT-AP-20201223</a></cite>].</li> <li>Revised <a href="#ex-anne-frank-building-centroid-and-bbox" class="box-ref">Example<bdi> 25</bdi></a> in <a href="#multiplegeometries" class="practiceRef">Best Practice 6: Provide geometries at the right level of accuracy, precision, and size</a>, to include an example on the use of [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-dcat-2" title="Data Catalog Vocabulary (DCAT) - Version 2">VOCAB-DCAT-2</a></cite>] for the specification of centroids (<a href="https://www.w3.org/TR/vocab-dcat-2/#Property:location_centroid"><code>dcat:centroid</code></a>) and bounding boxes (<a href="https://www.w3.org/TR/vocab-dcat-2/#Property:location_bbox"><code>dcat:bbox</code></a>).</li> <li>Revised <a href="#ex-geodcat-ap-dataset-spatial-representation-type" class="box-ref">Example<bdi> 60</bdi></a> in <a href="#spatial-info-dataset-metadata" class="practiceRef">Best Practice 15: Include spatial metadata in dataset metadata</a>, following the release of the spatial representation type code list of the <a href="https://inspire.ec.europa.eu/metadata-codelist/SpatialRepresentationType">INSPIRE Registry</a>.</li> <li>Revised <a href="#ex-dqv-dataset-quality" class="box-ref">Example<bdi> 64</bdi></a> in <a href="#desc-accuracy" class="practiceRef">Best Practice 16: Describe the positional accuracy of spatial data</a>, to use the <a href="http://qudt.org/vocab/unit/">QUDT Units Vocabulary</a> instead of the <a href="https://github.com/HajoRijgersberg/OM/blob/master/README.md">Ontology of units of Measure (OM)</a> (used originally), and to include the statements describing <code>:myDatasetAccuracy</code> and <code>:spatialAccuracy</code>, which are available from the reference [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-dqv" title="Data on the Web Best Practices: Data Quality Vocabulary">VOCAB-DQV</a></cite>] examples in <a href="https://www.w3.org/TR/vocab-dqv/#h-expressdatasetaccuracyprecision">the relevant section</a>.</li> <li>Added <a href="#ex-dcat-dataset-quality" class="box-ref">Example<bdi> 65</bdi></a> and <a href="#ex-geodcat-ap-spatial-resolution" class="box-ref">Example<bdi> 66</bdi></a> in <a href="#desc-accuracy" class="practiceRef">Best Practice 16: Describe the positional accuracy of spatial data</a>, to illustrate the use of [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-dcat-2" title="Data Catalog Vocabulary (DCAT) - Version 2">VOCAB-DCAT-2</a></cite>] and [<cite><a class="bibref" data-link-type="biblio" href="#bib-geodcat-ap-20201223" title="GeoDCAT-AP: A geospatial extension for the DCAT application profile for data portals in Europe. Version 2.0.0">GeoDCAT-AP-20201223</a></cite>], respectively, for the specification of spatial precision and accuracy.</li> <li>Revised second table in <a href="#applicability-formatVbp" class="sec-ref"><bdi class="secno">A. </bdi>Applicability of common formats to implementation of best practices</a> to include a column for [<cite><a class="bibref" data-link-type="biblio" href="#bib-vocab-dcat-2" title="Data Catalog Vocabulary (DCAT) - Version 2">VOCAB-DCAT-2</a></cite>].</li> </ul> <p>Additional changes concerns editorial fixes (typos, broken links, and styling). This included a fix to issue <a href="https://github.com/w3c/sdw/issues/1037">#1037</a>, to ensure all examples be numbered. As a result, the numbering of examples changed.</p> </section> <section id="changes-since-20170511"><div class="header-wrapper"><h3 id="g-2-changes-since-working-draft-of-11-may-2017"><bdi class="secno">G.2 </bdi>Changes since working draft of 11 May 2017</h3><a class="self-link" href="#changes-since-20170511" aria-label="Permalink for Appendix G.2"></a></div> <p>No major changes have been introduced since publication on 11 May 2017. Main updates were made in response to public reviews to clarify that the best practices do not cover advanced scenarios, e.g. involving critical decision making, in section <a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170928/#scope-spatialdata">3.1 Spatial data</a>, and to note the absence of scientific formats to encode spatial data on the Web in section <a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170928/#applicability-formatVbp">A. Applicability of common formats to implementation of best practices</a>.</p> </section> <section id="changes-since-20170330"><div class="header-wrapper"><h3 id="g-3-changes-since-working-draft-of-30-march-2017"><bdi class="secno">G.3 </bdi>Changes since working draft of 30 March 2017</h3><a class="self-link" href="#changes-since-20170330" aria-label="Permalink for Appendix G.3"></a></div> <p>The most obvious change to readers is that the best practices have been reordered with the intent to improve the readability of the document, and the empty stubs of best practices removed in the previous release are now gone. The fragment-identifiers for the best practices remain unchanged, but the numbers are different. The mapping (from old number to new) is as follows:</p> <ul> <li>BP1 → <a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170511/#spatial-info-dataset-metadata">BP13</a></li> <li>BP2 × <em>removed</em></li> <li>BP3 → <a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170511/#bp-crs-choice">BP7</a></li> <li>BP4 → <a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170511/#indexable-by-search-engines">BP2</a></li> <li>BP5 → <a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170511/#desc-accuracy">BP14</a></li> <li>BP6 → <a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170511/#desc-changing-properties">BP11</a></li> <li>BP7 → <a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170511/#globally-unique-ids">BP1</a></li> <li>BP8 → <em>refactored into</em> <a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170511/#describe-geometry">BP5</a> <em>and</em> <a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170511/#multiplegeometries">BP6</a></li> <li><a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170511/#relative-position">BP9</a> – <em>number is unchanged</em></li> <li>BP10 → <a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170511/#semantic-thing">BP4</a></li> <li>BP11 → <a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170511/#convenience-apis">BP12</a></li> <li>BP12 × <em>removed</em></li> <li>BP13 × <em>removed</em></li> <li>BP14 → <em>refactored into</em> <a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170511/#linking">BP3</a> <em>and</em> <a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170511/#entity-level-links">BP10</a></li> <li>BP15 × <em>removed</em></li> <li>BP16 × <em>removed</em></li> <li>BP17 → <a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170511/#bp-crs">BP8</a></li> </ul> <p>Two new sections and two new best practices were added:</p> <ul> <li>Section <a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170511/#namespaces">5. Namespaces</a></li> <li>Section <a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170511/#BP_Benefits">B. Best Practices Benefits</a></li> <li><a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170511/#linking">Best Practice 3: Link resources together to create the Web of data</a> (as a result of refactoring — see BP mapping above)</li> <li><a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170511/#multiplegeometries">Best Practice 6: Provide geometries at the right level of accuracy, precision, and size</a> (as a result of refactoring — see BP mapping above)</li> </ul> <p>Section <a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170330/#how-to-use">11. How to use these best practices</a> (link to previous WD version) has been removed.</p> <p>Significant updates to the following best practices:</p> <ul> <li><a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170511/#describe-geometry">Best Practice 5: Provide geometries on the Web in a usable way</a></li> <li><a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170511/#semantic-thing">Best Practice 4: Use spatial data encodings that match your target audience</a></li> <li><a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170511/#relative-position">Best Practice 9: Describe relative positioning</a> (examples added)</li> <li><a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170511/#entity-level-links">Best Practice 10: Use appropriate relation types to link Spatial Things</a> (as a result of refactoring — see BP mapping above)</li> <li><a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170511/#describe-geometry">Best Practice 5: Provide geometries on the Web in a usable way</a> (as a result of refactoring — see BP mapping above)</li> </ul> <p>Most of the other best practices received minor additions and improvements, without significant change to their contents. </p> <p>Content was added to the How to test and Benefits sections of all Best Practices.</p> <p>The <a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170511/#conclusions">Conclusions</a> section was renamed "Gaps in current practice" and content added.</p> <p>Section <a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170511/#applicability-formatVbp">A. Applicability of common formats to implementation of best practices</a> was updated; it now has one table listing spatial data formats and one listing spatial data vocabularies.</p> <p>Section <a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170511/#requirements">C. Cross reference of use case requirements against best practices</a> was expanded to include cross-reference from both this document and [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>].</p> <p>The <a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170511/#glossary">Glossary</a> was updated.</p> <p>Plus minor, mostly editorial changes.</p> </section> <section id="changes-since-20170216"><div class="header-wrapper"><h3 id="g-4-changes-since-working-draft-of-16-february-2017"><bdi class="secno">G.4 </bdi>Changes since working draft of 16 February 2017</h3><a class="self-link" href="#changes-since-20170216" aria-label="Permalink for Appendix G.4"></a></div> <p>Significant updates to the following best practices:</p> <ul> <li><a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170330/#spatial-info-dataset-metadata">Best Practice 1: Include spatial metadata in dataset metadata</a></li> <li><a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170330/#bp-crs-choice">Best Practice 3: Choose the coordinate reference system to suit your user's applications</a></li> <li><a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170330/#describe-geometry">Best Practice 8: Provide geometries on the Web in a usable way</a></li> <li><a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170330/#relative-position">Best Practice 9: Describe relative positioning</a></li> <li><a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170330/#semantic-thing">Best Practice 10: Encoding spatial data</a></li> <li><a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170330/#convenience-apis">Best Practice 11: Expose spatial data through 'convenience <abbr title="Application Programming Interfaces">APIs</abbr>'</a></li> <li><a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170330/#entity-level-links">Best Practice 14: Publish links between Spatial Things and related resources</a></li> <li><a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170330/#bp-crs">Best Practice 17: State how coordinate values are encoded</a></li> </ul> <p>The following best practices have been removed or merged into other best practices:</p> <ul> <li><a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170216/#provide-context">Best Practice 2: Provide context required to interpret data values</a> (considered to be non-actionable guidance)</li> <li><a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170216/#include-search-api">Best Practice 12: Include search capability in your data access <abbr title="Application Programming Interface">API</abbr></a> (merged into <a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170330/#convenience-apis">Best Practice 11: Expose spatial data through 'convenience <abbr title="Application Programming Interfaces">APIs</abbr>'</a>)</li> <li><a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170216/#ids-for-chunks">Best Practice 13: Provide subsets for large spatial datasets</a> (covered sufficiently in [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>], referenced from section <a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170330/#bp-exposing-via-api">12.6 Spatial Data Access</a></li> <li><a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170216/#find-related-data">Best Practice 15: Use links in spatial datasets to find related data</a> (data consumer guidance is, unfortunately, out of scope; the remaining guidance has been incorporated into <a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170330/#entity-level-links">Best Practice 14: Publish links between Spatial Things and related resources</a>)</li> <li><a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170216/#minimum">Best Practice 16: Provide a minimum set of information about Spatial Things for your intended application</a> (merged into <a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170330/#semantic-thing">Best Practice 10: Encoding spatial data</a>)</li> </ul> <p><a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170216/#narrative">Section 14. Narrative — the Nieuwhaven flooding</a> (link to previous WD version) has been removed.</p> <p><a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170216/#auth-id-sources">Appendix B: Authoritative sources of geographic identifiers</a> has been merged into <a href="#entity-level-links">Best Practice 14: Publish links between Spatial Things and related resources</a>.</p> </section> <section id="changes-since-20170105"><div class="header-wrapper"><h3 id="g-5-changes-since-working-draft-of-5-january-2017"><bdi class="secno">G.5 </bdi>Changes since working draft of 5 January 2017</h3><a class="self-link" href="#changes-since-20170105" aria-label="Permalink for Appendix G.5"></a></div> <p>Significant updates to:</p> <ul> <li>Section <a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170216/#CRS-background">8. Coordinate Reference Systems (CRS)</a></li> <li><a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170216/#indexable-by-search-engines">Best Practice 4: Make your spatial data indexable by search engines</a></li> <li><a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170216/#desc-changing-properties">Best Practice 6: How to describe properties that change over time</a></li> <li><a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170216/#globally-unique-ids">Best Practice 7: Use globally unique persistent HTTP URIs for Spatial Things</a></li> <li><a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170216/#entity-level-links">Best Practice 14: Publish links between Spatial Things and related resources</a></li> </ul> <p>Also:</p> <ul> <li>The <a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170216/#bp-summary">BP summary</a> has been moved and is now section 4 of the document;</li> <li>Best Practice 17, "How to work with crowd-sourced observations" was removed; and</li> <li>the Best Practices Template section, explaining the template used to describe Best Practices, was removed.</li> </ul> </section> <section id="changes-since-20161025"><div class="header-wrapper"><h3 id="g-6-changes-since-working-draft-of-25-october-2016"><bdi class="secno">G.6 </bdi>Changes since working draft of 25 October 2016</h3><a class="self-link" href="#changes-since-20161025" aria-label="Permalink for Appendix G.6"></a></div> <p>Significant updates to:</p> <ul> <li><a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170105/#indexable-by-search-engines">Best Practice 4: Make your spatial data indexable by search engines</a></li> <li><a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170105/#desc-changing-properties">Best Practice 6: How to describe properties that change over time</a></li> <li><a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170105/#globally-unique-ids">Best Practice 7: Use globally unique persistent HTTP URIs for Spatial Things</a></li> <li><a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170105/#convenience-apis">Best Practice 11: Expose spatial data through 'convenience <abbr title="Application Programming Interfaces">APIs</abbr>'</a></li> </ul> <p><em>(further updates to these best practices are expected in the next WD release, circa end January 2017)</em></p> <p>Plus minor changes that include adding a list of most important best practices for data publishers that start from an existing <a href="#dfn-sdi" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-sdi-22"><abbr title="Spatial Data Infrastructure">SDI</abbr></a> to <a href="https://www.w3.org/TR/2017/NOTE-sdw-bp-20170105/#why-are-traditional-sdi-not-enough">section 9</a>, and changing of a few best practice titles to include the word <em>spatial</em>.</p> </section> <section id="changes-since-20160119"><div class="header-wrapper"><h3 id="g-7-changes-since-the-first-public-working-draft-of-19-january-2016"><bdi class="secno">G.7 </bdi>Changes since the first public working draft of 19 January 2016</h3><a class="self-link" href="#changes-since-20160119" aria-label="Permalink for Appendix G.7"></a></div> <p>The document has undergone substantial changes since the <a href="https://www.w3.org/TR/2016/WD-sdw-bp-20160119/">first public working draft</a>. Below are some of the changes made:</p> <ul> <li>Focusing the document to suit the needs of practitioners: those either publishing spatial data themselves, or developing software tools to support the publication of spatial data (see sections <a href="https://www.w3.org/TR/2016/NOTE-sdw-bp-20161025/#audience">2. Audience</a> and <a href="https://www.w3.org/TR/2016/NOTE-sdw-bp-20161025/#scope">3. Scope</a>)</li> <li>Addition of new introductory material to explain the fundamentals of spatial data to readers (see sections <a href="https://www.w3.org/TR/2016/NOTE-sdw-bp-20161025/#spatial-things-features-and-geometry">4. Spatial Things, Features and Geometry</a>, <a href="https://www.w3.org/TR/2016/NOTE-sdw-bp-20161025/#coverages">5. Coverages: describing properties that vary with location (and time)</a>, <a href="https://www.w3.org/TR/2016/NOTE-sdw-bp-20161025/#spatial-relations">6. Spatial relations</a>, <a href="https://www.w3.org/TR/2016/NOTE-sdw-bp-20161025/#linked-data">8. Linked Data</a> and <a href="https://www.w3.org/TR/2016/NOTE-sdw-bp-20161025/#why-are-traditional-sdi-not-enough">9. Why are traditional Spatial Data Infrastructures not enough?</a>)</li> <li>Consolidation of the best practices from 30 down to 17 — based on merging duplicate or closely related best practices and focusing our scope only on spatial data concerns so that, for example, best practices relating to handling sensor data are removed (we expect these subjects to be included in future iterations of the Sensor Network deliverables of the <a href="https://www.ogc.org/about-ogc/committees/swg/">working group</a>)</li> <li>Alignment of the remaining best practices with those from [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] — including organizing them according to the same sub-section headings</li> <li>As a consequence of the consolidation and [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] alignment, the best practices are renumbered (although the fragment-identifiers remain unchanged from those used in the <a href="https://www.w3.org/TR/2016/WD-sdw-bp-20160119/">first public working draft</a>) and the cross-reference to the Requirements from [<cite><a class="bibref" data-link-type="biblio" href="#bib-sdw-ucr" title="Spatial Data on the Web Use Cases & Requirements">SDW-UCR</a></cite>] (section <a href="https://www.w3.org/TR/2016/NOTE-sdw-bp-20161025/#requirements">C. Cross reference of use case requirements against Best Practices</a>) has been updated</li> <li>Addition of a new, partially complete section (see <a href="https://www.w3.org/TR/2016/NOTE-sdw-bp-20161025/#how-to-use">10. How to use these best practices</a>) that is intended to help readers understand the steps they should take and the questions they should consider when publishing spatial data on the Web; referencing both the general [<cite><a class="bibref" data-link-type="biblio" href="#bib-dwbp" title="Data on the Web Best Practices">DWBP</a></cite>] best practices and those specific to spatial data described in this document</li> <li>Improvements to the <a href="https://www.w3.org/TR/2016/NOTE-sdw-bp-20161025/#glossary">glossary</a></li> </ul> </section> </section> <script> bpCrossRefs(); </script> <section id="references" class="appendix"><div class="header-wrapper"><h2 id="h-references"><bdi class="secno">H. </bdi>References</h2><a class="self-link" href="#references" aria-label="Permalink for Appendix H."></a></div><section id="normative-references"><div class="header-wrapper"><h3 id="h-1-normative-references"><bdi class="secno">H.1 </bdi>Normative references</h3><a class="self-link" href="#normative-references" aria-label="Permalink for Appendix H.1"></a></div> <dl class="bibliography"><dt id="bib-5star-lod">[5STAR-LOD]</dt><dd> <a href="https://www.w3.org/DesignIssues/LinkedData#fivestar"><cite>Is your Linked Open Data 5 Star?</cite></a>. Tim Berners-Lee. URL: <a href="https://www.w3.org/DesignIssues/LinkedData#fivestar">https://www.w3.org/DesignIssues/LinkedData#fivestar</a> </dd><dt id="bib-cog">[COG]</dt><dd> <a href="https://www.cogeo.org/"><cite>Cloud Optimized GeoTIFF</cite></a>. COG Geo. 2021. URL: <a href="https://www.cogeo.org/">https://www.cogeo.org/</a> </dd><dt id="bib-covjson-overview">[COVJSON-OVERVIEW]</dt><dd> <a href="https://www.w3.org/TR/covjson-overview/"><cite>Overview of the CoverageJSON format</cite></a>. Jon Blower; Maik Riechert; Bill Roberts. W3C. 11 July 2017. W3C Working Group Note. URL: <a href="https://www.w3.org/TR/covjson-overview/">https://www.w3.org/TR/covjson-overview/</a> </dd><dt id="bib-dcterms">[DCTERMS]</dt><dd> <a href="https://www.dublincore.org/specifications/dublin-core/dcmi-terms/"><cite>DCMI Metadata Terms</cite></a>. DCMI Usage Board. DCMI. 20 January 2020. DCMI Recommendation. URL: <a href="https://www.dublincore.org/specifications/dublin-core/dcmi-terms/">https://www.dublincore.org/specifications/dublin-core/dcmi-terms/</a> </dd><dt id="bib-dwbp">[DWBP]</dt><dd> <a href="https://www.w3.org/TR/dwbp/"><cite>Data on the Web Best Practices</cite></a>. Bernadette Farias Loscio; Caroline Burle; Newton Calegari. W3C. 31 January 2017. W3C Recommendation. URL: <a href="https://www.w3.org/TR/dwbp/">https://www.w3.org/TR/dwbp/</a> </dd><dt id="bib-eo-qb">[EO-QB]</dt><dd> <a href="https://www.w3.org/TR/eo-qb/"><cite>Publishing and Using Earth Observation Data with the RDF Data Cube and the Discrete Global Grid System</cite></a>. Dmitry Brizhinev; Sam Toyer; Kerry Taylor. W3C. 28 September 2017. W3C Working Group Note. URL: <a href="https://www.w3.org/TR/eo-qb/">https://www.w3.org/TR/eo-qb/</a> </dd><dt id="bib-geodcat-ap">[GeoDCAT-AP]</dt><dd> <a href="https://semiceu.github.io/GeoDCAT-AP/releases/"><cite>GeoDCAT-AP: A geospatial extension for the DCAT application profile for data portals in Europe</cite></a>. European Commission. 23 December 2020. URL: <a href="https://semiceu.github.io/GeoDCAT-AP/releases/">https://semiceu.github.io/GeoDCAT-AP/releases/</a> </dd><dt id="bib-geodcat-ap-20201223">[GeoDCAT-AP-20201223]</dt><dd> <a href="https://semiceu.github.io/GeoDCAT-AP/releases/2.0.0/"><cite>GeoDCAT-AP: A geospatial extension for the DCAT application profile for data portals in Europe. Version 2.0.0</cite></a>. European Commission. 23 December 2020. URL: <a href="https://semiceu.github.io/GeoDCAT-AP/releases/2.0.0/">https://semiceu.github.io/GeoDCAT-AP/releases/2.0.0/</a> </dd><dt id="bib-geolocation-api">[GEOLOCATION-API]</dt><dd> <a href="https://www.w3.org/TR/geolocation-API/"><cite>Geolocation API Specification 2nd Edition</cite></a>. Andrei Popescu. W3C. 8 November 2016. W3C Recommendation. URL: <a href="https://www.w3.org/TR/geolocation-API/">https://www.w3.org/TR/geolocation-API/</a> </dd><dt id="bib-georss">[GeoRSS]</dt><dd> <a href="https://www.w3.org/2005/Incubator/geo/XGR-geo/"><cite>W3C Geospatial Vocabulary</cite></a>. Joshua Lieberman; Raj Singh; Chris Goad. W3C Geospatial Incubator Group. 23 October 2007. URL: <a href="https://www.w3.org/2005/Incubator/geo/XGR-geo/">https://www.w3.org/2005/Incubator/geo/XGR-geo/</a> </dd><dt id="bib-geosparql">[GeoSPARQL]</dt><dd> <a href="http://www.opengeospatial.org/standards/geosparql"><cite>GeoSPARQL - A Geographic Query Language for RDF Data</cite></a>. Matthew Perry; John Herring. OGC. 10 September 2012. URL: <a href="http://www.opengeospatial.org/standards/geosparql">http://www.opengeospatial.org/standards/geosparql</a> </dd><dt id="bib-gml">[GML]</dt><dd> <a href="http://www.opengeospatial.org/standards/gml"><cite>Geography Markup Language (GML) Encoding Standard</cite></a>. Open Geospatial Consortium Inc. URL: <a href="http://www.opengeospatial.org/standards/gml">http://www.opengeospatial.org/standards/gml</a> </dd><dt id="bib-gml-sf">[GML-SF]</dt><dd> <a href="http://www.opengeospatial.org/standards/gml"><cite>Geography Markup Language (GML) simple features profile</cite></a>. Linda van den Brink; Clemens Portele; Panagiotis (Peter) A. Vretanos. 5 April 2012. URL: <a href="http://www.opengeospatial.org/standards/gml">http://www.opengeospatial.org/standards/gml</a> </dd><dt id="bib-gs1">[GS1]</dt><dd> <a href="https://www.gs1.org/gs1-smartsearch/guideline/gtin-web-implementation-guideline"><cite>SmartSearch Implementation Guideline</cite></a>. Mark Harrison; Ken Traub. GS1. November 2015. URL: <a href="https://www.gs1.org/gs1-smartsearch/guideline/gtin-web-implementation-guideline">https://www.gs1.org/gs1-smartsearch/guideline/gtin-web-implementation-guideline</a> </dd><dt id="bib-html-rdfa">[HTML-RDFa]</dt><dd> <a href="https://www.w3.org/TR/html-rdfa/"><cite>HTML+RDFa 1.1 - Second Edition</cite></a>. Manu Sporny. W3C. 17 March 2015. W3C Recommendation. URL: <a href="https://www.w3.org/TR/html-rdfa/">https://www.w3.org/TR/html-rdfa/</a> </dd><dt id="bib-iana-relations">[IANA-RELATIONS]</dt><dd> <a href="https://www.iana.org/assignments/link-relations/"><cite>Link Relations</cite></a>. IANA. URL: <a href="https://www.iana.org/assignments/link-relations/">https://www.iana.org/assignments/link-relations/</a> </dd><dt id="bib-inspire-md">[INSPIRE-MD]</dt><dd> <a href="https://inspire.ec.europa.eu/id/document/tg/metadata-iso19139"><cite>Technical Guidance for the implementation of INSPIRE dataset and service metadata based on ISO/TS 19139:2007. Version 2.0.1</cite></a>. European Commission. 2 March 2017. URL: <a href="https://inspire.ec.europa.eu/id/document/tg/metadata-iso19139">https://inspire.ec.europa.eu/id/document/tg/metadata-iso19139</a> </dd><dt id="bib-iso-19101-1-2014">[ISO-19101-1-2014]</dt><dd> <a href="https://www.iso.org/standard/59164.html"><cite>Geographic information -- Reference model -- Part 1: Fundamentals</cite></a>. ISO/TC 211. ISO. 2014. International Standard. URL: <a href="https://www.iso.org/standard/59164.html">https://www.iso.org/standard/59164.html</a> </dd><dt id="bib-iso-19107">[ISO-19107]</dt><dd> <a href="https://www.iso.org/standard/26012.html"><cite>Geographic information -- Spatial schema</cite></a>. ISO/TC 211. ISO. 2003. International Standard. URL: <a href="https://www.iso.org/standard/26012.html">https://www.iso.org/standard/26012.html</a> </dd><dt id="bib-iso-19109">[ISO-19109]</dt><dd> <a href="https://www.iso.org/standard/59193.html"><cite>Geographic information -- Rules for application schema</cite></a>. ISO/TC 211. ISO. 2015. International Standard. URL: <a href="https://www.iso.org/standard/59193.html">https://www.iso.org/standard/59193.html</a> </dd><dt id="bib-iso-19111">[ISO-19111]</dt><dd> <a href="https://www.iso.org/standard/41126.html"><cite>Geographic information -- Spatial referencing by coordinates</cite></a>. ISO/TC 211. ISO. 2007. International Standard. URL: <a href="https://www.iso.org/standard/41126.html">https://www.iso.org/standard/41126.html</a> </dd><dt id="bib-iso-19115">[ISO-19115]</dt><dd> <a href="https://www.iso.org/standard/26020.html"><cite>Geographic information -- Metadata</cite></a>. ISO/TC 211. ISO. 2003. International Standard. URL: <a href="https://www.iso.org/standard/26020.html">https://www.iso.org/standard/26020.html</a> </dd><dt id="bib-iso-19115-1-2014">[ISO-19115-1-2014]</dt><dd> <a href="https://www.iso.org/standard/53798.html"><cite>Geographic information -- Metadata -- Part 1: Fundamentals</cite></a>. ISO/TC 211. ISO. 2014. International Standard. URL: <a href="https://www.iso.org/standard/53798.html">https://www.iso.org/standard/53798.html</a> </dd><dt id="bib-iso-19123-1:2022">[ISO-19123-1:2022]</dt><dd> <a href="https://www.iso.org/standard/70743.html"><cite>ISO 19123:2022 Geographic information — Schema for coverage geometry and functions — Part 1: Fundamentals</cite></a>. ISO/TC 211. ISO. 2022. FDIS. URL: <a href="https://www.iso.org/standard/70743.html">https://www.iso.org/standard/70743.html</a> </dd><dt id="bib-iso-19133">[ISO-19133]</dt><dd> <a href="https://www.iso.org/standard/32551.html"><cite>Geographic information -- Location-based services -- Tracking and navigation</cite></a>. ISO/TC 211. ISO. 2005. International Standard. URL: <a href="https://www.iso.org/standard/32551.html">https://www.iso.org/standard/32551.html</a> </dd><dt id="bib-iso-19159-2">[ISO-19159-2]</dt><dd> <a href="https://www.iso.org/standard/64768.html"><cite>Geographic information -- Calibration and validation of remote sensing imagery sensors and data -- Part 2: Lidar</cite></a>. ISO/TC 211. ISO. 2016. Technical Specification. URL: <a href="https://www.iso.org/standard/64768.html">https://www.iso.org/standard/64768.html</a> </dd><dt id="bib-iso-19162">[ISO-19162]</dt><dd> <a href="https://www.iso.org/standard/63094.html"><cite>ISO 19162:2015 Geographic information -- Well-known text representation of coordinate reference systems</cite></a>. ISO/TC 211. ISO. 2015. International Standard. URL: <a href="https://www.iso.org/standard/63094.html">https://www.iso.org/standard/63094.html</a> </dd><dt id="bib-json-ld">[JSON-LD]</dt><dd> <a href="https://www.w3.org/TR/json-ld/"><cite>JSON-LD 1.0</cite></a>. Manu Sporny; Gregg Kellogg; Markus Lanthaler. W3C. 3 November 2020. W3C Recommendation. URL: <a href="https://www.w3.org/TR/json-ld/">https://www.w3.org/TR/json-ld/</a> </dd><dt id="bib-kml">[KML]</dt><dd> <a href="http://www.opengeospatial.org/standards/kml"><cite>OGC KML 2.3</cite></a>. David Burggraf. OGC. 4 August 2015. URL: <a href="http://www.opengeospatial.org/standards/kml">http://www.opengeospatial.org/standards/kml</a> </dd><dt id="bib-ld-bp">[LD-BP]</dt><dd> <a href="https://www.w3.org/TR/ld-bp/"><cite>Best Practices for Publishing Linked Data</cite></a>. Bernadette Hyland; Ghislain Auguste Atemezing; Boris Villazón-Terrazas. W3C. 9 January 2014. W3C Working Group Note. URL: <a href="https://www.w3.org/TR/ld-bp/">https://www.w3.org/TR/ld-bp/</a> </dd><dt id="bib-ldp-primer">[LDP-PRIMER]</dt><dd> <a href="https://www.w3.org/TR/ldp-primer/"><cite>Linked Data Platform 1.0 Primer</cite></a>. Nandana Mihindukulasooriya; Roger Menday. W3C. 23 April 2015. W3C Working Group Note. URL: <a href="https://www.w3.org/TR/ldp-primer/">https://www.w3.org/TR/ldp-primer/</a> </dd><dt id="bib-locn">[LOCN]</dt><dd> <a href="https://www.w3.org/ns/locn"><cite>ISA Programme Location Core Vocabulary</cite></a>. Andrea Perego; Michael Lutz. European Commission. 23 March 2015. Second version in w3.org/ns space. URL: <a href="https://www.w3.org/ns/locn">http://www.w3.org/ns/locn</a> </dd><dt id="bib-microdata">[MICRODATA]</dt><dd> <a href="https://www.w3.org/TR/microdata/"><cite>HTML Microdata</cite></a>. Chaals Nevile; Dan Brickley; Ian Hickson. W3C. 28 January 2021. W3C Working Group Note. URL: <a href="https://www.w3.org/TR/microdata/">https://www.w3.org/TR/microdata/</a> </dd><dt id="bib-n-triples">[N-TRIPLES]</dt><dd> <a href="https://www.w3.org/TR/n-triples/"><cite>RDF 1.1 N-Triples</cite></a>. Gavin Carothers; Andy Seaborne. W3C. 25 February 2014. W3C Recommendation. URL: <a href="https://www.w3.org/TR/n-triples/">https://www.w3.org/TR/n-triples/</a> </dd><dt id="bib-neogeo">[NeoGeo]</dt><dd> <a href="http://geovocab.org/doc/neogeo/"><cite>NeoGeo Vocabulary Specification</cite></a>. Barry Norton; Luis M. Vilches; Alexander De León; John Goodwin; Claus Stadler; Suchith Anand; Dominic Harries; Boris Villazón-Terrazas; Ghislain A. Atemezing. 5 February 2012 (Madrid Edition). URL: <a href="http://geovocab.org/doc/neogeo/">http://geovocab.org/doc/neogeo/</a> </dd><dt id="bib-oaedr">[OAEDR]</dt><dd> <a href="https://docs.ogc.org/is/19-086r5/19-086r5.html"><cite>OGC API - Environmental Data Retrieval Standard</cite></a>. Mark Burgoyne; David Blodgett; Charles Heazel; Chris Little. OGC. 2022. URL: <a href="https://docs.ogc.org/is/19-086r5/19-086r5.html">https://docs.ogc.org/is/19-086r5/19-086r5.html</a> </dd><dt id="bib-oaf1">[OAF1]</dt><dd> <a href="http://docs.ogc.org/is/17-069r3/17-069r3.html"><cite>OGC API - Features - Part 1: Core</cite></a>. Clemens Portele; Panagiotis (Peter) A. Vretanos; Charles Heazel. OGC. 14 October 2019. Approved. URL: <a href="http://docs.ogc.org/is/17-069r3/17-069r3.html">http://docs.ogc.org/is/17-069r3/17-069r3.html</a> </dd><dt id="bib-oaf2">[OAF2]</dt><dd> <a href="https://docs.ogc.org/is/18-058/18-058.html"><cite>OGC API - Features - Part 2: Coordinate Reference Systems by Reference</cite></a>. Clemens Portele; Panagiotis (Peter) A. Vretanos. OGC. 2 November 2020. Approved. URL: <a href="https://docs.ogc.org/is/18-058/18-058.html">https://docs.ogc.org/is/18-058/18-058.html</a> </dd><dt id="bib-ogc-api-wp">[OGC-API-WP]</dt><dd> <a href="http://docs.opengeospatial.org/wp/16-019r4/16-019r4.html"><cite>Open Geospatial APIs - White Paper</cite></a>. George Percivall (Editor). OGC. 23 February 2017. URL: <a href="http://docs.opengeospatial.org/wp/16-019r4/16-019r4.html">http://docs.opengeospatial.org/wp/16-019r4/16-019r4.html</a> </dd><dt id="bib-om-xml">[OM-XML]</dt><dd> <a href="http://www.opengeospatial.org/standards/om"><cite>Observations and Measurements - XML Implementation</cite></a>. Simon Cox. OGC. 22 March 2011. URL: <a href="http://www.opengeospatial.org/standards/om">http://www.opengeospatial.org/standards/om</a> </dd><dt id="bib-owl-time">[OWL-TIME]</dt><dd> <a href="https://www.w3.org/TR/owl-time/"><cite>Time Ontology in OWL</cite></a>. Simon Cox; Chris Little. W3C. 15 November 2022. W3C Candidate Recommendation. URL: <a href="https://www.w3.org/TR/owl-time/">https://www.w3.org/TR/owl-time/</a> </dd><dt id="bib-puri">[PURI]</dt><dd> <a href="http://philarcher.org/diary/2013/uripersistence/"><cite>Study On Persistent URIs</cite></a>. Phil Archer; Nikos Loutas; Stijn Goedertier; Saky Kourtidis. 17 December 2012. URL: <a href="http://philarcher.org/diary/2013/uripersistence/">http://philarcher.org/diary/2013/uripersistence/</a> </dd><dt id="bib-qb4st">[QB4ST]</dt><dd> <a href="https://www.w3.org/TR/qb4st/"><cite>QB4ST: RDF Data Cube extensions for spatio-temporal components</cite></a>. Rob Atkinson. W3C. 28 September 2017. W3C Working Group Note. URL: <a href="https://www.w3.org/TR/qb4st/">https://www.w3.org/TR/qb4st/</a> </dd><dt id="bib-rdf-syntax-grammar">[RDF-SYNTAX-GRAMMAR]</dt><dd> <a href="https://www.w3.org/TR/rdf-syntax-grammar/"><cite>RDF 1.1 XML Syntax</cite></a>. Fabien Gandon; Guus Schreiber. W3C. 25 February 2014. W3C Recommendation. URL: <a href="https://www.w3.org/TR/rdf-syntax-grammar/">https://www.w3.org/TR/rdf-syntax-grammar/</a> </dd><dt id="bib-rdf11-primer">[RDF11-PRIMER]</dt><dd> <a href="https://www.w3.org/TR/rdf11-primer/"><cite>RDF 1.1 Primer</cite></a>. Guus Schreiber; Yves Raimond. W3C. 24 June 2014. W3C Working Group Note. URL: <a href="https://www.w3.org/TR/rdf11-primer/">https://www.w3.org/TR/rdf11-primer/</a> </dd><dt id="bib-responsible-use-spatial">[responsible-use-spatial]</dt><dd> <a href="https://www.w3.org/TR/responsible-use-spatial/"><cite>The Responsible Use of Spatial Data</cite></a>. JOSEPH ABHAYARATNA; Ed Parsons. W3C. 27 May 2021. W3C Working Group Note. URL: <a href="https://www.w3.org/TR/responsible-use-spatial/">https://www.w3.org/TR/responsible-use-spatial/</a> </dd><dt id="bib-rfc2119">[RFC2119]</dt><dd> <a href="https://www.rfc-editor.org/rfc/rfc2119"><cite>Key words for use in RFCs to Indicate Requirement Levels</cite></a>. S. Bradner. IETF. March 1997. Best Current Practice. URL: <a href="https://www.rfc-editor.org/rfc/rfc2119">https://www.rfc-editor.org/rfc/rfc2119</a> </dd><dt id="bib-rfc2616">[RFC2616]</dt><dd> <a href="https://www.rfc-editor.org/rfc/rfc2616"><cite>Hypertext Transfer Protocol -- HTTP/1.1</cite></a>. R. Fielding; J. Gettys; J. Mogul; H. Frystyk; L. Masinter; P. Leach; T. Berners-Lee. IETF. June 1999. Draft Standard. URL: <a href="https://www.rfc-editor.org/rfc/rfc2616">https://www.rfc-editor.org/rfc/rfc2616</a> </dd><dt id="bib-rfc3986">[RFC3986]</dt><dd> <a href="https://www.rfc-editor.org/rfc/rfc3986"><cite>Uniform Resource Identifier (URI): Generic Syntax</cite></a>. T. Berners-Lee; R. Fielding; L. Masinter. IETF. January 2005. Internet Standard. URL: <a href="https://www.rfc-editor.org/rfc/rfc3986">https://www.rfc-editor.org/rfc/rfc3986</a> </dd><dt id="bib-rfc3987">[RFC3987]</dt><dd> <a href="https://www.rfc-editor.org/rfc/rfc3987"><cite>Internationalized Resource Identifiers (IRIs)</cite></a>. M. Duerst; M. Suignard. IETF. January 2005. Proposed Standard. URL: <a href="https://www.rfc-editor.org/rfc/rfc3987">https://www.rfc-editor.org/rfc/rfc3987</a> </dd><dt id="bib-rfc4180">[RFC4180]</dt><dd> <a href="https://www.rfc-editor.org/rfc/rfc4180"><cite>Common Format and MIME Type for Comma-Separated Values (CSV) Files</cite></a>. Y. Shafranovich. IETF. October 2005. Informational. URL: <a href="https://www.rfc-editor.org/rfc/rfc4180">https://www.rfc-editor.org/rfc/rfc4180</a> </dd><dt id="bib-rfc5829">[RFC5829]</dt><dd> <a href="https://www.rfc-editor.org/rfc/rfc5829"><cite>Link Relation Types for Simple Version Navigation between Web Resources</cite></a>. A. Brown; G. Clemm; J. Reschke, Ed.. IETF. April 2010. Informational. URL: <a href="https://www.rfc-editor.org/rfc/rfc5829">https://www.rfc-editor.org/rfc/rfc5829</a> </dd><dt id="bib-rfc5870">[RFC5870]</dt><dd> <a href="https://www.rfc-editor.org/rfc/rfc5870"><cite>A Uniform Resource Identifier for Geographic Locations ('geo' URI)</cite></a>. A. Mayrhofer; C. Spanring. IETF. June 2010. Proposed Standard. URL: <a href="https://www.rfc-editor.org/rfc/rfc5870">https://www.rfc-editor.org/rfc/rfc5870</a> </dd><dt id="bib-rfc5988">[RFC5988]</dt><dd> <a href="https://www.rfc-editor.org/rfc/rfc5988"><cite>Web Linking</cite></a>. M. Nottingham. IETF. October 2010. Proposed Standard. URL: <a href="https://www.rfc-editor.org/rfc/rfc5988">https://www.rfc-editor.org/rfc/rfc5988</a> </dd><dt id="bib-rfc6570">[RFC6570]</dt><dd> <a href="https://www.rfc-editor.org/rfc/rfc6570"><cite>URI Template</cite></a>. J. Gregorio; R. Fielding; M. Hadley; M. Nottingham; D. Orchard. IETF. March 2012. Proposed Standard. URL: <a href="https://www.rfc-editor.org/rfc/rfc6570">https://www.rfc-editor.org/rfc/rfc6570</a> </dd><dt id="bib-rfc6906">[RFC6906]</dt><dd> <a href="https://www.rfc-editor.org/rfc/rfc6906"><cite>The 'profile' Link Relation Type</cite></a>. E. Wilde. IETF. March 2013. Informational. URL: <a href="https://www.rfc-editor.org/rfc/rfc6906">https://www.rfc-editor.org/rfc/rfc6906</a> </dd><dt id="bib-rfc7159">[RFC7159]</dt><dd> <a href="https://www.rfc-editor.org/rfc/rfc7159"><cite>The JavaScript Object Notation (JSON) Data Interchange Format</cite></a>. T. Bray, Ed.. IETF. March 2014. Proposed Standard. URL: <a href="https://www.rfc-editor.org/rfc/rfc7159">https://www.rfc-editor.org/rfc/rfc7159</a> </dd><dt id="bib-rfc7946">[RFC7946]</dt><dd> <a href="https://www.rfc-editor.org/rfc/rfc7946"><cite>The GeoJSON Format</cite></a>. H. Butler; M. Daly; A. Doyle; S. Gillies; S. Hagen; T. Schaub. IETF. August 2016. Proposed Standard. URL: <a href="https://www.rfc-editor.org/rfc/rfc7946">https://www.rfc-editor.org/rfc/rfc7946</a> </dd><dt id="bib-rfc8142">[RFC8142]</dt><dd> <a href="https://www.rfc-editor.org/rfc/rfc8142"><cite>GeoJSON Text Sequences</cite></a>. S. Gillies. IETF. April 2017. Proposed Standard. URL: <a href="https://www.rfc-editor.org/rfc/rfc8142">https://www.rfc-editor.org/rfc/rfc8142</a> </dd><dt id="bib-rfc8174">[RFC8174]</dt><dd> <a href="https://www.rfc-editor.org/rfc/rfc8174"><cite>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</cite></a>. B. Leiba. IETF. May 2017. Best Current Practice. URL: <a href="https://www.rfc-editor.org/rfc/rfc8174">https://www.rfc-editor.org/rfc/rfc8174</a> </dd><dt id="bib-schema-org">[SCHEMA-ORG]</dt><dd> <a href="http://schema.org/"><cite>Schema.org</cite></a>. URL: <a href="http://schema.org/">http://schema.org/</a> </dd><dt id="bib-sdw-ucr">[SDW-UCR]</dt><dd> <a href="https://www.w3.org/TR/sdw-ucr/"><cite>Spatial Data on the Web Use Cases & Requirements</cite></a>. Frans Knibbe; Alejandro Llaves. W3C. 25 October 2016. W3C Working Group Note. URL: <a href="https://www.w3.org/TR/sdw-ucr/">https://www.w3.org/TR/sdw-ucr/</a> </dd><dt id="bib-sensorthings">[SENSORTHINGS]</dt><dd> <a href="http://www.opengeospatial.org/standards/sensorthings"><cite>OGC ® SensorThings API Part 1: Sensing</cite></a>. Steve Liang; Chih-Yuan Huang; Tania Khalafbeigi. OGC. 26 July 2016. OpenGIS Implementation Standard. URL: <a href="http://www.opengeospatial.org/standards/sensorthings">http://www.opengeospatial.org/standards/sensorthings</a> </dd><dt id="bib-simple-features">[SIMPLE-FEATURES]</dt><dd> <a href="http://www.opengeospatial.org/standards/sfa"><cite>Simple Feature Access - Part 1: Common Architecture</cite></a>. John Herring. OGC. 28 May 2011. URL: <a href="http://www.opengeospatial.org/standards/sfa">http://www.opengeospatial.org/standards/sfa</a> </dd><dt id="bib-sparql11-overview">[SPARQL11-OVERVIEW]</dt><dd> <a href="https://www.w3.org/TR/sparql11-overview/"><cite>SPARQL 1.1 Overview</cite></a>. The W3C SPARQL Working Group. W3C. 21 March 2013. W3C Recommendation. URL: <a href="https://www.w3.org/TR/sparql11-overview/">https://www.w3.org/TR/sparql11-overview/</a> </dd><dt id="bib-tabular-data-primer">[TABULAR-DATA-PRIMER]</dt><dd> <a href="https://www.w3.org/TR/tabular-data-primer/"><cite>CSV on the Web: A Primer</cite></a>. Jeni Tennison. W3C. 25 February 2016. W3C Working Group Note. URL: <a href="https://www.w3.org/TR/tabular-data-primer/">https://www.w3.org/TR/tabular-data-primer/</a> </dd><dt id="bib-tabular-metadata">[TABULAR-METADATA]</dt><dd> <a href="https://www.w3.org/TR/tabular-metadata/"><cite>Metadata Vocabulary for Tabular Data</cite></a>. Jeni Tennison; Gregg Kellogg. W3C. 17 December 2015. W3C Recommendation. URL: <a href="https://www.w3.org/TR/tabular-metadata/">https://www.w3.org/TR/tabular-metadata/</a> </dd><dt id="bib-timeseriesml">[TIMESERIESML]</dt><dd> <a href="http://www.opengeospatial.org/standards/tsml"><cite>TimeseriesML 1.0 – XML Encoding of the Timeseries Profile of Observations and Measurements</cite></a>. James Tomkins; Dominic Lowe. OGC. 9 September 2016. URL: <a href="http://www.opengeospatial.org/standards/tsml">http://www.opengeospatial.org/standards/tsml</a> </dd><dt id="bib-turtle">[TURTLE]</dt><dd> <a href="https://www.w3.org/TR/turtle/"><cite>RDF 1.1 Turtle</cite></a>. Eric Prud'hommeaux; Gavin Carothers. W3C. 25 February 2014. W3C Recommendation. URL: <a href="https://www.w3.org/TR/turtle/">https://www.w3.org/TR/turtle/</a> </dd><dt id="bib-urls-in-data">[URLs-in-data]</dt><dd> <a href="https://www.w3.org/TR/urls-in-data/"><cite>URLs in Data Primer</cite></a>. Jeni Tennison. W3C. 4 June 2013. W3C Working Draft. URL: <a href="https://www.w3.org/TR/urls-in-data/">https://www.w3.org/TR/urls-in-data/</a> </dd><dt id="bib-vcard-rdf">[VCARD-RDF]</dt><dd> <a href="https://www.w3.org/TR/vcard-rdf/"><cite>vCard Ontology - for describing People and Organizations</cite></a>. Renato Iannella; James McKinney. W3C. 22 May 2014. W3C Working Group Note. URL: <a href="https://www.w3.org/TR/vcard-rdf/">https://www.w3.org/TR/vcard-rdf/</a> </dd><dt id="bib-veregin">[Veregin]</dt><dd> <a href="http://www.geos.ed.ac.uk/~gisteac/gis_book_abridged/files/ch12.pdf"><cite>Data quality parameters. In: Geographical Information Systems: Principles, Techniques, Management and Applications</cite></a>. H. Veregin. URL: <a href="http://www.geos.ed.ac.uk/~gisteac/gis_book_abridged/files/ch12.pdf">http://www.geos.ed.ac.uk/~gisteac/gis_book_abridged/files/ch12.pdf</a> </dd><dt id="bib-vocab-data-cube">[VOCAB-DATA-CUBE]</dt><dd> <a href="https://www.w3.org/TR/vocab-data-cube/"><cite>The RDF Data Cube Vocabulary</cite></a>. Richard Cyganiak; Dave Reynolds. W3C. 16 January 2014. W3C Recommendation. URL: <a href="https://www.w3.org/TR/vocab-data-cube/">https://www.w3.org/TR/vocab-data-cube/</a> </dd><dt id="bib-vocab-dcat-2">[VOCAB-DCAT-2]</dt><dd> <a href="https://www.w3.org/TR/vocab-dcat-2/"><cite>Data Catalog Vocabulary (DCAT) - Version 2</cite></a>. Riccardo Albertoni; David Browning; Simon Cox; Alejandra Gonzalez Beltran; Andrea Perego; Peter Winstanley. W3C. 4 February 2020. W3C Recommendation. URL: <a href="https://www.w3.org/TR/vocab-dcat-2/">https://www.w3.org/TR/vocab-dcat-2/</a> </dd><dt id="bib-vocab-dqv">[VOCAB-DQV]</dt><dd> <a href="https://www.w3.org/TR/vocab-dqv/"><cite>Data on the Web Best Practices: Data Quality Vocabulary</cite></a>. Riccardo Albertoni; Antoine Isaac. W3C. 15 December 2016. W3C Working Group Note. URL: <a href="https://www.w3.org/TR/vocab-dqv/">https://www.w3.org/TR/vocab-dqv/</a> </dd><dt id="bib-vocab-ssn">[VOCAB-SSN]</dt><dd> <a href="https://www.w3.org/TR/vocab-ssn/"><cite>Semantic Sensor Network Ontology</cite></a>. Armin Haller; Krzysztof Janowicz; Simon Cox; Danh Le Phuoc; Kerry Taylor; Maxime Lefrançois. W3C. 19 October 2017. W3C Recommendation. URL: <a href="https://www.w3.org/TR/vocab-ssn/">https://www.w3.org/TR/vocab-ssn/</a> </dd><dt id="bib-void">[VoID]</dt><dd> <a href="https://www.w3.org/TR/void/"><cite>Describing Linked Datasets with the VoID Vocabulary</cite></a>. Keith Alexander; Richard Cyganiak; Michael Hausenblas; Jun Zhao. W3C. 3 March 2011. W3C Working Group Note. URL: <a href="https://www.w3.org/TR/void/">https://www.w3.org/TR/void/</a> </dd><dt id="bib-w3c-basic-geo">[W3C-BASIC-GEO]</dt><dd> <a href="https://www.w3.org/2003/01/geo/"><cite>Basic Geo (WGS84 lat/long) Vocabulary</cite></a>. Dan Brickley. W3C Semantic Web Interest Group. 1 February 2006. URL: <a href="https://www.w3.org/2003/01/geo/">https://www.w3.org/2003/01/geo/</a> </dd><dt id="bib-web-data">[WEB-DATA]</dt><dd> <a href="http://webdata.systems"><cite>Web Data</cite></a>. Erik Wilde. 1 November 2016. URL: <a href="http://webdata.systems">http://webdata.systems</a> </dd><dt id="bib-webarch">[WEBARCH]</dt><dd> <a href="https://www.w3.org/TR/webarch/"><cite>Architecture of the World Wide Web, Volume One</cite></a>. Ian Jacobs; Norman Walsh. W3C. 15 December 2004. W3C Recommendation. URL: <a href="https://www.w3.org/TR/webarch/">https://www.w3.org/TR/webarch/</a> </dd><dt id="bib-wfs">[WFS]</dt><dd> <a href="http://www.opengeospatial.org/standards/wfs"><cite>Web Feature Service 2.0 Interface Standard</cite></a>. Panagiotis (Peter) A. Vretanos. OGC. 10 July 2014. OGC Interface Standard. URL: <a href="http://www.opengeospatial.org/standards/wfs">http://www.opengeospatial.org/standards/wfs</a> </dd><dt id="bib-wmts">[WMTS]</dt><dd> <a href="http://www.opengeospatial.org/standards/wmts"><cite>Web Map Tile Service Implementation Standard</cite></a>. Joan Masó; Keith Pomakis; Núria Julià. OGC. 6 April 2010. OpenGIS Implementation Standard. URL: <a href="http://www.opengeospatial.org/standards/wmts">http://www.opengeospatial.org/standards/wmts</a> </dd><dt id="bib-xlink11">[XLINK11]</dt><dd> <a href="https://www.w3.org/TR/xlink11/"><cite>XML Linking Language (XLink) Version 1.1</cite></a>. Steven DeRose; Eve Maler; David Orchard; Norman Walsh et al. W3C. 6 May 2010. W3C Recommendation. URL: <a href="https://www.w3.org/TR/xlink11/">https://www.w3.org/TR/xlink11/</a> </dd><dt id="bib-xml11">[XML11]</dt><dd> <a href="https://www.w3.org/TR/xml11/"><cite>Extensible Markup Language (XML) 1.1 (Second Edition)</cite></a>. Tim Bray; Jean Paoli; Michael Sperberg-McQueen; Eve Maler; François Yergeau; John Cowan et al. W3C. 16 August 2006. W3C Recommendation. URL: <a href="https://www.w3.org/TR/xml11/">https://www.w3.org/TR/xml11/</a> </dd><dt id="bib-zarr">[ZARR]</dt><dd> <a href="https://zarr.dev/"><cite>Zarr</cite></a>. Zarr community. 2022. URL: <a href="https://zarr.dev/">https://zarr.dev/</a> </dd></dl> </section><section id="informative-references"><div class="header-wrapper"><h3 id="h-2-informative-references"><bdi class="secno">H.2 </bdi>Informative references</h3><a class="self-link" href="#informative-references" aria-label="Permalink for Appendix H.2"></a></div> <dl class="bibliography"><dt id="bib-csw">[CSW]</dt><dd> <a href="http://www.opengeospatial.org/standards/cat"><cite>Catalogue Services 3.0 - General Model</cite></a>. Douglas Nebert; Uwe Voges; Lorenzo Bigagli. OGC. 10 June 2016. URL: <a href="http://www.opengeospatial.org/standards/cat">http://www.opengeospatial.org/standards/cat</a> </dd><dt id="bib-geopackage">[GeoPackage]</dt><dd> <a href="http://www.opengis.net/doc/IS/geopackage/1.3"><cite>OGC® GeoPackage Encoding Standard</cite></a>. OGC. 16 November 2021. URL: <a href="http://www.opengis.net/doc/IS/geopackage/1.3">http://www.opengis.net/doc/IS/geopackage/1.3</a> </dd><dt id="bib-moving-features-csv">[MOVING-FEATURES-CSV]</dt><dd> <a href="http://www.opengeospatial.org/standards/movingfeatures"><cite>OGC ® Moving Features Encoding Extension: Simple Comma Separated Values (CSV)</cite></a>. Akinori Asahara; Ryosuke Shibasaki; Nobuhiro Ishimaru; David Burggraf. OGC. 17 February 2015. URL: <a href="http://www.opengeospatial.org/standards/movingfeatures">http://www.opengeospatial.org/standards/movingfeatures</a> </dd><dt id="bib-moving-features-xml">[MOVING-FEATURES-XML]</dt><dd> <a href="http://www.opengeospatial.org/standards/movingfeatures"><cite>OGC ® Moving Features Encoding Part I: XML Core</cite></a>. Akinori Asahara; Ryosuke Shibasaki; Nobuhiro Ishimaru; David Burggraf. OGC. 17 February 2015. URL: <a href="http://www.opengeospatial.org/standards/movingfeatures">http://www.opengeospatial.org/standards/movingfeatures</a> </dd><dt id="bib-ogc-topic-2">[OGC-TOPIC-2]</dt><dd> <a href="http://portal.opengeospatial.org/files/39049"><cite>OGC Abstract Specification Topic 2 - Spatial referencing by coordinates</cite></a>. Roger Lott. OGC. 27 April 2010. URL: <a href="http://portal.opengeospatial.org/files/39049">http://portal.opengeospatial.org/files/39049</a> </dd><dt id="bib-owl2-overview">[OWL2-OVERVIEW]</dt><dd> <a href="https://www.w3.org/TR/owl2-overview/"><cite>OWL 2 Web Ontology Language Document Overview (Second Edition)</cite></a>. W3C OWL Working Group. W3C. 11 December 2012. W3C Recommendation. URL: <a href="https://www.w3.org/TR/owl2-overview/">https://www.w3.org/TR/owl2-overview/</a> </dd><dt id="bib-r2rml">[R2RML]</dt><dd> <a href="https://www.w3.org/TR/r2rml/"><cite>R2RML: RDB to RDF Mapping Language</cite></a>. Souripriya Das; Seema Sundara; Richard Cyganiak. W3C. 27 September 2012. W3C Recommendation. URL: <a href="https://www.w3.org/TR/r2rml/">https://www.w3.org/TR/r2rml/</a> </dd><dt id="bib-rdf-schema">[RDF-SCHEMA]</dt><dd> <a href="https://www.w3.org/TR/rdf-schema/"><cite>RDF Schema 1.1</cite></a>. Dan Brickley; Ramanathan Guha. W3C. 25 February 2014. W3C Recommendation. URL: <a href="https://www.w3.org/TR/rdf-schema/">https://www.w3.org/TR/rdf-schema/</a> </dd><dt id="bib-shacl">[SHACL]</dt><dd> <a href="https://www.w3.org/TR/shacl/"><cite>Shapes Constraint Language (SHACL)</cite></a>. Holger Knublauch; Dimitris Kontokostas. W3C. 20 July 2017. W3C Recommendation. URL: <a href="https://www.w3.org/TR/shacl/">https://www.w3.org/TR/shacl/</a> </dd><dt id="bib-skos-primer">[SKOS-PRIMER]</dt><dd> <a href="https://www.w3.org/TR/skos-primer/"><cite>SKOS Simple Knowledge Organization System Primer</cite></a>. Antoine Isaac; Ed Summers. W3C. 18 August 2009. W3C Working Group Note. URL: <a href="https://www.w3.org/TR/skos-primer/">https://www.w3.org/TR/skos-primer/</a> </dd><dt id="bib-vocab-adms">[VOCAB-ADMS]</dt><dd> <a href="https://www.w3.org/TR/vocab-adms/"><cite>Asset Description Metadata Schema (ADMS)</cite></a>. Phil Archer; Gofran Shukair. W3C. 1 August 2013. W3C Working Group Note. URL: <a href="https://www.w3.org/TR/vocab-adms/">https://www.w3.org/TR/vocab-adms/</a> </dd><dt id="bib-waterml">[WaterML]</dt><dd> <a href="http://www.opengeospatial.org/standards/waterml"><cite>OGC® WaterML 2.0</cite></a>. OGC. 7 September 2012. OGC Implementation Standard. URL: <a href="http://www.opengeospatial.org/standards/waterml">http://www.opengeospatial.org/standards/waterml</a> </dd></dl> </section></section><p role="navigation" id="back-to-top"> <a href="#title"><abbr title="Back to Top">↑</abbr></a> </p><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-absolute-positional-accuracy" aria-label="Links in this document to definition: Absolute positional accuracy" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-absolute-positional-accuracy" aria-label="Permalink for definition: Absolute positional accuracy. Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-absolute-positional-accuracy-1" title="§ Possible Approach to Implementation">§ Possible Approach to Implementation</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-axis-order" aria-label="Links in this document to definition: Axis order" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-axis-order" aria-label="Permalink for definition: Axis order. Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-axis-order-1" title="§ 10. Coordinate Reference Systems (CRS)">§ 10. Coordinate Reference Systems (CRS)</a> <a href="#ref-for-dfn-axis-order-2" title="Reference 2">(2)</a> </li><li> <a href="#ref-for-dfn-axis-order-3" title="§ Possible Approach to Implementation">§ Possible Approach to Implementation</a> </li><li> <a href="#ref-for-dfn-axis-order-4" title="§ A. Applicability of common formats to implementation of best practices">§ A. Applicability of common formats to implementation of best practices</a> <a href="#ref-for-dfn-axis-order-5" title="Reference 2">(2)</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-crs" aria-label="Links in this document to definition: Coordinate Reference System (CRS)" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-crs" aria-label="Permalink for definition: Coordinate Reference System (CRS). Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-crs-1" title="§ 5. Best Practices Summary">§ 5. Best Practices Summary</a> </li><li> <a href="#ref-for-dfn-crs-2" title="§ 10. Coordinate Reference Systems (CRS)">§ 10. Coordinate Reference Systems (CRS)</a> <a href="#ref-for-dfn-crs-3" title="Reference 2">(2)</a> <a href="#ref-for-dfn-crs-4" title="Reference 3">(3)</a> <a href="#ref-for-dfn-crs-5" title="Reference 4">(4)</a> <a href="#ref-for-dfn-crs-6" title="Reference 5">(5)</a> <a href="#ref-for-dfn-crs-7" title="Reference 6">(6)</a> <a href="#ref-for-dfn-crs-8" title="Reference 7">(7)</a> <a href="#ref-for-dfn-crs-9" title="Reference 8">(8)</a> <a href="#ref-for-dfn-crs-10" title="Reference 9">(9)</a> <a href="#ref-for-dfn-crs-11" title="Reference 10">(10)</a> <a href="#ref-for-dfn-crs-12" title="Reference 11">(11)</a> <a href="#ref-for-dfn-crs-13" title="Reference 12">(12)</a> </li><li> <a href="#ref-for-dfn-crs-14" title="§ 12. Why are traditional Spatial Data Infrastructures not enough?">§ 12. Why are traditional Spatial Data Infrastructures not enough?</a> <a href="#ref-for-dfn-crs-15" title="Reference 2">(2)</a> </li><li> <a href="#ref-for-dfn-crs-16" title="§ Possible Approach to Implementation">§ Possible Approach to Implementation</a> <a href="#ref-for-dfn-crs-19" title="Reference 2">(2)</a> <a href="#ref-for-dfn-crs-20" title="Reference 3">(3)</a> <a href="#ref-for-dfn-crs-21" title="Reference 4">(4)</a> <a href="#ref-for-dfn-crs-22" title="Reference 5">(5)</a> <a href="#ref-for-dfn-crs-23" title="Reference 6">(6)</a> <a href="#ref-for-dfn-crs-24" title="Reference 7">(7)</a> <a href="#ref-for-dfn-crs-25" title="Reference 8">(8)</a> <a href="#ref-for-dfn-crs-26" title="Reference 9">(9)</a> <a href="#ref-for-dfn-crs-27" title="Reference 10">(10)</a> <a href="#ref-for-dfn-crs-28" title="Reference 11">(11)</a> <a href="#ref-for-dfn-crs-29" title="Reference 12">(12)</a> <a href="#ref-for-dfn-crs-30" title="Reference 13">(13)</a> <a href="#ref-for-dfn-crs-31" title="Reference 14">(14)</a> <a href="#ref-for-dfn-crs-32" title="Reference 15">(15)</a> <a href="#ref-for-dfn-crs-33" title="Reference 16">(16)</a> <a href="#ref-for-dfn-crs-41" title="Reference 17">(17)</a> <a href="#ref-for-dfn-crs-42" title="Reference 18">(18)</a> <a href="#ref-for-dfn-crs-43" title="Reference 19">(19)</a> <a href="#ref-for-dfn-crs-44" title="Reference 20">(20)</a> <a href="#ref-for-dfn-crs-45" title="Reference 21">(21)</a> <a href="#ref-for-dfn-crs-46" title="Reference 22">(22)</a> <a href="#ref-for-dfn-crs-47" title="Reference 23">(23)</a> <a href="#ref-for-dfn-crs-48" title="Reference 24">(24)</a> <a href="#ref-for-dfn-crs-51" title="Reference 25">(25)</a> <a href="#ref-for-dfn-crs-52" title="Reference 26">(26)</a> <a href="#ref-for-dfn-crs-53" title="Reference 27">(27)</a> <a href="#ref-for-dfn-crs-54" title="Reference 28">(28)</a> <a href="#ref-for-dfn-crs-55" title="Reference 29">(29)</a> <a href="#ref-for-dfn-crs-56" title="Reference 30">(30)</a> <a href="#ref-for-dfn-crs-57" title="Reference 31">(31)</a> <a href="#ref-for-dfn-crs-58" title="Reference 32">(32)</a> <a href="#ref-for-dfn-crs-59" title="Reference 33">(33)</a> <a href="#ref-for-dfn-crs-60" title="Reference 34">(34)</a> <a href="#ref-for-dfn-crs-61" title="Reference 35">(35)</a> <a href="#ref-for-dfn-crs-62" title="Reference 36">(36)</a> <a href="#ref-for-dfn-crs-63" title="Reference 37">(37)</a> <a href="#ref-for-dfn-crs-64" title="Reference 38">(38)</a> <a href="#ref-for-dfn-crs-66" title="Reference 39">(39)</a> <a href="#ref-for-dfn-crs-67" title="Reference 40">(40)</a> <a href="#ref-for-dfn-crs-68" title="Reference 41">(41)</a> <a href="#ref-for-dfn-crs-73" title="Reference 42">(42)</a> <a href="#ref-for-dfn-crs-74" title="Reference 43">(43)</a> <a href="#ref-for-dfn-crs-75" title="Reference 44">(44)</a> <a href="#ref-for-dfn-crs-76" title="Reference 45">(45)</a> <a href="#ref-for-dfn-crs-77" title="Reference 46">(46)</a> <a href="#ref-for-dfn-crs-78" title="Reference 47">(47)</a> <a href="#ref-for-dfn-crs-79" title="Reference 48">(48)</a> <a href="#ref-for-dfn-crs-80" title="Reference 49">(49)</a> <a href="#ref-for-dfn-crs-81" title="Reference 50">(50)</a> <a href="#ref-for-dfn-crs-84" title="Reference 51">(51)</a> <a href="#ref-for-dfn-crs-85" title="Reference 52">(52)</a> </li><li> <a href="#ref-for-dfn-crs-17" title="§ 13.2.2 Geometries and coordinate reference systems">§ 13.2.2 Geometries and coordinate reference systems</a> <a href="#ref-for-dfn-crs-34" title="Reference 2">(2)</a> </li><li> <a href="#ref-for-dfn-crs-18" title="§ Intended Outcome">§ Intended Outcome</a> <a href="#ref-for-dfn-crs-40" title="Reference 2">(2)</a> <a href="#ref-for-dfn-crs-72" title="Reference 3">(3)</a> </li><li> <a href="#ref-for-dfn-crs-35" title="§ Why">§ Why</a> <a href="#ref-for-dfn-crs-36" title="Reference 2">(2)</a> <a href="#ref-for-dfn-crs-37" title="Reference 3">(3)</a> <a href="#ref-for-dfn-crs-38" title="Reference 4">(4)</a> <a href="#ref-for-dfn-crs-39" title="Reference 5">(5)</a> <a href="#ref-for-dfn-crs-50" title="Reference 6">(6)</a> <a href="#ref-for-dfn-crs-65" title="Reference 7">(7)</a> <a href="#ref-for-dfn-crs-71" title="Reference 8">(8)</a> </li><li> <a href="#ref-for-dfn-crs-49" title="§ How to Test">§ How to Test</a> </li><li> <a href="#ref-for-dfn-crs-69" title="§ 13.4 Spatial data access">§ 13.4 Spatial data access</a> <a href="#ref-for-dfn-crs-70" title="Reference 2">(2)</a> </li><li> <a href="#ref-for-dfn-crs-82" title="§ 13.5 Spatial metadata">§ 13.5 Spatial metadata</a> <a href="#ref-for-dfn-crs-83" title="Reference 2">(2)</a> </li><li> <a href="#ref-for-dfn-crs-86" title="§ 15.2 Spatial data vocabulary">§ 15.2 Spatial data vocabulary</a> <a href="#ref-for-dfn-crs-87" title="Reference 2">(2)</a> </li><li> <a href="#ref-for-dfn-crs-88" title="§ 15.5 Helping software understand units of measure">§ 15.5 Helping software understand units of measure</a> </li><li> <a href="#ref-for-dfn-crs-89" title="§ A. Applicability of common formats to implementation of best practices">§ A. Applicability of common formats to implementation of best practices</a> <a href="#ref-for-dfn-crs-90" title="Reference 2">(2)</a> </li><li> <a href="#ref-for-dfn-crs-91" title="§ E. Glossary">§ E. Glossary</a> <a href="#ref-for-dfn-crs-92" title="Reference 2">(2)</a> <a href="#ref-for-dfn-crs-93" title="Reference 3">(3)</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-coverage" aria-label="Links in this document to definition: Coverage" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-coverage" aria-label="Permalink for definition: Coverage. Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-coverage-1" title="§ 5. Best Practices Summary">§ 5. Best Practices Summary</a> </li><li> <a href="#ref-for-dfn-coverage-2" title="§ 8. Coverages: describing properties that vary with location (and time)">§ 8. Coverages: describing properties that vary with location (and time)</a> <a href="#ref-for-dfn-coverage-3" title="Reference 2">(2)</a> <a href="#ref-for-dfn-coverage-4" title="Reference 3">(3)</a> <a href="#ref-for-dfn-coverage-5" title="Reference 4">(4)</a> <a href="#ref-for-dfn-coverage-6" title="Reference 5">(5)</a> <a href="#ref-for-dfn-coverage-7" title="Reference 6">(6)</a> <a href="#ref-for-dfn-coverage-8" title="Reference 7">(7)</a> <a href="#ref-for-dfn-coverage-9" title="Reference 8">(8)</a> </li><li> <a href="#ref-for-dfn-coverage-10" title="§ Possible Approach to Implementation">§ Possible Approach to Implementation</a> <a href="#ref-for-dfn-coverage-15" title="Reference 2">(2)</a> <a href="#ref-for-dfn-coverage-16" title="Reference 3">(3)</a> <a href="#ref-for-dfn-coverage-17" title="Reference 4">(4)</a> </li><li> <a href="#ref-for-dfn-coverage-11" title="§ 13.4 Spatial data access">§ 13.4 Spatial data access</a> <a href="#ref-for-dfn-coverage-12" title="Reference 2">(2)</a> </li><li> <a href="#ref-for-dfn-coverage-13" title="§ Why">§ Why</a> <a href="#ref-for-dfn-coverage-14" title="Reference 2">(2)</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-csv" aria-label="Links in this document to definition: Comma Separate Values (CSV)" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-csv" aria-label="Permalink for definition: Comma Separate Values (CSV). Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-csv-1" title="§ 4.2 Data publication">§ 4.2 Data publication</a> </li><li> <a href="#ref-for-dfn-csv-2" title="§ 11. Linked Data">§ 11. Linked Data</a> </li><li> <a href="#ref-for-dfn-csv-3" title="§ 13.2.1 Spatial data encoding">§ 13.2.1 Spatial data encoding</a> </li><li> <a href="#ref-for-dfn-csv-4" title="§ Possible Approach to Implementation">§ Possible Approach to Implementation</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-datum" aria-label="Links in this document to definition: Datum" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-datum" aria-label="Permalink for definition: Datum. Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-datum-1" title="§ 10. Coordinate Reference Systems (CRS)">§ 10. Coordinate Reference Systems (CRS)</a> <a href="#ref-for-dfn-datum-2" title="Reference 2">(2)</a> <a href="#ref-for-dfn-datum-3" title="Reference 3">(3)</a> </li><li> <a href="#ref-for-dfn-datum-4" title="§ Why">§ Why</a> <a href="#ref-for-dfn-datum-5" title="Reference 2">(2)</a> <a href="#ref-for-dfn-datum-6" title="Reference 3">(3)</a> <a href="#ref-for-dfn-datum-11" title="Reference 4">(4)</a> </li><li> <a href="#ref-for-dfn-datum-7" title="§ Possible Approach to Implementation">§ Possible Approach to Implementation</a> <a href="#ref-for-dfn-datum-8" title="Reference 2">(2)</a> <a href="#ref-for-dfn-datum-9" title="Reference 3">(3)</a> <a href="#ref-for-dfn-datum-10" title="Reference 4">(4)</a> <a href="#ref-for-dfn-datum-12" title="Reference 5">(5)</a> <a href="#ref-for-dfn-datum-13" title="Reference 6">(6)</a> <a href="#ref-for-dfn-datum-14" title="Reference 7">(7)</a> <a href="#ref-for-dfn-datum-15" title="Reference 8">(8)</a> <a href="#ref-for-dfn-datum-16" title="Reference 9">(9)</a> <a href="#ref-for-dfn-datum-17" title="Reference 10">(10)</a> <a href="#ref-for-dfn-datum-19" title="Reference 11">(11)</a> </li><li> <a href="#ref-for-dfn-datum-18" title="§ How to Test">§ How to Test</a> </li><li> <a href="#ref-for-dfn-datum-20" title="§ A. Applicability of common formats to implementation of best practices">§ A. Applicability of common formats to implementation of best practices</a> </li><li> <a href="#ref-for-dfn-datum-21" title="§ E. Glossary">§ E. Glossary</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-dimension" aria-label="Links in this document to definition: Dimension (geometry)" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-dimension" aria-label="Permalink for definition: Dimension (geometry). Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-dimension-1" title="§ 10. Coordinate Reference Systems (CRS)">§ 10. Coordinate Reference Systems (CRS)</a> </li><li> <a href="#ref-for-dfn-dimension-2" title="§ Possible Approach to Implementation">§ Possible Approach to Implementation</a> <a href="#ref-for-dfn-dimension-4" title="Reference 2">(2)</a> <a href="#ref-for-dfn-dimension-5" title="Reference 3">(3)</a> <a href="#ref-for-dfn-dimension-6" title="Reference 4">(4)</a> <a href="#ref-for-dfn-dimension-7" title="Reference 5">(5)</a> <a href="#ref-for-dfn-dimension-8" title="Reference 6">(6)</a> <a href="#ref-for-dfn-dimension-9" title="Reference 7">(7)</a> </li><li> <a href="#ref-for-dfn-dimension-3" title="§ Intended Outcome">§ Intended Outcome</a> </li><li> <a href="#ref-for-dfn-dimension-10" title="§ E. Glossary">§ E. Glossary</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-discrete-global-grid-system" aria-label="Links in this document to definition: Discrete Global Grid System" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-discrete-global-grid-system" aria-label="Permalink for definition: Discrete Global Grid System. Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-discrete-global-grid-system-1" title="§ 15.4 Publishing dynamic and large datasets on the Web">§ 15.4 Publishing dynamic and large datasets on the Web</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-ellipsoid" aria-label="Links in this document to definition: Ellipsoid" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-ellipsoid" aria-label="Permalink for definition: Ellipsoid. Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-ellipsoid-1" title="§ 10. Coordinate Reference Systems (CRS)">§ 10. Coordinate Reference Systems (CRS)</a> <a href="#ref-for-dfn-ellipsoid-2" title="Reference 2">(2)</a> </li><li> <a href="#ref-for-dfn-ellipsoid-3" title="§ Why">§ Why</a> </li><li> <a href="#ref-for-dfn-ellipsoid-4" title="§ Possible Approach to Implementation">§ Possible Approach to Implementation</a> <a href="#ref-for-dfn-ellipsoid-5" title="Reference 2">(2)</a> <a href="#ref-for-dfn-ellipsoid-6" title="Reference 3">(3)</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-extensible-markup-language" aria-label="Links in this document to definition: Extensible Markup Language (XML)" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-extensible-markup-language" aria-label="Permalink for definition: Extensible Markup Language (XML). Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-extensible-markup-language-1" title="§ 11. Linked Data">§ 11. Linked Data</a> </li><li> <a href="#ref-for-dfn-extensible-markup-language-2" title="§ Possible Approach to Implementation">§ Possible Approach to Implementation</a> <a href="#ref-for-dfn-extensible-markup-language-3" title="Reference 2">(2)</a> <a href="#ref-for-dfn-extensible-markup-language-5" title="Reference 3">(3)</a> <a href="#ref-for-dfn-extensible-markup-language-6" title="Reference 4">(4)</a> <a href="#ref-for-dfn-extensible-markup-language-7" title="Reference 5">(5)</a> </li><li> <a href="#ref-for-dfn-extensible-markup-language-4" title="§ 13.2.1 Spatial data encoding">§ 13.2.1 Spatial data encoding</a> </li><li> <a href="#ref-for-dfn-extensible-markup-language-8" title="§ A. Applicability of common formats to implementation of best practices">§ A. Applicability of common formats to implementation of best practices</a> <a href="#ref-for-dfn-extensible-markup-language-9" title="Reference 2">(2)</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-extent" aria-label="Links in this document to definition: Extent" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-extent" aria-label="Permalink for definition: Extent. Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-extent-1" title="§ 2. Introduction">§ 2. Introduction</a> </li><li> <a href="#ref-for-dfn-extent-2" title="§ 7. Spatial Things, Features and Geometry">§ 7. Spatial Things, Features and Geometry</a> <a href="#ref-for-dfn-extent-3" title="Reference 2">(2)</a> </li><li> <a href="#ref-for-dfn-extent-4" title="§ 8. Coverages: describing properties that vary with location (and time)">§ 8. Coverages: describing properties that vary with location (and time)</a> <a href="#ref-for-dfn-extent-5" title="Reference 2">(2)</a> </li><li> <a href="#ref-for-dfn-extent-6" title="§ 13.2.1 Spatial data encoding">§ 13.2.1 Spatial data encoding</a> </li><li> <a href="#ref-for-dfn-extent-7" title="§ Why">§ Why</a> <a href="#ref-for-dfn-extent-10" title="Reference 2">(2)</a> <a href="#ref-for-dfn-extent-14" title="Reference 3">(3)</a> </li><li> <a href="#ref-for-dfn-extent-8" title="§ Possible Approach to Implementation">§ Possible Approach to Implementation</a> <a href="#ref-for-dfn-extent-9" title="Reference 2">(2)</a> <a href="#ref-for-dfn-extent-11" title="Reference 3">(3)</a> <a href="#ref-for-dfn-extent-15" title="Reference 4">(4)</a> </li><li> <a href="#ref-for-dfn-extent-12" title="§ 13.5 Spatial metadata">§ 13.5 Spatial metadata</a> <a href="#ref-for-dfn-extent-13" title="Reference 2">(2)</a> </li><li> <a href="#ref-for-dfn-extent-16" title="§ 15.6 Defining that two places are the same">§ 15.6 Defining that two places are the same</a> <a href="#ref-for-dfn-extent-17" title="Reference 2">(2)</a> </li><li> <a href="#ref-for-dfn-extent-18" title="§ E. Glossary">§ E. Glossary</a> <a href="#ref-for-dfn-extent-19" title="Reference 2">(2)</a> <a href="#ref-for-dfn-extent-20" title="Reference 3">(3)</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-feature" aria-label="Links in this document to definition: Feature" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-feature" aria-label="Permalink for definition: Feature. Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-feature-1" title="§ 7. Spatial Things, Features and Geometry">§ 7. Spatial Things, Features and Geometry</a> <a href="#ref-for-dfn-feature-2" title="Reference 2">(2)</a> <a href="#ref-for-dfn-feature-3" title="Reference 3">(3)</a> <a href="#ref-for-dfn-feature-4" title="Reference 4">(4)</a> <a href="#ref-for-dfn-feature-5" title="Reference 5">(5)</a> <a href="#ref-for-dfn-feature-6" title="Reference 6">(6)</a> </li><li> <a href="#ref-for-dfn-feature-7" title="§ 8. Coverages: describing properties that vary with location (and time)">§ 8. Coverages: describing properties that vary with location (and time)</a> </li><li> <a href="#ref-for-dfn-feature-8" title="§ 13.1.1 Spatial data identifiers">§ 13.1.1 Spatial data identifiers</a> </li><li> <a href="#ref-for-dfn-feature-9" title="§ Possible Approach to Implementation">§ Possible Approach to Implementation</a> <a href="#ref-for-dfn-feature-10" title="Reference 2">(2)</a> </li><li> <a href="#ref-for-dfn-feature-11" title="§ E. Glossary">§ E. Glossary</a> <a href="#ref-for-dfn-feature-12" title="Reference 2">(2)</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-geocoding" aria-label="Links in this document to definition: Geocoding" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-geocoding" aria-label="Permalink for definition: Geocoding. Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-geocoding-1" title="§ 4.5 Privacy considerations">§ 4.5 Privacy considerations</a> </li><li> <a href="#ref-for-dfn-geocoding-2" title="§ 10. Coordinate Reference Systems (CRS)">§ 10. Coordinate Reference Systems (CRS)</a> </li><li> <a href="#ref-for-dfn-geocoding-3" title="§ Possible Approach to Implementation">§ Possible Approach to Implementation</a> <a href="#ref-for-dfn-geocoding-4" title="Reference 2">(2)</a> </li><li> <a href="#ref-for-dfn-geocoding-5" title="§ E. Glossary">§ E. Glossary</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-geographic-information" aria-label="Links in this document to definition: Geographic information (also geospatial data)" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-geographic-information" aria-label="Permalink for definition: Geographic information (also geospatial data). Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-geographic-information-1" title="§ 4.1 Spatial data">§ 4.1 Spatial data</a> </li><li> <a href="#ref-for-dfn-geographic-information-2" title="§ 7. Spatial Things, Features and Geometry">§ 7. Spatial Things, Features and Geometry</a> </li><li> <a href="#ref-for-dfn-geographic-information-3" title="§ 10. Coordinate Reference Systems (CRS)">§ 10. Coordinate Reference Systems (CRS)</a> </li><li> <a href="#ref-for-dfn-geographic-information-4" title="§ Possible Approach to Implementation">§ Possible Approach to Implementation</a> </li><li> <a href="#ref-for-dfn-geographic-information-5" title="§ How to Test">§ How to Test</a> </li><li> <a href="#ref-for-dfn-geographic-information-6" title="§ E. Glossary">§ E. Glossary</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-geographic-information-system" aria-label="Links in this document to definition: Geographic information system (GIS)" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-geographic-information-system" aria-label="Permalink for definition: Geographic information system (GIS). Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-geographic-information-system-1" title="§ Possible Approach to Implementation">§ Possible Approach to Implementation</a> <a href="#ref-for-dfn-geographic-information-system-2" title="Reference 2">(2)</a> <a href="#ref-for-dfn-geographic-information-system-3" title="Reference 3">(3)</a> </li><li> <a href="#ref-for-dfn-geographic-information-system-4" title="§ A. Applicability of common formats to implementation of best practices">§ A. Applicability of common formats to implementation of best practices</a> <a href="#ref-for-dfn-geographic-information-system-5" title="Reference 2">(2)</a> <a href="#ref-for-dfn-geographic-information-system-6" title="Reference 3">(3)</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-geohash" aria-label="Links in this document to definition: Geohash" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-geohash" aria-label="Permalink for definition: Geohash. Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-geohash-1" title="§ Possible Approach to Implementation">§ Possible Approach to Implementation</a> <a href="#ref-for-dfn-geohash-2" title="Reference 2">(2)</a> <a href="#ref-for-dfn-geohash-3" title="Reference 3">(3)</a> </li><li> <a href="#ref-for-dfn-geohash-4" title="§ A. Applicability of common formats to implementation of best practices">§ A. Applicability of common formats to implementation of best practices</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-geoid" aria-label="Links in this document to definition: Geoid" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-geoid" aria-label="Permalink for definition: Geoid. Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-geoid-1" title="§ 10. Coordinate Reference Systems (CRS)">§ 10. Coordinate Reference Systems (CRS)</a> </li><li> <a href="#ref-for-dfn-geoid-2" title="§ E. Glossary">§ E. Glossary</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-geometry" aria-label="Links in this document to definition: Geometry" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-geometry" aria-label="Permalink for definition: Geometry. Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-geometry-1" title="§ 5. Best Practices Summary">§ 5. Best Practices Summary</a> </li><li> <a href="#ref-for-dfn-geometry-2" title="§ 7. Spatial Things, Features and Geometry">§ 7. Spatial Things, Features and Geometry</a> <a href="#ref-for-dfn-geometry-3" title="Reference 2">(2)</a> <a href="#ref-for-dfn-geometry-4" title="Reference 3">(3)</a> <a href="#ref-for-dfn-geometry-5" title="Reference 4">(4)</a> <a href="#ref-for-dfn-geometry-6" title="Reference 5">(5)</a> <a href="#ref-for-dfn-geometry-7" title="Reference 6">(6)</a> </li><li> <a href="#ref-for-dfn-geometry-8" title="§ 8. Coverages: describing properties that vary with location (and time)">§ 8. Coverages: describing properties that vary with location (and time)</a> </li><li> <a href="#ref-for-dfn-geometry-9" title="§ 9. Spatial relations">§ 9. Spatial relations</a> </li><li> <a href="#ref-for-dfn-geometry-10" title="§ 10. Coordinate Reference Systems (CRS)">§ 10. Coordinate Reference Systems (CRS)</a> </li><li> <a href="#ref-for-dfn-geometry-11" title="§ 12. Why are traditional Spatial Data Infrastructures not enough?">§ 12. Why are traditional Spatial Data Infrastructures not enough?</a> </li><li> <a href="#ref-for-dfn-geometry-12" title="§ 13.1.1 Spatial data identifiers">§ 13.1.1 Spatial data identifiers</a> </li><li> <a href="#ref-for-dfn-geometry-13" title="§ Possible Approach to Implementation">§ Possible Approach to Implementation</a> <a href="#ref-for-dfn-geometry-14" title="Reference 2">(2)</a> <a href="#ref-for-dfn-geometry-15" title="Reference 3">(3)</a> <a href="#ref-for-dfn-geometry-27" title="Reference 4">(4)</a> <a href="#ref-for-dfn-geometry-28" title="Reference 5">(5)</a> <a href="#ref-for-dfn-geometry-29" title="Reference 6">(6)</a> <a href="#ref-for-dfn-geometry-30" title="Reference 7">(7)</a> <a href="#ref-for-dfn-geometry-31" title="Reference 8">(8)</a> <a href="#ref-for-dfn-geometry-32" title="Reference 9">(9)</a> <a href="#ref-for-dfn-geometry-33" title="Reference 10">(10)</a> <a href="#ref-for-dfn-geometry-34" title="Reference 11">(11)</a> <a href="#ref-for-dfn-geometry-35" title="Reference 12">(12)</a> <a href="#ref-for-dfn-geometry-36" title="Reference 13">(13)</a> <a href="#ref-for-dfn-geometry-37" title="Reference 14">(14)</a> <a href="#ref-for-dfn-geometry-38" title="Reference 15">(15)</a> <a href="#ref-for-dfn-geometry-39" title="Reference 16">(16)</a> <a href="#ref-for-dfn-geometry-40" title="Reference 17">(17)</a> <a href="#ref-for-dfn-geometry-41" title="Reference 18">(18)</a> <a href="#ref-for-dfn-geometry-42" title="Reference 19">(19)</a> <a href="#ref-for-dfn-geometry-43" title="Reference 20">(20)</a> <a href="#ref-for-dfn-geometry-44" title="Reference 21">(21)</a> <a href="#ref-for-dfn-geometry-45" title="Reference 22">(22)</a> <a href="#ref-for-dfn-geometry-46" title="Reference 23">(23)</a> <a href="#ref-for-dfn-geometry-47" title="Reference 24">(24)</a> <a href="#ref-for-dfn-geometry-48" title="Reference 25">(25)</a> <a href="#ref-for-dfn-geometry-49" title="Reference 26">(26)</a> <a href="#ref-for-dfn-geometry-50" title="Reference 27">(27)</a> <a href="#ref-for-dfn-geometry-60" title="Reference 28">(28)</a> <a href="#ref-for-dfn-geometry-61" title="Reference 29">(29)</a> <a href="#ref-for-dfn-geometry-62" title="Reference 30">(30)</a> <a href="#ref-for-dfn-geometry-63" title="Reference 31">(31)</a> <a href="#ref-for-dfn-geometry-64" title="Reference 32">(32)</a> <a href="#ref-for-dfn-geometry-65" title="Reference 33">(33)</a> <a href="#ref-for-dfn-geometry-66" title="Reference 34">(34)</a> <a href="#ref-for-dfn-geometry-67" title="Reference 35">(35)</a> <a href="#ref-for-dfn-geometry-68" title="Reference 36">(36)</a> <a href="#ref-for-dfn-geometry-69" title="Reference 37">(37)</a> <a href="#ref-for-dfn-geometry-70" title="Reference 38">(38)</a> <a href="#ref-for-dfn-geometry-71" title="Reference 39">(39)</a> <a href="#ref-for-dfn-geometry-72" title="Reference 40">(40)</a> <a href="#ref-for-dfn-geometry-73" title="Reference 41">(41)</a> <a href="#ref-for-dfn-geometry-74" title="Reference 42">(42)</a> <a href="#ref-for-dfn-geometry-75" title="Reference 43">(43)</a> <a href="#ref-for-dfn-geometry-76" title="Reference 44">(44)</a> <a href="#ref-for-dfn-geometry-77" title="Reference 45">(45)</a> <a href="#ref-for-dfn-geometry-78" title="Reference 46">(46)</a> <a href="#ref-for-dfn-geometry-79" title="Reference 47">(47)</a> <a href="#ref-for-dfn-geometry-80" title="Reference 48">(48)</a> <a href="#ref-for-dfn-geometry-81" title="Reference 49">(49)</a> <a href="#ref-for-dfn-geometry-82" title="Reference 50">(50)</a> <a href="#ref-for-dfn-geometry-84" title="Reference 51">(51)</a> <a href="#ref-for-dfn-geometry-86" title="Reference 52">(52)</a> <a href="#ref-for-dfn-geometry-90" title="Reference 53">(53)</a> <a href="#ref-for-dfn-geometry-92" title="Reference 54">(54)</a> <a href="#ref-for-dfn-geometry-93" title="Reference 55">(55)</a> <a href="#ref-for-dfn-geometry-94" title="Reference 56">(56)</a> <a href="#ref-for-dfn-geometry-95" title="Reference 57">(57)</a> <a href="#ref-for-dfn-geometry-97" title="Reference 58">(58)</a> <a href="#ref-for-dfn-geometry-98" title="Reference 59">(59)</a> <a href="#ref-for-dfn-geometry-99" title="Reference 60">(60)</a> <a href="#ref-for-dfn-geometry-101" title="Reference 61">(61)</a> </li><li> <a href="#ref-for-dfn-geometry-16" title="§ 13.2.2 Geometries and coordinate reference systems">§ 13.2.2 Geometries and coordinate reference systems</a> <a href="#ref-for-dfn-geometry-17" title="Reference 2">(2)</a> <a href="#ref-for-dfn-geometry-18" title="Reference 3">(3)</a> <a href="#ref-for-dfn-geometry-19" title="Reference 4">(4)</a> <a href="#ref-for-dfn-geometry-20" title="Reference 5">(5)</a> <a href="#ref-for-dfn-geometry-54" title="Reference 6">(6)</a> </li><li> <a href="#ref-for-dfn-geometry-21" title="§ Why">§ Why</a> <a href="#ref-for-dfn-geometry-22" title="Reference 2">(2)</a> <a href="#ref-for-dfn-geometry-23" title="Reference 3">(3)</a> <a href="#ref-for-dfn-geometry-55" title="Reference 4">(4)</a> <a href="#ref-for-dfn-geometry-56" title="Reference 5">(5)</a> <a href="#ref-for-dfn-geometry-57" title="Reference 6">(6)</a> <a href="#ref-for-dfn-geometry-85" title="Reference 7">(7)</a> <a href="#ref-for-dfn-geometry-91" title="Reference 8">(8)</a> <a href="#ref-for-dfn-geometry-100" title="Reference 9">(9)</a> </li><li> <a href="#ref-for-dfn-geometry-24" title="§ Intended Outcome">§ Intended Outcome</a> <a href="#ref-for-dfn-geometry-25" title="Reference 2">(2)</a> <a href="#ref-for-dfn-geometry-26" title="Reference 3">(3)</a> <a href="#ref-for-dfn-geometry-58" title="Reference 4">(4)</a> <a href="#ref-for-dfn-geometry-59" title="Reference 5">(5)</a> <a href="#ref-for-dfn-geometry-88" title="Reference 6">(6)</a> <a href="#ref-for-dfn-geometry-89" title="Reference 7">(7)</a> </li><li> <a href="#ref-for-dfn-geometry-51" title="§ How to Test">§ How to Test</a> <a href="#ref-for-dfn-geometry-52" title="Reference 2">(2)</a> <a href="#ref-for-dfn-geometry-53" title="Reference 3">(3)</a> <a href="#ref-for-dfn-geometry-83" title="Reference 4">(4)</a> <a href="#ref-for-dfn-geometry-96" title="Reference 5">(5)</a> </li><li> <a href="#ref-for-dfn-geometry-87" title="§ 13.2.3 Relative positioning">§ 13.2.3 Relative positioning</a> </li><li> <a href="#ref-for-dfn-geometry-102" title="§ 15.2 Spatial data vocabulary">§ 15.2 Spatial data vocabulary</a> <a href="#ref-for-dfn-geometry-103" title="Reference 2">(2)</a> <a href="#ref-for-dfn-geometry-104" title="Reference 3">(3)</a> </li><li> <a href="#ref-for-dfn-geometry-105" title="§ 15.6 Defining that two places are the same">§ 15.6 Defining that two places are the same</a> <a href="#ref-for-dfn-geometry-106" title="Reference 2">(2)</a> <a href="#ref-for-dfn-geometry-107" title="Reference 3">(3)</a> </li><li> <a href="#ref-for-dfn-geometry-108" title="§ A. Applicability of common formats to implementation of best practices">§ A. Applicability of common formats to implementation of best practices</a> <a href="#ref-for-dfn-geometry-109" title="Reference 2">(2)</a> <a href="#ref-for-dfn-geometry-110" title="Reference 3">(3)</a> <a href="#ref-for-dfn-geometry-111" title="Reference 4">(4)</a> <a href="#ref-for-dfn-geometry-112" title="Reference 5">(5)</a> </li><li> <a href="#ref-for-dfn-geometry-113" title="§ E. Glossary">§ E. Glossary</a> <a href="#ref-for-dfn-geometry-114" title="Reference 2">(2)</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-iot" aria-label="Links in this document to definition: Internet of Things (IoT)" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-iot" aria-label="Permalink for definition: Internet of Things (IoT). Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-iot-1" title="§ E. Glossary">§ E. Glossary</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-javascript-object-notation" aria-label="Links in this document to definition: JavaScript Object Notation (JSON)" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-javascript-object-notation" aria-label="Permalink for definition: JavaScript Object Notation (JSON). Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-javascript-object-notation-1" title="§ 11. Linked Data">§ 11. Linked Data</a> <a href="#ref-for-dfn-javascript-object-notation-2" title="Reference 2">(2)</a> </li><li> <a href="#ref-for-dfn-javascript-object-notation-3" title="§ Possible Approach to Implementation">§ Possible Approach to Implementation</a> <a href="#ref-for-dfn-javascript-object-notation-4" title="Reference 2">(2)</a> <a href="#ref-for-dfn-javascript-object-notation-7" title="Reference 3">(3)</a> <a href="#ref-for-dfn-javascript-object-notation-8" title="Reference 4">(4)</a> <a href="#ref-for-dfn-javascript-object-notation-9" title="Reference 5">(5)</a> <a href="#ref-for-dfn-javascript-object-notation-10" title="Reference 6">(6)</a> </li><li> <a href="#ref-for-dfn-javascript-object-notation-5" title="§ 13.2.1 Spatial data encoding">§ 13.2.1 Spatial data encoding</a> <a href="#ref-for-dfn-javascript-object-notation-6" title="Reference 2">(2)</a> </li><li> <a href="#ref-for-dfn-javascript-object-notation-11" title="§ A. Applicability of common formats to implementation of best practices">§ A. Applicability of common formats to implementation of best practices</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-latitude" aria-label="Links in this document to definition: Latitude" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-latitude" aria-label="Permalink for definition: Latitude. Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-latitude-1" title="§ 10. Coordinate Reference Systems (CRS)">§ 10. Coordinate Reference Systems (CRS)</a> <a href="#ref-for-dfn-latitude-2" title="Reference 2">(2)</a> <a href="#ref-for-dfn-latitude-3" title="Reference 3">(3)</a> <a href="#ref-for-dfn-latitude-4" title="Reference 4">(4)</a> <a href="#ref-for-dfn-latitude-5" title="Reference 5">(5)</a> <a href="#ref-for-dfn-latitude-6" title="Reference 6">(6)</a> </li><li> <a href="#ref-for-dfn-latitude-7" title="§ Possible Approach to Implementation">§ Possible Approach to Implementation</a> <a href="#ref-for-dfn-latitude-8" title="Reference 2">(2)</a> <a href="#ref-for-dfn-latitude-9" title="Reference 3">(3)</a> <a href="#ref-for-dfn-latitude-10" title="Reference 4">(4)</a> <a href="#ref-for-dfn-latitude-11" title="Reference 5">(5)</a> <a href="#ref-for-dfn-latitude-13" title="Reference 6">(6)</a> <a href="#ref-for-dfn-latitude-14" title="Reference 7">(7)</a> <a href="#ref-for-dfn-latitude-15" title="Reference 8">(8)</a> <a href="#ref-for-dfn-latitude-16" title="Reference 9">(9)</a> <a href="#ref-for-dfn-latitude-17" title="Reference 10">(10)</a> <a href="#ref-for-dfn-latitude-18" title="Reference 11">(11)</a> <a href="#ref-for-dfn-latitude-19" title="Reference 12">(12)</a> </li><li> <a href="#ref-for-dfn-latitude-12" title="§ Why">§ Why</a> <a href="#ref-for-dfn-latitude-20" title="Reference 2">(2)</a> </li><li> <a href="#ref-for-dfn-latitude-21" title="§ 15.4 Publishing dynamic and large datasets on the Web">§ 15.4 Publishing dynamic and large datasets on the Web</a> </li><li> <a href="#ref-for-dfn-latitude-22" title="§ E. Glossary">§ E. Glossary</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-link" aria-label="Links in this document to definition: Link" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-link" aria-label="Permalink for definition: Link. Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-link-1" title="§ 8. Coverages: describing properties that vary with location (and time)">§ 8. Coverages: describing properties that vary with location (and time)</a> </li><li> <a href="#ref-for-dfn-link-2" title="§ 11. Linked Data">§ 11. Linked Data</a> </li><li> <a href="#ref-for-dfn-link-3" title="§ 12. Why are traditional Spatial Data Infrastructures not enough?">§ 12. Why are traditional Spatial Data Infrastructures not enough?</a> </li><li> <a href="#ref-for-dfn-link-4" title="§ Why">§ Why</a> <a href="#ref-for-dfn-link-15" title="Reference 2">(2)</a> <a href="#ref-for-dfn-link-16" title="Reference 3">(3)</a> <a href="#ref-for-dfn-link-33" title="Reference 4">(4)</a> </li><li> <a href="#ref-for-dfn-link-5" title="§ Intended Outcome">§ Intended Outcome</a> <a href="#ref-for-dfn-link-17" title="Reference 2">(2)</a> <a href="#ref-for-dfn-link-28" title="Reference 3">(3)</a> </li><li> <a href="#ref-for-dfn-link-6" title="§ Possible Approach to Implementation">§ Possible Approach to Implementation</a> <a href="#ref-for-dfn-link-7" title="Reference 2">(2)</a> <a href="#ref-for-dfn-link-8" title="Reference 3">(3)</a> <a href="#ref-for-dfn-link-9" title="Reference 4">(4)</a> <a href="#ref-for-dfn-link-18" title="Reference 5">(5)</a> <a href="#ref-for-dfn-link-19" title="Reference 6">(6)</a> <a href="#ref-for-dfn-link-20" title="Reference 7">(7)</a> <a href="#ref-for-dfn-link-21" title="Reference 8">(8)</a> <a href="#ref-for-dfn-link-22" title="Reference 9">(9)</a> <a href="#ref-for-dfn-link-23" title="Reference 10">(10)</a> <a href="#ref-for-dfn-link-24" title="Reference 11">(11)</a> <a href="#ref-for-dfn-link-25" title="Reference 12">(12)</a> <a href="#ref-for-dfn-link-26" title="Reference 13">(13)</a> <a href="#ref-for-dfn-link-27" title="Reference 14">(14)</a> <a href="#ref-for-dfn-link-29" title="Reference 15">(15)</a> <a href="#ref-for-dfn-link-34" title="Reference 16">(16)</a> <a href="#ref-for-dfn-link-35" title="Reference 17">(17)</a> <a href="#ref-for-dfn-link-36" title="Reference 18">(18)</a> <a href="#ref-for-dfn-link-37" title="Reference 19">(19)</a> <a href="#ref-for-dfn-link-38" title="Reference 20">(20)</a> <a href="#ref-for-dfn-link-39" title="Reference 21">(21)</a> <a href="#ref-for-dfn-link-40" title="Reference 22">(22)</a> <a href="#ref-for-dfn-link-41" title="Reference 23">(23)</a> <a href="#ref-for-dfn-link-42" title="Reference 24">(24)</a> <a href="#ref-for-dfn-link-45" title="Reference 25">(25)</a> <a href="#ref-for-dfn-link-47" title="Reference 26">(26)</a> </li><li> <a href="#ref-for-dfn-link-10" title="§ 13.1.3 Linking data">§ 13.1.3 Linking data</a> <a href="#ref-for-dfn-link-11" title="Reference 2">(2)</a> <a href="#ref-for-dfn-link-12" title="Reference 3">(3)</a> <a href="#ref-for-dfn-link-13" title="Reference 4">(4)</a> </li><li> <a href="#ref-for-dfn-link-14" title="§ 13.1 Web principles for spatial data">§ 13.1 Web principles for spatial data</a> </li><li> <a href="#ref-for-dfn-link-30" title="§ How to Test">§ How to Test</a> <a href="#ref-for-dfn-link-43" title="Reference 2">(2)</a> <a href="#ref-for-dfn-link-44" title="Reference 3">(3)</a> <a href="#ref-for-dfn-link-46" title="Reference 4">(4)</a> </li><li> <a href="#ref-for-dfn-link-31" title="§ 13.2.4 Spatial links">§ 13.2.4 Spatial links</a> <a href="#ref-for-dfn-link-32" title="Reference 2">(2)</a> </li><li> <a href="#ref-for-dfn-link-48" title="§ 15.7 Discovering what refers to a Spatial Thing">§ 15.7 Discovering what refers to a Spatial Thing</a> <a href="#ref-for-dfn-link-49" title="Reference 2">(2)</a> <a href="#ref-for-dfn-link-50" title="Reference 3">(3)</a> <a href="#ref-for-dfn-link-51" title="Reference 4">(4)</a> <a href="#ref-for-dfn-link-52" title="Reference 5">(5)</a> <a href="#ref-for-dfn-link-53" title="Reference 6">(6)</a> <a href="#ref-for-dfn-link-54" title="Reference 7">(7)</a> <a href="#ref-for-dfn-link-55" title="Reference 8">(8)</a> </li><li> <a href="#ref-for-dfn-link-56" title="§ A. Applicability of common formats to implementation of best practices">§ A. Applicability of common formats to implementation of best practices</a> </li><li> <a href="#ref-for-dfn-link-57" title="§ B. Best Practices Benefits">§ B. Best Practices Benefits</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-linked-data" aria-label="Links in this document to definition: Linked data" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-linked-data" aria-label="Permalink for definition: Linked data. Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-linked-data-1" title="§ 5. Best Practices Summary">§ 5. Best Practices Summary</a> </li><li> <a href="#ref-for-dfn-linked-data-2" title="§ 11. Linked Data">§ 11. Linked Data</a> <a href="#ref-for-dfn-linked-data-3" title="Reference 2">(2)</a> <a href="#ref-for-dfn-linked-data-4" title="Reference 3">(3)</a> <a href="#ref-for-dfn-linked-data-5" title="Reference 4">(4)</a> <a href="#ref-for-dfn-linked-data-6" title="Reference 5">(5)</a> <a href="#ref-for-dfn-linked-data-7" title="Reference 6">(6)</a> </li><li> <a href="#ref-for-dfn-linked-data-8" title="§ 13.1.3 Linking data">§ 13.1.3 Linking data</a> </li><li> <a href="#ref-for-dfn-linked-data-9" title="§ Possible Approach to Implementation">§ Possible Approach to Implementation</a> <a href="#ref-for-dfn-linked-data-12" title="Reference 2">(2)</a> <a href="#ref-for-dfn-linked-data-13" title="Reference 3">(3)</a> <a href="#ref-for-dfn-linked-data-14" title="Reference 4">(4)</a> <a href="#ref-for-dfn-linked-data-15" title="Reference 5">(5)</a> <a href="#ref-for-dfn-linked-data-16" title="Reference 6">(6)</a> <a href="#ref-for-dfn-linked-data-17" title="Reference 7">(7)</a> </li><li> <a href="#ref-for-dfn-linked-data-10" title="§ 13.2.1 Spatial data encoding">§ 13.2.1 Spatial data encoding</a> <a href="#ref-for-dfn-linked-data-11" title="Reference 2">(2)</a> </li><li> <a href="#ref-for-dfn-linked-data-18" title="§ 15.2 Spatial data vocabulary">§ 15.2 Spatial data vocabulary</a> </li><li> <a href="#ref-for-dfn-linked-data-19" title="§ E. Glossary">§ E. Glossary</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-longitude" aria-label="Links in this document to definition: Longitude" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-longitude" aria-label="Permalink for definition: Longitude. Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-longitude-1" title="§ 10. Coordinate Reference Systems (CRS)">§ 10. Coordinate Reference Systems (CRS)</a> <a href="#ref-for-dfn-longitude-2" title="Reference 2">(2)</a> <a href="#ref-for-dfn-longitude-3" title="Reference 3">(3)</a> <a href="#ref-for-dfn-longitude-4" title="Reference 4">(4)</a> <a href="#ref-for-dfn-longitude-5" title="Reference 5">(5)</a> <a href="#ref-for-dfn-longitude-6" title="Reference 6">(6)</a> </li><li> <a href="#ref-for-dfn-longitude-7" title="§ Possible Approach to Implementation">§ Possible Approach to Implementation</a> <a href="#ref-for-dfn-longitude-8" title="Reference 2">(2)</a> <a href="#ref-for-dfn-longitude-9" title="Reference 3">(3)</a> <a href="#ref-for-dfn-longitude-10" title="Reference 4">(4)</a> <a href="#ref-for-dfn-longitude-12" title="Reference 5">(5)</a> <a href="#ref-for-dfn-longitude-13" title="Reference 6">(6)</a> <a href="#ref-for-dfn-longitude-14" title="Reference 7">(7)</a> <a href="#ref-for-dfn-longitude-15" title="Reference 8">(8)</a> <a href="#ref-for-dfn-longitude-16" title="Reference 9">(9)</a> <a href="#ref-for-dfn-longitude-17" title="Reference 10">(10)</a> <a href="#ref-for-dfn-longitude-18" title="Reference 11">(11)</a> </li><li> <a href="#ref-for-dfn-longitude-11" title="§ Why">§ Why</a> </li><li> <a href="#ref-for-dfn-longitude-19" title="§ 15.4 Publishing dynamic and large datasets on the Web">§ 15.4 Publishing dynamic and large datasets on the Web</a> </li><li> <a href="#ref-for-dfn-longitude-20" title="§ E. Glossary">§ E. Glossary</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-map-projection" aria-label="Links in this document to definition: Map Projection" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-map-projection" aria-label="Permalink for definition: Map Projection. Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-map-projection-1" title="§ 10. Coordinate Reference Systems (CRS)">§ 10. Coordinate Reference Systems (CRS)</a> </li><li> <a href="#ref-for-dfn-map-projection-2" title="§ Possible Approach to Implementation">§ Possible Approach to Implementation</a> </li><li> <a href="#ref-for-dfn-map-projection-3" title="§ E. Glossary">§ E. Glossary</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-ogc-api-features" aria-label="Links in this document to definition: OGC API - Features" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-ogc-api-features" aria-label="Permalink for definition: OGC API - Features. Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-ogc-api-features-1" title="§ 4.2 Data publication">§ 4.2 Data publication</a> </li><li> <a href="#ref-for-dfn-ogc-api-features-2" title="§ 4.3 FAIR Principles">§ 4.3 FAIR Principles</a> </li><li> <a href="#ref-for-dfn-ogc-api-features-3" title="§ 15.4 Publishing dynamic and large datasets on the Web">§ 15.4 Publishing dynamic and large datasets on the Web</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-open-world-assumption" aria-label="Links in this document to definition: Open-world assumption (OWA)" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-open-world-assumption" aria-label="Permalink for definition: Open-world assumption (OWA). Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-open-world-assumption-1" title="§ 7. Spatial Things, Features and Geometry">§ 7. Spatial Things, Features and Geometry</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-projected-crs" aria-label="Links in this document to definition: Projected Coordinate Reference System" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-projected-crs" aria-label="Permalink for definition: Projected Coordinate Reference System. Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-projected-crs-1" title="§ 10. Coordinate Reference Systems (CRS)">§ 10. Coordinate Reference Systems (CRS)</a> <a href="#ref-for-dfn-projected-crs-2" title="Reference 2">(2)</a> <a href="#ref-for-dfn-projected-crs-3" title="Reference 3">(3)</a> </li><li> <a href="#ref-for-dfn-projected-crs-4" title="§ Possible Approach to Implementation">§ Possible Approach to Implementation</a> <a href="#ref-for-dfn-projected-crs-5" title="Reference 2">(2)</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-resource-description-framework" aria-label="Links in this document to definition: Resource Description Framework (RDF)" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-resource-description-framework" aria-label="Permalink for definition: Resource Description Framework (RDF). Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-resource-description-framework-1" title="§ 11. Linked Data">§ 11. Linked Data</a> <a href="#ref-for-dfn-resource-description-framework-2" title="Reference 2">(2)</a> <a href="#ref-for-dfn-resource-description-framework-3" title="Reference 3">(3)</a> <a href="#ref-for-dfn-resource-description-framework-4" title="Reference 4">(4)</a> <a href="#ref-for-dfn-resource-description-framework-5" title="Reference 5">(5)</a> </li><li> <a href="#ref-for-dfn-resource-description-framework-6" title="§ Possible Approach to Implementation">§ Possible Approach to Implementation</a> <a href="#ref-for-dfn-resource-description-framework-7" title="Reference 2">(2)</a> <a href="#ref-for-dfn-resource-description-framework-10" title="Reference 3">(3)</a> <a href="#ref-for-dfn-resource-description-framework-11" title="Reference 4">(4)</a> <a href="#ref-for-dfn-resource-description-framework-12" title="Reference 5">(5)</a> <a href="#ref-for-dfn-resource-description-framework-13" title="Reference 6">(6)</a> <a href="#ref-for-dfn-resource-description-framework-14" title="Reference 7">(7)</a> <a href="#ref-for-dfn-resource-description-framework-15" title="Reference 8">(8)</a> <a href="#ref-for-dfn-resource-description-framework-16" title="Reference 9">(9)</a> <a href="#ref-for-dfn-resource-description-framework-17" title="Reference 10">(10)</a> <a href="#ref-for-dfn-resource-description-framework-19" title="Reference 11">(11)</a> <a href="#ref-for-dfn-resource-description-framework-20" title="Reference 12">(12)</a> </li><li> <a href="#ref-for-dfn-resource-description-framework-8" title="§ 13.2.1 Spatial data encoding">§ 13.2.1 Spatial data encoding</a> <a href="#ref-for-dfn-resource-description-framework-9" title="Reference 2">(2)</a> </li><li> <a href="#ref-for-dfn-resource-description-framework-18" title="§ 13.4 Spatial data access">§ 13.4 Spatial data access</a> </li><li> <a href="#ref-for-dfn-resource-description-framework-21" title="§ 15.3 Describing dataset structure and service behaviors">§ 15.3 Describing dataset structure and service behaviors</a> <a href="#ref-for-dfn-resource-description-framework-22" title="Reference 2">(2)</a> </li><li> <a href="#ref-for-dfn-resource-description-framework-23" title="§ A. Applicability of common formats to implementation of best practices">§ A. Applicability of common formats to implementation of best practices</a> </li><li> <a href="#ref-for-dfn-resource-description-framework-24" title="§ E. Glossary">§ E. Glossary</a> <a href="#ref-for-dfn-resource-description-framework-25" title="Reference 2">(2)</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-semantic-web" aria-label="Links in this document to definition: Semantic Web" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-semantic-web" aria-label="Permalink for definition: Semantic Web. Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-semantic-web-1" title="§ 11. Linked Data">§ 11. Linked Data</a> </li><li> <a href="#ref-for-dfn-semantic-web-2" title="§ Possible Approach to Implementation">§ Possible Approach to Implementation</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-sensorthings" aria-label="Links in this document to definition: SensorThings API" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-sensorthings" aria-label="Permalink for definition: SensorThings API. Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-sensorthings-1" title="§ Possible Approach to Implementation">§ Possible Approach to Implementation</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-sparql" aria-label="Links in this document to definition: SPARQL" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-sparql" aria-label="Permalink for definition: SPARQL. Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-sparql-1" title="§ 11. Linked Data">§ 11. Linked Data</a> </li><li> <a href="#ref-for-dfn-sparql-2" title="§ Possible Approach to Implementation">§ Possible Approach to Implementation</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-spatial-data" aria-label="Links in this document to definition: Spatial data" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-spatial-data" aria-label="Permalink for definition: Spatial data. Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-spatial-data-1" title="§ Abstract">§ Abstract</a> </li><li> <a href="#ref-for-dfn-spatial-data-2" title="§ 2. Introduction">§ 2. Introduction</a> <a href="#ref-for-dfn-spatial-data-3" title="Reference 2">(2)</a> <a href="#ref-for-dfn-spatial-data-4" title="Reference 3">(3)</a> <a href="#ref-for-dfn-spatial-data-5" title="Reference 4">(4)</a> <a href="#ref-for-dfn-spatial-data-6" title="Reference 5">(5)</a> </li><li> <a href="#ref-for-dfn-spatial-data-7" title="§ 3. Audience">§ 3. Audience</a> <a href="#ref-for-dfn-spatial-data-8" title="Reference 2">(2)</a> </li><li> <a href="#ref-for-dfn-spatial-data-9" title="§ 4.1 Spatial data">§ 4.1 Spatial data</a> <a href="#ref-for-dfn-spatial-data-10" title="Reference 2">(2)</a> <a href="#ref-for-dfn-spatial-data-11" title="Reference 3">(3)</a> <a href="#ref-for-dfn-spatial-data-12" title="Reference 4">(4)</a> <a href="#ref-for-dfn-spatial-data-13" title="Reference 5">(5)</a> <a href="#ref-for-dfn-spatial-data-14" title="Reference 6">(6)</a> <a href="#ref-for-dfn-spatial-data-15" title="Reference 7">(7)</a> <a href="#ref-for-dfn-spatial-data-16" title="Reference 8">(8)</a> <a href="#ref-for-dfn-spatial-data-17" title="Reference 9">(9)</a> <a href="#ref-for-dfn-spatial-data-18" title="Reference 10">(10)</a> <a href="#ref-for-dfn-spatial-data-19" title="Reference 11">(11)</a> <a href="#ref-for-dfn-spatial-data-20" title="Reference 12">(12)</a> <a href="#ref-for-dfn-spatial-data-21" title="Reference 13">(13)</a> </li><li> <a href="#ref-for-dfn-spatial-data-22" title="§ 4.2 Data publication">§ 4.2 Data publication</a> <a href="#ref-for-dfn-spatial-data-23" title="Reference 2">(2)</a> <a href="#ref-for-dfn-spatial-data-24" title="Reference 3">(3)</a> </li><li> <a href="#ref-for-dfn-spatial-data-25" title="§ 4.4 Best practice criteria">§ 4.4 Best practice criteria</a> <a href="#ref-for-dfn-spatial-data-26" title="Reference 2">(2)</a> </li><li> <a href="#ref-for-dfn-spatial-data-27" title="§ 4.5 Privacy considerations">§ 4.5 Privacy considerations</a> </li><li> <a href="#ref-for-dfn-spatial-data-28" title="§ 5. Best Practices Summary">§ 5. Best Practices Summary</a> </li><li> <a href="#ref-for-dfn-spatial-data-29" title="§ 10. Coordinate Reference Systems (CRS)">§ 10. Coordinate Reference Systems (CRS)</a> <a href="#ref-for-dfn-spatial-data-30" title="Reference 2">(2)</a> <a href="#ref-for-dfn-spatial-data-31" title="Reference 3">(3)</a> <a href="#ref-for-dfn-spatial-data-32" title="Reference 4">(4)</a> <a href="#ref-for-dfn-spatial-data-33" title="Reference 5">(5)</a> <a href="#ref-for-dfn-spatial-data-34" title="Reference 6">(6)</a> </li><li> <a href="#ref-for-dfn-spatial-data-35" title="§ 11. Linked Data">§ 11. Linked Data</a> </li><li> <a href="#ref-for-dfn-spatial-data-36" title="§ 12. Why are traditional Spatial Data Infrastructures not enough?">§ 12. Why are traditional Spatial Data Infrastructures not enough?</a> <a href="#ref-for-dfn-spatial-data-37" title="Reference 2">(2)</a> <a href="#ref-for-dfn-spatial-data-38" title="Reference 3">(3)</a> </li><li> <a href="#ref-for-dfn-spatial-data-39" title="§ 13.1 Web principles for spatial data">§ 13.1 Web principles for spatial data</a> </li><li> <a href="#ref-for-dfn-spatial-data-40" title="§ 13.1.1 Spatial data identifiers">§ 13.1.1 Spatial data identifiers</a> <a href="#ref-for-dfn-spatial-data-41" title="Reference 2">(2)</a> <a href="#ref-for-dfn-spatial-data-42" title="Reference 3">(3)</a> <a href="#ref-for-dfn-spatial-data-43" title="Reference 4">(4)</a> </li><li> <a href="#ref-for-dfn-spatial-data-44" title="§ Why">§ Why</a> <a href="#ref-for-dfn-spatial-data-48" title="Reference 2">(2)</a> <a href="#ref-for-dfn-spatial-data-60" title="Reference 3">(3)</a> <a href="#ref-for-dfn-spatial-data-73" title="Reference 4">(4)</a> <a href="#ref-for-dfn-spatial-data-74" title="Reference 5">(5)</a> <a href="#ref-for-dfn-spatial-data-75" title="Reference 6">(6)</a> <a href="#ref-for-dfn-spatial-data-76" title="Reference 7">(7)</a> <a href="#ref-for-dfn-spatial-data-84" title="Reference 8">(8)</a> <a href="#ref-for-dfn-spatial-data-101" title="Reference 9">(9)</a> <a href="#ref-for-dfn-spatial-data-109" title="Reference 10">(10)</a> <a href="#ref-for-dfn-spatial-data-112" title="Reference 11">(11)</a> </li><li> <a href="#ref-for-dfn-spatial-data-45" title="§ Intended Outcome">§ Intended Outcome</a> <a href="#ref-for-dfn-spatial-data-61" title="Reference 2">(2)</a> <a href="#ref-for-dfn-spatial-data-77" title="Reference 3">(3)</a> <a href="#ref-for-dfn-spatial-data-85" title="Reference 4">(4)</a> <a href="#ref-for-dfn-spatial-data-86" title="Reference 5">(5)</a> <a href="#ref-for-dfn-spatial-data-102" title="Reference 6">(6)</a> <a href="#ref-for-dfn-spatial-data-113" title="Reference 7">(7)</a> </li><li> <a href="#ref-for-dfn-spatial-data-46" title="§ Possible Approach to Implementation">§ Possible Approach to Implementation</a> <a href="#ref-for-dfn-spatial-data-47" title="Reference 2">(2)</a> <a href="#ref-for-dfn-spatial-data-49" title="Reference 3">(3)</a> <a href="#ref-for-dfn-spatial-data-50" title="Reference 4">(4)</a> <a href="#ref-for-dfn-spatial-data-51" title="Reference 5">(5)</a> <a href="#ref-for-dfn-spatial-data-53" title="Reference 6">(6)</a> <a href="#ref-for-dfn-spatial-data-54" title="Reference 7">(7)</a> <a href="#ref-for-dfn-spatial-data-62" title="Reference 8">(8)</a> <a href="#ref-for-dfn-spatial-data-63" title="Reference 9">(9)</a> <a href="#ref-for-dfn-spatial-data-64" title="Reference 10">(10)</a> <a href="#ref-for-dfn-spatial-data-65" title="Reference 11">(11)</a> <a href="#ref-for-dfn-spatial-data-66" title="Reference 12">(12)</a> <a href="#ref-for-dfn-spatial-data-67" title="Reference 13">(13)</a> <a href="#ref-for-dfn-spatial-data-68" title="Reference 14">(14)</a> <a href="#ref-for-dfn-spatial-data-69" title="Reference 15">(15)</a> <a href="#ref-for-dfn-spatial-data-71" title="Reference 16">(16)</a> <a href="#ref-for-dfn-spatial-data-78" title="Reference 17">(17)</a> <a href="#ref-for-dfn-spatial-data-79" title="Reference 18">(18)</a> <a href="#ref-for-dfn-spatial-data-80" title="Reference 19">(19)</a> <a href="#ref-for-dfn-spatial-data-81" title="Reference 20">(20)</a> <a href="#ref-for-dfn-spatial-data-82" title="Reference 21">(21)</a> <a href="#ref-for-dfn-spatial-data-83" title="Reference 22">(22)</a> <a href="#ref-for-dfn-spatial-data-87" title="Reference 23">(23)</a> <a href="#ref-for-dfn-spatial-data-88" title="Reference 24">(24)</a> <a href="#ref-for-dfn-spatial-data-89" title="Reference 25">(25)</a> <a href="#ref-for-dfn-spatial-data-90" title="Reference 26">(26)</a> <a href="#ref-for-dfn-spatial-data-92" title="Reference 27">(27)</a> <a href="#ref-for-dfn-spatial-data-103" title="Reference 28">(28)</a> <a href="#ref-for-dfn-spatial-data-104" title="Reference 29">(29)</a> <a href="#ref-for-dfn-spatial-data-108" title="Reference 30">(30)</a> <a href="#ref-for-dfn-spatial-data-110" title="Reference 31">(31)</a> <a href="#ref-for-dfn-spatial-data-111" title="Reference 32">(32)</a> <a href="#ref-for-dfn-spatial-data-114" title="Reference 33">(33)</a> </li><li> <a href="#ref-for-dfn-spatial-data-52" title="§ 13.1.3 Linking data">§ 13.1.3 Linking data</a> </li><li> <a href="#ref-for-dfn-spatial-data-55" title="§ 13.2 Spatial data">§ 13.2 Spatial data</a> </li><li> <a href="#ref-for-dfn-spatial-data-56" title="§ 13.2.1 Spatial data encoding">§ 13.2.1 Spatial data encoding</a> <a href="#ref-for-dfn-spatial-data-57" title="Reference 2">(2)</a> <a href="#ref-for-dfn-spatial-data-58" title="Reference 3">(3)</a> <a href="#ref-for-dfn-spatial-data-59" title="Reference 4">(4)</a> </li><li> <a href="#ref-for-dfn-spatial-data-70" title="§ 13.2.2 Geometries and coordinate reference systems">§ 13.2.2 Geometries and coordinate reference systems</a> <a href="#ref-for-dfn-spatial-data-72" title="Reference 2">(2)</a> </li><li> <a href="#ref-for-dfn-spatial-data-91" title="§ How to Test">§ How to Test</a> </li><li> <a href="#ref-for-dfn-spatial-data-93" title="§ 13.4 Spatial data access">§ 13.4 Spatial data access</a> <a href="#ref-for-dfn-spatial-data-94" title="Reference 2">(2)</a> <a href="#ref-for-dfn-spatial-data-95" title="Reference 3">(3)</a> <a href="#ref-for-dfn-spatial-data-96" title="Reference 4">(4)</a> <a href="#ref-for-dfn-spatial-data-97" title="Reference 5">(5)</a> <a href="#ref-for-dfn-spatial-data-98" title="Reference 6">(6)</a> <a href="#ref-for-dfn-spatial-data-99" title="Reference 7">(7)</a> <a href="#ref-for-dfn-spatial-data-100" title="Reference 8">(8)</a> </li><li> <a href="#ref-for-dfn-spatial-data-105" title="§ 13.5 Spatial metadata">§ 13.5 Spatial metadata</a> <a href="#ref-for-dfn-spatial-data-106" title="Reference 2">(2)</a> <a href="#ref-for-dfn-spatial-data-107" title="Reference 3">(3)</a> </li><li> <a href="#ref-for-dfn-spatial-data-115" title="§ 15. Gaps in current practice">§ 15. Gaps in current practice</a> </li><li> <a href="#ref-for-dfn-spatial-data-116" title="§ 15.2 Spatial data vocabulary">§ 15.2 Spatial data vocabulary</a> <a href="#ref-for-dfn-spatial-data-117" title="Reference 2">(2)</a> </li><li> <a href="#ref-for-dfn-spatial-data-118" title="§ 15.3 Describing dataset structure and service behaviors">§ 15.3 Describing dataset structure and service behaviors</a> <a href="#ref-for-dfn-spatial-data-119" title="Reference 2">(2)</a> </li><li> <a href="#ref-for-dfn-spatial-data-120" title="§ 15.7 Discovering what refers to a Spatial Thing">§ 15.7 Discovering what refers to a Spatial Thing</a> </li><li> <a href="#ref-for-dfn-spatial-data-121" title="§ A. Applicability of common formats to implementation of best practices">§ A. Applicability of common formats to implementation of best practices</a> </li><li> <a href="#ref-for-dfn-spatial-data-122" title="§ E. Glossary">§ E. Glossary</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-sdi" aria-label="Links in this document to definition: Spatial Data Infrastructure (SDI)" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-sdi" aria-label="Permalink for definition: Spatial Data Infrastructure (SDI). Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-sdi-1" title="§ Abstract">§ Abstract</a> </li><li> <a href="#ref-for-dfn-sdi-2" title="§ 3. Audience">§ 3. Audience</a> </li><li> <a href="#ref-for-dfn-sdi-3" title="§ 4.2 Data publication">§ 4.2 Data publication</a> </li><li> <a href="#ref-for-dfn-sdi-4" title="§ 5. Best Practices Summary">§ 5. Best Practices Summary</a> </li><li> <a href="#ref-for-dfn-sdi-5" title="§ 12. Why are traditional Spatial Data Infrastructures not enough?">§ 12. Why are traditional Spatial Data Infrastructures not enough?</a> <a href="#ref-for-dfn-sdi-6" title="Reference 2">(2)</a> <a href="#ref-for-dfn-sdi-7" title="Reference 3">(3)</a> <a href="#ref-for-dfn-sdi-8" title="Reference 4">(4)</a> <a href="#ref-for-dfn-sdi-9" title="Reference 5">(5)</a> <a href="#ref-for-dfn-sdi-10" title="Reference 6">(6)</a> </li><li> <a href="#ref-for-dfn-sdi-11" title="§ 13.1.1 Spatial data identifiers">§ 13.1.1 Spatial data identifiers</a> </li><li> <a href="#ref-for-dfn-sdi-12" title="§ Why">§ Why</a> <a href="#ref-for-dfn-sdi-19" title="Reference 2">(2)</a> </li><li> <a href="#ref-for-dfn-sdi-13" title="§ Possible Approach to Implementation">§ Possible Approach to Implementation</a> <a href="#ref-for-dfn-sdi-15" title="Reference 2">(2)</a> <a href="#ref-for-dfn-sdi-17" title="Reference 3">(3)</a> <a href="#ref-for-dfn-sdi-21" title="Reference 4">(4)</a> </li><li> <a href="#ref-for-dfn-sdi-14" title="§ 13.1.3 Linking data">§ 13.1.3 Linking data</a> </li><li> <a href="#ref-for-dfn-sdi-16" title="§ 13.4 Spatial data access">§ 13.4 Spatial data access</a> </li><li> <a href="#ref-for-dfn-sdi-18" title="§ 13.5 Spatial metadata">§ 13.5 Spatial metadata</a> </li><li> <a href="#ref-for-dfn-sdi-20" title="§ Intended Outcome">§ Intended Outcome</a> </li><li> <a href="#ref-for-dfn-sdi-22" title="§ G.6 Changes since working draft of 25 October 2016">§ G.6 Changes since working draft of 25 October 2016</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-spatial-operator" aria-label="Links in this document to definition: Spatial operator, spatial query function" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-spatial-operator" aria-label="Permalink for definition: Spatial operator, spatial query function. Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-spatial-operator-1" title="§ Possible Approach to Implementation">§ Possible Approach to Implementation</a> </li><li> <a href="#ref-for-dfn-spatial-operator-2" title="§ E. Glossary">§ E. Glossary</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-spatial-relation" aria-label="Links in this document to definition: Spatial relation, spatial relationship" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-spatial-relation" aria-label="Permalink for definition: Spatial relation, spatial relationship. Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-spatial-relation-1" title="§ 5. Best Practices Summary">§ 5. Best Practices Summary</a> </li><li> <a href="#ref-for-dfn-spatial-relation-2" title="§ 9. Spatial relations">§ 9. Spatial relations</a> </li><li> <a href="#ref-for-dfn-spatial-relation-3" title="§ Why">§ Why</a> </li><li> <a href="#ref-for-dfn-spatial-relation-4" title="§ Possible Approach to Implementation">§ Possible Approach to Implementation</a> <a href="#ref-for-dfn-spatial-relation-5" title="Reference 2">(2)</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-spatial-thing" aria-label="Links in this document to definition: Spatial thing" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-spatial-thing" aria-label="Permalink for definition: Spatial thing. Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-spatial-thing-1" title="§ 4.1 Spatial data">§ 4.1 Spatial data</a> </li><li> <a href="#ref-for-dfn-spatial-thing-2" title="§ 4.2 Data publication">§ 4.2 Data publication</a> </li><li> <a href="#ref-for-dfn-spatial-thing-3" title="§ 5. Best Practices Summary">§ 5. Best Practices Summary</a> </li><li> <a href="#ref-for-dfn-spatial-thing-4" title="§ 7. Spatial Things, Features and Geometry">§ 7. Spatial Things, Features and Geometry</a> <a href="#ref-for-dfn-spatial-thing-5" title="Reference 2">(2)</a> <a href="#ref-for-dfn-spatial-thing-6" title="Reference 3">(3)</a> <a href="#ref-for-dfn-spatial-thing-7" title="Reference 4">(4)</a> <a href="#ref-for-dfn-spatial-thing-8" title="Reference 5">(5)</a> <a href="#ref-for-dfn-spatial-thing-9" title="Reference 6">(6)</a> <a href="#ref-for-dfn-spatial-thing-10" title="Reference 7">(7)</a> <a href="#ref-for-dfn-spatial-thing-11" title="Reference 8">(8)</a> <a href="#ref-for-dfn-spatial-thing-12" title="Reference 9">(9)</a> <a href="#ref-for-dfn-spatial-thing-13" title="Reference 10">(10)</a> <a href="#ref-for-dfn-spatial-thing-14" title="Reference 11">(11)</a> <a href="#ref-for-dfn-spatial-thing-15" title="Reference 12">(12)</a> <a href="#ref-for-dfn-spatial-thing-16" title="Reference 13">(13)</a> <a href="#ref-for-dfn-spatial-thing-17" title="Reference 14">(14)</a> <a href="#ref-for-dfn-spatial-thing-18" title="Reference 15">(15)</a> </li><li> <a href="#ref-for-dfn-spatial-thing-19" title="§ 8. Coverages: describing properties that vary with location (and time)">§ 8. Coverages: describing properties that vary with location (and time)</a> <a href="#ref-for-dfn-spatial-thing-20" title="Reference 2">(2)</a> <a href="#ref-for-dfn-spatial-thing-21" title="Reference 3">(3)</a> <a href="#ref-for-dfn-spatial-thing-22" title="Reference 4">(4)</a> </li><li> <a href="#ref-for-dfn-spatial-thing-23" title="§ 13.1.1 Spatial data identifiers">§ 13.1.1 Spatial data identifiers</a> <a href="#ref-for-dfn-spatial-thing-24" title="Reference 2">(2)</a> <a href="#ref-for-dfn-spatial-thing-25" title="Reference 3">(3)</a> <a href="#ref-for-dfn-spatial-thing-26" title="Reference 4">(4)</a> <a href="#ref-for-dfn-spatial-thing-27" title="Reference 5">(5)</a> </li><li> <a href="#ref-for-dfn-spatial-thing-28" title="§ Why">§ Why</a> <a href="#ref-for-dfn-spatial-thing-29" title="Reference 2">(2)</a> <a href="#ref-for-dfn-spatial-thing-44" title="Reference 3">(3)</a> <a href="#ref-for-dfn-spatial-thing-92" title="Reference 4">(4)</a> <a href="#ref-for-dfn-spatial-thing-96" title="Reference 5">(5)</a> <a href="#ref-for-dfn-spatial-thing-97" title="Reference 6">(6)</a> <a href="#ref-for-dfn-spatial-thing-99" title="Reference 7">(7)</a> <a href="#ref-for-dfn-spatial-thing-100" title="Reference 8">(8)</a> <a href="#ref-for-dfn-spatial-thing-101" title="Reference 9">(9)</a> <a href="#ref-for-dfn-spatial-thing-102" title="Reference 10">(10)</a> <a href="#ref-for-dfn-spatial-thing-132" title="Reference 11">(11)</a> <a href="#ref-for-dfn-spatial-thing-133" title="Reference 12">(12)</a> </li><li> <a href="#ref-for-dfn-spatial-thing-30" title="§ Intended Outcome">§ Intended Outcome</a> <a href="#ref-for-dfn-spatial-thing-45" title="Reference 2">(2)</a> <a href="#ref-for-dfn-spatial-thing-134" title="Reference 3">(3)</a> <a href="#ref-for-dfn-spatial-thing-135" title="Reference 4">(4)</a> </li><li> <a href="#ref-for-dfn-spatial-thing-31" title="§ Possible Approach to Implementation">§ Possible Approach to Implementation</a> <a href="#ref-for-dfn-spatial-thing-32" title="Reference 2">(2)</a> <a href="#ref-for-dfn-spatial-thing-33" title="Reference 3">(3)</a> <a href="#ref-for-dfn-spatial-thing-34" title="Reference 4">(4)</a> <a href="#ref-for-dfn-spatial-thing-35" title="Reference 5">(5)</a> <a href="#ref-for-dfn-spatial-thing-36" title="Reference 6">(6)</a> <a href="#ref-for-dfn-spatial-thing-37" title="Reference 7">(7)</a> <a href="#ref-for-dfn-spatial-thing-38" title="Reference 8">(8)</a> <a href="#ref-for-dfn-spatial-thing-39" title="Reference 9">(9)</a> <a href="#ref-for-dfn-spatial-thing-40" title="Reference 10">(10)</a> <a href="#ref-for-dfn-spatial-thing-41" title="Reference 11">(11)</a> <a href="#ref-for-dfn-spatial-thing-46" title="Reference 12">(12)</a> <a href="#ref-for-dfn-spatial-thing-47" title="Reference 13">(13)</a> <a href="#ref-for-dfn-spatial-thing-48" title="Reference 14">(14)</a> <a href="#ref-for-dfn-spatial-thing-49" title="Reference 15">(15)</a> <a href="#ref-for-dfn-spatial-thing-50" title="Reference 16">(16)</a> <a href="#ref-for-dfn-spatial-thing-51" title="Reference 17">(17)</a> <a href="#ref-for-dfn-spatial-thing-52" title="Reference 18">(18)</a> <a href="#ref-for-dfn-spatial-thing-53" title="Reference 19">(19)</a> <a href="#ref-for-dfn-spatial-thing-54" title="Reference 20">(20)</a> <a href="#ref-for-dfn-spatial-thing-55" title="Reference 21">(21)</a> <a href="#ref-for-dfn-spatial-thing-56" title="Reference 22">(22)</a> <a href="#ref-for-dfn-spatial-thing-57" title="Reference 23">(23)</a> <a href="#ref-for-dfn-spatial-thing-58" title="Reference 24">(24)</a> <a href="#ref-for-dfn-spatial-thing-59" title="Reference 25">(25)</a> <a href="#ref-for-dfn-spatial-thing-60" title="Reference 26">(26)</a> <a href="#ref-for-dfn-spatial-thing-63" title="Reference 27">(27)</a> <a href="#ref-for-dfn-spatial-thing-64" title="Reference 28">(28)</a> <a href="#ref-for-dfn-spatial-thing-71" title="Reference 29">(29)</a> <a href="#ref-for-dfn-spatial-thing-72" title="Reference 30">(30)</a> <a href="#ref-for-dfn-spatial-thing-73" title="Reference 31">(31)</a> <a href="#ref-for-dfn-spatial-thing-74" title="Reference 32">(32)</a> <a href="#ref-for-dfn-spatial-thing-75" title="Reference 33">(33)</a> <a href="#ref-for-dfn-spatial-thing-76" title="Reference 34">(34)</a> <a href="#ref-for-dfn-spatial-thing-77" title="Reference 35">(35)</a> <a href="#ref-for-dfn-spatial-thing-78" title="Reference 36">(36)</a> <a href="#ref-for-dfn-spatial-thing-79" title="Reference 37">(37)</a> <a href="#ref-for-dfn-spatial-thing-80" title="Reference 38">(38)</a> <a href="#ref-for-dfn-spatial-thing-81" title="Reference 39">(39)</a> <a href="#ref-for-dfn-spatial-thing-82" title="Reference 40">(40)</a> <a href="#ref-for-dfn-spatial-thing-83" title="Reference 41">(41)</a> <a href="#ref-for-dfn-spatial-thing-84" title="Reference 42">(42)</a> <a href="#ref-for-dfn-spatial-thing-85" title="Reference 43">(43)</a> <a href="#ref-for-dfn-spatial-thing-86" title="Reference 44">(44)</a> <a href="#ref-for-dfn-spatial-thing-87" title="Reference 45">(45)</a> <a href="#ref-for-dfn-spatial-thing-90" title="Reference 46">(46)</a> <a href="#ref-for-dfn-spatial-thing-91" title="Reference 47">(47)</a> <a href="#ref-for-dfn-spatial-thing-93" title="Reference 48">(48)</a> <a href="#ref-for-dfn-spatial-thing-94" title="Reference 49">(49)</a> <a href="#ref-for-dfn-spatial-thing-95" title="Reference 50">(50)</a> <a href="#ref-for-dfn-spatial-thing-98" title="Reference 51">(51)</a> <a href="#ref-for-dfn-spatial-thing-103" title="Reference 52">(52)</a> <a href="#ref-for-dfn-spatial-thing-104" title="Reference 53">(53)</a> <a href="#ref-for-dfn-spatial-thing-105" title="Reference 54">(54)</a> <a href="#ref-for-dfn-spatial-thing-106" title="Reference 55">(55)</a> <a href="#ref-for-dfn-spatial-thing-107" title="Reference 56">(56)</a> <a href="#ref-for-dfn-spatial-thing-108" title="Reference 57">(57)</a> <a href="#ref-for-dfn-spatial-thing-109" title="Reference 58">(58)</a> <a href="#ref-for-dfn-spatial-thing-110" title="Reference 59">(59)</a> <a href="#ref-for-dfn-spatial-thing-111" title="Reference 60">(60)</a> <a href="#ref-for-dfn-spatial-thing-112" title="Reference 61">(61)</a> <a href="#ref-for-dfn-spatial-thing-113" title="Reference 62">(62)</a> <a href="#ref-for-dfn-spatial-thing-114" title="Reference 63">(63)</a> <a href="#ref-for-dfn-spatial-thing-115" title="Reference 64">(64)</a> <a href="#ref-for-dfn-spatial-thing-116" title="Reference 65">(65)</a> <a href="#ref-for-dfn-spatial-thing-117" title="Reference 66">(66)</a> <a href="#ref-for-dfn-spatial-thing-118" title="Reference 67">(67)</a> <a href="#ref-for-dfn-spatial-thing-119" title="Reference 68">(68)</a> <a href="#ref-for-dfn-spatial-thing-120" title="Reference 69">(69)</a> <a href="#ref-for-dfn-spatial-thing-121" title="Reference 70">(70)</a> <a href="#ref-for-dfn-spatial-thing-122" title="Reference 71">(71)</a> <a href="#ref-for-dfn-spatial-thing-123" title="Reference 72">(72)</a> <a href="#ref-for-dfn-spatial-thing-124" title="Reference 73">(73)</a> <a href="#ref-for-dfn-spatial-thing-125" title="Reference 74">(74)</a> <a href="#ref-for-dfn-spatial-thing-126" title="Reference 75">(75)</a> <a href="#ref-for-dfn-spatial-thing-136" title="Reference 76">(76)</a> <a href="#ref-for-dfn-spatial-thing-137" title="Reference 77">(77)</a> <a href="#ref-for-dfn-spatial-thing-138" title="Reference 78">(78)</a> <a href="#ref-for-dfn-spatial-thing-139" title="Reference 79">(79)</a> <a href="#ref-for-dfn-spatial-thing-140" title="Reference 80">(80)</a> <a href="#ref-for-dfn-spatial-thing-141" title="Reference 81">(81)</a> <a href="#ref-for-dfn-spatial-thing-142" title="Reference 82">(82)</a> <a href="#ref-for-dfn-spatial-thing-143" title="Reference 83">(83)</a> <a href="#ref-for-dfn-spatial-thing-144" title="Reference 84">(84)</a> <a href="#ref-for-dfn-spatial-thing-147" title="Reference 85">(85)</a> <a href="#ref-for-dfn-spatial-thing-148" title="Reference 86">(86)</a> <a href="#ref-for-dfn-spatial-thing-149" title="Reference 87">(87)</a> <a href="#ref-for-dfn-spatial-thing-150" title="Reference 88">(88)</a> </li><li> <a href="#ref-for-dfn-spatial-thing-42" title="§ How to Test">§ How to Test</a> <a href="#ref-for-dfn-spatial-thing-43" title="Reference 2">(2)</a> <a href="#ref-for-dfn-spatial-thing-61" title="Reference 3">(3)</a> <a href="#ref-for-dfn-spatial-thing-127" title="Reference 4">(4)</a> <a href="#ref-for-dfn-spatial-thing-145" title="Reference 5">(5)</a> </li><li> <a href="#ref-for-dfn-spatial-thing-62" title="§ 13.1.3 Linking data">§ 13.1.3 Linking data</a> </li><li> <a href="#ref-for-dfn-spatial-thing-65" title="§ 13.2.1 Spatial data encoding">§ 13.2.1 Spatial data encoding</a> <a href="#ref-for-dfn-spatial-thing-66" title="Reference 2">(2)</a> <a href="#ref-for-dfn-spatial-thing-67" title="Reference 3">(3)</a> <a href="#ref-for-dfn-spatial-thing-68" title="Reference 4">(4)</a> <a href="#ref-for-dfn-spatial-thing-69" title="Reference 5">(5)</a> <a href="#ref-for-dfn-spatial-thing-70" title="Reference 6">(6)</a> </li><li> <a href="#ref-for-dfn-spatial-thing-88" title="§ 13.2.2 Geometries and coordinate reference systems">§ 13.2.2 Geometries and coordinate reference systems</a> <a href="#ref-for-dfn-spatial-thing-89" title="Reference 2">(2)</a> </li><li> <a href="#ref-for-dfn-spatial-thing-128" title="§ 13.2.5 Spatial data versioning">§ 13.2.5 Spatial data versioning</a> <a href="#ref-for-dfn-spatial-thing-129" title="Reference 2">(2)</a> <a href="#ref-for-dfn-spatial-thing-130" title="Reference 3">(3)</a> <a href="#ref-for-dfn-spatial-thing-131" title="Reference 4">(4)</a> </li><li> <a href="#ref-for-dfn-spatial-thing-146" title="§ 13.4 Spatial data access">§ 13.4 Spatial data access</a> </li><li> <a href="#ref-for-dfn-spatial-thing-151" title="§ 13.5 Spatial metadata">§ 13.5 Spatial metadata</a> </li><li> <a href="#ref-for-dfn-spatial-thing-152" title="§ 15.2 Spatial data vocabulary">§ 15.2 Spatial data vocabulary</a> </li><li> <a href="#ref-for-dfn-spatial-thing-153" title="§ 15.6 Defining that two places are the same">§ 15.6 Defining that two places are the same</a> </li><li> <a href="#ref-for-dfn-spatial-thing-154" title="§ 15.7 Discovering what refers to a Spatial Thing">§ 15.7 Discovering what refers to a Spatial Thing</a> <a href="#ref-for-dfn-spatial-thing-155" title="Reference 2">(2)</a> </li><li> <a href="#ref-for-dfn-spatial-thing-156" title="§ A. Applicability of common formats to implementation of best practices">§ A. Applicability of common formats to implementation of best practices</a> <a href="#ref-for-dfn-spatial-thing-157" title="Reference 2">(2)</a> </li><li> <a href="#ref-for-dfn-spatial-thing-158" title="§ E. Glossary">§ E. Glossary</a> <a href="#ref-for-dfn-spatial-thing-159" title="Reference 2">(2)</a> <a href="#ref-for-dfn-spatial-thing-160" title="Reference 3">(3)</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-triple-store" aria-label="Links in this document to definition: Triple-store (or quadstore)" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-triple-store" aria-label="Permalink for definition: Triple-store (or quadstore). Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-triple-store-1" title="§ 4.2 Data publication">§ 4.2 Data publication</a> </li><li> <a href="#ref-for-dfn-triple-store-2" title="§ 11. Linked Data">§ 11. Linked Data</a> </li><li> <a href="#ref-for-dfn-triple-store-3" title="§ Possible Approach to Implementation">§ Possible Approach to Implementation</a> <a href="#ref-for-dfn-triple-store-4" title="Reference 2">(2)</a> </li><li> <a href="#ref-for-dfn-triple-store-5" title="§ A. Applicability of common formats to implementation of best practices">§ A. Applicability of common formats to implementation of best practices</a> <a href="#ref-for-dfn-triple-store-6" title="Reference 2">(2)</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-universe-of-discourse" aria-label="Links in this document to definition: Universe of discourse" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-universe-of-discourse" aria-label="Permalink for definition: Universe of discourse. Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-universe-of-discourse-1" title="§ 7. Spatial Things, Features and Geometry">§ 7. Spatial Things, Features and Geometry</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-wfs" aria-label="Links in this document to definition: Web Feature Service (WFS)" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-wfs" aria-label="Permalink for definition: Web Feature Service (WFS). Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-wfs-1" title="§ 13.4 Spatial data access">§ 13.4 Spatial data access</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-wmts" aria-label="Links in this document to definition: Web Map Tile Service (WMTS)" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-wmts" aria-label="Permalink for definition: Web Map Tile Service (WMTS). Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-wmts-1" title="§ Possible Approach to Implementation">§ Possible Approach to Implementation</a> </li> </ul> </div><div class="dfn-panel" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-well-known-text" aria-label="Links in this document to definition: Well Known Text (WKT)" hidden> <span class="caret"></span> <div> <a class="self-link" href="#dfn-well-known-text" aria-label="Permalink for definition: Well Known Text (WKT). Activate to close this dialog.">Permalink</a> </div> <p><b>Referenced in:</b></p> <ul> <li> <a href="#ref-for-dfn-well-known-text-1" title="§ 10. Coordinate Reference Systems (CRS)">§ 10. Coordinate Reference Systems (CRS)</a> </li><li> <a href="#ref-for-dfn-well-known-text-2" title="§ Possible Approach to Implementation">§ Possible Approach to Implementation</a> <a href="#ref-for-dfn-well-known-text-3" title="Reference 2">(2)</a> <a href="#ref-for-dfn-well-known-text-4" title="Reference 3">(3)</a> <a href="#ref-for-dfn-well-known-text-5" title="Reference 4">(4)</a> <a href="#ref-for-dfn-well-known-text-6" title="Reference 5">(5)</a> <a href="#ref-for-dfn-well-known-text-7" title="Reference 6">(6)</a> <a href="#ref-for-dfn-well-known-text-8" title="Reference 7">(7)</a> <a href="#ref-for-dfn-well-known-text-9" title="Reference 8">(8)</a> <a href="#ref-for-dfn-well-known-text-10" title="Reference 9">(9)</a> <a href="#ref-for-dfn-well-known-text-11" title="Reference 10">(10)</a> <a href="#ref-for-dfn-well-known-text-12" title="Reference 11">(11)</a> <a href="#ref-for-dfn-well-known-text-13" title="Reference 12">(12)</a> </li><li> <a href="#ref-for-dfn-well-known-text-14" title="§ A. Applicability of common formats to implementation of best practices">§ A. Applicability of common formats to implementation of best practices</a> <a href="#ref-for-dfn-well-known-text-15" title="Reference 2">(2)</a> <a href="#ref-for-dfn-well-known-text-16" title="Reference 3">(3)</a> <a href="#ref-for-dfn-well-known-text-17" title="Reference 4">(4)</a> <a href="#ref-for-dfn-well-known-text-18" title="Reference 5">(5)</a> <a href="#ref-for-dfn-well-known-text-19" title="Reference 6">(6)</a> <a href="#ref-for-dfn-well-known-text-20" title="Reference 7">(7)</a> <a href="#ref-for-dfn-well-known-text-21" title="Reference 8">(8)</a> <a href="#ref-for-dfn-well-known-text-22" title="Reference 9">(9)</a> </li> </ul> </div><script id="respec-dfn-panel">(() => { // @ts-check if (document.respec) { document.respec.ready.then(setupPanel); } else { setupPanel(); } function setupPanel() { const listener = panelListener(); document.body.addEventListener("keydown", listener); document.body.addEventListener("click", listener); } function panelListener() { /** @type {HTMLElement} */ let panel = null; return event => { const { target, type } = event; if (!(target instanceof HTMLElement)) return; // For keys, we only care about Enter key to activate the panel // otherwise it's activated via a click. if (type === "keydown" && event.key !== "Enter") return; const action = deriveAction(event); switch (action) { case "show": { hidePanel(panel); /** @type {HTMLElement} */ const dfn = target.closest("dfn, .index-term"); panel = document.getElementById(`dfn-panel-for-${dfn.id}`); const coords = deriveCoordinates(event); displayPanel(dfn, panel, coords); break; } case "dock": { panel.style.left = null; panel.style.top = null; panel.classList.add("docked"); break; } case "hide": { hidePanel(panel); panel = null; break; } } }; } /** * @param {MouseEvent|KeyboardEvent} event */ function deriveCoordinates(event) { const target = /** @type HTMLElement */ (event.target); // We prevent synthetic AT clicks from putting // the dialog in a weird place. The AT events sometimes // lack coordinates, so they have clientX/Y = 0 const rect = target.getBoundingClientRect(); if ( event instanceof MouseEvent && event.clientX >= rect.left && event.clientY >= rect.top ) { // The event probably happened inside the bounding rect... return { x: event.clientX, y: event.clientY }; } // Offset to the middle of the element const x = rect.x + rect.width / 2; // Placed at the bottom of the element const y = rect.y + rect.height; return { x, y }; } /** * @param {Event} event */ function deriveAction(event) { const target = /** @type {HTMLElement} */ (event.target); const hitALink = !!target.closest("a"); if (target.closest("dfn:not([data-cite]), .index-term")) { return hitALink ? "none" : "show"; } if (target.closest(".dfn-panel")) { if (hitALink) { return target.classList.contains("self-link") ? "hide" : "dock"; } const panel = target.closest(".dfn-panel"); return panel.classList.contains("docked") ? "hide" : "none"; } if (document.querySelector(".dfn-panel:not([hidden])")) { return "hide"; } return "none"; } /** * @param {HTMLElement} dfn * @param {HTMLElement} panel * @param {{ x: number, y: number }} clickPosition */ function displayPanel(dfn, panel, { x, y }) { panel.hidden = false; // distance (px) between edge of panel and the pointing triangle (caret) const MARGIN = 20; const dfnRects = dfn.getClientRects(); // Find the `top` offset when the `dfn` can be spread across multiple lines let closestTop = 0; let minDiff = Infinity; for (const rect of dfnRects) { const { top, bottom } = rect; const diffFromClickY = Math.abs((top + bottom) / 2 - y); if (diffFromClickY < minDiff) { minDiff = diffFromClickY; closestTop = top; } } const top = window.scrollY + closestTop + dfnRects[0].height; const left = x - MARGIN; panel.style.left = `${left}px`; panel.style.top = `${top}px`; // Find if the panel is flowing out of the window const panelRect = panel.getBoundingClientRect(); const SCREEN_WIDTH = Math.min(window.innerWidth, window.screen.width); if (panelRect.right > SCREEN_WIDTH) { const newLeft = Math.max(MARGIN, x + MARGIN - panelRect.width); const newCaretOffset = left - newLeft; panel.style.left = `${newLeft}px`; /** @type {HTMLElement} */ const caret = panel.querySelector(".caret"); caret.style.left = `${newCaretOffset}px`; } // As it's a dialog, we trap focus. // TODO: when <dialog> becomes a implemented, we should really // use that. trapFocus(panel, dfn); } /** * @param {HTMLElement} panel * @param {HTMLElement} dfn * @returns */ function trapFocus(panel, dfn) { /** @type NodeListOf<HTMLAnchorElement> elements */ const anchors = panel.querySelectorAll("a[href]"); // No need to trap focus if (!anchors.length) return; // Move focus to first anchor element const first = anchors.item(0); first.focus(); const trapListener = createTrapListener(anchors, panel, dfn); panel.addEventListener("keydown", trapListener); // Hiding the panel releases the trap const mo = new MutationObserver(records => { const [record] = records; const target = /** @type HTMLElement */ (record.target); if (target.hidden) { panel.removeEventListener("keydown", trapListener); mo.disconnect(); } }); mo.observe(panel, { attributes: true, attributeFilter: ["hidden"] }); } /** * * @param {NodeListOf<HTMLAnchorElement>} anchors * @param {HTMLElement} panel * @param {HTMLElement} dfn * @returns */ function createTrapListener(anchors, panel, dfn) { const lastIndex = anchors.length - 1; let currentIndex = 0; return event => { switch (event.key) { // Hitting "Tab" traps us in a nice loop around elements. case "Tab": { event.preventDefault(); currentIndex += event.shiftKey ? -1 : +1; if (currentIndex < 0) { currentIndex = lastIndex; } else if (currentIndex > lastIndex) { currentIndex = 0; } anchors.item(currentIndex).focus(); break; } // Hitting "Enter" on an anchor releases the trap. case "Enter": hidePanel(panel); break; // Hitting "Escape" returns focus to dfn. case "Escape": hidePanel(panel); dfn.focus(); return; } }; } /** @param {HTMLElement} panel */ function hidePanel(panel) { if (!panel) return; panel.hidden = true; panel.classList.remove("docked"); } })()</script><script src="https://www.w3.org/scripts/TR/2021/fixup.js"></script></body></html>