rdf-rdfa 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (128) hide show
  1. data/History.txt +2 -0
  2. data/README.rdoc +59 -0
  3. data/Rakefile +46 -0
  4. data/VERSION +1 -0
  5. data/example.rb +27 -0
  6. data/lib/rdfa/format.rb +19 -0
  7. data/lib/rdfa/reader.rb +798 -0
  8. data/lib/rdfa/reader/exceptions.rb +14 -0
  9. data/lib/rdfa/reader/namespace.rb +72 -0
  10. data/lib/rdfa/reader/version.rb +23 -0
  11. data/spec/namespaces_spec.rb +112 -0
  12. data/spec/rdfa-triples/0001.nt +1 -0
  13. data/spec/rdfa-triples/0006.nt +2 -0
  14. data/spec/rdfa-triples/0007.nt +3 -0
  15. data/spec/rdfa-triples/0008.nt +1 -0
  16. data/spec/rdfa-triples/0009.nt +1 -0
  17. data/spec/rdfa-triples/0010.nt +2 -0
  18. data/spec/rdfa-triples/0011.nt +3 -0
  19. data/spec/rdfa-triples/0012.nt +1 -0
  20. data/spec/rdfa-triples/0013.nt +1 -0
  21. data/spec/rdfa-triples/0014.nt +1 -0
  22. data/spec/rdfa-triples/0015.nt +2 -0
  23. data/spec/rdfa-triples/0017.nt +3 -0
  24. data/spec/rdfa-triples/0018.nt +1 -0
  25. data/spec/rdfa-triples/0019.nt +1 -0
  26. data/spec/rdfa-triples/0020.nt +1 -0
  27. data/spec/rdfa-triples/0021.nt +1 -0
  28. data/spec/rdfa-triples/0023.nt +1 -0
  29. data/spec/rdfa-triples/0025.nt +2 -0
  30. data/spec/rdfa-triples/0026.nt +1 -0
  31. data/spec/rdfa-triples/0027.nt +1 -0
  32. data/spec/rdfa-triples/0029.nt +1 -0
  33. data/spec/rdfa-triples/0030.nt +1 -0
  34. data/spec/rdfa-triples/0031.nt +1 -0
  35. data/spec/rdfa-triples/0032.nt +1 -0
  36. data/spec/rdfa-triples/0033.nt +2 -0
  37. data/spec/rdfa-triples/0034.nt +1 -0
  38. data/spec/rdfa-triples/0035.nt +1 -0
  39. data/spec/rdfa-triples/0036.nt +1 -0
  40. data/spec/rdfa-triples/0037.nt +1 -0
  41. data/spec/rdfa-triples/0038.nt +1 -0
  42. data/spec/rdfa-triples/0039.nt +1 -0
  43. data/spec/rdfa-triples/0040.nt +1 -0
  44. data/spec/rdfa-triples/0041.nt +1 -0
  45. data/spec/rdfa-triples/0042.nt +0 -0
  46. data/spec/rdfa-triples/0046.nt +3 -0
  47. data/spec/rdfa-triples/0047.nt +3 -0
  48. data/spec/rdfa-triples/0048.nt +3 -0
  49. data/spec/rdfa-triples/0049.nt +2 -0
  50. data/spec/rdfa-triples/0050.nt +2 -0
  51. data/spec/rdfa-triples/0051.nt +2 -0
  52. data/spec/rdfa-triples/0052.nt +1 -0
  53. data/spec/rdfa-triples/0053.nt +2 -0
  54. data/spec/rdfa-triples/0054.nt +2 -0
  55. data/spec/rdfa-triples/0055.nt +2 -0
  56. data/spec/rdfa-triples/0056.nt +3 -0
  57. data/spec/rdfa-triples/0057.nt +4 -0
  58. data/spec/rdfa-triples/0058.nt +6 -0
  59. data/spec/rdfa-triples/0059.nt +6 -0
  60. data/spec/rdfa-triples/0060.nt +2 -0
  61. data/spec/rdfa-triples/0061.nt +1 -0
  62. data/spec/rdfa-triples/0062.nt +1 -0
  63. data/spec/rdfa-triples/0063.nt +1 -0
  64. data/spec/rdfa-triples/0064.nt +1 -0
  65. data/spec/rdfa-triples/0065.nt +3 -0
  66. data/spec/rdfa-triples/0066.nt +1 -0
  67. data/spec/rdfa-triples/0067.nt +1 -0
  68. data/spec/rdfa-triples/0068.nt +1 -0
  69. data/spec/rdfa-triples/0069.nt +1 -0
  70. data/spec/rdfa-triples/0070.nt +1 -0
  71. data/spec/rdfa-triples/0071.nt +1 -0
  72. data/spec/rdfa-triples/0072.nt +1 -0
  73. data/spec/rdfa-triples/0073.nt +1 -0
  74. data/spec/rdfa-triples/0074.nt +1 -0
  75. data/spec/rdfa-triples/0075.nt +1 -0
  76. data/spec/rdfa-triples/0076.nt +23 -0
  77. data/spec/rdfa-triples/0077.nt +23 -0
  78. data/spec/rdfa-triples/0078.nt +6 -0
  79. data/spec/rdfa-triples/0079.nt +3 -0
  80. data/spec/rdfa-triples/0080.nt +1 -0
  81. data/spec/rdfa-triples/0081.nt +6 -0
  82. data/spec/rdfa-triples/0082.nt +8 -0
  83. data/spec/rdfa-triples/0083.nt +6 -0
  84. data/spec/rdfa-triples/0084.nt +8 -0
  85. data/spec/rdfa-triples/0085.nt +4 -0
  86. data/spec/rdfa-triples/0086.nt +0 -0
  87. data/spec/rdfa-triples/0087.nt +23 -0
  88. data/spec/rdfa-triples/0088.nt +3 -0
  89. data/spec/rdfa-triples/0089.nt +1 -0
  90. data/spec/rdfa-triples/0090.nt +1 -0
  91. data/spec/rdfa-triples/0091.nt +3 -0
  92. data/spec/rdfa-triples/0092.nt +3 -0
  93. data/spec/rdfa-triples/0093.nt +2 -0
  94. data/spec/rdfa-triples/0094.nt +3 -0
  95. data/spec/rdfa-triples/0099.nt +1 -0
  96. data/spec/rdfa-triples/0100.nt +3 -0
  97. data/spec/rdfa-triples/0101.nt +3 -0
  98. data/spec/rdfa-triples/0102.nt +1 -0
  99. data/spec/rdfa-triples/0103.nt +1 -0
  100. data/spec/rdfa-triples/0104.nt +3 -0
  101. data/spec/rdfa-triples/0105.nt +1 -0
  102. data/spec/rdfa-triples/0106.nt +1 -0
  103. data/spec/rdfa-triples/0107.nt +0 -0
  104. data/spec/rdfa-triples/0108.nt +1 -0
  105. data/spec/rdfa-triples/0109.nt +1 -0
  106. data/spec/rdfa-triples/0110.nt +1 -0
  107. data/spec/rdfa-triples/0111.nt +2 -0
  108. data/spec/rdfa-triples/0112.nt +1 -0
  109. data/spec/rdfa-triples/0113.nt +2 -0
  110. data/spec/rdfa-triples/0114.nt +3 -0
  111. data/spec/rdfa-triples/0115.nt +4 -0
  112. data/spec/rdfa-triples/0116.nt +2 -0
  113. data/spec/rdfa-triples/0117.nt +2 -0
  114. data/spec/rdfa-triples/0118.nt +1 -0
  115. data/spec/rdfa-triples/0119.nt +1 -0
  116. data/spec/rdfa-triples/0120.nt +1 -0
  117. data/spec/rdfa-triples/0121.nt +2 -0
  118. data/spec/rdfa-triples/0122.nt +1 -0
  119. data/spec/rdfa-triples/0123.nt +3 -0
  120. data/spec/rdfa-triples/0124.nt +4 -0
  121. data/spec/rdfa-triples/0125.nt +1 -0
  122. data/spec/rdfa-triples/0126.nt +3 -0
  123. data/spec/rdfa-triples/1001.nt +6 -0
  124. data/spec/rdfa_helper.rb +188 -0
  125. data/spec/rdfa_parser_spec.rb +146 -0
  126. data/spec/spec.opts +1 -0
  127. data/spec/spec_helper.rb +8 -0
  128. metadata +246 -0
@@ -0,0 +1,14 @@
1
+ module RDF::RDFa
2
+ class RdfException < RuntimeError; end
3
+
4
+ class ParserException < RdfException; end
5
+ class SparqlException < RdfException; end
6
+ class GraphException < RdfException; end
7
+ class StoreException < RdfException; end
8
+ class BNodeException < RdfException; end
9
+ class TypeError < RdfException; end
10
+ class InvalidNode < RdfException; end
11
+ class InvalidPredicate < RdfException; end
12
+
13
+ class ReadOnlyGraphException < GraphException; end
14
+ end
@@ -0,0 +1,72 @@
1
+ module RDF::RDFa class Reader
2
+ # From RdfContext
3
+ class Namespace
4
+ attr_accessor :prefix, :fragment
5
+
6
+ # Creates a new namespace given a URI and the prefix.
7
+ def initialize(uri, prefix)
8
+ prefix = prefix.to_s
9
+
10
+ @uri = uri.to_s
11
+
12
+ raise ParserException, "Invalid prefix '#{prefix}'" unless prefix_valid?(prefix)
13
+ @prefix = prefix
14
+ end
15
+
16
+ # Allows the construction of arbitrary URIs on the namespace.
17
+ def method_missing(methodname, *args)
18
+ self + methodname
19
+ end
20
+
21
+ # Construct a URIRef from a namespace as in method_missing, but without method collision issues.
22
+ # Rules are somewhat different than for normal URI unions, as the raw URI is used as the source,
23
+ # not a normalized URI, and the result is not normalized
24
+ def +(suffix)
25
+ prefix = @uri
26
+ suffix = suffix.to_s.sub(/^\#/, "") if prefix.index("#")
27
+ suffix = suffix.to_s.sub(/_$/, '')
28
+ # FIXME: URIRef.new(prefix + suffix.to_s, :normalize => false, :namespace => self)
29
+ RDF::URI.new(prefix + suffix.to_s)
30
+ end
31
+
32
+ # Make sure to attach fragment
33
+ def uri
34
+ self + ""
35
+ end
36
+
37
+ # Bind this namespace to a Graph
38
+ def bind(graph)
39
+ graph.bind(self)
40
+ end
41
+
42
+ # Compare namespaces
43
+ def eql?(other)
44
+ self.uri == other.uri
45
+ end
46
+ alias_method :==, :eql?
47
+
48
+ # Output xmlns attribute name
49
+ def xmlns_attr
50
+ prefix.empty? ? "xmlns" : "xmlns:#{prefix}"
51
+ end
52
+
53
+ # Output namespace definition as a hash
54
+ def xmlns_hash
55
+ {xmlns_attr => @uri.to_s}
56
+ end
57
+
58
+ def to_s
59
+ "#{prefix}: #{@uri}"
60
+ end
61
+
62
+ def inspect
63
+ "Namespace[abbr='#{prefix}',uri='#{@uri}']"
64
+ end
65
+
66
+ private
67
+ # The Namespace prefix must be an NCName
68
+ def prefix_valid?(prefix)
69
+ NC_REGEXP.match(prefix.to_s) || prefix.to_s.empty?
70
+ end
71
+ end
72
+ end end
@@ -0,0 +1,23 @@
1
+ module RDFa
2
+ module VERSION
3
+ MAJOR = 0
4
+ MINOR = 1
5
+ TINY = 0
6
+ EXTRA = nil
7
+
8
+ STRING = [MAJOR, MINOR, TINY].join('.')
9
+ STRING << "-#{EXTRA}" if EXTRA
10
+
11
+ ##
12
+ # @return [String]
13
+ def self.to_s() STRING end
14
+
15
+ ##
16
+ # @return [String]
17
+ def self.to_str() STRING end
18
+
19
+ ##
20
+ # @return [Array(Integer, Integer, Integer)]
21
+ def self.to_a() [MAJOR, MINOR, TINY] end
22
+ end
23
+ end
@@ -0,0 +1,112 @@
1
+ require File.join(File.dirname(__FILE__), 'spec_helper')
2
+
3
+ describe RDFa::Reader::Namespace do
4
+ subject { RDFa::Reader::Namespace.new("http://xmlns.com/foaf/0.1/", "foaf") }
5
+
6
+ describe "method_missing" do
7
+ it "should create URI" do
8
+ subject.knows.to_s.should == "http://xmlns.com/foaf/0.1/knows"
9
+ end
10
+
11
+ it "should create URI for frag" do
12
+ foaf_frag = RDFa::Reader::Namespace.new("http://xmlns.com/foaf/0.1/", "foaf")
13
+ foaf_frag.knows.to_s.should == "http://xmlns.com/foaf/0.1/knows"
14
+ end
15
+ end
16
+
17
+ it "should have a URI" do
18
+ lambda do
19
+ test = RDFa::Reader::Namespace.new(prefix='foaf')
20
+ end.should raise_error
21
+ end
22
+
23
+ it "should have equality with URIs" do
24
+ foaf_name = RDF::URI.new("http://xmlns.com/foaf/0.1/name")
25
+ subject.name.should == foaf_name
26
+ end
27
+
28
+ it "should have an XML and N3-friendly prefix" do
29
+ lambda do
30
+ test = RDFa::Reader::Namespace.new('http://xmlns.com/foaf/0.1/', '*~{')
31
+ end.should raise_error
32
+ end
33
+
34
+ # it "should be able to attach to the graph for substitution" do
35
+ # # rdflib does this using graph.bind('prefix', namespace)
36
+ # g = RDF::Graph.new
37
+ # subject.bind(g)
38
+ # #puts g.nsbinding.inspect
39
+ # should == g.nsbinding["foaf"]
40
+ # end
41
+
42
+ it "should not allow you to attach to non-graphs" do
43
+ lambda do
44
+ subject.bind("cheese")
45
+ end.should raise_error
46
+ end
47
+
48
+ it "should construct URI" do
49
+ subject.foo.class.should == RDF::URI
50
+ subject.foo.to_s.should == "http://xmlns.com/foaf/0.1/foo"
51
+ end
52
+
53
+ describe "no URI normalization" do
54
+ specify {RDFa::Reader::Namespace.new("http://foo", "foo").uri.to_s.should == "http://foo"}
55
+ specify {RDFa::Reader::Namespace.new("http://foo#", "foo").uri.to_s.should == "http://foo#"}
56
+ specify {RDFa::Reader::Namespace.new("http://foo/", "foo").uri.to_s.should == "http://foo/"}
57
+ specify {RDFa::Reader::Namespace.new("xyz:foo", "foo").uri.to_s.should == "xyz:foo"}
58
+ end
59
+
60
+ it "should not normalize URI" do
61
+ end
62
+
63
+ describe "serialization" do
64
+ specify {subject.to_s.should == "foaf: http://xmlns.com/foaf/0.1/"}
65
+ end
66
+
67
+ describe '#+' do
68
+ it "should construct URI with +" do
69
+ (subject + "foo").class.should == RDF::URI
70
+ (subject + "foo").to_s.should == "http://xmlns.com/foaf/0.1/foo"
71
+ end
72
+
73
+ it "should strip trailing _ (used to work around reserved method names)" do
74
+ (subject + "type_").to_s.should == "http://xmlns.com/foaf/0.1/type"
75
+ end
76
+
77
+ it "will cause method conflict" do
78
+ (subject + "class").to_s.should == "http://xmlns.com/foaf/0.1/class"
79
+ subject.class.should == RDFa::Reader::Namespace
80
+ end
81
+ end
82
+
83
+ describe "normalization" do
84
+ {
85
+ %w(http://foo ) => "http://foo",
86
+ %w(http://foo a) => "http://fooa",
87
+
88
+ %w(http://foo/ ) => "http://foo/",
89
+ %w(http://foo/ a) => "http://foo/a",
90
+
91
+ %w(http://foo# ) => "http://foo#",
92
+ %w(http://foo# a) => "http://foo#a",
93
+
94
+ %w(http://foo/bar ) => "http://foo/bar",
95
+ %w(http://foo/bar a) => "http://foo/bara",
96
+
97
+ %w(http://foo/bar/ ) => "http://foo/bar/",
98
+ %w(http://foo/bar/ a) => "http://foo/bar/a",
99
+
100
+ %w(http://foo/bar# ) => "http://foo/bar#",
101
+ %w(http://foo/bar# a) => "http://foo/bar#a",
102
+ }.each_pair do |input, result|
103
+ it "should create <#{result}> from <#{input[0]}> and '#{input[1]}'" do
104
+ (RDFa::Reader::Namespace.new(input[0], "test") + input[1].to_s).to_s.should == result
105
+ end
106
+ end
107
+ end
108
+
109
+ it "should be be equivalent" do
110
+ RDFa::Reader::Namespace.new("http://a", "aa").should == RDFa::Reader::Namespace.new("http://a", "aa")
111
+ end
112
+ end
@@ -0,0 +1 @@
1
+ <$TCPATH/photo1.jpg> <http://purl.org/dc/elements/1.1/creator> "Mark Birbeck" .
@@ -0,0 +1,2 @@
1
+ <http://www.blogger.com/profile/1109404> <http://xmlns.com/foaf/0.1/img> <$TCPATH/photo1.jpg> .
2
+ <$TCPATH/photo1.jpg> <http://purl.org/dc/elements/1.1/creator> <http://www.blogger.com/profile/1109404> .
@@ -0,0 +1,3 @@
1
+ <http://www.blogger.com/profile/1109404> <http://xmlns.com/foaf/0.1/img> <$TCPATH/photo1.jpg> .
2
+ <$TCPATH/photo1.jpg> <http://purl.org/dc/elements/1.1/title> "Portrait of Mark" .
3
+ <$TCPATH/photo1.jpg> <http://purl.org/dc/elements/1.1/creator> <http://www.blogger.com/profile/1109404> .
@@ -0,0 +1 @@
1
+ <$TCPATH/0008.xhtml> <http://creativecommons.org/ns#license> <http://creativecommons.org/licenses/by-nc-nd/2.5/> .
@@ -0,0 +1 @@
1
+ <http://example.org/people#Person2> <http://xmlns.com/foaf/0.1/knows> <http://example.org/people#Person1> .
@@ -0,0 +1,2 @@
1
+ <http://example.org/people#Person1> <http://xmlns.com/foaf/0.1/knows> <http://example.org/people#Person2> .
2
+ <http://example.org/people#Person2> <http://xmlns.com/foaf/0.1/knows> <http://example.org/people#Person1> .
@@ -0,0 +1,3 @@
1
+ <$TCPATH/0011.xhtml> <http://purl.org/dc/elements/1.1/creator> "Albert Einstein" .
2
+ # This is one of the allowed result XML Literals
3
+ <$TCPATH/0011.xhtml> <http://purl.org/dc/elements/1.1/title> "E = mc<sup xmlns=\"http://www.w3.org/1999/xhtml\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\">2</sup>: The Most Urgent Problem of Our Time"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral> .
@@ -0,0 +1 @@
1
+ <http://example.org/node> <http://example.org/property> "chat"@fr .
@@ -0,0 +1 @@
1
+ <http://example.org/node> <http://example.org/property> "chat"@fr .
@@ -0,0 +1 @@
1
+ <http://example.org/foo> <http://example.org/bar> "10"^^<http://www.w3.org/2001/XMLSchema#integer> .
@@ -0,0 +1,2 @@
1
+ <$TCPATH/0015.xhtml> <http://purl.org/dc/elements/1.1/creator> "Fyodor Dostoevsky" .
2
+ <$TCPATH/0015.xhtml> <http://purl.org/dc/elements/1.1/source> <urn:isbn:0140449132> .
@@ -0,0 +1,3 @@
1
+ _:a <http://xmlns.com/foaf/0.1/name> "Manu Sporny" .
2
+ _:a <http://xmlns.com/foaf/0.1/knows> _:b .
3
+ _:b <http://xmlns.com/foaf/0.1/name> "Ralph Swick" .
@@ -0,0 +1 @@
1
+ <$TCPATH/photo1.jpg> <http://purl.org/dc/elements/1.1/creator> <http://www.blogger.com/profile/1109404> .
@@ -0,0 +1 @@
1
+ <mailto:manu.sporny@digitalbazaar.com> <http://xmlns.com/foaf/0.1/knows> <mailto:michael.hausenblas@joanneum.at> .
@@ -0,0 +1 @@
1
+ <$TCPATH/photo1.jpg> <http://purl.org/dc/elements/1.1/creator> "Mark Birbeck" .
@@ -0,0 +1 @@
1
+ <$TCPATH/0021.xhtml> <http://purl.org/dc/elements/1.1/creator> "Mark Birbeck" .
@@ -0,0 +1 @@
1
+ <$TCPATH/0023.xhtml> <http://purl.org/dc/elements/1.1/creator> "Mark Birbeck" .
@@ -0,0 +1,2 @@
1
+ <$TCPATH/0025.xhtml> <http://purl.org/dc/elements/1.1/creator> <$TCPATH/0025.xhtml#me> .
2
+ <$TCPATH/0025.xhtml#me> <http://xmlns.com/foaf/0.1/name> "Ben Adida" .
@@ -0,0 +1 @@
1
+ <http://internet-apps.blogspot.com/> <http://purl.org/dc/elements/1.1/creator> "Mark Birbeck" .
@@ -0,0 +1 @@
1
+ <http://internet-apps.blogspot.com/> <http://purl.org/dc/elements/1.1/creator> "Mark Birbeck" .
@@ -0,0 +1 @@
1
+ <http://example.org/foo> <http://purl.org/dc/elements/1.1/creator> "Mark Birbeck"^^<http://www.w3.org/2001/XMLSchema#string> .
@@ -0,0 +1 @@
1
+ <$TCPATH/0030.xhtml> <http://creativecommons.org/ns#license> <http://creativecommons.org/licenses/by-nc-nd/2.5/> .
@@ -0,0 +1 @@
1
+ <$TCPATH/0031.xhtml#wtw> <http://purl.org/dc/elements/1.1/identifier> <urn:ISBN:0752820907> .
@@ -0,0 +1 @@
1
+ <$TCPATH/0032.xhtml#wtw> <http://purl.org/dc/elements/1.1/identifier> <urn:ISBN:0752820907> .
@@ -0,0 +1,2 @@
1
+ <$TCPATH/0033.xhtml> <http://purl.org/dc/elements/1.1/creator> _:a .
2
+ _:a <http://xmlns.com/foaf/0.1/name> "Ben Adida" .
@@ -0,0 +1 @@
1
+ <http://sw-app.org/mic.xhtml#i> <http://xmlns.com/foaf/0.1/img> <http://sw-app.org/img/mic_2007_01.jpg> .
@@ -0,0 +1 @@
1
+ <http://sw-app.org/mic.xhtml#i> <http://xmlns.com/foaf/0.1/img> <http://sw-app.org/img/mic_2006_03.jpg> .
@@ -0,0 +1 @@
1
+ <http://sw-app.org/mic.xhtml#i> <http://xmlns.com/foaf/0.1/img> <http://sw-app.org/img/mic_2006_03.jpg> .
@@ -0,0 +1 @@
1
+ <http://sw-app.org/mic.xhtml#i> <http://xmlns.com/foaf/0.1/img> <http://sw-app.org/mic.xhtml#photo> .
@@ -0,0 +1 @@
1
+ <http://sw-app.org/img/mic_2007_01.jpg> <http://xmlns.com/foaf/0.1/depicts> <http://sw-app.org/mic.xhtml#i> .
@@ -0,0 +1 @@
1
+ <http://sw-app.org/img/mic_2006_03.jpg> <http://xmlns.com/foaf/0.1/depicts> <http://sw-app.org/mic.xhtml#i> .
@@ -0,0 +1 @@
1
+ <http://sw-app.org/img/mic_2006_03.jpg> <http://www.w3.org/1999/xhtml/vocab#alternate> <http://sw-app.org/img/mic_2007_01.jpg> .
@@ -0,0 +1 @@
1
+ <http://sw-app.org/mic.xhtml#photo> <http://xmlns.com/foaf/0.1/depicts> <http://sw-app.org/mic.xhtml#i> .
File without changes
@@ -0,0 +1,3 @@
1
+ _:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Document> .
2
+ _:a <http://xmlns.com/foaf/0.1/maker> _:b .
3
+ _:b <http://xmlns.com/foaf/0.1/name> "John Doe" .
@@ -0,0 +1,3 @@
1
+ _:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Document> .
2
+ _:a <http://xmlns.com/foaf/0.1/maker> <http://www.example.org/#me> .
3
+ <http://www.example.org/#me> <http://xmlns.com/foaf/0.1/name> "John Doe" .
@@ -0,0 +1,3 @@
1
+ <http://www.example.org/#me> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
2
+ <http://www.example.org/#me> <http://xmlns.com/foaf/0.1/knows> _:a .
3
+ _:a <http://xmlns.com/foaf/0.1/name> "John Doe" .
@@ -0,0 +1,2 @@
1
+ <http://www.example.org/#me> <http://xmlns.com/foaf/0.1/name> "John Doe" .
2
+ <http://www.example.org/#me> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
@@ -0,0 +1,2 @@
1
+ _:a <http://xmlns.com/foaf/0.1/name> "John Doe" .
2
+ _:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
@@ -0,0 +1,2 @@
1
+ <$TCPATH/0051.xhtml> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Document> .
2
+ <$TCPATH/0051.xhtml> <http://xmlns.com/foaf/0.1/topic> "John Doe" .
@@ -0,0 +1 @@
1
+ <http://www.example.org/#me> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
@@ -0,0 +1,2 @@
1
+ <http://www.example.org/#me> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
2
+ <http://www.example.org/#me> <http://xmlns.com/foaf/0.1/name> "John Doe" .
@@ -0,0 +1,2 @@
1
+ <$TCPATH/0054.xhtml> <http://purl.org/dc/elements/1.1/creator> "Fabien Gandon" .
2
+ <$TCPATH/0054.xhtml> <http://purl.org/dc/elements/1.1/publisher> "Fabien Gandon" .
@@ -0,0 +1,2 @@
1
+ <$TCPATH/0055.xhtml> <http://purl.org/dc/elements/1.1/creator> <http://www-sop.inria.fr/acacia/fabien/> .
2
+ <$TCPATH/0055.xhtml> <http://purl.org/dc/elements/1.1/publisher> <http://www-sop.inria.fr/acacia/fabien/> .
@@ -0,0 +1,3 @@
1
+ <http://www.example.org/#ben> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
2
+ <http://www.example.org/#ben> <http://xmlns.com/foaf/0.1/knows> <http://www.example.org/#mark> .
3
+ <http://www.example.org/#mark> <http://xmlns.com/foaf/0.1/name> "Mark Birbeck" .
@@ -0,0 +1,4 @@
1
+ <http://www.example.org/#ben> <http://xmlns.com/foaf/0.1/knows> <http://www.example.org/#mark> .
2
+ <http://www.example.org/#ben> <http://xmlns.com/foaf/0.1/knows> <http://www.example.org/#ivan> .
3
+ <http://www.example.org/#mark> <http://xmlns.com/foaf/0.1/name> "Mark Birbeck" .
4
+ <http://www.example.org/#ivan> <http://xmlns.com/foaf/0.1/name> "Ivan Herman" .
@@ -0,0 +1,6 @@
1
+ <http://www.example.org/#ben> <http://xmlns.com/foaf/0.1/knows> _:a .
2
+ <http://www.example.org/#ben> <http://xmlns.com/foaf/0.1/knows> _:b .
3
+ _:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
4
+ _:a <http://xmlns.com/foaf/0.1/name> "Mark Birbeck" .
5
+ _:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
6
+ _:b <http://xmlns.com/foaf/0.1/name> "Ivan Herman" .
@@ -0,0 +1,6 @@
1
+ <$TCPATH/0059.xhtml> <http://purl.org/dc/elements/1.1/creator> <http://www.example.org/#manu> .
2
+ <$TCPATH/0059.xhtml> <http://purl.org/dc/elements/1.1/publisher> <http://www.example.org/#manu> .
3
+ <$TCPATH/0059.xhtml> <http://purl.org/dc/elements/1.1/creator> <http://www.example.org/#fabien> .
4
+ <$TCPATH/0059.xhtml> <http://purl.org/dc/elements/1.1/publisher> <http://www.example.org/#fabien> .
5
+ <http://www.example.org/#manu> <http://xmlns.com/foaf/0.1/name> "Manu Sporny" .
6
+ <http://www.example.org/#fabien> <http://xmlns.com/foaf/0.1/name> "Fabien Gandon" .
@@ -0,0 +1,2 @@
1
+ <http://www.example.org/#matsumoto-kimiko> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
2
+ <http://www.example.org/#matsumoto-kimiko> <http://xmlns.com/foaf/0.1/name> "\u677E\u672C \u540E\u5B50" .
@@ -0,0 +1 @@
1
+ <$TCPATH/0061.xhtml> <http://www.w3.org/1999/xhtml/vocab#next> <$TCPATH/0062.xhtml> .
@@ -0,0 +1 @@
1
+ <$TCPATH/0063.xhtml> <http://www.w3.org/1999/xhtml/vocab#prev> <$TCPATH/0062.xhtml> .
@@ -0,0 +1 @@
1
+ <$TCPATH/0063.xhtml> <http://www.w3.org/1999/xhtml/vocab#next> <$TCPATH/0064.xhtml> .
@@ -0,0 +1 @@
1
+ _:michael <http://xmlns.com/foaf/0.1/knows> <http://digitalbazaar.com/people/manu> .
@@ -0,0 +1,3 @@
1
+ _:manu <http://xmlns.com/foaf/0.1/mbox> <mailto:manu.sporny@digitalbazaar.com> .
2
+ _:michael <http://xmlns.com/foaf/0.1/mbox> <mailto:michael.hausenblas@joanneum.at> .
3
+ _:manu <http://xmlns.com/foaf/0.1/knows> _:michael .
@@ -0,0 +1 @@
1
+ <$TCPATH/0066.xhtml> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Document> .
@@ -0,0 +1 @@
1
+ <$TCPATH/0067.xhtml> <http://xmlns.com/foaf/0.1/topic> "Test 0067" .
@@ -0,0 +1 @@
1
+ <$TCPATH/0067.xhtml> <http://purl.org/dc/elements/1.1/title> "Test 0067" .
@@ -0,0 +1 @@
1
+ <$TCPATH/0069.xhtml> <http://www.w3.org/1999/xhtml/vocab#next> <$TCPATH/0070.xhtml> .
@@ -0,0 +1 @@
1
+ <$TCPATH/0070.xhtml> <http://www.w3.org/1999/xhtml/vocab#prev> <$TCPATH/0069.xhtml> .
@@ -0,0 +1 @@
1
+ <$TCPATH/0071.xhtml> <http://creativecommons.org/ns#license> <http://creativecommons.org/licenses/by-nd/3.0/> .