rdf-tabular 0.4.0 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +24 -5
  3. data/VERSION +1 -1
  4. data/etc/csvw.jsonld +135 -50
  5. data/lib/rdf/tabular/csvw.rb +215 -181
  6. data/lib/rdf/tabular/format.rb +8 -6
  7. data/lib/rdf/tabular/literal.rb +1 -1
  8. data/lib/rdf/tabular/metadata.rb +61 -80
  9. data/lib/rdf/tabular/reader.rb +18 -15
  10. data/lib/rdf/tabular/uax35.rb +143 -38
  11. data/spec/data/countries-minimal.json +38 -0
  12. data/spec/data/countries-minimal.ttl +36 -0
  13. data/spec/data/countries-standard.json +86 -0
  14. data/spec/data/countries-standard.ttl +75 -0
  15. data/spec/data/countries.csv +4 -0
  16. data/spec/data/countries.csv-minimal.json +16 -0
  17. data/spec/data/countries.csv-minimal.ttl +19 -0
  18. data/spec/data/countries.csv-standard.json +33 -0
  19. data/spec/data/countries.csv-standard.ttl +44 -0
  20. data/spec/data/countries.html +88 -0
  21. data/spec/data/countries.json +53 -0
  22. data/spec/data/countries_embed-minimal.json +38 -0
  23. data/spec/data/countries_embed-minimal.ttl +36 -0
  24. data/spec/data/countries_embed-standard.json +86 -0
  25. data/spec/data/countries_embed-standard.ttl +75 -0
  26. data/spec/data/countries_embed.html +88 -0
  27. data/spec/data/countries_html-minimal.json +38 -0
  28. data/spec/data/countries_html-minimal.ttl +36 -0
  29. data/spec/data/countries_html-standard.json +86 -0
  30. data/spec/data/countries_html-standard.ttl +75 -0
  31. data/spec/data/country-codes-and-names-minimal.json +19 -0
  32. data/spec/data/country-codes-and-names-minimal.ttl +22 -0
  33. data/spec/data/country-codes-and-names-standard.json +47 -0
  34. data/spec/data/country-codes-and-names-standard.ttl +45 -0
  35. data/spec/data/country-codes-and-names.csv +5 -0
  36. data/spec/data/country_slice.csv +4 -0
  37. data/spec/data/junior-roles.csv +3 -0
  38. data/spec/data/junior-roles.json +54 -0
  39. data/spec/data/roles-minimal.json +32 -0
  40. data/spec/data/roles-minimal.ttl +36 -0
  41. data/spec/data/roles-standard.json +56 -0
  42. data/spec/data/roles-standard.ttl +66 -0
  43. data/spec/data/roles.json +23 -0
  44. data/spec/data/senior-roles.csv +3 -0
  45. data/spec/data/senior-roles.json +52 -0
  46. data/spec/data/test232-metadata.json +10 -0
  47. data/spec/data/test232.csv +3 -0
  48. data/spec/data/tree-ops-atd.json +1 -0
  49. data/spec/data/tree-ops-ext-minimal.json +42 -0
  50. data/spec/data/tree-ops-ext-minimal.ttl +34 -0
  51. data/spec/data/tree-ops-ext-standard.json +93 -0
  52. data/spec/data/tree-ops-ext-standard.ttl +82 -0
  53. data/spec/data/tree-ops-ext.csv +4 -0
  54. data/spec/data/tree-ops-ext.json +81 -0
  55. data/spec/data/tree-ops-minimal.json +18 -0
  56. data/spec/data/tree-ops-minimal.ttl +14 -0
  57. data/spec/data/tree-ops-standard.json +44 -0
  58. data/spec/data/tree-ops-standard.ttl +44 -0
  59. data/spec/data/tree-ops-virtual-minimal.json +32 -0
  60. data/spec/data/tree-ops-virtual-minimal.ttl +25 -0
  61. data/spec/data/tree-ops-virtual-standard.json +49 -0
  62. data/spec/data/tree-ops-virtual-standard.ttl +49 -0
  63. data/spec/data/tree-ops-virtual.json +48 -0
  64. data/spec/data/tree-ops.csv +3 -0
  65. data/spec/data/tree-ops.csv-metadata.json +43 -0
  66. data/spec/data/tree-ops.html +54 -0
  67. data/spec/data/tree-ops.tsv +3 -0
  68. data/spec/format_spec.rb +5 -4
  69. data/spec/metadata_spec.rb +10 -16
  70. data/spec/suite_helper.rb +2 -2
  71. data/spec/suite_spec.rb +5 -6
  72. data/spec/uax35_spec.rb +239 -0
  73. metadata +149 -36
  74. data/lib/rdf/tabular/json.rb +0 -0
@@ -0,0 +1,23 @@
1
+ {
2
+ "@type": "TableGroup",
3
+ "@context": ["http://www.w3.org/ns/csvw", {"@language": "en"}],
4
+ "tables": [{
5
+ "url": "gov.uk/professions.csv",
6
+ "tableSchema": {
7
+ "columns": [{
8
+ "name": "name",
9
+ "titles": "Profession",
10
+ "datatype": "string",
11
+ "required": true
12
+ }],
13
+ "primaryKey": "name"
14
+ },
15
+ "suppressOutput": true
16
+ }, {
17
+ "url": "senior-roles.csv",
18
+ "tableSchema": "senior-roles.json"
19
+ }, {
20
+ "url": "junior-roles.csv",
21
+ "tableSchema": "junior-roles.json"
22
+ }]
23
+ }
@@ -0,0 +1,3 @@
1
+ Post Unique Reference,Name,Grade,Job Title,Reports to Senior Post,Profession
2
+ 90115,Steve Egan,SCS1A,Deputy Chief Executive,90334,Finance
3
+ 90334,Sir Alan Langlands,SCS4,Chief Executive,xx,Policy
@@ -0,0 +1,52 @@
1
+ {
2
+ "@context": "http://www.w3.org/ns/csvw",
3
+ "columns": [{
4
+ "name": "ref",
5
+ "titles": "Post Unique Reference",
6
+ "datatype": "string",
7
+ "required": true,
8
+ "propertyUrl": "dc:identifier"
9
+ }, {
10
+ "name": "name",
11
+ "titles": "Name",
12
+ "datatype": "string",
13
+ "propertyUrl": "foaf:name"
14
+ }, {
15
+ "name": "grade",
16
+ "titles": "Grade",
17
+ "datatype": "string",
18
+ "propertyUrl": "http://example.org/def/grade"
19
+ }, {
20
+ "name": "job",
21
+ "titles": "Job Title",
22
+ "datatype": "string",
23
+ "propertyUrl": "http://example.org/def/job"
24
+ }, {
25
+ "name": "reportsTo",
26
+ "titles": "Reports to Senior Post",
27
+ "datatype": "string",
28
+ "null": "xx",
29
+ "propertyUrl": "http://example.org/def/reportsTo",
30
+ "valueUrl": "senior-roles.csv#post-{reportsTo}"
31
+ }, {
32
+ "name": "profession",
33
+ "titles": "Profession",
34
+ "datatype": "string",
35
+ "propertyUrl": "http://example.org/def/profession"
36
+ }],
37
+ "primaryKey": "ref",
38
+ "aboutUrl": "#post-{ref}",
39
+ "foreignKeys": [{
40
+ "columnReference": "reportsTo",
41
+ "reference": {
42
+ "resource": "senior-roles.csv",
43
+ "columnReference": "ref"
44
+ }
45
+ }, {
46
+ "columnReference": "profession",
47
+ "reference": {
48
+ "resource": "gov.uk/professions.csv",
49
+ "columnReference": "name"
50
+ }
51
+ }]
52
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "@context": "http://www.w3.org/ns/csvw",
3
+ "rdfs:comment": "As defined in [tabular-data-model], validators must check that each row has a unique combination of values of cells in the indicated columns.",
4
+ "rdfs:label": "single column primaryKey violation",
5
+ "url": "test232.csv",
6
+ "tableSchema": {
7
+ "columns": [{"name": "PK", "titles": "PK"}],
8
+ "primaryKey": "PK"
9
+ }
10
+ }
@@ -0,0 +1,3 @@
1
+ PK
2
+ 1
3
+ 1
@@ -0,0 +1 @@
1
+ {}
@@ -0,0 +1,42 @@
1
+ [
2
+ {
3
+ "@id": "http://example.org/tree-ops-ext#gid-1",
4
+ "on_street": "ADDISON AV",
5
+ "species": "Celtis australis",
6
+ "trim_cycle": "Large Tree Routine Prune",
7
+ "dbh": 11,
8
+ "inventory_date": "2010-10-18",
9
+ "protected": false,
10
+ "kml": "<Point><coordinates>-122.156485,37.440963</coordinates></Point>"
11
+ },
12
+ {
13
+ "@id": "http://example.org/tree-ops-ext#gid-2",
14
+ "on_street": "EMERSON ST",
15
+ "species": "Liquidambar styraciflua",
16
+ "trim_cycle": "Large Tree Routine Prune",
17
+ "dbh": 11,
18
+ "inventory_date": "2010-06-02",
19
+ "protected": false,
20
+ "kml": "<Point><coordinates>-122.156749,37.440958</coordinates></Point>"
21
+ },
22
+ {
23
+ "@id": "http://example.org/tree-ops-ext#gid-6",
24
+ "on_street": "ADDISON AV",
25
+ "species": "Robinia pseudoacacia",
26
+ "trim_cycle": "Large Tree Routine Prune",
27
+ "dbh": 29,
28
+ "inventory_date": "2010-06-01",
29
+ "comments": [
30
+ "cavity or decay",
31
+ " trunk decay",
32
+ " codominant leaders",
33
+ " included bark",
34
+ " large leader or limb decay",
35
+ " previous failure root damage",
36
+ " root decay",
37
+ " beware of BEES"
38
+ ],
39
+ "protected": true,
40
+ "kml": "<Point><coordinates>-122.156299,37.441151</coordinates></Point>"
41
+ }
42
+ ]
@@ -0,0 +1,34 @@
1
+ @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
2
+ @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
3
+
4
+ <http://example.org/tree-ops-ext#gid-1> <http://example.org/tree-ops-ext.csv#dbh> "11"^^xsd:integer;
5
+ <http://example.org/tree-ops-ext.csv#inventory_date> "2010-10-18"^^xsd:date;
6
+ <http://example.org/tree-ops-ext.csv#kml> "<Point><coordinates>-122.156485,37.440963</coordinates></Point>"^^rdf:XMLLiteral;
7
+ <http://example.org/tree-ops-ext.csv#on_street> "ADDISON AV";
8
+ <http://example.org/tree-ops-ext.csv#protected> "false"^^xsd:boolean;
9
+ <http://example.org/tree-ops-ext.csv#species> "Celtis australis";
10
+ <http://example.org/tree-ops-ext.csv#trim_cycle> "Large Tree Routine Prune"@en .
11
+
12
+ <http://example.org/tree-ops-ext#gid-2> <http://example.org/tree-ops-ext.csv#dbh> "11"^^xsd:integer;
13
+ <http://example.org/tree-ops-ext.csv#inventory_date> "2010-06-02"^^xsd:date;
14
+ <http://example.org/tree-ops-ext.csv#kml> "<Point><coordinates>-122.156749,37.440958</coordinates></Point>"^^rdf:XMLLiteral;
15
+ <http://example.org/tree-ops-ext.csv#on_street> "EMERSON ST";
16
+ <http://example.org/tree-ops-ext.csv#protected> "false"^^xsd:boolean;
17
+ <http://example.org/tree-ops-ext.csv#species> "Liquidambar styraciflua";
18
+ <http://example.org/tree-ops-ext.csv#trim_cycle> "Large Tree Routine Prune"@en .
19
+
20
+ <http://example.org/tree-ops-ext#gid-6> <http://example.org/tree-ops-ext.csv#comments> "cavity or decay",
21
+ " trunk decay",
22
+ " codominant leaders",
23
+ " included bark",
24
+ " large leader or limb decay",
25
+ " previous failure root damage",
26
+ " root decay",
27
+ " beware of BEES";
28
+ <http://example.org/tree-ops-ext.csv#dbh> "29"^^xsd:integer;
29
+ <http://example.org/tree-ops-ext.csv#inventory_date> "2010-06-01"^^xsd:date;
30
+ <http://example.org/tree-ops-ext.csv#kml> "<Point><coordinates>-122.156299,37.441151</coordinates></Point>"^^rdf:XMLLiteral;
31
+ <http://example.org/tree-ops-ext.csv#on_street> "ADDISON AV";
32
+ <http://example.org/tree-ops-ext.csv#protected> "true"^^xsd:boolean;
33
+ <http://example.org/tree-ops-ext.csv#species> "Robinia pseudoacacia";
34
+ <http://example.org/tree-ops-ext.csv#trim_cycle> "Large Tree Routine Prune"@en .
@@ -0,0 +1,93 @@
1
+ {
2
+ "tables": [
3
+ {
4
+ "@id": "http://example.org/tree-ops-ext",
5
+ "url": "http://example.org/tree-ops-ext.csv",
6
+ "row": [
7
+ {
8
+ "url": "http://example.org/tree-ops-ext.csv#row=2",
9
+ "rownum": 1,
10
+ "describes": [
11
+ {
12
+ "@id": "http://example.org/tree-ops-ext#gid-1",
13
+ "on_street": "ADDISON AV",
14
+ "species": "Celtis australis",
15
+ "trim_cycle": "Large Tree Routine Prune",
16
+ "dbh": 11,
17
+ "inventory_date": "2010-10-18",
18
+ "protected": false,
19
+ "kml": "<Point><coordinates>-122.156485,37.440963</coordinates></Point>"
20
+ }
21
+ ]
22
+ },
23
+ {
24
+ "url": "http://example.org/tree-ops-ext.csv#row=3",
25
+ "rownum": 2,
26
+ "describes": [
27
+ {
28
+ "@id": "http://example.org/tree-ops-ext#gid-2",
29
+ "on_street": "EMERSON ST",
30
+ "species": "Liquidambar styraciflua",
31
+ "trim_cycle": "Large Tree Routine Prune",
32
+ "dbh": 11,
33
+ "inventory_date": "2010-06-02",
34
+ "protected": false,
35
+ "kml": "<Point><coordinates>-122.156749,37.440958</coordinates></Point>"
36
+ }
37
+ ]
38
+ },
39
+ {
40
+ "url": "http://example.org/tree-ops-ext.csv#row=4",
41
+ "rownum": 3,
42
+ "describes": [
43
+ {
44
+ "@id": "http://example.org/tree-ops-ext#gid-6",
45
+ "on_street": "ADDISON AV",
46
+ "species": "Robinia pseudoacacia",
47
+ "trim_cycle": "Large Tree Routine Prune",
48
+ "dbh": 29,
49
+ "inventory_date": "2010-06-01",
50
+ "comments": [
51
+ "cavity or decay",
52
+ " trunk decay",
53
+ " codominant leaders",
54
+ " included bark",
55
+ " large leader or limb decay",
56
+ " previous failure root damage",
57
+ " root decay",
58
+ " beware of BEES"
59
+ ],
60
+ "protected": true,
61
+ "kml": "<Point><coordinates>-122.156299,37.441151</coordinates></Point>"
62
+ }
63
+ ]
64
+ }
65
+ ],
66
+ "dc:title": "Tree Operations",
67
+ "dcat:keyword": [
68
+ "tree",
69
+ "street",
70
+ "maintenance"
71
+ ],
72
+ "dc:publisher": [
73
+ {
74
+ "schema:name": "Example Municipality",
75
+ "schema:url": "http://example.org"
76
+ }
77
+ ],
78
+ "dc:license": "http://opendefinition.org/licenses/cc-by/",
79
+ "dc:modified": "2010-12-31",
80
+ "notes": [
81
+ {
82
+ "@type": "oa:Annotation",
83
+ "oa:hasTarget": "http://example.org/tree-ops-ext",
84
+ "oa:hasBody": {
85
+ "@type": "oa:EmbeddedContent",
86
+ "rdf:value": "This is a very interesting comment about the table; it's a table!",
87
+ "dc:format": "text/plain"
88
+ }
89
+ }
90
+ ]
91
+ }
92
+ ]
93
+ }
@@ -0,0 +1,82 @@
1
+ @prefix csvw: <http://www.w3.org/ns/csvw#> .
2
+ @prefix dc: <http://purl.org/dc/terms/> .
3
+ @prefix dcat: <http://www.w3.org/ns/dcat#> .
4
+ @prefix oa: <http://www.w3.org/ns/oa#> .
5
+ @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
6
+ @prefix schema: <http://schema.org/> .
7
+ @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
8
+
9
+ <http://example.org/tree-ops-ext#gid-1> <http://example.org/tree-ops-ext.csv#dbh> "11"^^xsd:integer;
10
+ <http://example.org/tree-ops-ext.csv#inventory_date> "2010-10-18"^^xsd:date;
11
+ <http://example.org/tree-ops-ext.csv#kml> "<Point><coordinates>-122.156485,37.440963</coordinates></Point>"^^rdf:XMLLiteral;
12
+ <http://example.org/tree-ops-ext.csv#on_street> "ADDISON AV";
13
+ <http://example.org/tree-ops-ext.csv#protected> "false"^^xsd:boolean;
14
+ <http://example.org/tree-ops-ext.csv#species> "Celtis australis";
15
+ <http://example.org/tree-ops-ext.csv#trim_cycle> "Large Tree Routine Prune"@en .
16
+
17
+ <http://example.org/tree-ops-ext#gid-2> <http://example.org/tree-ops-ext.csv#dbh> "11"^^xsd:integer;
18
+ <http://example.org/tree-ops-ext.csv#inventory_date> "2010-06-02"^^xsd:date;
19
+ <http://example.org/tree-ops-ext.csv#kml> "<Point><coordinates>-122.156749,37.440958</coordinates></Point>"^^rdf:XMLLiteral;
20
+ <http://example.org/tree-ops-ext.csv#on_street> "EMERSON ST";
21
+ <http://example.org/tree-ops-ext.csv#protected> "false"^^xsd:boolean;
22
+ <http://example.org/tree-ops-ext.csv#species> "Liquidambar styraciflua";
23
+ <http://example.org/tree-ops-ext.csv#trim_cycle> "Large Tree Routine Prune"@en .
24
+
25
+ <http://example.org/tree-ops-ext#gid-6> <http://example.org/tree-ops-ext.csv#comments> "cavity or decay",
26
+ " trunk decay",
27
+ " codominant leaders",
28
+ " included bark",
29
+ " large leader or limb decay",
30
+ " previous failure root damage",
31
+ " root decay",
32
+ " beware of BEES";
33
+ <http://example.org/tree-ops-ext.csv#dbh> "29"^^xsd:integer;
34
+ <http://example.org/tree-ops-ext.csv#inventory_date> "2010-06-01"^^xsd:date;
35
+ <http://example.org/tree-ops-ext.csv#kml> "<Point><coordinates>-122.156299,37.441151</coordinates></Point>"^^rdf:XMLLiteral;
36
+ <http://example.org/tree-ops-ext.csv#on_street> "ADDISON AV";
37
+ <http://example.org/tree-ops-ext.csv#protected> "true"^^xsd:boolean;
38
+ <http://example.org/tree-ops-ext.csv#species> "Robinia pseudoacacia";
39
+ <http://example.org/tree-ops-ext.csv#trim_cycle> "Large Tree Routine Prune"@en .
40
+
41
+ <http://example.org/tree-ops-ext> a csvw:Table;
42
+ dc:title "Tree Operations"@en;
43
+ dc:license <http://opendefinition.org/licenses/cc-by/>;
44
+ dc:modified "2010-12-31"^^xsd:date;
45
+ dc:publisher [
46
+ schema:name "Example Municipality"@en;
47
+ schema:url <http://example.org>
48
+ ];
49
+ csvw:note [
50
+ a oa:Annotation;
51
+ oa:hasBody [
52
+ a oa:EmbeddedContent;
53
+ dc:format "text/plain";
54
+ rdf:value "This is a very interesting comment about the table; it's a table!"@en
55
+ ];
56
+ oa:hasTarget <http://example.org/tree-ops-ext>
57
+ ];
58
+ csvw:row [
59
+ a csvw:Row;
60
+ csvw:describes <http://example.org/tree-ops-ext#gid-1>;
61
+ csvw:rownum "1"^^xsd:integer;
62
+ csvw:url <http://example.org/tree-ops-ext.csv#row=2>
63
+ ], [
64
+ a csvw:Row;
65
+ csvw:describes <http://example.org/tree-ops-ext#gid-2>;
66
+ csvw:rownum "2"^^xsd:integer;
67
+ csvw:url <http://example.org/tree-ops-ext.csv#row=3>
68
+ ], [
69
+ a csvw:Row;
70
+ csvw:describes <http://example.org/tree-ops-ext#gid-6>;
71
+ csvw:rownum "3"^^xsd:integer;
72
+ csvw:url <http://example.org/tree-ops-ext.csv#row=4>
73
+ ];
74
+ csvw:url <http://example.org/tree-ops-ext.csv>;
75
+ dcat:keyword "tree"@en,
76
+ "street"@en,
77
+ "maintenance"@en .
78
+
79
+ [
80
+ a csvw:TableGroup;
81
+ csvw:table <http://example.org/tree-ops-ext>
82
+ ] .
@@ -0,0 +1,4 @@
1
+ GID,On Street,Species,Trim Cycle,Diameter at Breast Ht,Inventory Date,Comments,Protected,KML
2
+ 1,ADDISON AV,Celtis australis,Large Tree Routine Prune,11,10/18/2010,,,"<Point><coordinates>-122.156485,37.440963</coordinates></Point>"
3
+ 2,EMERSON ST,Liquidambar styraciflua,Large Tree Routine Prune,11,6/2/2010,,,"<Point><coordinates>-122.156749,37.440958</coordinates></Point>"
4
+ 6,ADDISON AV,Robinia pseudoacacia,Large Tree Routine Prune,29,6/1/2010,cavity or decay; trunk decay; codominant leaders; included bark; large leader or limb decay; previous failure root damage; root decay; beware of BEES,YES,"<Point><coordinates>-122.156299,37.441151</coordinates></Point>"
@@ -0,0 +1,81 @@
1
+ {
2
+ "@context": ["http://www.w3.org/ns/csvw", {"@language": "en"}],
3
+ "@id": "http://example.org/tree-ops-ext",
4
+ "url": "tree-ops-ext.csv",
5
+ "dc:title": "Tree Operations",
6
+ "dcat:keyword": ["tree", "street", "maintenance"],
7
+ "dc:publisher": [{
8
+ "schema:name": "Example Municipality",
9
+ "schema:url": {"@id": "http://example.org"}
10
+ }],
11
+ "dc:license": {"@id": "http://opendefinition.org/licenses/cc-by/"},
12
+ "dc:modified": {"@value": "2010-12-31", "@type": "xsd:date"},
13
+ "notes": {
14
+ "@type": "oa:Annotation",
15
+ "oa:hasTarget": {"@id": "http://example.org/tree-ops-ext"},
16
+ "oa:hasBody": {
17
+ "@type": "oa:EmbeddedContent",
18
+ "rdf:value": "This is a very interesting comment about the table; it's a table!",
19
+ "dc:format": {"@value": "text/plain"}
20
+ }
21
+ },
22
+ "dialect": {"trim": true},
23
+ "tableSchema": {
24
+ "columns": [{
25
+ "name": "GID",
26
+ "titles": [
27
+ "GID",
28
+ "Generic Identifier"
29
+ ],
30
+ "dc:description": "An identifier for the operation on a tree.",
31
+ "datatype": "string",
32
+ "required": true,
33
+ "suppressOutput": true
34
+ }, {
35
+ "name": "on_street",
36
+ "titles": "On Street",
37
+ "dc:description": "The street that the tree is on.",
38
+ "datatype": "string"
39
+ }, {
40
+ "name": "species",
41
+ "titles": "Species",
42
+ "dc:description": "The species of the tree.",
43
+ "datatype": "string"
44
+ }, {
45
+ "name": "trim_cycle",
46
+ "titles": "Trim Cycle",
47
+ "dc:description": "The operation performed on the tree.",
48
+ "datatype": "string",
49
+ "lang": "en"
50
+ }, {
51
+ "name": "dbh",
52
+ "titles": "Diameter at Breast Ht",
53
+ "dc:description": "Diameter at Breast Height (DBH) of the tree (in feet), measured 4.5ft above ground.",
54
+ "datatype": "integer"
55
+ }, {
56
+ "name": "inventory_date",
57
+ "titles": "Inventory Date",
58
+ "dc:description": "The date of the operation that was performed.",
59
+ "datatype": {"base": "date", "format": "M/d/yyyy"}
60
+ }, {
61
+ "name": "comments",
62
+ "titles": "Comments",
63
+ "dc:description": "Supplementary comments relating to the operation or tree.",
64
+ "datatype": "string",
65
+ "separator": ";"
66
+ }, {
67
+ "name": "protected",
68
+ "titles": "Protected",
69
+ "dc:description": "Indication (YES / NO) whether the tree is subject to a protection order.",
70
+ "datatype": {"base": "boolean", "format": "YES|NO"},
71
+ "default": "NO"
72
+ }, {
73
+ "name": "kml",
74
+ "titles": "KML",
75
+ "dc:description": "KML-encoded description of tree location.",
76
+ "datatype": "xml"
77
+ }],
78
+ "primaryKey": "GID",
79
+ "aboutUrl": "http://example.org/tree-ops-ext#gid-{GID}"
80
+ }
81
+ }
@@ -0,0 +1,18 @@
1
+ [
2
+ {
3
+ "@id": "http://example.org/tree-ops.csv#gid-1",
4
+ "GID": "1",
5
+ "on_street": "ADDISON AV",
6
+ "species": "Celtis australis",
7
+ "trim_cycle": "Large Tree Routine Prune",
8
+ "inventory_date": "2010-10-18"
9
+ },
10
+ {
11
+ "@id": "http://example.org/tree-ops.csv#gid-2",
12
+ "GID": "2",
13
+ "on_street": "EMERSON ST",
14
+ "species": "Liquidambar styraciflua",
15
+ "trim_cycle": "Large Tree Routine Prune",
16
+ "inventory_date": "2010-06-02"
17
+ }
18
+ ]