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.
- checksums.yaml +5 -5
- data/README.md +24 -5
- data/VERSION +1 -1
- data/etc/csvw.jsonld +135 -50
- data/lib/rdf/tabular/csvw.rb +215 -181
- data/lib/rdf/tabular/format.rb +8 -6
- data/lib/rdf/tabular/literal.rb +1 -1
- data/lib/rdf/tabular/metadata.rb +61 -80
- data/lib/rdf/tabular/reader.rb +18 -15
- data/lib/rdf/tabular/uax35.rb +143 -38
- data/spec/data/countries-minimal.json +38 -0
- data/spec/data/countries-minimal.ttl +36 -0
- data/spec/data/countries-standard.json +86 -0
- data/spec/data/countries-standard.ttl +75 -0
- data/spec/data/countries.csv +4 -0
- data/spec/data/countries.csv-minimal.json +16 -0
- data/spec/data/countries.csv-minimal.ttl +19 -0
- data/spec/data/countries.csv-standard.json +33 -0
- data/spec/data/countries.csv-standard.ttl +44 -0
- data/spec/data/countries.html +88 -0
- data/spec/data/countries.json +53 -0
- data/spec/data/countries_embed-minimal.json +38 -0
- data/spec/data/countries_embed-minimal.ttl +36 -0
- data/spec/data/countries_embed-standard.json +86 -0
- data/spec/data/countries_embed-standard.ttl +75 -0
- data/spec/data/countries_embed.html +88 -0
- data/spec/data/countries_html-minimal.json +38 -0
- data/spec/data/countries_html-minimal.ttl +36 -0
- data/spec/data/countries_html-standard.json +86 -0
- data/spec/data/countries_html-standard.ttl +75 -0
- data/spec/data/country-codes-and-names-minimal.json +19 -0
- data/spec/data/country-codes-and-names-minimal.ttl +22 -0
- data/spec/data/country-codes-and-names-standard.json +47 -0
- data/spec/data/country-codes-and-names-standard.ttl +45 -0
- data/spec/data/country-codes-and-names.csv +5 -0
- data/spec/data/country_slice.csv +4 -0
- data/spec/data/junior-roles.csv +3 -0
- data/spec/data/junior-roles.json +54 -0
- data/spec/data/roles-minimal.json +32 -0
- data/spec/data/roles-minimal.ttl +36 -0
- data/spec/data/roles-standard.json +56 -0
- data/spec/data/roles-standard.ttl +66 -0
- data/spec/data/roles.json +23 -0
- data/spec/data/senior-roles.csv +3 -0
- data/spec/data/senior-roles.json +52 -0
- data/spec/data/test232-metadata.json +10 -0
- data/spec/data/test232.csv +3 -0
- data/spec/data/tree-ops-atd.json +1 -0
- data/spec/data/tree-ops-ext-minimal.json +42 -0
- data/spec/data/tree-ops-ext-minimal.ttl +34 -0
- data/spec/data/tree-ops-ext-standard.json +93 -0
- data/spec/data/tree-ops-ext-standard.ttl +82 -0
- data/spec/data/tree-ops-ext.csv +4 -0
- data/spec/data/tree-ops-ext.json +81 -0
- data/spec/data/tree-ops-minimal.json +18 -0
- data/spec/data/tree-ops-minimal.ttl +14 -0
- data/spec/data/tree-ops-standard.json +44 -0
- data/spec/data/tree-ops-standard.ttl +44 -0
- data/spec/data/tree-ops-virtual-minimal.json +32 -0
- data/spec/data/tree-ops-virtual-minimal.ttl +25 -0
- data/spec/data/tree-ops-virtual-standard.json +49 -0
- data/spec/data/tree-ops-virtual-standard.ttl +49 -0
- data/spec/data/tree-ops-virtual.json +48 -0
- data/spec/data/tree-ops.csv +3 -0
- data/spec/data/tree-ops.csv-metadata.json +43 -0
- data/spec/data/tree-ops.html +54 -0
- data/spec/data/tree-ops.tsv +3 -0
- data/spec/format_spec.rb +5 -4
- data/spec/metadata_spec.rb +10 -16
- data/spec/suite_helper.rb +2 -2
- data/spec/suite_spec.rb +5 -6
- data/spec/uax35_spec.rb +239 -0
- metadata +149 -36
- data/lib/rdf/tabular/json.rb +0 -0
@@ -0,0 +1,14 @@
|
|
1
|
+
@prefix : <http://example.org/tree-ops.csv#> .
|
2
|
+
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
|
3
|
+
|
4
|
+
:gid-1 :GID "1";
|
5
|
+
:inventory_date "2010-10-18"^^xsd:date;
|
6
|
+
:on_street "ADDISON AV";
|
7
|
+
:species "Celtis australis";
|
8
|
+
:trim_cycle "Large Tree Routine Prune" .
|
9
|
+
|
10
|
+
:gid-2 :GID "2";
|
11
|
+
:inventory_date "2010-06-02"^^xsd:date;
|
12
|
+
:on_street "EMERSON ST";
|
13
|
+
:species "Liquidambar styraciflua";
|
14
|
+
:trim_cycle "Large Tree Routine Prune" .
|
@@ -0,0 +1,44 @@
|
|
1
|
+
{
|
2
|
+
"tables": [{
|
3
|
+
"url": "http://example.org/tree-ops.csv",
|
4
|
+
"dc:title": "Tree Operations",
|
5
|
+
"dcat:keyword": [
|
6
|
+
"tree",
|
7
|
+
"street",
|
8
|
+
"maintenance"
|
9
|
+
],
|
10
|
+
"dc:publisher": "Example Municipality",
|
11
|
+
"dc:license": "http://opendefinition.org/licenses/cc-by/",
|
12
|
+
"dc:modified": "2010-12-31",
|
13
|
+
"row": [
|
14
|
+
{
|
15
|
+
"url": "http://example.org/tree-ops.csv#row=2",
|
16
|
+
"rownum": 1,
|
17
|
+
"describes": [
|
18
|
+
{
|
19
|
+
"@id": "http://example.org/tree-ops.csv#gid-1",
|
20
|
+
"GID": "1",
|
21
|
+
"on_street": "ADDISON AV",
|
22
|
+
"species": "Celtis australis",
|
23
|
+
"trim_cycle": "Large Tree Routine Prune",
|
24
|
+
"inventory_date": "2010-10-18"
|
25
|
+
}
|
26
|
+
]
|
27
|
+
},
|
28
|
+
{
|
29
|
+
"url": "http://example.org/tree-ops.csv#row=3",
|
30
|
+
"rownum": 2,
|
31
|
+
"describes": [
|
32
|
+
{
|
33
|
+
"@id": "http://example.org/tree-ops.csv#gid-2",
|
34
|
+
"GID": "2",
|
35
|
+
"on_street": "EMERSON ST",
|
36
|
+
"species": "Liquidambar styraciflua",
|
37
|
+
"trim_cycle": "Large Tree Routine Prune",
|
38
|
+
"inventory_date": "2010-06-02"
|
39
|
+
}
|
40
|
+
]
|
41
|
+
}
|
42
|
+
]
|
43
|
+
}]
|
44
|
+
}
|
@@ -0,0 +1,44 @@
|
|
1
|
+
@prefix : <http://example.org/tree-ops.csv#> .
|
2
|
+
@prefix csvw: <http://www.w3.org/ns/csvw#> .
|
3
|
+
@prefix dc: <http://purl.org/dc/terms/> .
|
4
|
+
@prefix dcat: <http://www.w3.org/ns/dcat#> .
|
5
|
+
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
|
6
|
+
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
|
7
|
+
|
8
|
+
:gid-1 :GID "1";
|
9
|
+
:inventory_date "2010-10-18"^^xsd:date;
|
10
|
+
:on_street "ADDISON AV";
|
11
|
+
:species "Celtis australis";
|
12
|
+
:trim_cycle "Large Tree Routine Prune" .
|
13
|
+
|
14
|
+
:gid-2 :GID "2";
|
15
|
+
:inventory_date "2010-06-02"^^xsd:date;
|
16
|
+
:on_street "EMERSON ST";
|
17
|
+
:species "Liquidambar styraciflua";
|
18
|
+
:trim_cycle "Large Tree Routine Prune" .
|
19
|
+
|
20
|
+
[
|
21
|
+
a csvw:TableGroup;
|
22
|
+
csvw:table [
|
23
|
+
a csvw:Table;
|
24
|
+
dc:title "Tree Operations"@en;
|
25
|
+
dcat:keyword "tree"@en,
|
26
|
+
"street"@en,
|
27
|
+
"maintenance"@en;
|
28
|
+
dc:license <http://opendefinition.org/licenses/cc-by/>;
|
29
|
+
dc:modified "2010-12-31"^^xsd:date;
|
30
|
+
dc:publisher "Example Municipality"@en;
|
31
|
+
csvw:row [
|
32
|
+
a csvw:Row;
|
33
|
+
csvw:describes :gid-1;
|
34
|
+
csvw:rownum 1;
|
35
|
+
csvw:url <http://example.org/tree-ops.csv#row=2>
|
36
|
+
], [
|
37
|
+
a csvw:Row;
|
38
|
+
csvw:describes :gid-2;
|
39
|
+
csvw:rownum 2;
|
40
|
+
csvw:url <http://example.org/tree-ops.csv#row=3>
|
41
|
+
];
|
42
|
+
csvw:url <http://example.org/tree-ops.csv>
|
43
|
+
]
|
44
|
+
] .
|
@@ -0,0 +1,32 @@
|
|
1
|
+
[
|
2
|
+
{
|
3
|
+
"@id": "http://example.org/tree-ops.csv#gid-1",
|
4
|
+
"schema:url": "http://example.org/tree-ops.csv#gid-1",
|
5
|
+
"schema:name": "Celtis australis",
|
6
|
+
"trim_cycle": "Large Tree Routine Prune",
|
7
|
+
"schema:event": {
|
8
|
+
"@id": "http://example.org/tree-ops.csv#event-2010-10-18",
|
9
|
+
"schema:startDate": "2010-10-18"
|
10
|
+
},
|
11
|
+
"schema:location": {
|
12
|
+
"@id": "http://example.org/tree-ops.csv#location-1",
|
13
|
+
"schema:streetAddress": "ADDISON AV",
|
14
|
+
"@type": "schema:PostalAddress"
|
15
|
+
}
|
16
|
+
},
|
17
|
+
{
|
18
|
+
"@id": "http://example.org/tree-ops.csv#gid-2",
|
19
|
+
"schema:url": "http://example.org/tree-ops.csv#gid-2",
|
20
|
+
"schema:name": "Liquidambar styraciflua",
|
21
|
+
"trim_cycle": "Large Tree Routine Prune",
|
22
|
+
"schema:event": {
|
23
|
+
"@id": "http://example.org/tree-ops.csv#event-2010-06-02",
|
24
|
+
"schema:startDate": "2010-06-02"
|
25
|
+
},
|
26
|
+
"schema:location": {
|
27
|
+
"@id": "http://example.org/tree-ops.csv#location-2",
|
28
|
+
"schema:streetAddress": "EMERSON ST",
|
29
|
+
"@type": "schema:PostalAddress"
|
30
|
+
}
|
31
|
+
}
|
32
|
+
]
|
@@ -0,0 +1,25 @@
|
|
1
|
+
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
|
2
|
+
@prefix schema: <http://schema.org/> .
|
3
|
+
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
|
4
|
+
|
5
|
+
<http://example.org/tree-ops.csv#event-2010-10-18> schema:startDate "2010-10-18"^^xsd:date .
|
6
|
+
|
7
|
+
<http://example.org/tree-ops.csv#gid-1> <http://example.org/tree-ops.csv#trim_cycle> "Large Tree Routine Prune";
|
8
|
+
schema:event <http://example.org/tree-ops.csv#event-2010-10-18>;
|
9
|
+
schema:location <http://example.org/tree-ops.csv#location-1>;
|
10
|
+
schema:name "Celtis australis";
|
11
|
+
schema:url <http://example.org/tree-ops.csv#gid-1> .
|
12
|
+
|
13
|
+
<http://example.org/tree-ops.csv#gid-2> <http://example.org/tree-ops.csv#trim_cycle> "Large Tree Routine Prune";
|
14
|
+
schema:event <http://example.org/tree-ops.csv#event-2010-06-02>;
|
15
|
+
schema:location <http://example.org/tree-ops.csv#location-2>;
|
16
|
+
schema:name "Liquidambar styraciflua";
|
17
|
+
schema:url <http://example.org/tree-ops.csv#gid-2> .
|
18
|
+
|
19
|
+
<http://example.org/tree-ops.csv#location-1> a schema:PostalAddress;
|
20
|
+
schema:streetAddress "ADDISON AV" .
|
21
|
+
|
22
|
+
<http://example.org/tree-ops.csv#location-2> a schema:PostalAddress;
|
23
|
+
schema:streetAddress "EMERSON ST" .
|
24
|
+
|
25
|
+
<http://example.org/tree-ops.csv#event-2010-06-02> schema:startDate "2010-06-02"^^xsd:date .
|
@@ -0,0 +1,49 @@
|
|
1
|
+
{
|
2
|
+
"tables": [{
|
3
|
+
"url": "http://example.org/tree-ops.csv",
|
4
|
+
"row": [
|
5
|
+
{
|
6
|
+
"url": "http://example.org/tree-ops.csv#row=2",
|
7
|
+
"rownum": 1,
|
8
|
+
"describes": [
|
9
|
+
{
|
10
|
+
"@id": "http://example.org/tree-ops.csv#gid-1",
|
11
|
+
"schema:url": "http://example.org/tree-ops.csv#gid-1",
|
12
|
+
"schema:name": "Celtis australis",
|
13
|
+
"trim_cycle": "Large Tree Routine Prune",
|
14
|
+
"schema:event": {
|
15
|
+
"@id": "http://example.org/tree-ops.csv#event-2010-10-18",
|
16
|
+
"schema:startDate": "2010-10-18"
|
17
|
+
},
|
18
|
+
"schema:location": {
|
19
|
+
"@id": "http://example.org/tree-ops.csv#location-1",
|
20
|
+
"schema:streetAddress": "ADDISON AV",
|
21
|
+
"@type": "schema:PostalAddress"
|
22
|
+
}
|
23
|
+
}
|
24
|
+
]
|
25
|
+
},
|
26
|
+
{
|
27
|
+
"url": "http://example.org/tree-ops.csv#row=3",
|
28
|
+
"rownum": 2,
|
29
|
+
"describes": [
|
30
|
+
{
|
31
|
+
"@id": "http://example.org/tree-ops.csv#gid-2",
|
32
|
+
"schema:url": "http://example.org/tree-ops.csv#gid-2",
|
33
|
+
"schema:name": "Liquidambar styraciflua",
|
34
|
+
"trim_cycle": "Large Tree Routine Prune",
|
35
|
+
"schema:event": {
|
36
|
+
"@id": "http://example.org/tree-ops.csv#event-2010-06-02",
|
37
|
+
"schema:startDate": "2010-06-02"
|
38
|
+
},
|
39
|
+
"schema:location": {
|
40
|
+
"@id": "http://example.org/tree-ops.csv#location-2",
|
41
|
+
"schema:streetAddress": "EMERSON ST",
|
42
|
+
"@type": "schema:PostalAddress"
|
43
|
+
}
|
44
|
+
}
|
45
|
+
]
|
46
|
+
}
|
47
|
+
]
|
48
|
+
}]
|
49
|
+
}
|
@@ -0,0 +1,49 @@
|
|
1
|
+
@prefix csvw: <http://www.w3.org/ns/csvw#> .
|
2
|
+
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
|
3
|
+
@prefix schema: <http://schema.org/> .
|
4
|
+
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
|
5
|
+
|
6
|
+
[
|
7
|
+
a csvw:TableGroup;
|
8
|
+
csvw:table [
|
9
|
+
a csvw:Table;
|
10
|
+
csvw:row [
|
11
|
+
a csvw:Row;
|
12
|
+
csvw:describes <http://example.org/tree-ops.csv#gid-1>,
|
13
|
+
<http://example.org/tree-ops.csv#location-1>,
|
14
|
+
<http://example.org/tree-ops.csv#event-2010-10-18>;
|
15
|
+
csvw:rownum 1;
|
16
|
+
csvw:url <http://example.org/tree-ops.csv#row=2>
|
17
|
+
], [
|
18
|
+
a csvw:Row;
|
19
|
+
csvw:describes <http://example.org/tree-ops.csv#gid-2>,
|
20
|
+
<http://example.org/tree-ops.csv#location-2>,
|
21
|
+
<http://example.org/tree-ops.csv#event-2010-06-02>;
|
22
|
+
csvw:rownum 2;
|
23
|
+
csvw:url <http://example.org/tree-ops.csv#row=3>
|
24
|
+
];
|
25
|
+
csvw:url <http://example.org/tree-ops.csv>
|
26
|
+
]
|
27
|
+
] .
|
28
|
+
|
29
|
+
<http://example.org/tree-ops.csv#gid-1> <http://example.org/tree-ops.csv#trim_cycle> "Large Tree Routine Prune";
|
30
|
+
schema:event <http://example.org/tree-ops.csv#event-2010-10-18>;
|
31
|
+
schema:location <http://example.org/tree-ops.csv#location-1>;
|
32
|
+
schema:name "Celtis australis";
|
33
|
+
schema:url <http://example.org/tree-ops.csv#gid-1> .
|
34
|
+
|
35
|
+
<http://example.org/tree-ops.csv#location-1> rdf:type schema:PostalAddress;
|
36
|
+
schema:streetAddress "ADDISON AV" .
|
37
|
+
|
38
|
+
<http://example.org/tree-ops.csv#event-2010-10-18> schema:startDate "2010-10-18"^^xsd:date .
|
39
|
+
|
40
|
+
<http://example.org/tree-ops.csv#gid-2> <http://example.org/tree-ops.csv#trim_cycle> "Large Tree Routine Prune";
|
41
|
+
schema:event <http://example.org/tree-ops.csv#event-2010-06-02>;
|
42
|
+
schema:location <http://example.org/tree-ops.csv#location-2>;
|
43
|
+
schema:name "Liquidambar styraciflua";
|
44
|
+
schema:url <http://example.org/tree-ops.csv#gid-2> .
|
45
|
+
|
46
|
+
<http://example.org/tree-ops.csv#location-2> rdf:type schema:PostalAddress;
|
47
|
+
schema:streetAddress "EMERSON ST" .
|
48
|
+
|
49
|
+
<http://example.org/tree-ops.csv#event-2010-06-02> schema:startDate "2010-06-02"^^xsd:date .
|
@@ -0,0 +1,48 @@
|
|
1
|
+
{
|
2
|
+
"url": "tree-ops.csv",
|
3
|
+
"@context": ["http://www.w3.org/ns/csvw", {"@language": "en"}],
|
4
|
+
"tableSchema": {
|
5
|
+
"columns": [{
|
6
|
+
"name": "GID",
|
7
|
+
"titles": "GID",
|
8
|
+
"datatype": "string",
|
9
|
+
"propertyUrl": "schema:url",
|
10
|
+
"valueUrl": "#gid-{GID}"
|
11
|
+
}, {
|
12
|
+
"name": "on_street",
|
13
|
+
"titles": "On Street",
|
14
|
+
"datatype": "string",
|
15
|
+
"aboutUrl": "#location-{GID}",
|
16
|
+
"propertyUrl": "schema:streetAddress"
|
17
|
+
}, {
|
18
|
+
"name": "species",
|
19
|
+
"titles": "Species",
|
20
|
+
"datatype": "string",
|
21
|
+
"propertyUrl": "schema:name"
|
22
|
+
}, {
|
23
|
+
"name": "trim_cycle",
|
24
|
+
"titles": "Trim Cycle",
|
25
|
+
"datatype": "string"
|
26
|
+
}, {
|
27
|
+
"name": "inventory_date",
|
28
|
+
"titles": "Inventory Date",
|
29
|
+
"datatype": {"base": "date", "format": "M/d/yyyy"},
|
30
|
+
"aboutUrl": "#event-{inventory_date}",
|
31
|
+
"propertyUrl": "schema:startDate"
|
32
|
+
}, {
|
33
|
+
"propertyUrl": "schema:event",
|
34
|
+
"valueUrl": "#event-{inventory_date}",
|
35
|
+
"virtual": true
|
36
|
+
}, {
|
37
|
+
"propertyUrl": "schema:location",
|
38
|
+
"valueUrl": "#location-{GID}",
|
39
|
+
"virtual": true
|
40
|
+
}, {
|
41
|
+
"aboutUrl": "#location-{GID}",
|
42
|
+
"propertyUrl": "rdf:type",
|
43
|
+
"valueUrl": "schema:PostalAddress",
|
44
|
+
"virtual": true
|
45
|
+
}],
|
46
|
+
"aboutUrl": "#gid-{GID}"
|
47
|
+
}
|
48
|
+
}
|
@@ -0,0 +1,43 @@
|
|
1
|
+
{
|
2
|
+
"url": "tree-ops.csv",
|
3
|
+
"@context": ["http://www.w3.org/ns/csvw", {"@language": "en"}],
|
4
|
+
"dc:title": "Tree Operations",
|
5
|
+
"dcat:keyword": ["tree", "street", "maintenance"],
|
6
|
+
"dc:publisher": "Example Municipality",
|
7
|
+
"dc:license": {"@id": "http://opendefinition.org/licenses/cc-by/"},
|
8
|
+
"dc:modified": {"@value": "2010-12-31", "@type": "xsd:date"},
|
9
|
+
"tableSchema": {
|
10
|
+
"columns": [{
|
11
|
+
"name": "GID",
|
12
|
+
"titles": [
|
13
|
+
"GID",
|
14
|
+
"Generic Identifier"
|
15
|
+
],
|
16
|
+
"dc:description": "An identifier for the operation on a tree.",
|
17
|
+
"datatype": "string",
|
18
|
+
"required": true
|
19
|
+
}, {
|
20
|
+
"name": "on_street",
|
21
|
+
"titles": "On Street",
|
22
|
+
"dc:description": "The street that the tree is on.",
|
23
|
+
"datatype": "string"
|
24
|
+
}, {
|
25
|
+
"name": "species",
|
26
|
+
"titles": "Species",
|
27
|
+
"dc:description": "The species of the tree.",
|
28
|
+
"datatype": "string"
|
29
|
+
}, {
|
30
|
+
"name": "trim_cycle",
|
31
|
+
"titles": "Trim Cycle",
|
32
|
+
"dc:description": "The operation performed on the tree.",
|
33
|
+
"datatype": "string"
|
34
|
+
}, {
|
35
|
+
"name": "inventory_date",
|
36
|
+
"titles": "Inventory Date",
|
37
|
+
"dc:description": "The date of the operation that was performed.",
|
38
|
+
"datatype": {"base": "date", "format": "M/d/yyyy"}
|
39
|
+
}],
|
40
|
+
"primaryKey": "GID",
|
41
|
+
"aboutUrl": "#gid-{GID}"
|
42
|
+
}
|
43
|
+
}
|
@@ -0,0 +1,54 @@
|
|
1
|
+
<html>
|
2
|
+
<head>
|
3
|
+
<title>Embedding Metadata in HTML</title>
|
4
|
+
<script type="application/csvm+json">
|
5
|
+
{
|
6
|
+
"url": "tree-ops.csv",
|
7
|
+
"@context": ["http://www.w3.org/ns/csvw", {"@language": "en"}],
|
8
|
+
"dc:title": "Tree Operations",
|
9
|
+
"dcat:keyword": ["tree", "street", "maintenance"],
|
10
|
+
"dc:publisher": "Example Municipality",
|
11
|
+
"dc:license": {"@id": "http://opendefinition.org/licenses/cc-by/"},
|
12
|
+
"dc:modified": {"@value": "2010-12-31", "@type": "xsd:date"},
|
13
|
+
"tableSchema": {
|
14
|
+
"columns": [{
|
15
|
+
"name": "GID",
|
16
|
+
"titles": [
|
17
|
+
"GID",
|
18
|
+
"Generic Identifier"
|
19
|
+
],
|
20
|
+
"dc:description": "An identifier for the operation on a tree.",
|
21
|
+
"datatype": "string",
|
22
|
+
"required": true
|
23
|
+
}, {
|
24
|
+
"name": "on_street",
|
25
|
+
"titles": "On Street",
|
26
|
+
"dc:description": "The street that the tree is on.",
|
27
|
+
"datatype": "string"
|
28
|
+
}, {
|
29
|
+
"name": "species",
|
30
|
+
"titles": "Species",
|
31
|
+
"dc:description": "The species of the tree.",
|
32
|
+
"datatype": "string"
|
33
|
+
}, {
|
34
|
+
"name": "trim_cycle",
|
35
|
+
"titles": "Trim Cycle",
|
36
|
+
"dc:description": "The operation performed on the tree.",
|
37
|
+
"datatype": "string"
|
38
|
+
}, {
|
39
|
+
"name": "inventory_date",
|
40
|
+
"titles": "Inventory Date",
|
41
|
+
"dc:description": "The date of the operation that was performed.",
|
42
|
+
"datatype": {"base": "date", "format": "M/d/yyyy"}
|
43
|
+
}],
|
44
|
+
"primaryKey": "GID",
|
45
|
+
"aboutUrl": "#gid-{GID}"
|
46
|
+
}
|
47
|
+
}
|
48
|
+
</script>
|
49
|
+
</head>
|
50
|
+
<body>
|
51
|
+
<p>This is an example of embedding metadata in a <code>script</code> element.</p>
|
52
|
+
</body>
|
53
|
+
</html>
|
54
|
+
|
data/spec/format_spec.rb
CHANGED
@@ -31,7 +31,7 @@ describe RDF::Tabular::Format do
|
|
31
31
|
specify {expect(described_class.to_sym).to eq :tabular}
|
32
32
|
end
|
33
33
|
|
34
|
-
describe ".cli_commands" do
|
34
|
+
describe ".cli_commands", skip: ("TextMate OptionParser issues" if ENV['TM_SELECTED_FILE']) do
|
35
35
|
before(:each) do
|
36
36
|
WebMock.stub_request(:any, %r(.*example.org.*)).
|
37
37
|
to_return(lambda {|request|
|
@@ -54,13 +54,14 @@ describe RDF::Tabular::Format do
|
|
54
54
|
end
|
55
55
|
})
|
56
56
|
end
|
57
|
-
after(:each) {|example| puts logger.to_s if example.exception}
|
58
57
|
|
59
58
|
require 'rdf/cli'
|
60
|
-
let(:input) {
|
59
|
+
let(:input) {"http://example.org/data/countries.json"}
|
61
60
|
describe "#tabular-json" do
|
62
61
|
it "serializes to JSON" do
|
63
|
-
expect {
|
62
|
+
expect {
|
63
|
+
RDF::CLI.exec(["tabular-json", input], format: :tabular)
|
64
|
+
}.to write.to(:output)
|
64
65
|
end
|
65
66
|
end
|
66
67
|
end
|