rdf-microdata 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README +30 -1
- data/VERSION +1 -1
- data/lib/rdf/microdata/reader.rb +8 -3
- metadata +67 -74
data/README
CHANGED
@@ -15,10 +15,39 @@ Install with 'gem install rdf-microdata'
|
|
15
15
|
|
16
16
|
## Usage
|
17
17
|
|
18
|
-
### Reading RDF data in the
|
18
|
+
### Reading RDF data in the Microdata format
|
19
19
|
|
20
20
|
graph = RDF::Graph.load("etc/foaf.html", :format => :microdata)
|
21
21
|
|
22
|
+
### Generating RDF friendly URIs from terms
|
23
|
+
As defined, Microdata creates ugly (and even illegal) URIs for `@itemprop` entries that are a simple
|
24
|
+
term, and not already a URI. {RDF::RDFa::Reader} implements a `:rdf\_terms` option which uses an alternative
|
25
|
+
process for creating URIs from terms: If the `@itemprop` is included within an item having an `@itemtype`,
|
26
|
+
the URI of the `@itemtype` will be used for generating a term URI. The type URI will be trimmed following
|
27
|
+
the last '#' or '/' character, and the term will be appended to the resulting URI. This is in keeping
|
28
|
+
with standard convention for defining properties and classes within an RDFS or OWL vocabulary.
|
29
|
+
|
30
|
+
For example:
|
31
|
+
|
32
|
+
<div itemscope itemtype="http://schema.org/Person">
|
33
|
+
My name is <span itemprop="name">Gregg</span>
|
34
|
+
</div>
|
35
|
+
|
36
|
+
Without the `:rdf\_terms` option, this would create the following statements:
|
37
|
+
|
38
|
+
@prefix md: <http://www.w3.org/1999/xhtml/microdata#> .
|
39
|
+
@prefix schema: <http://schema.org/> .
|
40
|
+
<> md:item [
|
41
|
+
a schema:Person;
|
42
|
+
<http://www.w3.org/1999/xhtml/microdata#http://schema.org/Person%23:name> "Gregg"
|
43
|
+
] .
|
44
|
+
|
45
|
+
With the `:rdf\_terms` option, this becomes:
|
46
|
+
|
47
|
+
@prefix md: <http://www.w3.org/1999/xhtml/microdata#> .
|
48
|
+
@prefix schema: <http://schema.org/> .
|
49
|
+
<> md:item [ a schema:Person; schema:name "Gregg" ] .
|
50
|
+
|
22
51
|
## Dependencies
|
23
52
|
* [RDF.rb](http://rubygems.org/gems/rdf) (>= 0.3.3)
|
24
53
|
* [Nokogiri](http://rubygems.org/gems/nokogiri) (>= 1.3.3)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.2
|
data/lib/rdf/microdata/reader.rb
CHANGED
@@ -39,6 +39,8 @@ module RDF::Microdata
|
|
39
39
|
# whether to intern all parsed URIs
|
40
40
|
# @option options [#to_s] :base_uri (nil)
|
41
41
|
# the base URI to use when resolving relative URIs
|
42
|
+
# @option options [Boolean] :rdf_terms (false)
|
43
|
+
# Generate URIs for itemprop terms based on namespace of itemtype
|
42
44
|
# @option options [Array] :debug
|
43
45
|
# Array to place debug messages
|
44
46
|
# @return [reader]
|
@@ -238,7 +240,6 @@ module RDF::Microdata
|
|
238
240
|
add_triple(el, base, RDF::DC.source, object)
|
239
241
|
end
|
240
242
|
|
241
|
-
|
242
243
|
# 5. Let memory be a mapping of items to subjects, initially empty.
|
243
244
|
# 6. For each element that is also a top-level microdata item, run the following steps:
|
244
245
|
# * Generate the triples for the item. Pass a reference to memory as the item/subject list.
|
@@ -287,7 +288,7 @@ module RDF::Microdata
|
|
287
288
|
|
288
289
|
# 3. If item has an item type and that item type is an absolute URL, let type be that item type.
|
289
290
|
# Otherwise, let type be the empty string.
|
290
|
-
type = uri(item.attribute('itemtype'))
|
291
|
+
rdf_type = type = uri(item.attribute('itemtype'))
|
291
292
|
type = '' unless type.absolute?
|
292
293
|
|
293
294
|
if type != ''
|
@@ -298,7 +299,7 @@ module RDF::Microdata
|
|
298
299
|
type += ':' unless type.to_s.match(/\#:/)
|
299
300
|
elsif fallback_type
|
300
301
|
add_debug(item, "gentrips(5.2): fallback_type=#{fallback_type}, fallback_name=#{fallback_name}")
|
301
|
-
type = fallback_type
|
302
|
+
rdf_type = type = fallback_type
|
302
303
|
# 5.2. If type does not contain a U+0023 NUMBER SIGN character (#), then append a # to type.
|
303
304
|
type += '#' unless type.to_s.include?('#')
|
304
305
|
# 5.3. If type does not have a : after its #, append a : to type.
|
@@ -335,6 +336,10 @@ module RDF::Microdata
|
|
335
336
|
|
336
337
|
predicate = if name_uri.absolute?
|
337
338
|
name_uri
|
339
|
+
elsif @options[:rdf_terms]
|
340
|
+
# Use the URI of the type to create URIs for @itemprop terms
|
341
|
+
add_debug(element, "gentrips: rdf_type=#{rdf_type}")
|
342
|
+
predicate = RDF::URI(rdf_type.to_s.sub(/(?<=[\/\#])[^\/\#]*$/, name))
|
338
343
|
elsif !name.include?(':')
|
339
344
|
s = type.to_s
|
340
345
|
s += '%20' unless s[-1,1] == ':'
|
metadata
CHANGED
@@ -1,104 +1,100 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: rdf-microdata
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.2
|
4
5
|
prerelease:
|
5
|
-
version: 0.1.1
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Gregg Kellogg
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
date: 2011-07-13 00:00:00 -07:00
|
12
|
+
date: 2011-07-23 00:00:00.000000000 -07:00
|
14
13
|
default_executable:
|
15
|
-
dependencies:
|
16
|
-
- !ruby/object:Gem::Dependency
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
17
16
|
name: rdf
|
18
|
-
|
19
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
17
|
+
requirement: &2168962420 !ruby/object:Gem::Requirement
|
20
18
|
none: false
|
21
|
-
requirements:
|
22
|
-
- -
|
23
|
-
- !ruby/object:Gem::Version
|
19
|
+
requirements:
|
20
|
+
- - ! '>='
|
21
|
+
- !ruby/object:Gem::Version
|
24
22
|
version: 0.3.3
|
25
23
|
type: :runtime
|
26
|
-
version_requirements: *id001
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: nokogiri
|
29
24
|
prerelease: false
|
30
|
-
|
25
|
+
version_requirements: *2168962420
|
26
|
+
- !ruby/object:Gem::Dependency
|
27
|
+
name: nokogiri
|
28
|
+
requirement: &2168961960 !ruby/object:Gem::Requirement
|
31
29
|
none: false
|
32
|
-
requirements:
|
33
|
-
- -
|
34
|
-
- !ruby/object:Gem::Version
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
35
33
|
version: 1.4.4
|
36
34
|
type: :runtime
|
37
|
-
version_requirements: *id002
|
38
|
-
- !ruby/object:Gem::Dependency
|
39
|
-
name: yard
|
40
35
|
prerelease: false
|
41
|
-
|
36
|
+
version_requirements: *2168961960
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: yard
|
39
|
+
requirement: &2168988620 !ruby/object:Gem::Requirement
|
42
40
|
none: false
|
43
|
-
requirements:
|
44
|
-
- -
|
45
|
-
- !ruby/object:Gem::Version
|
41
|
+
requirements:
|
42
|
+
- - ! '>='
|
43
|
+
- !ruby/object:Gem::Version
|
46
44
|
version: 0.6.0
|
47
45
|
type: :development
|
48
|
-
version_requirements: *id003
|
49
|
-
- !ruby/object:Gem::Dependency
|
50
|
-
name: rspec
|
51
46
|
prerelease: false
|
52
|
-
|
47
|
+
version_requirements: *2168988620
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: rspec
|
50
|
+
requirement: &2168988160 !ruby/object:Gem::Requirement
|
53
51
|
none: false
|
54
|
-
requirements:
|
55
|
-
- -
|
56
|
-
- !ruby/object:Gem::Version
|
52
|
+
requirements:
|
53
|
+
- - ! '>='
|
54
|
+
- !ruby/object:Gem::Version
|
57
55
|
version: 2.5.0
|
58
56
|
type: :development
|
59
|
-
version_requirements: *id004
|
60
|
-
- !ruby/object:Gem::Dependency
|
61
|
-
name: rdf-spec
|
62
57
|
prerelease: false
|
63
|
-
|
58
|
+
version_requirements: *2168988160
|
59
|
+
- !ruby/object:Gem::Dependency
|
60
|
+
name: rdf-spec
|
61
|
+
requirement: &2168987700 !ruby/object:Gem::Requirement
|
64
62
|
none: false
|
65
|
-
requirements:
|
66
|
-
- -
|
67
|
-
- !ruby/object:Gem::Version
|
63
|
+
requirements:
|
64
|
+
- - ! '>='
|
65
|
+
- !ruby/object:Gem::Version
|
68
66
|
version: 0.3.2
|
69
67
|
type: :development
|
70
|
-
version_requirements: *id005
|
71
|
-
- !ruby/object:Gem::Dependency
|
72
|
-
name: rdf-n3
|
73
68
|
prerelease: false
|
74
|
-
|
69
|
+
version_requirements: *2168987700
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: rdf-n3
|
72
|
+
requirement: &2168987240 !ruby/object:Gem::Requirement
|
75
73
|
none: false
|
76
|
-
requirements:
|
77
|
-
- -
|
78
|
-
- !ruby/object:Gem::Version
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
79
77
|
version: 0.3.3
|
80
78
|
type: :development
|
81
|
-
version_requirements: *id006
|
82
|
-
- !ruby/object:Gem::Dependency
|
83
|
-
name: rdf-isomorphic
|
84
79
|
prerelease: false
|
85
|
-
|
80
|
+
version_requirements: *2168987240
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
name: rdf-isomorphic
|
83
|
+
requirement: &2168986780 !ruby/object:Gem::Requirement
|
86
84
|
none: false
|
87
|
-
requirements:
|
88
|
-
- -
|
89
|
-
- !ruby/object:Gem::Version
|
85
|
+
requirements:
|
86
|
+
- - ! '>='
|
87
|
+
- !ruby/object:Gem::Version
|
90
88
|
version: 0.3.4
|
91
89
|
type: :development
|
92
|
-
|
90
|
+
prerelease: false
|
91
|
+
version_requirements: *2168986780
|
93
92
|
description: Microdata reader for Ruby.
|
94
93
|
email: public-rdf-ruby@w3.org
|
95
94
|
executables: []
|
96
|
-
|
97
95
|
extensions: []
|
98
|
-
|
99
96
|
extra_rdoc_files: []
|
100
|
-
|
101
|
-
files:
|
97
|
+
files:
|
102
98
|
- AUTHORS
|
103
99
|
- README
|
104
100
|
- UNLICENSE
|
@@ -111,31 +107,28 @@ files:
|
|
111
107
|
- lib/rdf/microdata.rb
|
112
108
|
has_rdoc: false
|
113
109
|
homepage: http://github.com/gkellogg/rdf-microdata
|
114
|
-
licenses:
|
110
|
+
licenses:
|
115
111
|
- Public Domain
|
116
112
|
post_install_message:
|
117
113
|
rdoc_options: []
|
118
|
-
|
119
|
-
require_paths:
|
114
|
+
require_paths:
|
120
115
|
- lib
|
121
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
116
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
122
117
|
none: false
|
123
|
-
requirements:
|
124
|
-
- -
|
125
|
-
- !ruby/object:Gem::Version
|
118
|
+
requirements:
|
119
|
+
- - ! '>='
|
120
|
+
- !ruby/object:Gem::Version
|
126
121
|
version: 1.8.1
|
127
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
122
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
128
123
|
none: false
|
129
|
-
requirements:
|
130
|
-
- -
|
131
|
-
- !ruby/object:Gem::Version
|
132
|
-
version:
|
124
|
+
requirements:
|
125
|
+
- - ! '>='
|
126
|
+
- !ruby/object:Gem::Version
|
127
|
+
version: '0'
|
133
128
|
requirements: []
|
134
|
-
|
135
129
|
rubyforge_project: rdf-microdata
|
136
130
|
rubygems_version: 1.6.2
|
137
131
|
signing_key:
|
138
132
|
specification_version: 3
|
139
133
|
summary: Microdata reader for Ruby.
|
140
134
|
test_files: []
|
141
|
-
|