rdf-tabular 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +209 -0
- data/VERSION +1 -1
- data/etc/csvw.jsonld +20 -53
- data/etc/doap.csv-metadata.json +23 -23
- data/lib/rdf/tabular/csvw.rb +121 -80
- data/lib/rdf/tabular/metadata.rb +173 -148
- data/lib/rdf/tabular/reader.rb +149 -99
- data/spec/metadata_spec.rb +110 -113
- data/spec/reader_spec.rb +102 -0
- data/spec/suite_helper.rb +2 -1
- metadata +90 -89
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 540422ae3c9cb7f94c8c0c396237da7de46b8768
|
4
|
+
data.tar.gz: eff96886626aa8c73b4ea3150c75441f27af02e4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cbe14ec96c52d655be56ad1079ff8cb3ce22e366aae7af60a8d43cffa5508ae6b5e528db0b59ac65e3a902fc3d127a660be8b569ad3743af93d992f276902b73
|
7
|
+
data.tar.gz: 9831d7631d93eaeeb2739c0b58b22061e8485e5954b4687da108ee79c63e5220778652bcde1c8f5103db806b8bae4c74c871a1a684165abe7fef3e0bfef355e5
|
data/README.md
CHANGED
@@ -11,6 +11,214 @@ RDF::Tabular parses CSV or other Tabular Data into [RDF][] and JSON using the [W
|
|
11
11
|
|
12
12
|
Install with `gem install rdf-tabular`
|
13
13
|
|
14
|
+
RDF::Tabular parses CSVs, TSVs, and potentially other tabular data formats. Using rules defined for [W3C CSVW][], it can also parse metadata files (in JSON-LD format) to find a set of tabular data files, or locate a metadata file given a CSV:
|
15
|
+
|
16
|
+
* Given a CSV `http://example.org/mycsv.csv` look for `http://example.org/mycsv.csv-metata.json` or `http://example.org/metadata.json`. Metadata can also be specified using the `describedby` link header to reference a metadata file.
|
17
|
+
* Given a metadata file, locate one or more CSV files described within the metadata file.
|
18
|
+
* Also, extract _embedded metadata_ from the CSV (limited to column titles right now).
|
19
|
+
|
20
|
+
Metadata can then provide datatypes for the columns, express foreign key relationships, and associate subjects and predicates with columns. An example [metadata file for the project DOAP description](https://raw.githubusercontent.com/ruby-rdf/rdf-tabular/develop/etc/doap.csv-metadata.json) is:
|
21
|
+
|
22
|
+
{
|
23
|
+
"@context": "http://www.w3.org/ns/csvw",
|
24
|
+
"url": "doap.csv",
|
25
|
+
"tableSchema": {
|
26
|
+
"aboutUrl": "http://rubygems.org/gems/rdf-tabular",
|
27
|
+
"propertyUrl": "http://usefulinc.com/ns/doap#{_name}",
|
28
|
+
"null": "",
|
29
|
+
"columns": [
|
30
|
+
{"titles": "name"},
|
31
|
+
{"titles": "type", "propertyUrl": "rdf:type", "valueUrl": "{+type}"},
|
32
|
+
{"titles": "homepage", "valueUrl": "{+homepage}"},
|
33
|
+
{"titles": "license", "valueUrl": "{+license}"},
|
34
|
+
{"titles": "shortdesc", "lang": "en"},
|
35
|
+
{"titles": "description", "lang": "en"},
|
36
|
+
{"titles": "created", "datatype": {"base": "date", "format": "M/d/yyyy"}},
|
37
|
+
{"titles": "programming_language", "propertyUrl": "http://usefulinc.com/ns/doap#programming-language"},
|
38
|
+
{"titles": "implements", "valueUrl": "{+implements}"},
|
39
|
+
{"titles": "category", "valueUrl": "{+category}"},
|
40
|
+
{"titles": "download_page", "propertyUrl": "http://usefulinc.com/ns/doap#download-page", "valueUrl": "{+download_page}"},
|
41
|
+
{"titles": "mailing_list", "propertyUrl": "http://usefulinc.com/ns/doap#mailing-list", "valueUrl": "{+mailing_list}"},
|
42
|
+
{"titles": "bug_database", "propertyUrl": "http://usefulinc.com/ns/doap#bug-database", "valueUrl": "{+bug_database}"},
|
43
|
+
{"titles": "blog", "valueUrl": "{+blog}"},
|
44
|
+
{"titles": "developer", "valueUrl": "{+developer}"},
|
45
|
+
{"titles": "maintainer", "valueUrl": "{+maintainer}"},
|
46
|
+
{"titles": "documenter", "valueUrl": "{+documenter}"},
|
47
|
+
{"titles": "maker", "propertyUrl": "foaf:maker", "valueUrl": "{+maker}"},
|
48
|
+
{"titles": "dc_title", "propertyUrl": "dc:title"},
|
49
|
+
{"titles": "dc_description", "propertyUrl": "dc:description", "lang": "en"},
|
50
|
+
{"titles": "dc_date", "propertyUrl": "dc:date", "datatype": {"base": "date", "format": "M/d/yyyy"}},
|
51
|
+
{"titles": "dc_creator", "propertyUrl": "dc:creator", "valueUrl": "{+dc_creator}"},
|
52
|
+
{"titles": "isPartOf", "propertyUrl": "dc:isPartOf", "valueUrl": "{+isPartOf}"}
|
53
|
+
]
|
54
|
+
}
|
55
|
+
}
|
56
|
+
|
57
|
+
This associates the metadata with the CSV [doap.csv](https://raw.githubusercontent.com/ruby-rdf/rdf-tabular/develop/etc/doap.csv), creates a common subject for all rows in the file, and a common predicate using the URI Template [URI Template](https://tools.ietf.org/html/rfc6570) `http://usefulinc.com/ns/doap#\{_name\}` which uses the `name` of each column (defaulted from `titles`) to construct a URI in the DOAP vocabulary, and constructs object URIs for object-valued properties from the contents of the column cells. In some cases, the predicates are changed on a per-column basis by using a different `propertyUrl` property on a given column.
|
58
|
+
|
59
|
+
This results in the following Turtle:
|
60
|
+
|
61
|
+
@prefix csvw: <http://www.w3.org/ns/csvw#> .
|
62
|
+
@prefix dc: <http://purl.org/dc/terms/> .
|
63
|
+
@prefix doap: <http://usefulinc.com/ns/doap#> .
|
64
|
+
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
|
65
|
+
@prefix prov: <http://www.w3.org/ns/prov#> .
|
66
|
+
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
|
67
|
+
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
|
68
|
+
|
69
|
+
<http://rubygems.org/gems/rdf-tabular> a doap:Project,
|
70
|
+
<http://www.w3.org/ns/earl#TestSubject>,
|
71
|
+
<http://www.w3.org/ns/earl#Software>;
|
72
|
+
dc:title "RDF::Tabular";
|
73
|
+
dc:creator <http://greggkellogg.net/foaf#me>;
|
74
|
+
dc:date "2015-01-05"^^xsd:date;
|
75
|
+
dc:description "RDF::Tabular processes tabular data with metadata creating RDF or JSON output."@en;
|
76
|
+
dc:isPartOf <http://rubygems.org/gems/rdf>;
|
77
|
+
doap:blog <http://greggkellogg.net/>;
|
78
|
+
doap:bug-database <http://github.com/ruby-rdf/rdf-tabular/issues>;
|
79
|
+
doap:category <http://dbpedia.org/resource/Resource_Description_Framework>,
|
80
|
+
<http://dbpedia.org/resource/Ruby_(programming_language)>;
|
81
|
+
doap:created "2015-01-05"^^xsd:date;
|
82
|
+
doap:description "RDF::Tabular processes tabular data with metadata creating RDF or JSON output."@en;
|
83
|
+
doap:developer <http://greggkellogg.net/foaf#me>;
|
84
|
+
doap:documenter <http://greggkellogg.net/foaf#me>;
|
85
|
+
doap:download-page <http://rubygems.org/gems/rdf-tabular>;
|
86
|
+
doap:homepage <http://ruby-rdf.github.com/rdf-tabular>;
|
87
|
+
doap:implements <http://www.w3.org/TR/tabular-data-model/>,
|
88
|
+
<http://www.w3.org/TR/tabular-metadata/>,
|
89
|
+
<http://www.w3.org/TR/csv2rdf/>,
|
90
|
+
<http://www.w3.org/TR/csv2json/>;
|
91
|
+
doap:license <http://creativecommons.org/licenses/publicdomain/>;
|
92
|
+
doap:mailing-list <http://lists.w3.org/Archives/Public/public-rdf-ruby/>;
|
93
|
+
doap:maintainer <http://greggkellogg.net/foaf#me>;
|
94
|
+
doap:name "RDF::Tabular";
|
95
|
+
doap:programming-language "Ruby";
|
96
|
+
doap:shortdesc "Tabular Data RDF Reader and JSON serializer."@en;
|
97
|
+
foaf:maker <http://greggkellogg.net/foaf#me> .
|
98
|
+
|
99
|
+
[
|
100
|
+
a csvw:TableGroup;
|
101
|
+
csvw:table [
|
102
|
+
a csvw:Table;
|
103
|
+
csvw:row [
|
104
|
+
a csvw:Row;
|
105
|
+
csvw:describes <http://rubygems.org/gems/rdf-tabular>;
|
106
|
+
csvw:rownum 1;
|
107
|
+
csvw:url <file://users/gregg/Projects/rdf-tabular/etc/doap.csv#row=2>
|
108
|
+
], [
|
109
|
+
a csvw:Row;
|
110
|
+
csvw:describes <http://rubygems.org/gems/rdf-tabular>;
|
111
|
+
csvw:rownum 2;
|
112
|
+
csvw:url <file://users/gregg/Projects/rdf-tabular/etc/doap.csv#row=3>
|
113
|
+
], [
|
114
|
+
a csvw:Row;
|
115
|
+
csvw:describes <http://rubygems.org/gems/rdf-tabular>;
|
116
|
+
csvw:rownum 3;
|
117
|
+
csvw:url <file://users/gregg/Projects/rdf-tabular/etc/doap.csv#row=4>
|
118
|
+
], [
|
119
|
+
a csvw:Row;
|
120
|
+
csvw:describes <http://rubygems.org/gems/rdf-tabular>;
|
121
|
+
csvw:rownum 4;
|
122
|
+
csvw:url <file://users/gregg/Projects/rdf-tabular/etc/doap.csv#row=5>
|
123
|
+
];
|
124
|
+
csvw:url <file://users/gregg/Projects/rdf-tabular/etc/doap.csv>
|
125
|
+
];
|
126
|
+
prov:wasGeneratedBy [
|
127
|
+
a prov:Activity;
|
128
|
+
prov:endedAtTime "2015-04-11T12:33:26Z"^^xsd:dateTime;
|
129
|
+
prov:qualifiedUsage [
|
130
|
+
a prov:Usage;
|
131
|
+
prov:entity <file://users/gregg/Projects/rdf-tabular/etc/doap.csv>;
|
132
|
+
prov:hadRole csvw:csvEncodedTabularData
|
133
|
+
], [
|
134
|
+
a prov:Usage;
|
135
|
+
prov:entity <file://users/gregg/Projects/rdf-tabular/etc/doap.csv-metadata.json>;
|
136
|
+
prov:hadRole csvw:tabularMetadata
|
137
|
+
];
|
138
|
+
prov:startedAtTime "2015-04-11T12:33:25Z"^^xsd:dateTime;
|
139
|
+
prov:wasAssociatedWith <http://rubygems.org/gems/rdf-tabular>
|
140
|
+
]
|
141
|
+
] .
|
142
|
+
|
143
|
+
The provenance on table-source information can be excluded by using the `:minimal` option to the reader.
|
144
|
+
|
145
|
+
It can also generate JSON output (not complete JSON-LD, but compatible with it), using the {RDF::Tabular::Reader#to_json} method:
|
146
|
+
|
147
|
+
{
|
148
|
+
"table": [
|
149
|
+
{
|
150
|
+
"url": "file://users/gregg/Projects/rdf-tabular/etc/doap.csv",
|
151
|
+
"row": [
|
152
|
+
{
|
153
|
+
"url": "file://users/gregg/Projects/rdf-tabular/etc/doap.csv#row=2",
|
154
|
+
"rownum": 1,
|
155
|
+
"describes": [
|
156
|
+
{
|
157
|
+
"@id": "http://rubygems.org/gems/rdf-tabular",
|
158
|
+
"http://usefulinc.com/ns/doap#name": "RDF::Tabular",
|
159
|
+
"@type": "http://usefulinc.com/ns/doap#Project",
|
160
|
+
"http://usefulinc.com/ns/doap#homepage": "http://ruby-rdf.github.com/rdf-tabular",
|
161
|
+
"http://usefulinc.com/ns/doap#license": "http://creativecommons.org/licenses/publicdomain/",
|
162
|
+
"http://usefulinc.com/ns/doap#shortdesc": "Tabular Data RDF Reader and JSON serializer.",
|
163
|
+
"http://usefulinc.com/ns/doap#description": "RDF::Tabular processes tabular data with metadata creating RDF or JSON output.",
|
164
|
+
"http://usefulinc.com/ns/doap#created": "2015-01-05",
|
165
|
+
"http://usefulinc.com/ns/doap#programming-language": "Ruby",
|
166
|
+
"http://usefulinc.com/ns/doap#implements": "http://www.w3.org/TR/tabular-data-model/",
|
167
|
+
"http://usefulinc.com/ns/doap#category": "http://dbpedia.org/resource/Resource_Description_Framework",
|
168
|
+
"http://usefulinc.com/ns/doap#download-page": "http://rubygems.org/gems/rdf-tabular",
|
169
|
+
"http://usefulinc.com/ns/doap#mailing-list": "http://lists.w3.org/Archives/Public/public-rdf-ruby/",
|
170
|
+
"http://usefulinc.com/ns/doap#bug-database": "http://github.com/ruby-rdf/rdf-tabular/issues",
|
171
|
+
"http://usefulinc.com/ns/doap#blog": "http://greggkellogg.net/",
|
172
|
+
"http://usefulinc.com/ns/doap#developer": "http://greggkellogg.net/foaf#me",
|
173
|
+
"http://usefulinc.com/ns/doap#maintainer": "http://greggkellogg.net/foaf#me",
|
174
|
+
"http://usefulinc.com/ns/doap#documenter": "http://greggkellogg.net/foaf#me",
|
175
|
+
"foaf:maker": "http://greggkellogg.net/foaf#me",
|
176
|
+
"dc:title": "RDF::Tabular",
|
177
|
+
"dc:description": "RDF::Tabular processes tabular data with metadata creating RDF or JSON output.",
|
178
|
+
"dc:date": "2015-01-05",
|
179
|
+
"dc:creator": "http://greggkellogg.net/foaf#me",
|
180
|
+
"dc:isPartOf": "http://rubygems.org/gems/rdf"
|
181
|
+
}
|
182
|
+
]
|
183
|
+
},
|
184
|
+
{
|
185
|
+
"url": "file://users/gregg/Projects/rdf-tabular/etc/doap.csv#row=3",
|
186
|
+
"rownum": 2,
|
187
|
+
"describes": [
|
188
|
+
{
|
189
|
+
"@id": "http://rubygems.org/gems/rdf-tabular",
|
190
|
+
"@type": "http://www.w3.org/ns/earl#TestSubject",
|
191
|
+
"http://usefulinc.com/ns/doap#implements": "http://www.w3.org/TR/tabular-metadata/",
|
192
|
+
"http://usefulinc.com/ns/doap#category": "http://dbpedia.org/resource/Ruby_(programming_language)"
|
193
|
+
}
|
194
|
+
]
|
195
|
+
},
|
196
|
+
{
|
197
|
+
"url": "file://users/gregg/Projects/rdf-tabular/etc/doap.csv#row=4",
|
198
|
+
"rownum": 3,
|
199
|
+
"describes": [
|
200
|
+
{
|
201
|
+
"@id": "http://rubygems.org/gems/rdf-tabular",
|
202
|
+
"@type": "http://www.w3.org/ns/earl#Software",
|
203
|
+
"http://usefulinc.com/ns/doap#implements": "http://www.w3.org/TR/csv2rdf/"
|
204
|
+
}
|
205
|
+
]
|
206
|
+
},
|
207
|
+
{
|
208
|
+
"url": "file://users/gregg/Projects/rdf-tabular/etc/doap.csv#row=5",
|
209
|
+
"rownum": 4,
|
210
|
+
"describes": [
|
211
|
+
{
|
212
|
+
"@id": "http://rubygems.org/gems/rdf-tabular",
|
213
|
+
"http://usefulinc.com/ns/doap#implements": "http://www.w3.org/TR/csv2json/"
|
214
|
+
}
|
215
|
+
]
|
216
|
+
}
|
217
|
+
]
|
218
|
+
}
|
219
|
+
]
|
220
|
+
}
|
221
|
+
|
14
222
|
## Examples
|
15
223
|
|
16
224
|
require 'rubygems'
|
@@ -71,3 +279,4 @@ see <http://unlicense.org/> or the accompanying {file:UNLICENSE} file.
|
|
71
279
|
[RDF.rb]: http://rubygems.org/gems/rdf
|
72
280
|
[CSV]: http://en.wikipedia.org/wiki/Comma-separated_values
|
73
281
|
[W3C CSVW]: http://www.w3.org/2013/csvw/wiki/Main_Page
|
282
|
+
[URI template]: https://tools.ietf.org/html/rfc6570
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.2
|
data/etc/csvw.jsonld
CHANGED
@@ -111,13 +111,13 @@
|
|
111
111
|
"@id": "csvw:base",
|
112
112
|
"@language": null
|
113
113
|
},
|
114
|
-
"
|
115
|
-
"@id": "csvw:
|
114
|
+
"columnReference": {
|
115
|
+
"@id": "csvw:columnReference",
|
116
116
|
"@language": null,
|
117
117
|
"@container": "@list"
|
118
118
|
},
|
119
119
|
"columns": {
|
120
|
-
"@id": "csvw:
|
120
|
+
"@id": "csvw:column",
|
121
121
|
"@type": "@id",
|
122
122
|
"@container": "@list"
|
123
123
|
},
|
@@ -157,7 +157,7 @@
|
|
157
157
|
"@language": null
|
158
158
|
},
|
159
159
|
"foreignKeys": {
|
160
|
-
"@id": "csvw:
|
160
|
+
"@id": "csvw:foreignKey",
|
161
161
|
"@type": "@id"
|
162
162
|
},
|
163
163
|
"format": {
|
@@ -172,10 +172,6 @@
|
|
172
172
|
"@id": "csvw:header",
|
173
173
|
"@type": "xsd:boolean"
|
174
174
|
},
|
175
|
-
"headerColumnCount": {
|
176
|
-
"@id": "csvw:headerColumnCount",
|
177
|
-
"@type": "xsd:nonNegativeInteger"
|
178
|
-
},
|
179
175
|
"headerRowCount": {
|
180
176
|
"@id": "csvw:headerRowCount",
|
181
177
|
"@type": "xsd:nonNegativeInteger"
|
@@ -188,8 +184,8 @@
|
|
188
184
|
"@id": "csvw:length",
|
189
185
|
"@type": "xsd:nonNegativeInteger"
|
190
186
|
},
|
191
|
-
"
|
192
|
-
"@id": "csvw:
|
187
|
+
"lineTerminators": {
|
188
|
+
"@id": "csvw:lineTerminators",
|
193
189
|
"@language": null
|
194
190
|
},
|
195
191
|
"maxExclusive": {
|
@@ -221,7 +217,7 @@
|
|
221
217
|
"@language": null
|
222
218
|
},
|
223
219
|
"notes": {
|
224
|
-
"@id": "csvw:
|
220
|
+
"@id": "csvw:note"
|
225
221
|
},
|
226
222
|
"null": {
|
227
223
|
"@id": "csvw:null",
|
@@ -259,11 +255,6 @@
|
|
259
255
|
"@id": "csvw:resource",
|
260
256
|
"@type": "xsd:anyURI"
|
261
257
|
},
|
262
|
-
"resources": {
|
263
|
-
"@id": "csvw:resources",
|
264
|
-
"@type": "@id",
|
265
|
-
"@container": "@set"
|
266
|
-
},
|
267
258
|
"row": {
|
268
259
|
"@id": "csvw:row",
|
269
260
|
"@type": "@id",
|
@@ -309,7 +300,7 @@
|
|
309
300
|
"@id": "csvw:suppressOutput",
|
310
301
|
"@type": "xsd:boolean"
|
311
302
|
},
|
312
|
-
"
|
303
|
+
"tables": {
|
313
304
|
"@id": "csvw:table",
|
314
305
|
"@type": "@id",
|
315
306
|
"@container": "@set"
|
@@ -334,7 +325,7 @@
|
|
334
325
|
"@id": "csvw:textDirection",
|
335
326
|
"@type": "@vocab"
|
336
327
|
},
|
337
|
-
"
|
328
|
+
"titles": {
|
338
329
|
"@id": "csvw:title",
|
339
330
|
"@container": "@language"
|
340
331
|
},
|
@@ -599,7 +590,7 @@
|
|
599
590
|
"rdfs:range": "xsd:string"
|
600
591
|
},
|
601
592
|
{
|
602
|
-
"@id": "csvw:
|
593
|
+
"@id": "csvw:columnReference",
|
603
594
|
"@type": "rdf:Property",
|
604
595
|
"rdfs:label": {
|
605
596
|
"en": "column reference"
|
@@ -616,10 +607,10 @@
|
|
616
607
|
"rdfs:range": "xsd:string"
|
617
608
|
},
|
618
609
|
{
|
619
|
-
"@id": "csvw:
|
610
|
+
"@id": "csvw:column",
|
620
611
|
"@type": "rdf:Property",
|
621
612
|
"rdfs:label": {
|
622
|
-
"en": "
|
613
|
+
"en": "column"
|
623
614
|
},
|
624
615
|
"rdfs:comment": {
|
625
616
|
"en": "An array property of column descriptions as described in section 4.9 Columns."
|
@@ -759,10 +750,10 @@
|
|
759
750
|
"rdfs:range": "xsd:string"
|
760
751
|
},
|
761
752
|
{
|
762
|
-
"@id": "csvw:
|
753
|
+
"@id": "csvw:foreignKey",
|
763
754
|
"@type": "rdf:Property",
|
764
755
|
"rdfs:label": {
|
765
|
-
"en": "foreign
|
756
|
+
"en": "foreign key"
|
766
757
|
},
|
767
758
|
"rdfs:comment": {
|
768
759
|
"en": "An array property of foreign key definitions that define how the values from specified columns within this table link to rows within this table or other tables."
|
@@ -811,18 +802,6 @@
|
|
811
802
|
"rdfs:domain": "csvw:Dialect",
|
812
803
|
"rdfs:range": "xsd:boolean"
|
813
804
|
},
|
814
|
-
{
|
815
|
-
"@id": "csvw:headerColumnCount",
|
816
|
-
"@type": "rdf:Property",
|
817
|
-
"rdfs:label": {
|
818
|
-
"en": "header column count"
|
819
|
-
},
|
820
|
-
"rdfs:comment": {
|
821
|
-
"en": "An numeric atomic property that sets the header column count flag to the single provided value, which must be non-negative integer."
|
822
|
-
},
|
823
|
-
"rdfs:domain": "csvw:Dialect",
|
824
|
-
"rdfs:range": "xsd:nonNegativeInteger"
|
825
|
-
},
|
826
805
|
{
|
827
806
|
"@id": "csvw:headerRowCount",
|
828
807
|
"@type": "rdf:Property",
|
@@ -867,13 +846,13 @@
|
|
867
846
|
"rdfs:range": "xsd:nonNegativeInteger"
|
868
847
|
},
|
869
848
|
{
|
870
|
-
"@id": "csvw:
|
849
|
+
"@id": "csvw:lineTerminators",
|
871
850
|
"@type": "rdf:Property",
|
872
851
|
"rdfs:label": {
|
873
852
|
"en": "line terminator"
|
874
853
|
},
|
875
854
|
"rdfs:comment": {
|
876
|
-
"en": "
|
855
|
+
"en": "An atomic property that is either an array containing the single provided string value"
|
877
856
|
},
|
878
857
|
"rdfs:domain": "csvw:Dialect",
|
879
858
|
"rdfs:range": "xsd:string"
|
@@ -963,13 +942,13 @@
|
|
963
942
|
"rdfs:range": "xsd:string"
|
964
943
|
},
|
965
944
|
{
|
966
|
-
"@id": "csvw:
|
945
|
+
"@id": "csvw:note",
|
967
946
|
"@type": "rdf:Property",
|
968
947
|
"rdfs:label": {
|
969
|
-
"en": "
|
948
|
+
"en": "note"
|
970
949
|
},
|
971
950
|
"rdfs:comment": {
|
972
|
-
"en": "
|
951
|
+
"en": "The value of this property becomes the value of the notes annotation on the resource."
|
973
952
|
},
|
974
953
|
"rdfs:domain": {
|
975
954
|
"owl:unionOf": [
|
@@ -1107,18 +1086,6 @@
|
|
1107
1086
|
"rdfs:domain": "csvw:TableReference",
|
1108
1087
|
"rdfs:range": "xsd:anyURI"
|
1109
1088
|
},
|
1110
|
-
{
|
1111
|
-
"@id": "csvw:resources",
|
1112
|
-
"@type": "rdf:Property",
|
1113
|
-
"rdfs:label": {
|
1114
|
-
"en": "resources"
|
1115
|
-
},
|
1116
|
-
"rdfs:comment": {
|
1117
|
-
"en": "An array property of table descriptions for the tables in the group, namely those listed in the resources annotation on the group of tables being described."
|
1118
|
-
},
|
1119
|
-
"rdfs:domain": "csvw:TableGroup",
|
1120
|
-
"rdfs:range": "csvw:Table"
|
1121
|
-
},
|
1122
1089
|
{
|
1123
1090
|
"@id": "csvw:row",
|
1124
1091
|
"@type": "rdf:Property",
|
@@ -1270,7 +1237,7 @@
|
|
1270
1237
|
"en": "table"
|
1271
1238
|
},
|
1272
1239
|
"rdfs:comment": {
|
1273
|
-
"en": "Relates an Table group to annotated tables.
|
1240
|
+
"en": "Relates an Table group to annotated tables."
|
1274
1241
|
},
|
1275
1242
|
"rdfs:subPropertyOf": "rdfs:member",
|
1276
1243
|
"rdfs:domain": "csvw:TableGroup",
|
data/etc/doap.csv-metadata.json
CHANGED
@@ -6,29 +6,29 @@
|
|
6
6
|
"propertyUrl": "http://usefulinc.com/ns/doap#{_name}",
|
7
7
|
"null": "",
|
8
8
|
"columns": [
|
9
|
-
{"
|
10
|
-
{"
|
11
|
-
{"
|
12
|
-
{"
|
13
|
-
{"
|
14
|
-
{"
|
15
|
-
{"
|
16
|
-
{"
|
17
|
-
{"
|
18
|
-
{"
|
19
|
-
{"
|
20
|
-
{"
|
21
|
-
{"
|
22
|
-
{"
|
23
|
-
{"
|
24
|
-
{"
|
25
|
-
{"
|
26
|
-
{"
|
27
|
-
{"
|
28
|
-
{"
|
29
|
-
{"
|
30
|
-
{"
|
31
|
-
{"
|
9
|
+
{"titles": "name"},
|
10
|
+
{"titles": "type", "propertyUrl": "rdf:type", "valueUrl": "{+type}"},
|
11
|
+
{"titles": "homepage", "valueUrl": "{+homepage}"},
|
12
|
+
{"titles": "license", "valueUrl": "{+license}"},
|
13
|
+
{"titles": "shortdesc", "lang": "en"},
|
14
|
+
{"titles": "description", "lang": "en"},
|
15
|
+
{"titles": "created", "datatype": {"base": "date", "format": "M/d/yyyy"}},
|
16
|
+
{"titles": "programming_language", "propertyUrl": "http://usefulinc.com/ns/doap#programming-language"},
|
17
|
+
{"titles": "implements", "valueUrl": "{+implements}"},
|
18
|
+
{"titles": "category", "valueUrl": "{+category}"},
|
19
|
+
{"titles": "download_page", "propertyUrl": "http://usefulinc.com/ns/doap#download-page", "valueUrl": "{+download_page}"},
|
20
|
+
{"titles": "mailing_list", "propertyUrl": "http://usefulinc.com/ns/doap#mailing-list", "valueUrl": "{+mailing_list}"},
|
21
|
+
{"titles": "bug_database", "propertyUrl": "http://usefulinc.com/ns/doap#bug-database", "valueUrl": "{+bug_database}"},
|
22
|
+
{"titles": "blog", "valueUrl": "{+blog}"},
|
23
|
+
{"titles": "developer", "valueUrl": "{+developer}"},
|
24
|
+
{"titles": "maintainer", "valueUrl": "{+maintainer}"},
|
25
|
+
{"titles": "documenter", "valueUrl": "{+documenter}"},
|
26
|
+
{"titles": "maker", "propertyUrl": "foaf:maker", "valueUrl": "{+maker}"},
|
27
|
+
{"titles": "dc_title", "propertyUrl": "dc:title"},
|
28
|
+
{"titles": "dc_description", "propertyUrl": "dc:description", "lang": "en"},
|
29
|
+
{"titles": "dc_date", "propertyUrl": "dc:date", "datatype": {"base": "date", "format": "M/d/yyyy"}},
|
30
|
+
{"titles": "dc_creator", "propertyUrl": "dc:creator", "valueUrl": "{+dc_creator}"},
|
31
|
+
{"titles": "isPartOf", "propertyUrl": "dc:isPartOf", "valueUrl": "{+isPartOf}"}
|
32
32
|
]
|
33
33
|
}
|
34
34
|
}
|