latest
62.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
<!DOCTYPE html>
<html>
<head>
<title>Points of Interest Core</title>
<meta http-equiv='Content-Type' content='text/html;charset=utf-8'/>
<!--
=== NOTA BENE ===
For the three scripts below, if your spec resides on dev.w3 you can check them
out in the same tree and use relative links so that they'll work offline,
-->
<script src='js/respec.js' class='remove'></script>
<script class='remove'>
var respecConfig = {
// specification status (e.g. WD, LCWD, NOTE, etc.). If in doubt use ED.
specStatus: "ED",
// the specification's short name, as in http://www.w3.org/TR/short-name/
shortName: "POI-Core",
// if your specification has a subtitle that goes below the main
// formal title, define it here
// subtitle : "an excellent document",
// if you wish the publication date to be other than today, set this
// publishDate: "2009-08-06",
// if the specification's copyright date is a range of years, specify
// the start date here:
// copyrightStart: "2005"
// if there is a previously published draft, uncomment this and set its YYYY-MM-DD date
// and its maturity status
// previousPublishDate: "1977-03-15",
// previousMaturity: "WD",
// if there a publicly available Editor's Draft, this is the link
edDraftURI: "http://www.w3.org/2010/POI/documents/Core/latest",
// if this is a LCWD, uncomment and set the end of its review period
// lcEnd: "2009-08-05",
// if you want to have extra CSS, append them to this list
// it is recommended that the respec.css stylesheet be kept
extraCSS: ["http://dev.w3.org/2009/dap/ReSpec.js/css/respec.css"],
// editors, add as many as you like
// only "name" is required
editors: [
{ name: "Matt Womer",
//url: "http://example.org/",
// company: "Your Company",
companyURL: "http://example.com/" },
],
// authors, add as many as you like.
// This is optional, uncomment if you have authors as well as editors.
// only "name" is required. Same format as editors.
//authors: [
// { name: "Your Name", url: "http://example.org/",
// company: "Your Company", companyURL: "http://example.com/" },
//],
// name of the WG
wg: "Points of Interest Working Group",
// URI of the public WG page
wgURI: "http://www.w3.org/2010/POI/",
// name (with the @w3c.org) of the public mailing to which comments are due
wgPublicList: "public-poiwg",
// URI of the patent status for this WG, for Rec-track documents
// !!!! IMPORTANT !!!!
// This is important for Rec-track documents, do not copy a patent URI from a random
// document unless you know what you're doing. If in doubt ask your friendly neighbourhood
// Team Contact.
wgPatentURI: "http://www.w3.org/2004/01/pp-impl/45386/status",
};
function escapeExamples(doc, content) {
// perform transformations to make it render and prettier
return '<pre class="example">' + doc._esc(content) + '</pre>';
}
function escapeSchema(doc, content) {
// perform transformations to make it render and prettier
return '<pre>' + doc._esc(content) + '</pre>';
}
function includeWiki(doc, content) {
// perform transformations to make it render and prettier
newcontent=content.replace(/[\s\S]*bodyContent">/m,'');
newcontent=newcontent.replace(/[\s\S]*?<\/p>/m,'');
newcontent=newcontent.replace(/\<\!--\s*?\n\s*?NewPP[\s\S]*/m,'');
newcontent=newcontent.replace(/\<h2\>/g,"<h4>");
newcontent=newcontent.replace(/\<\/h2\>/g,"</h4>");
newcontent=newcontent.replace(/\<h3\>/g,"<h5>");
newcontent=newcontent.replace(/\<\/h3\>/g,"</h5>");
return newcontent;
// return '<pre class="example">' + doc._esc(newcontent) + '</pre>';
}
</script>
<style>
.to-delete { text-decoration:line-through;}
h5,h6 { margin-top:10px; margin-bottom:10px;}
</style>
</head>
<body>
<section id='abstract'>
This document describes a data model and XML syntax for representing information about points of interest (POI) on the World Wide Web.
</section>
<section>
<h2>Introduction</h2>
<p>In general terms, a "point of interest" is a location about which information is available. A POI can be as simple as a set of coordinates and an identifier, or more complex such as a three dimensional model of a building with names in various languages, information about open and closed hours, and a civic address. POI data has many uses including navigation systems, mapping, geocaching, location-based social networking games, and augmented reality browsers.</p>
<p>POI data has traditionally been exchanged in proprietary formats by various transport mechanisms. This specification defines a flexible, lightweight, extensible POI data model, and one normative syntax for the data model. This will enable content publishers to effectively describe and efficiently serve and exchange POI data. In addition to the data model and format, this specification includes best practices for how to organize and serve POIs on the Web.
</p>
<p>To achieve these goals, this document describes a generic data model and one normative format. This format is based on XML and is likely insufficient to cover all possible POI use cases, therefore, the format is extensible, and it is expected that the data model will be mapped to other formats, such as JSON, GML, RDF, GeoRSS, or HTML.
</p>
</section>
<section>
<h2>Terminology</h2>
<p>The term <dfn>points of interest</dfn> is used in a broad sense in this specification to refer to a loosely coupled and inter-related set of terms: locations, POIs and places. </p>
<p class="note">This section is primarily based on the <a href="http://www.w3.org/2010/POI/wiki/Main_Page">wiki home page definition of POI</a>. </p>
<dl>
<dt>Location</dt>
<dd>
The term <dfn>location</dfn> is used to refer to an identifiable geographic place [[ISO19112]]. Typically a location is a physically fixed point, typically on the surface of the Earth, though locations can be relative to other, non-earth centric coordinate reference systems. Locations can be a single point, a centroid, a minimum bounding rectangle, or a set of vectors. A location should be persistent over time and does not change. Multiple POIs may share the same location. When a POI physically moves it is understood to have acquired a new location.</dd>
<dt>Points of Interest</dt>
<dd>
Unlike the term location, the term <dfn>POI</dfn> is a human construct. POIs typically describe a location where one can find a place, product or service, typically identified by name rather than by address and characterized by type, which may be used as a reference point or a target in a location based service request, e.g., as the destination of a route. For the purposes of this document, the term POI does not exclude the labeling, identification, and tracking of persons and other physical objects that have no permanent location.</dd>
<dt>Places</dt>
<dd>A <dfn>place</dfn> is also a human construct which typically has a coarse level of spatial granularity. Places are generally larger scale administrative constructs, either informally or formally defined. Countries, states, counties, districts, neighborhoods and postal codes or telephone area codes are all places. Places are also informally or colloquially defined, such as the Home Counties in the United Kingdom and the Bay Area in the United States.</dd>
<dd>
Places have spatial relationships; with parents, children, adjacencies and contained by semantics. Places have the same attribute set as POIs, although often with differing interpretations based on scale; for example, the address of a Place or its URI might refer to the address of the administrative or governing body of the place. </dd>
<dd>
A place typically contains multiple POIs and can also be coterminous with a POI. In the former case, a place, such as a city or a neighborhood, will contain multiple POIs. In the latter case, a place and a POI will occupy the same position and extent, such as in the case of Yellowstone National Park, which is both a Place and a POI. For the purposes of this document no distinction will be made between a place and a POI.</dd>
<dt> </dt>
<dt>Coordinate</dt>
<dd>
The term <dfn>coordinate</dfn> refers to one of a sequence of n numbers designating the position of a point in n-dimensional space [[ISO19111]]. </dd>
<dt>Coordinate Reference System</dt>
<dd>
The term <dfn>coordinate reference system</dfn> refers to a coordinate system that is related to an object by a datum [[ISO19111]]. </dd>
<dt>Coordinate System</dt>
<dd>The term <dfn>coordinate system</dfn> refers to a set of mathematical rules for specifying how coordinates are to be assigned to points [[ISO19111]]. </dd>
<dt>Datum</dt>
<dd>
The term <dfn>datum</dfn> refers to a parameter or set of parameters that define the position of the origin, the scale, and the orientation of a coordinate system [[ISO19111]]. </dd>
<dt>Geolocation</dt>
<dd>
The term <dfn>geolocation</dfn> refers to the identification of the real world geographic location of an object. </dd>
<dt>Point</dt>
<dd>
The term <dfn>point</dfn> refers to a 0-dimensional geometric primitive, representing a position [[ISO19107]]. </dd>
<dt>Position</dt>
<dd>
The term <dfn>position</dfn> refers to a data type that describes a point or geometry potentially occupied by an object or person [[ISO19133]]. </dd>
<dt>Route</dt>
<dd>
The term <dfn>route</dfn> refers to a sequence of links and / or partial links that describe a path, usually between two positions, within a network [[ISO19133]]. </dd>
<dt>Coordinate Set</dt>
<dd>The term <dfn>coordinate set</dfn> refers to the individual parts of a coordinate. This is often a simple <dfn>coordinate pair</dfn> of latitude and longitude values, but based on the coordinate system used, may be other values, see <a href="#CRS" class="sectionRef"></a>.</dd>
</dl>
</section>
<section>
<h2>POI Data Model</h2>
<p>The core data model includes a compound element called POIType derived and having children derived from a an abstract type called POIBaseType. The common POIBaseType allows the authorship, modification, and source of POIs to be attributed at the POI level, at the child element level, and at a group level through a grouping element called POIS. Child elements consist of primtive datatypes, POIBaseType elements, or POITermType elements having the additional attributes:</p>
<ol>
<li><strong>term:</strong> a machine readable character string to designate any number of discrete choices</li>
<li><strong>scheme:</strong> a URL pointing to the schema enumurating the discrete choices in term</li>
</ol>
<p>Both the POI and POIS element can contain any number of the following child elements:</p>
<ol>
<li><strong>label:</strong> a human readable label for the POI that can be discriminated with the term attribute (e.g. primary, collogiual, etc.).</li>
<li><strong>description:</strong> a human readable description of the POI that can be discrimintated with the language attribute.</li>
<li><strong>category:</strong> like all things, there are many ways to categorize a POI. It could have a primary use, such as restaurant or museum; it could have a popularity rating; it could have a security classification.</li>
<li><strong>time:</strong> A POI exists within a certain context. Time is one of those contexts. The POI may have a known time when it came into being, and can therefore have a start date. The POI might no longer exist at a known point in time (in the future or in the past), and will therefore have an end date. There can be even more complex cases, where a POI exists on a regularly scheduled sequence of times. This specification handles that case also by allowing one to specify the time period using the iCalendar standard [[ICALENDAR]].</li>
<li><strong>link:</strong> adopted from Atom's link object, a link is a generic way to define a relationship from a POI to another POI, or from a POI to any other web resource.</li>
<li><strong>metadata: </strong>this is the place to attach formal metadata to the POI via reference or inline. It is anticipated that some people will use this for Dublin Core or ISO 19115 metadata.</li>
</ol>
<p>The POI element must contain a single Location element having at least one geometry element derived from GML_CE_Geometry, an address element or the undetermined element.</p>
<p><img src="data-model-20111216.png"/></p>
<p>The elements of the core data model are described in more detail below. </p>
<section>
<h3>POIBaseType </h3>
<p>POIBaseType is the base element from which the majority of POI related elements are derived. It provides attributes related to id, source, authorship, licensing, and modification times for creation, deletion and updating. This base type allows the POI element, POIS grouping element and most child elements to carry separate information about their provinence, source and history.</p>
<h5>Contains</h5>
<table class="simple">
<thead>
<tr><th>Name</th>
<th>Count</th>
<th>Details</th>
<th>Type</th>
</tr>
</thead>
<tbody>
<tr>
<td>id</td>
<td>[0..1]</td>
<td>A unique identifier for this location. Can be a URI fragment. Refer to xml:base [[XMLBASE]] for more info</td>
<td>string</td>
</tr>
<tr>
<td>href</td>
<td>[0..1]</td>
<td>An absolute reference to the POI content</td>
<td>URI</td>
</tr>
<tr>
<td>value</td>
<td>[0..1]</td>
<td>The POI information content</td>
<td>CDATA</td>
</tr>
<tr>
<td>base</td>
<td>[0..1]</td>
<td>XML base when id is not absolute. Refer to xml:base [[XMLBASE]] for more info</td>
<td>URI</td>
</tr>
<tr>
<td>type</td>
<td>[0..1]</td>
<td>MIME type [RFC2046]</td>
<td>string</td>
</tr>
<tr>
<td>lang</td>
<td>[0..1]</td>
<td>XML Language type [RFC3066]</td>
<td>string</td>
</tr>
<tr>
<td>updated</td>
<td>[0..1]</td>
<td>Time this POI information was last changed [[ISO8601]] also refer to atom:updated [[RFC5023]]</td>
<td>dateTime</td>
</tr>
<tr>
<td>created</td>
<td>[0..1]</td>
<td>Time at which this POI information was created</td>
<td>dateTime</td>
</tr>
<tr>
<td>deleted</td>
<td>[0..1]</td>
<td>Time at which this POI information was deleted</td>
<td>dateTime</td>
</tr>
<tr>
<td>author</td>
<td>[0..1]</td>
<td>Author of this POI information see <a href="#author-element" class="sectionRef"></a>
</td>
<td>location</td>
</tr>
<tr>
<td>license</td>
<td>[0..1]</td>
<td>License restrictions on this POI information see <a href="#license-element" class="sectionRef"></a></td>
<td>category</td>
</tr>
</tbody>
</table>
<p>The id attribute is highly recommended. Using a unique URL or a resolvable combination of id and base URI is also recommended.</p>
<p>The href attribute may serve as an absolute reference to retrieve the POI information when the id and base do not combine to form a resolvable URL.</p>
<p>The value attribute is the prefered location for arbitrary strings (e.g. label, description, etc.). Many elements derived from POIBaseType may not require this attribute (e.g. link, license, geometry elements).</p>
<p>The updated, created and deleted attributes are for the capturing the modification history of the POI information itself. Any information about the existence of the POI itself as a human concept should use the POIBase time element.</p>
</section>
<section>
<h3>POITermType </h3>
<p>The POITermType element is derived from POIBaseType and adds attributes for the management of categorical entities. The POITermType element is used by the category, link, label, author, license and time elements along with the geometry elements point, line and polygon.</p>
<h5>Contains</h5>
<table class="simple">
<thead>
<tr>
<th>Name</th>
<th>Count</th>
<th>Details</th>
<th>Type</th>
</tr>
</thead>
<tbody>
<tr>
<td>term</td>
<td>[0..1]</td>
<td>A machine-readable character string to designate any number of discrete choices</td>
<td>URI</td>
</tr>
<tr>
<td>scheme</td>
<td>[0..1]</td>
<td>An absolute reference to the schema enumurating the dicrete choices in term</td>
<td>URI</td>
</tr>
</tbody>
</table>
<p>It is recommended to use the value attribute inherited from POIBaseType for human readable categorical descriptions.</p>
<section id="author-element">
<h3>author</h3>
<p>The author element is derived from the POITermType element to specify zero or one author. The language the label is in may be indicated using the lang attribute. Multiple authors may be discriminated with the term attribute (e.g. primary, editor, etc.). The first author encountered per language is considered the primary author for that language. </p>
<h6>Some Recommented Terms</h6>
<table class="simple">
<thead>
<tr>
<th>Name</th>
<th>Details</th>
</tr>
</thead>
<tbody>
<tr>
<td>primary</td>
<td>Primary author</td>
</tr>
<tr>
<td>secondary</td>
<td>Secondary author</td>
</tr>
<tr>
<td>contributer</td>
<td>A contributing author</td>
</tr>
<tr>
<td>editor</td>
<td>Editor</td>
</tr>
</tbody>
</table>
<p>When the mime type attribute is text/vcard the value content is expected in VCard format [[RFC6350]].</p>
</section> <section id="license-element">
<h3>license</h3>
<p>The license element is derived from the POITermType element to specify zero or one license. The language the license is in may be indicated using the lang attribute. Multiple licenses may be discriminated with the term attribute (e.g. common, opensource, etc.). The first license encountered per language is considered the primary license for that language.</p>
</section>
</section>
<section>
<h3>POIType</h3>
<p>The POIType element is derived from POIBaseType and adds child elements for describing, labeling, categorizing and indicating the time span of a POI or group of POIs. The element incudes child elements for linking to other POIs, external web resources or metadata.</p>
<h5>Contains</h5>
<table class="simple">
<thead>
<tr>
<th>Name</th>
<th>Count</th>
<th>Details</th>
<th>Type</th>
</tr>
</thead>
<tbody>
<tr>
<td>label</td>
<td>[0..*]</td>
<td>A human-readable name. Multiple names are used for synonyms and multiple languages</td>
<td>POITermType</td>
</tr>
<tr>
<td>description</td>
<td>[0..*]</td>
<td>A human-readable description that can be discrimintated with the language attribute</td>
<td>POIBaseType</td>
</tr>
<tr>
<td>category</td>
<td>[0..*]</td>
<td>A categorical classification of the POI.</td>
<td>POITermType</td>
</tr>
<tr>
<td>time</td>
<td>[0..*]</td>
<td>A fixed time or sequence of times using iCalendar when the mime type is text/calendar</td>
<td>POITermType</td>
</tr>
<tr>
<td>link</td>
<td>[0..*]</td>
<td>A link to another POI or web resource.</td>
<td>POITermType</td>
</tr>
<tr>
<td>metadata</td>
<td>[0..1]</td>
<td>see <a href="#metadata" class="sectionRef"></a></td>
<td>Metadata</td>
</tr>
</tbody>
</table>
<section>
<h3>label</h3>
<p>The label element is derived from the POITermType element to specify zero or more human readable labels. The language of label may be indicated using the lang attribute. Multiple labels may be discriminated with the term attribute (e.g. primary, collogiual, etc.). The first label encountered per language is considered the primary label for that language.</p>
<p>It is recommended to use the term attribute to discriminate between different categories of label elements.</p>
<h6>Some Recommented Terms</h6>
<table class="simple">
<thead>
<tr>
<th>Name</th>
<th>Details</th>
</tr>
</thead>
<tbody>
<tr>
<td>primary</td>
<td>The primary label</td>
</tr>
<tr>
<td>note</td>
<td>An annotation label</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3>description</h3>
<p>The label element is derived from the POIBaseType element to specify zero or more human readable descriptions. The language the description is in may be indicated using the lang attribute. The first description encountered per language is considered the primary description for that language.</p>
</section>
<section>
<h3>category</h3>
<p>The category element is derived from the POITermType element for making associations with zero of more categories. Category is adopted from Atom's category object, and works in much the same way. A category should specif the type of a POIBaseType element, such as city, restaurant, etc. Multiple categories are allowed to accommodate the fact that POIBaseType elements may be more than one thing. For example, a casino might be a gambling hall, a restaurant, and a concert venue. A grocery store may also be a bank and a pharmacy. </p>
</section>
<section>
</section>
<section>
</section>
<section>
<h3>time</h3>
<p>The time element is derived from POITermType to specify zero of more times applicable to a POIBaseType such as an individual point in time, a span of time, or a recurring time or time span.</p>
<p>A POI exists within a certain context. Time is one of those contexts. The POI may have a known time when it came into being, and can therefore have a start date. The POI might no longer exist at a known point in time (in the future or in the past), and will therefore have an end date. There can be even more complex cases, where a POI exists on a regularly scheduled sequence of times. This specification handles that case also by allowing one to specify the time period using the iCalendar standard [ICALENDAR].</p>
<p>It is recommended to use the term attribute to discriminate between different time element categories.</p>
<h6>Some Recommented Terms</h6>
<table class="simple">
<thead>
<tr>
<th>Name</th>
<th>Details</th>
</tr>
</thead>
<tbody>
<tr>
<td>start</td>
<td>Time when the POI came into being</td>
</tr>
<tr>
<td>end</td>
<td>Time when the POI ceased to exist</td>
</tr>
<tr>
<td>instant</td>
<td>A single time when an event happened</td>
</tr>
<tr>
<td>open</td>
<td>A recuring time when a POI is open</td>
</tr>
</tbody>
</table>
<p>When the mime type attribute is undetermined or text/plain the content of the value attribute is assumed to be in the dateTime format [ISO8601]. When the mime type attribute is text/calendar the value content is expected in iCalendar format.</p>
</section>
<section>
<h3>link</h3>
<p>The time element is derived from POITermType and adopted from Atom's link object which works in the same way. A link is a generic way to define a relationship from a POI to another POI, or from a POI to any other web resource. Links are a powerful way to describe a host of relationships. One could argue that just as Web pages obtain most of their value by the links between them, a POI's value is directly related to the number of links between it and others. Links in POIs are perhaps even more important than links in Web pages or Atom feeds as POIs are inherently place-based objects with natural relationships in space and time that should be expressed. Those spatial relationships are mostly covered by the Relationship primitive described elsewhere, which is in many ways a specialization of the generic Link. But there are many more semi-spatial and non-spatial relationships that can be expressed using Link. </p>
<p>This specification proposes a number of best practices for defining links. Key relations from the IANA registry are listed below in italics. Those relation in bold are defined only in this specification.</p>
<h6>Relations</h6>
<table class="simple">
<thead>
<tr>
<th>Name</th>
<th>Details</th>
</tr>
</thead>
<tbody>
<tr>
<td><em>alternate</em></td>
<td>a identical POI. Often used as a permalink</td>
</tr>
<tr>
<td><em>canonical</em></td>
<td>the preferred version of a set of POIs with highly similar content. For example, there could be many different perceptions of a neighborhood boundary POI, but the city's neighborhood map could be the canonical version of this POI.</td>
</tr>
<tr>
<td><em>copyright</em></td>
<td>a copyright statement that applys to the link's context</td>
</tr>
<tr>
<td><em>describedby</em></td>
<td>more information about this POI</td>
</tr>
<tr>
<td><em>edit</em></td>
<td>a resource that can be used to edit the POI's context</td>
</tr>
<tr>
<td><em>enclosure</em></td>
<td>a related resource that is potentially large and might require special handling</td>
</tr>
<tr>
<td><em>icon</em></td>
<td></td>
</tr>
<tr>
<td><em>latest-version</em></td>
<td>points to a resource containing the latest version</td>
</tr>
<tr>
<td><em>license</em></td>
<td>a license for this POI</td>
</tr>
<tr>
<td><em>related</em></td>
<td>a related resource</td>
</tr>
<tr>
<td>search</td>
<td>a resource that can be used to search through the link's context and related resources</td>
</tr>
<tr>
<td><strong>parent</strong></td>
<td>a parent POI, often the enclosing geographic entity, or the entity this POI in under the domain of (such as a field office-corporate headquarters relationship)</td>
</tr>
<tr>
<td><strong>child</strong></td>
<td>a child POI, often a geography entity enclosed or under the domain of this POI</td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</tbody>
</table>
</section>
<section>
<h3>metadata</h3>
<p>Dublin Core or [[ISO19115]] metadata.</p>
<p class="note">There is a WG question on whether this adequately addresses concerns about extensibility. See <a href="http://www.w3.org/2010/POI/track/issues/18">ISSUE-18</a>.</p>
</section>
</section>
<section>
<h3>POIS</h3>
<p>The POIS element is derived from POIType and can have one or more children elements of POI type. </p>
</section>
<section>
<h3>POI</h3>
<p>The POI element is derived from POIType and adds the Location element for determining the location of the POI. </p>
</section>
<section>
<h3>Location</h3>
<p>The Location element provides a rich and flexible description of the location of a POI. A Location can be represented in a variety of ways, such as the geodetic coordinates for the center of the POI, civic address, line, bounding box, polygon, or undetermined. A location is a required part of a POI and has child elements describing geometry, address or the undetermined element.</p>
<h6>Contains </h6>
<table class="simple">
<thead>
<tr><th>Name</th>
<th>Count</th>
<th>Details</th>
<th>Type</th>
</tr>
</thead>
<tbody>
<tr>
<td>point</td>
<td>[0..*]</td>
<td>A single coordinate</td>
<td>GML_CE_Geometry</td>
</tr>
<tr>
<td>line</td>
<td>[0..*]</td>
<td>Two or more coordinates</td>
<td>GML_CE_Geometry</td>
</tr>
<tr>
<td>polygon</td>
<td>[0..*]</td>
<td>Three or more coordinates</td>
<td>GML_CE_Geometry</td>
</tr>
<tr>
<td>address</td>
<td>[0..*]</td>
<td>A civic address</td>
<td>POIBaseType</td>
</tr>
<tr>
<td>relationship</td>
<td>[0..*]</td>
<td>A geo-spatial relationship to one or more POI</td>
<td>Relationship</td>
</tr>
<tr>
<td>undetermined</td>
<td>[0..1]</td>
<td>Indicating the location is undertermined</td>
<td>string</td>
</tr>
</tbody>
</table>
<p>If a Location neither includes a geometry element nor an address element then it must include the undetermined element. A Location element with no child elements indicates the data should be acquired from the href attribute of the element.</p>
<section>
<h3>GML_CE_Geometry</h3>
<p>The GML_CE_Geometry is the base element from which all geometry elements are derived. It combines a coordinate system description with a set of coordinates. </p>
<h6>Contains</h6>
<table class="simple">
<thead>
<tr>
<th>Name</th>
<th>Count</th>
<th>Details</th>
<th>Type</th>
</tr>
</thead>
<tbody>
<tr>
<td>srsName</td>
<td>[0..1]</td>
<td>Coordinate reference system</a></td>
<td>string</td>
</tr>
<tr>
<td>PosList</td>
<td>1</td>
<td>Contains coordinate set</td>
<td>string</td>
</tr>
</tbody>
</table>
<section id="CRS">
<h5>Coordinate Reference Systems</h5>
<p>In all of the primitives that specify geodetic coordinates, an <dfn>srsName</dfn> is included in order to indicate the coordinate reference system (CRS) being used. The srsName value is a URN [[RFC3406]] indicating the CRS used and is <dfn>urn:ogc:def:crs:EPSG::4326</dfn> by default. This default is the URN for the World Geodetic System 84 (WGS84) in 2 dimensions, latitude and longitude. Other CRS URNs are allowed. The CRS used influences the interpretation of the coordinate set.</p>
<p>The default CRS refers to WGS84 geographic longitude and latitude expressed in decimal degrees, namely EPSG:4326, without the degrees symbol, "°". The values of latitude and longitude are bounded by ±90° and ±180° respectively. Positive latitudes are north of the equator, negative latitudes are south of the equator. Positive longitudes are east of the Prime Meridian, negative longitudes are west of the Prime Meridian. Latitude and longitude are expressed in that sequence, namely latitude before longitude.</p>
<p>Implementations are REQUIRED to support the following CRS based on WGS 84 NIMA.TR8350.2-3e [[NIMA-TR8350-2]]. These are identified using the European Petroleum Survey Group (EPSG) Geodetic Parameter Dataset, as formalized by the Open Geospatial Consortium (OGC):</p>
<ul>
<li><dfn>urn:ogc:def:crs:EPSG::4326</dfn>: 2 dimensional WGS 84, latitude, and longitude</li>
<li><dfn>urn:ogc:def:crs:EPSG::4979</dfn>: 3 dimensional WGS 84, latitude, longitude, altitude</li>
</ul>
<p>The most recent version of the EPSG Geodetic Parameter Dataset SHOULD be used. A CRS MUST be specified using the above URN notation only, implementations do not need to support user-defined CRSs.</p>
<p class="note">Are CRSes going to always be identified by URNs? There's discussion on the confusion in <a href="http://www.ietf.org/mail-archive/web/geopriv/current/msg00941.html">this thread</a>. Raj mentioned OGC may be moving to URIs. The URN namespace ID ogc is <a href="http://tools.ietf.org/html/rfc5165">registered</a> with IANA. <br/>
Need a link to where OGC formalized this stuff. <br/>
Why do we use srsName and not crsname? Is 'name' a misnomer? Perhaps just 'srs' or 'crs' is sufficient. <br/>
Need reference for EPSG Geodetic Parameter Dataset, found <a href="http://www.epsg.org/Geodetic.html">this</a>, but it seems to imply you need .NET to get updates, is this the right place? </p>
<p>Implementations MUST specify the CRS using the "srsName" attribute on the outermost geometry element. The CRS MUST NOT be respecified or changed for any sub-elements.</p>
<p class="note">Should we be more specific that it's just on geometry elements that disallows sub-elements? e.g. you could have <pois> with no CRS specified, but a POI could specify 3d WGS84. I think this text means simply disallowing a line to have multiple CRSes.</p>
<p>This specification does not assign responsibilities for coordinate transformations from and to other Coordinate Reference Systems.</p>
<p><b>Note:</b> The term coordinate set as used throughout this document refers to coordinates as influenced by the rules laid out above</p>
</section>
</section>
<section>
<h3>Point</h3>
<p>The Point element is derived from POITermType and adds a single Point GML_CL_Geometry element. It describes a single coordinate set, the interpretation of which is inflcuenced by the CRS attribute. </p>
<h6>Contains</h6>
<table class="simple">
<thead>
<tr>
<th>Name</th>
<th>Count</th>
<th>Details</th>
<th>Type</th>
</tr>
</thead>
<tbody>
<tr>
<td>Point</td>
<td>1</td>
<td>A single coordinate defined in a particular CRS</td>
<td>GML_CL_Geometry</td>
</tr>
</tbody>
</table>
<p>It is recommended to use the term attribute to discriminate between different Point element categories.</p>
<h6>Some Recommented Terms</h6>
<table class="simple">
<thead>
<tr>
<th>Name</th>
<th>Details</th>
</tr>
</thead>
<tbody>
<tr>
<td>center</td>
<td>The centroid of the Location</td>
</tr>
<tr>
<td>navigation point</td>
<td>Generic navigation point</td>
</tr>
<tr>
<td>entrance</td>
<td>Navigation poin to the entrance</td>
</tr>
</tbody>
</table>
<p>The Point element locates the centroid of the POI and is the most common way of specifying a location. For most places, such as cities, businesses, tourist sites, or events, a center location can be useful for many types of software applications where additional detail is unnecessary, such as driving directions or computing rough distances. Therefore, even if the POI is also specified with a polygon or a line, it is good practice to include a center point. </p>
</section>
<section>
<h3>Line</h3>
<p>The Line element is derived from POITermType and adds a single LineString GML_CL_Geometry element. It describes a list of two or more coordinate sets, the interpretation of which is inflcuenced by the CRS attribute. </p>
<h6>Contains</h6>
<table class="simple">
<thead>
<tr>
<th>Name</th>
<th>Count</th>
<th>Details</th>
<th>Type</th>
</tr>
</thead>
<tbody>
<tr>
<td>LineString</td>
<td>1</td>
<td>A coordinate set defined in a particular CRS</td>
<td>GML_CL_Geometry</td>
</tr>
</tbody>
</table>
</section>
<section>
<p>A Line element can be used to describe a linear feature, such as a road, a bike route, a river, etc. </p>
</section>
<section>
<h3>Polygon</h3>
<p>The Polygon element is derived from POITermType and adds a single SimplePolygon GML_CL_Geometry element. It describes a list of three or more coordinate sets, the interpretation of which is inflcuenced by the CRS attribute. The last coordinate must be identical to the first.</p>
<h6>Contains</h6>
<table class="simple">
<thead>
<tr>
<th>Name</th>
<th>Count</th>
<th>Details</th>
<th>Type</th>
</tr>
</thead>
<tbody>
<tr>
<td>SimplePolygon</td>
<td>1</td>
<td>A coordinate set defined in a particular CRS</td>
<td>GML_CL_Geometry</td>
</tr>
</tbody>
</table>
<p>A Polygon element describes the boundary of something. There is a WG question on whether we should support more complex topology than a simple polgyon, e.g. should we support holes? See <a href="http://www.w3.org/2010/POI/track/issues/43">ISSUE-43</a>.</span> </p>
</section>
<section>
<h3>Address</h3>
<p>The Address element is derived from the POIBaseType element and describes a civic address such as a mailing address or a street address.</p>
</section>
<section>
<h3>Undertermined </h3>
<p>An Undetermined element represents a location that as of yet is undetermined. This can be used to describe a Place prior to the final location being resolved. There are no members for an Undetermined geo-reference. </p>
</section>
<section>
<h3>Relationship</h3>
<p class="note">This section is getting some expansion from OGC</p>
<p>The Relationship element is derived from the POIBaseType element and establishes 1-to-1 or 1-to-many relationships between POIs. Each Relationship element must have one of 8 term attributes that describing the geo-spatial relationship to the targetPOI.</p>
<h6> Required Terms</h6>
<table class="simple">
<thead>
<tr>
<th>Name</th>
<th>Details</th>
</tr>
</thead>
<tbody>
<tr>
<td>equals</td>
<td>The two objects have the same boundary and interior. The test for equivalence may be limited to the resolution of the coordinate system or the accuracy of the data.</td>
</tr>
<tr>
<td>disjoint</td>
<td>needs definition</td>
</tr>
<tr>
<td>intersects</td>
<td>needs definition</td>
</tr>
<tr>
<td>crosses</td>
<td>needs definition</td>
</tr>
<tr>
<td>overlaps</td>
<td>needs definition</td>
</tr>
<tr>
<td>within</td>
<td>A POI which is entirely contained within another POI, e.g. a POI describing a store may state that it is contained within a shopping mall</td>
</tr>
<tr>
<td>contains</td>
<td>A POI which entirely contains another POI, e.g. a POI describing a mall may state that it contains POIs for each store that is within the mall</td>
</tr>
<tr>
<td>touches</td>
<td>A POI which is physically adjacent to another POI, e.g. a POI representing a store within a mall may state that it is next door to another POI which represents the store next door</td>
</tr>
</tbody>
</table>
<p><img src="core-spatialoperators-20111216.jpg"></p>
</section>
</section>
</section>
<!-- end Data Model section -->
<section>
<h2>XML Syntax</h2>
<p class="note">Even more so than the rest of this document, this section is a <a href="http://en.wikipedia.org/wiki/Straw_man_proposal"><b>straw man</b></a> proposal, so please treat it as such!<br />
</p>
<p>This section describes an XML syntax to represent the data model.</p>
<section>
<h3>XML Notation</h3>
<p>The following data types are from <a href="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/">XML Schema, Part 2: Datatypes</a> [[XMLSCHEMA11-2]]. The meanings are provided here as a convenience, for more complete information refer to the XML Schema, Part 2: Datatypes Recommendation.</p>
<table class="simple">
<thead> <tr> <th>Notation</th> <th>Meaning</th> </tr> </thead>
<tbody>
<tr><td><a href="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#boolean">boolean</em></a></td><td>has the ·value space· required to support the mathematical concept of binary-valued logic: {true, false}</td></tr>
<tr><td><a href="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#decimal"><em>decimal</em></a></td><td>a subset of the real numbers, which can be represented by decimal numerals</td></tr>
<tr><td><a href="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#float"><em>float</em></a></td><td>patterned after the IEEE single-precision 32-bit floating point type [[IEEE 754-1985]].</td></tr>
<tr><td><a href="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#double"><em>double</em></a></td><td>patterned after the IEEE double-precision 64-bit floating point type [[IEEE 754-1985]]. </td></tr>
<tr><td><a href="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#duration"><em>duration</em></a></td><td>represents a duration of time.</td></tr>
<tr><td><a href="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#dateTime"><em>dateTime</em></a></td><td> may be viewed as objects with integer-valued year, month, day, hour and minute properties, a decimal-valued second property, and a boolean timezoned property. Each such object also has one decimal-valued method or computed property, timeOnTimeline, whose value is always a decimal number; the values are dimensioned in seconds, the integer 0 is 0001-01-01T00:00:00 and the value of timeOnTimeline for other dateTime values is computed using the Gregorian algorithm as modified for leap-seconds</td></tr>
<tr><td><a href="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#time"><em>time</em></a></td><td>represents an instant of time that recurs every day</td></tr>
<tr><td><em><a href="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#date">date</em></a></td><td> consists of top-open intervals of exactly one day in length on the timelines of dateTime, beginning on the beginning moment of each day (in each timezone), i.e. '00:00:00', up to but not including '24:00:00' (which is identical with '00:00:00' of the next day)</td></tr>
<tr><td><em><a href="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#gYearMonth">gYearMonth</em></a></td><td>represents a specific gregorian month in a specific gregorian year.</td></tr>
<tr><td><em><a href="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#gYear">gYear</em></a></td><td>represents a gregorian calendar year</td></tr>
<tr><td><em><a href="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#gMonthDay">gMonthDay</em></a></td><td>a gregorian date that recurs, specifically a day of the year such as the third of May</td></tr>
<tr><td><em><a href="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#gDay">gDay</em></a></td><td>a gregorian day that recurs, specifically a day of the month such as the 5th of the month</td></tr>
<tr><td><em><a href="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#gMonth">gMonth</em></a></td><td>gregorian month that recurs every year</td></tr>
<tr><td><em><a href="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#anyURI">anyURI</em></a></td><td>represents a Uniform Resource Identifier Reference (URI). An anyURI value can be absolute or relative, and may have an optional fragment identifie</td></tr>
</tbody>
</table>
<p class="note">We need to figure out: xml id/xml:base, xml:lang, units of measurement</p>
</section> <!-- end notation section-->
<section>
<h3><code><pois></code> element</h3>
<p>
The root element for an POI in XML syntax is the <code>pois</code> element. The <code><pois></code> element MUST contain one or more <code><poi></code> elements.
</p>
<h6>Attributes</h6>
<table class="simple">
<thead>
<tr>
<th>Name</th><th>Required</th><th>Type</th><th>Default value</th><th>Details</th></tr>
</thead>
<tbody>
<tr><td>xml:base</td><td>optional</td><td>URI? @@not anyURI as fragments are not allowed</td><td>URI of the document, or URI used to retrieve document or as defined by application context</td><td>specifies the base URI of these POIs, if different than the base URI of the document, see XML Base [[XMLBASE]] and RFC 3986 [[IRI]]</td></tr>
<tr><td>xml:lang</td><td>optional</td><td> language identifiers as defined by [[BCP47]]</td><td>??</td><td>specifies the language of the POIs, see <a href="http://www.w3.org/TR/REC-xml/#sec-lang-tag">XML Language Identification</a> section [[XML11]]</td></tr>
</tbody></table>
<p class="note">should collections of POIs have an id?</p>
</section> <!-- end of POIs element section -->
<section>
<h3><code><poi></code> element</h3>
<p>The <code><poi></code> element encompasses all information about a single POI. The <code><poi></code> element MUST contain one or more <code><location></code> elements, and MAY contain one or more <code><label></code> and <code><category></code> elements.</p>
<h6>Attributes</h6>
<table class="simple">
<thead>
<tr><th>Name</th><th>Required</th><th>Type</th><th>Default value</th><th>Details</th></tr>
</thead>
<tbody>
<tr><td>id</td><td>optional</td><td>@@ ID as defined in [[XML11]]</td><td>none</td><td>specifies an ID for a POI</td></tr>
<tr><td>xml:lang</td><td>optional</td><td> language identifiers as defined by [[BCP47]]</td><td>xml:lang value of the encapsulating <pois> element</td><td>specifies the language of this POI, see <a href="http://www.w3.org/TR/REC-xml/#sec-lang-tag">XML Language Identification</a> section [[XML11]]</td></tr>
</tbody></table>
<p class="note">Is there an official geode tagging scheme, e.g. "wgs84", or "etrs89"? Apparently yes: http://portal.opengeospatial.org/files/?artifact_id=24045
<br />
Now tracked as issue: <a href="http://www.w3.org/2010/POI/track/issues/21">ISSUE-21</a>.
<br />
How does this effect the altitude attribute?
</p>
</section> <!-- end of POI element section -->
<section>
<h3><code><location></code> element</h3>
<p>The <code><location></code> element contains one or more geo-references elements (see below), and has no attributes or character data.</p>
<h3>Geo-reference elements</h3>
<p>The following elements are the XML mapping for the geo-references outlined in the data model. Geo-references are used only with in the <code><location></code> element.
</p>
<section>
<h4><code><point></code> element</h4>
<p>The <code><point></code> element is used in many different geo-reference types below. It represents a single set of coordinates, and can be ordered relative to other <code><point></code> elements within the parent element via the <code>order</code> attribute.</p>
<p>The <code><point></code> element has no character data.</p>
<h6>Attributes</h6>
<table class="simple">
<thead>
<tr><th>Name</th><th>Required</th><th>Type</th><th>Default value</th><th>Details</th></tr>
</thead>
<tbody>
<tr><td>crs</td><td>optional</td><td>anyURI</td><td>@@</td><td>A URI as defined in OGC @@ update to latest, Raj says they now use URIs instead of URNs [[OGC-07-092r1]]@@ of the geodetic system to which the latitude and longitude and altitude are relative</td></tr>
<tr><td>longitude</td><td>required</td><td>number</td><td>None</td><td></td></tr>
<tr><td>latitude</td><td>required</td><td>number</td><td>None</td><td></td></tr>
<tr><td>altitude</td><td>optional</td><td>number</td><td>?? sea level relative to system?</td><td></td></tr>
</tbody>
</table>
<p class="note">Do we want to use an order attribute? Document order? A single attribute with a list of comma separated coordinates?
<br />
Now tracked as: <a href=
"http://www.w3.org/2010/POI/track/issues/19">ISSUE-19: how should we represent points?</a> and a related issue: <a href="http://www.w3.org/2010/POI/track/issues/36">ISSUE-36: do we want to rely on document order?</a>.
</p>
</section> <!-- end of point element section -->
<section>
<h4><code><address></code> element </h4>
<p class="note">Representing addresses is a tricky business, see Geolocation WG and IETF geopriv.<br />
As such address will be moved to TBD in this draft. This issue is now tracked as <a href="http://www.w3.org/2010/POI/track/issues/40">ISSUE-40</a>
</p>
<p class="note">Should there be a way to assign languages to addresses or parts of addresses?</p>
<!--
<p>The <code><address></code> element may contain one or more <code><region></code> elements.</p>
<h6>Attributes</h6>
<table class="simple">
<thead>
<th>Name</th><th>Required</th><th>Type</th><th>Default value</th><th>Details</th>
</thead>
<tbody>
<tr><td>country</td><td>required</td><td>string</td><td>None</td><td>ISO country code (ISO 3166-1 alpha-3 country code)</td></tr>
<tr><td>lang</td>
<td>required</td><td>string</td><td>defaults to the language of the XML document</td><td></td></tr>
<tr><td>street</td>
<td>optional</td><td>string</td><td>None</td><td> Can contain a variable mix of house number prefix, suffix, street base name and or street type</td></tr>
<tr><td>floor</td>
<td>optional</td><td>string</td><td>None</td><td> +/- number</td></tr>
<tr><td>suite</td><td>optional</td><td>string</td><td>None</td><td></td></tr>
<tr><td>postal-code</td>
<td>optional</td><td>string</td><td>None</td><td></td></tr>
</tbody>
</table>
<section>
<h5><code><region></code> element</h5>
<p>The <code><region></code> element has no attributes and contains character data that...??</p>
</section>
-->
</section> <!-- end of address section-->
<section>
<h4><code><navigation-point></code> element</h4>
<p>The <code><navigation-point></code> element has no character data and the same attributes as the <code><point></code>.
</section>
<section>
<h4><code><polygon></code> element</h4>
<p>The <code><polygon></code> element MUST contain three or more coordinates. The first and last coordinates must be the same.</p>
<p class="note">I changed quite a bit here from what Raj and I discussed. I noticed Raj said the polygon is a gml:Polygon, but that isn't the same as a GeoRSS GML, which restricts it to one gml:exterior. Specifying all of the additional GML (gml:exterior, gml:LinearRing, gml:posList, seemed very verbose. I also added coordinate labels and defaults.</p>
<p>The contents of the <code><polygon></code> element are comma separated coordinates, the number of which is dependent upon the value of the <code>coordinate-labels</code> attribute. Each set of coordinates are whitespace separated.</p>
<p>The <code>coordinate-labels</code> contains a whitespace separated list of labels for each of the parts of the coordinates specified within the <code><polygon></code> element. The number of parts of a coordinate is equal to the number of <code>coordinate-labels</code>. If whitespace is encountered before all values have been specified, the result is determined by the values of the <code>coordinate-defaults</code> attribute, which contains a space separated list of defaults, one per <code>coordinate-labels</code>. If the number of <code>coordinate-labels</code> does not match the number of <code>coordinate-defaults</code>, the document is @@invalid. If a <code>coordinate-labels</code> attribute is specified, a <code>coordinate-defaults</code> attribute MUST be specified as well.</p>
<p class="note">The contents of the <code><polygon></code> element should be equivalent to a <code>gml:posList</code> contained within a <code>gml:LinearRing</code>, within a <code>gml:exterior</code> within a <code>gml:AbstractSurfaceType</code>.</p>
<h6>Attributes</h6>
<table class="simple">
<thead>
<tr>
<th>Name</th>
<th>Required</th>
<th>Type</th>
<th>Default value</th>
<th>Details</th>
</tr>
</thead>
<tbody>
<tr><td>crs</td><td>optional</td><td>URI</td><td>@@Whatever WGS-84 is in OGC URI syntax</td><td>?? see crs in point element for discussion</td></tr>
<tr><td>coordinate-labels</td><td>optional</td><td>NMTOKENS</td><td>"latitude longitude altitude"</td><td>see above</td></tr>
<tr><td>coordinate-defaults</td><td>optional</td><td>NMTOKENS</td><td>"0 0 0"</td><td>see above</td></tr>
</tbody>
</table>
</section>
<section>
<h4><code><object></code> element</h4>
<p class="note">This geo-reference hasn't been written yet</p>
<h6>Attributes</h6>
<table class="simple">
<thead>
<tr>
<th>Name</th>
<th>Required</th>
<th>Type</th><th>Default value</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</section>
<section>
<h5><code><undetermined></code> element</h5>
<p>The <code><undetermined></code> element has no character data and no attributes. </p>
</section>
<section>
<h4><code><relative></code> element</h4>
<p>The <code><relative></code> element has no character data.</p>
<h6>Attributes</h6>
<table class="simple">
<thead>
<tr>
<th>Name</th><th>Required</th><th>Type</th><th>Default value</th><th>Details</th></tr>
</thead>
<tbody>
<tr><td>location-id</td><td>required</td><td>idref (not really, more of a xsd:anyURI as it can be external too)</td><td>None</td><td>The fragment identifier or URI of the object to which this location is relative.</td></tr>
<tr><td>distance-from</td><td>required</td><td>integer</td><td>None</td><td>The distance this object is from the object referred to in the location-id attribute</td></tr>
<tr><td>bearing-to</td><td>required</td><td>decimal</td><td>None</td><td>?? radians? degrees?</td></tr>
<tr><td>relative-height</td><td>optional</td><td>integer</td><td>None</td><td></td></tr>
</tbody>
</table>
</section>
<section>
<h4><code><map></code> element</h4>
<p class="note">Map georeference type has been dropped from the FPWD until it is better understood, so the map element has been dropped as well.</p>
<!--
<p> The <code><map></code> element contains no character data and may contain one or more <code><relative></code> elements.</p>
<h6>Attributes</h6>
<table class="simple">
<thead>
<th>Name</th><th>Required</th><th>Type</th><th>Default value</th><th>Details</th>
</thead>
<tbody>
<tr><td>supplier</td>
<td>required</td><td>string</td><td>None</td><td></td></tr>
<tr><td>version</td>
<td>required</td><td>string</td><td>None</td><td></td></tr>
<tr><td>map-ref</td><td>required</td><td>URI</td><td>None</td><td></td><td></td></tr>
<tr><td>side</td>
<td>optional</td><td>string</td><td>None</td><td></td></tr>
<tr><td>spot</td><td>optional</td><td>string</td><td>None</td><td></td></tr>
<tr><td>reference-type</td>
<td>required</td><td>string</td><td>None</td><td>Must be one of: center, address, navigation-point, area, or object</td></tr>
</tr>
</tbody>
</table>
-->
</section>
</section>
<section>
<h3><code><relationship></code> element</h3>
<p> The <code><relationship></code> element contains no character data.</p>
<h6>Attributes</h6>
<table class="simple">
<thead>
<tr>
<th>Name</th><th>Required</th><th>Type</th><th>Default value</th><th>Details</th></tr>
</thead>
<tbody>
<tr><td>type</td><td>required</td><td>string</td><td>None</td><td>MUST be one of: "contained-within","adjacent-to", or "contains"</td></tr>
<tr><td>relative-to</td><td>required</td><td>URI</td><td>None</td><td></td></tr>
</tbody>
</table>
</section>
<section>
<h3><code><label></code> element</h3>
<p class="note">Todo. At the f2f we agreed it would be label instead of name, and that multiples can exist, and one per language can be marked as primary</p>
</section>
<section>
<h3>id representation</h3>
<p class="note">At F2F2 we discussed using URI fragments as IDs, as in XML. Using XML Base we could build a full URI that could then be used to identify the entire POI.</p>
</section>
<section>
<h3><code><category></code> element</h3>
<p>The <code><category></code> element is a child of the <poi> element. It is used to identify a category scheme and a category within that scheme, as well as one or more labels for the category.</p>
<p>The <code><category></code> element MUST contain one or more <label> elements, and zero or more <association> elements.</p>
<p class="note">
See <a href="http://www.w3.org/2010/POI/track/issues/24">ISSUE-24</a>.<br />
I adjusted the Atom category element, to support multiple human readable labels via label sub elements and I try to give some meaning to the term attribute when there is no scheme.
</p>
<h6>Attributes</h6>
<table class="simple">
<thead>
<tr>
<th>Name</th><th>Required</th><th>Type</th><th>Default value</th><th>Details</th>
</tr>
</thead>
<tbody>
<tr><td>scheme</td><td>optional</td><td>URI</td><td>None</td><td>URI that identifies the categorization scheme, does not need to be dereferencable </td></tr>
<tr><td>term</td><td>required</td><td>string</td><td>None</td><td>The name of the category, in the context of the scheme, or when scheme is missing, it is relevant only as an opaque string to identify the category.</td></tr>
</tbody></table>
</section>
<section>
<h3>Meta-data</h3>
<p class="note">TBD. See <a href="http://www.w3.org/2010/POI/track/issues/18">ISSUE-18</a>.</p>
</section>
<section>
<h3><code><time></code> element</h3>
<p class="note">We discussed at F2F2 basing this on other standards' time representations. <br />
This section now represents times as defined in XML Schema Datatypes.<br />
This is <a href="http://www.w3.org/2010/POI/track/issues/26">ISSUE-26</a>.
</p>
<p>
<h6>Attributes</h6>
<table class="simple">
<thead>
<tr>
<th>Name</th><th>Required</th><th>Type</th><th>Default value</th><th>Details</th>
</tr>
</thead>
<tbody>
<tr><td>scheme</td><td>optional</td><td>URI</td><td>None</td><td>URI that identifies the categorization scheme, does not need to be dereferencable </td></tr>
<tr><td>term</td><td>required</td><td>string</td><td>None</td><td>The name of the category, in the context of the scheme, or when scheme is missing, it is relevant only as an opaque string to identify the category.</td></tr>
</tbody
></table>
</section>
<section>
<h3>XML Example</h3>
<p class="note">This example was just something I generated while thinking through the XML syntax, it hasn't been updated to be in sync with what is in the document, so it may differ.</p>
<div data-include='core-example-20111216.xml' data-oninclude='escapeExamples'></div>
</section>
<section>
<h3>XML Schema</h3>
<p class="note">
This is a very rough RELAX NG schema for the XML syntax. It is not guaranteed to work or be in sync with the rest of the document for now.
</p>
<div data-include='core-20111216.rnc' data-oninclude='escapeSchema'></div>
</section>
</section> <!-- end XML syntax section -->
<section class="appendix">
<h2>Use Cases</h2>
<div data-include='http://www.w3.org/2010/POI/wiki/Use_Cases' data-oninclude='includeWiki'></div>
</section>
<section class='appendix'>
<h2>Acknowledgements</h2>
<p>
</p>
</section> </body>
</html>