activerdf_net7 1.6.11

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.
Files changed (190) hide show
  1. data/CHANGELOG +79 -0
  2. data/LICENSE +504 -0
  3. data/README.rdoc +34 -0
  4. data/activerdf-jena/CHANGELOG +14 -0
  5. data/activerdf-jena/LICENSE +504 -0
  6. data/activerdf-jena/README +57 -0
  7. data/activerdf-jena/Rakefile +87 -0
  8. data/activerdf-jena/TODO +18 -0
  9. data/activerdf-jena/VERSION +1 -0
  10. data/activerdf-jena/ext/antlr-2.7.5.jar +0 -0
  11. data/activerdf-jena/ext/arq-extra.jar +0 -0
  12. data/activerdf-jena/ext/arq.jar +0 -0
  13. data/activerdf-jena/ext/aterm-java-1.6.jar +0 -0
  14. data/activerdf-jena/ext/commons-logging-1.1.jar +0 -0
  15. data/activerdf-jena/ext/concurrent.jar +0 -0
  16. data/activerdf-jena/ext/icu4j_3_4.jar +0 -0
  17. data/activerdf-jena/ext/iri.jar +0 -0
  18. data/activerdf-jena/ext/jena.jar +0 -0
  19. data/activerdf-jena/ext/jenatest.jar +0 -0
  20. data/activerdf-jena/ext/json.jar +0 -0
  21. data/activerdf-jena/ext/junit.jar +0 -0
  22. data/activerdf-jena/ext/log4j-1.2.12.jar +0 -0
  23. data/activerdf-jena/ext/lucene-core-2.0.0.jar +0 -0
  24. data/activerdf-jena/ext/ng4j.jar +0 -0
  25. data/activerdf-jena/ext/pellet.jar +0 -0
  26. data/activerdf-jena/ext/relaxngDatatype.jar +0 -0
  27. data/activerdf-jena/ext/stax-api-1.0.jar +0 -0
  28. data/activerdf-jena/ext/wstx-asl-3.0.0.jar +0 -0
  29. data/activerdf-jena/ext/xercesImpl.jar +0 -0
  30. data/activerdf-jena/ext/xml-apis.jar +0 -0
  31. data/activerdf-jena/ext/xsdlib.jar +0 -0
  32. data/activerdf-jena/lib/activerdf_jena/init.rb +26 -0
  33. data/activerdf-jena/lib/activerdf_jena/jena.rb +59 -0
  34. data/activerdf-jena/lib/activerdf_jena/jena_adapter.rb +515 -0
  35. data/activerdf-jena/lib/activerdf_jena/lucene.rb +22 -0
  36. data/activerdf-jena/lib/activerdf_jena/ng4j.rb +50 -0
  37. data/activerdf-jena/lib/activerdf_jena/ng4j_adapter.rb +379 -0
  38. data/activerdf-jena/lib/activerdf_jena/pellet.rb +25 -0
  39. data/activerdf-jena/test/bnode_org_rss.rdf +793 -0
  40. data/activerdf-jena/test/eyal-foaf.nt +39 -0
  41. data/activerdf-jena/test/fun_with_bnodes.nt +2 -0
  42. data/activerdf-jena/test/s1.n3 +18 -0
  43. data/activerdf-jena/test/test_data.nt +32 -0
  44. data/activerdf-jena/test/test_jena_adapter.rb +451 -0
  45. data/activerdf-jena/test/test_ng4j_adapter.rb +354 -0
  46. data/activerdf-rdflite/CHANGELOG +31 -0
  47. data/activerdf-rdflite/LICENSE +504 -0
  48. data/activerdf-rdflite/README +16 -0
  49. data/activerdf-rdflite/Rakefile +73 -0
  50. data/activerdf-rdflite/VERSION +1 -0
  51. data/activerdf-rdflite/lib/activerdf_rdflite/fetching.rb +34 -0
  52. data/activerdf-rdflite/lib/activerdf_rdflite/init.rb +13 -0
  53. data/activerdf-rdflite/lib/activerdf_rdflite/rdflite.rb +582 -0
  54. data/activerdf-rdflite/lib/activerdf_rdflite/suggesting.rb +87 -0
  55. data/activerdf-rdflite/test/test_bnode_data.nt +5 -0
  56. data/activerdf-rdflite/test/test_data.nt +32 -0
  57. data/activerdf-rdflite/test/test_escaped_data.nt +2 -0
  58. data/activerdf-rdflite/test/test_fetching.rb +33 -0
  59. data/activerdf-rdflite/test/test_rdflite.rb +277 -0
  60. data/activerdf-redland/CHANGELOG +12 -0
  61. data/activerdf-redland/LICENSE +504 -0
  62. data/activerdf-redland/README +9 -0
  63. data/activerdf-redland/Rakefile +72 -0
  64. data/activerdf-redland/VERSION +1 -0
  65. data/activerdf-redland/lib/activerdf_redland/init.rb +10 -0
  66. data/activerdf-redland/lib/activerdf_redland/redland.rb +362 -0
  67. data/activerdf-redland/test/test_person_data.nt +42 -0
  68. data/activerdf-redland/test/test_redland_adapter.rb +242 -0
  69. data/activerdf-sesame/CHANGELOG +6 -0
  70. data/activerdf-sesame/LICENSE +10 -0
  71. data/activerdf-sesame/LICENSE-aduna +10 -0
  72. data/activerdf-sesame/LICENSE-lgpl +504 -0
  73. data/activerdf-sesame/README +33 -0
  74. data/activerdf-sesame/Rakefile +77 -0
  75. data/activerdf-sesame/VERSION +1 -0
  76. data/activerdf-sesame/ext/commons-codec-1.3.jar +0 -0
  77. data/activerdf-sesame/ext/commons-dbcp-1.2.2.jar +0 -0
  78. data/activerdf-sesame/ext/commons-httpclient-3.1.jar +0 -0
  79. data/activerdf-sesame/ext/commons-logging-1.1.1.jar +0 -0
  80. data/activerdf-sesame/ext/commons-pool-1.3.jar +0 -0
  81. data/activerdf-sesame/ext/commons-pool-1.5.2.jar +0 -0
  82. data/activerdf-sesame/ext/junit-3.8.2.jar +0 -0
  83. data/activerdf-sesame/ext/openrdf-sesame-2.0-onejar.jar +0 -0
  84. data/activerdf-sesame/ext/openrdf-sesame-2.3-pr1-onejar.jar +0 -0
  85. data/activerdf-sesame/ext/slf4j-api-1.4.3.jar +0 -0
  86. data/activerdf-sesame/ext/slf4j-nop-1.4.3.jar +0 -0
  87. data/activerdf-sesame/ext/wrapper-sesame2.jar +0 -0
  88. data/activerdf-sesame/java/build.number +3 -0
  89. data/activerdf-sesame/java/build.xml +313 -0
  90. data/activerdf-sesame/java/javadoc/allclasses-frame.html +31 -0
  91. data/activerdf-sesame/java/javadoc/allclasses-noframe.html +31 -0
  92. data/activerdf-sesame/java/javadoc/constant-values.html +146 -0
  93. data/activerdf-sesame/java/javadoc/deprecated-list.html +146 -0
  94. data/activerdf-sesame/java/javadoc/help-doc.html +223 -0
  95. data/activerdf-sesame/java/javadoc/index-files/index-1.html +150 -0
  96. data/activerdf-sesame/java/javadoc/index-files/index-10.html +145 -0
  97. data/activerdf-sesame/java/javadoc/index-files/index-2.html +157 -0
  98. data/activerdf-sesame/java/javadoc/index-files/index-3.html +146 -0
  99. data/activerdf-sesame/java/javadoc/index-files/index-4.html +145 -0
  100. data/activerdf-sesame/java/javadoc/index-files/index-5.html +145 -0
  101. data/activerdf-sesame/java/javadoc/index-files/index-6.html +142 -0
  102. data/activerdf-sesame/java/javadoc/index-files/index-7.html +145 -0
  103. data/activerdf-sesame/java/javadoc/index-files/index-8.html +152 -0
  104. data/activerdf-sesame/java/javadoc/index-files/index-9.html +146 -0
  105. data/activerdf-sesame/java/javadoc/index.html +36 -0
  106. data/activerdf-sesame/java/javadoc/org/activerdf/wrapper/sesame2/WrapperForSesame2.html +665 -0
  107. data/activerdf-sesame/java/javadoc/org/activerdf/wrapper/sesame2/class-use/WrapperForSesame2.html +144 -0
  108. data/activerdf-sesame/java/javadoc/org/activerdf/wrapper/sesame2/package-frame.html +32 -0
  109. data/activerdf-sesame/java/javadoc/org/activerdf/wrapper/sesame2/package-summary.html +157 -0
  110. data/activerdf-sesame/java/javadoc/org/activerdf/wrapper/sesame2/package-tree.html +150 -0
  111. data/activerdf-sesame/java/javadoc/org/activerdf/wrapper/sesame2/package-use.html +144 -0
  112. data/activerdf-sesame/java/javadoc/overview-summary.html +156 -0
  113. data/activerdf-sesame/java/javadoc/overview-tree.html +152 -0
  114. data/activerdf-sesame/java/javadoc/package-list +1 -0
  115. data/activerdf-sesame/java/javadoc/resources/inherit.gif +0 -0
  116. data/activerdf-sesame/java/javadoc/stylesheet.css +29 -0
  117. data/activerdf-sesame/java/lib/commons-codec-1.3.jar +0 -0
  118. data/activerdf-sesame/java/lib/commons-dbcp-1.2.2.jar +0 -0
  119. data/activerdf-sesame/java/lib/commons-httpclient-3.1.jar +0 -0
  120. data/activerdf-sesame/java/lib/commons-logging-1.1.1.jar +0 -0
  121. data/activerdf-sesame/java/lib/commons-pool-1.3.jar +0 -0
  122. data/activerdf-sesame/java/lib/commons-pool-1.5.2.jar +0 -0
  123. data/activerdf-sesame/java/lib/junit-3.8.2.jar +0 -0
  124. data/activerdf-sesame/java/lib/openrdf-sesame-2.0-onejar.jar +0 -0
  125. data/activerdf-sesame/java/lib/openrdf-sesame-2.3-pr1-onejar.jar +0 -0
  126. data/activerdf-sesame/java/lib/slf4j-api-1.4.3.jar +0 -0
  127. data/activerdf-sesame/java/lib/slf4j-nop-1.4.3.jar +0 -0
  128. data/activerdf-sesame/java/manifest.mf +3 -0
  129. data/activerdf-sesame/java/settings.xml +135 -0
  130. data/activerdf-sesame/java/src/org/activerdf/wrapper/sesame2/WrapperForSesame2.java +145 -0
  131. data/activerdf-sesame/java/test-src/org/activerdf/wrapper/sesame2/TestWrapperForSesame2.java +41 -0
  132. data/activerdf-sesame/lib/activerdf_sesame/init.rb +11 -0
  133. data/activerdf-sesame/lib/activerdf_sesame/sesame.rb +400 -0
  134. data/activerdf-sesame/test/eyal-foaf.nt +39 -0
  135. data/activerdf-sesame/test/eyal-foaf.rdf +65 -0
  136. data/activerdf-sesame/test/test_sesame_adapter.rb +341 -0
  137. data/activerdf-sparql/CHANGELOG +35 -0
  138. data/activerdf-sparql/LICENSE +504 -0
  139. data/activerdf-sparql/README +10 -0
  140. data/activerdf-sparql/Rakefile +78 -0
  141. data/activerdf-sparql/VERSION +1 -0
  142. data/activerdf-sparql/lib/activerdf_sparql/init.rb +10 -0
  143. data/activerdf-sparql/lib/activerdf_sparql/sparql.rb +212 -0
  144. data/activerdf-sparql/lib/activerdf_sparql/sparql_result_parser.rb +55 -0
  145. data/activerdf-sparql/test/test_sparql_adapter.rb +108 -0
  146. data/activerdf-yars/LICENSE +504 -0
  147. data/activerdf-yars/README +10 -0
  148. data/activerdf-yars/Rakefile +38 -0
  149. data/activerdf-yars/lib/activerdf_yars/init.rb +10 -0
  150. data/activerdf-yars/lib/activerdf_yars/jars2.rb +119 -0
  151. data/lib/active_rdf.rb +85 -0
  152. data/lib/active_rdf/directaccess/direct_access.rb +49 -0
  153. data/lib/active_rdf/federation/active_rdf_adapter.rb +47 -0
  154. data/lib/active_rdf/federation/connection_pool.rb +156 -0
  155. data/lib/active_rdf/federation/federation_manager.rb +112 -0
  156. data/lib/active_rdf/instance_exec.rb +13 -0
  157. data/lib/active_rdf/objectmanager/bnode.rb +7 -0
  158. data/lib/active_rdf/objectmanager/literal.rb +71 -0
  159. data/lib/active_rdf/objectmanager/namespace.rb +106 -0
  160. data/lib/active_rdf/objectmanager/object_manager.rb +119 -0
  161. data/lib/active_rdf/objectmanager/ordered_set.rb +116 -0
  162. data/lib/active_rdf/objectmanager/property_list.rb +76 -0
  163. data/lib/active_rdf/objectmanager/resource.rb +609 -0
  164. data/lib/active_rdf/objectmanager/resource_like.rb +28 -0
  165. data/lib/active_rdf/queryengine/ntriples_parser.rb +90 -0
  166. data/lib/active_rdf/queryengine/query.rb +245 -0
  167. data/lib/active_rdf/queryengine/query2jars2.rb +22 -0
  168. data/lib/active_rdf/queryengine/query2sparql.rb +139 -0
  169. data/lib/active_rdf_helpers.rb +30 -0
  170. data/lib/active_rdf_log.rb +100 -0
  171. data/test/common.rb +119 -0
  172. data/test/directaccess/test_direct_access.rb +64 -0
  173. data/test/federation/test_connection_pool.rb +86 -0
  174. data/test/federation/test_federation_manager.rb +145 -0
  175. data/test/objectmanager/test_literal.rb +52 -0
  176. data/test/objectmanager/test_namespace.rb +83 -0
  177. data/test/objectmanager/test_object_manager.rb +96 -0
  178. data/test/objectmanager/test_ordered_set.rb +110 -0
  179. data/test/objectmanager/test_resource_reading.rb +150 -0
  180. data/test/objectmanager/test_resource_writing.rb +39 -0
  181. data/test/objectmanager/test_talia_syntax.rb +68 -0
  182. data/test/queryengine/my_external_resource.rb +24 -0
  183. data/test/queryengine/test_external_resource_class.rb +49 -0
  184. data/test/queryengine/test_ntriples_parser.rb +71 -0
  185. data/test/queryengine/test_query.rb +55 -0
  186. data/test/queryengine/test_query2jars2.rb +51 -0
  187. data/test/queryengine/test_query2sparql.rb +76 -0
  188. data/test/queryengine/test_query_engine.rb +52 -0
  189. data/test/test_adapters.rb +58 -0
  190. metadata +266 -0
@@ -0,0 +1,52 @@
1
+ # Author:: Eyal Oren
2
+ # Copyright:: (c) 2005-2006
3
+ # License:: LGPL
4
+
5
+ require 'test/unit'
6
+ require 'active_rdf'
7
+ require "#{File.dirname(__FILE__)}/../common"
8
+
9
+ class TestLiteral < Test::Unit::TestCase
10
+ def setup
11
+ ConnectionPool.clear
12
+ @adapter = get_adapter
13
+ end
14
+
15
+ def teardown
16
+ end
17
+
18
+ def test_xsd_string
19
+ test = Literal.typed('test', XSD::string)
20
+ assert_equal '"test"^^<http://www.w3.org/2001/XMLSchema#string>', test.to_ntriple
21
+ end
22
+
23
+ def test_automatic_conversion
24
+ # infer string
25
+ test = 'test'
26
+ assert_equal '"test"^^<http://www.w3.org/2001/XMLSchema#string>', test.to_ntriple
27
+
28
+ # infer integer
29
+ test = 18
30
+ assert_equal '"18"^^<http://www.w3.org/2001/XMLSchema#integer>', test.to_ntriple
31
+
32
+ # infer boolean
33
+ test = true
34
+ assert_equal '"true"^^<http://www.w3.org/2001/XMLSchema#boolean>', test.to_ntriple
35
+ end
36
+
37
+ def test_equality
38
+ test1 = 'test'
39
+ test2 = Literal.typed('test', XSD::string)
40
+ assert_equal test2.to_ntriple, test1.to_ntriple
41
+ end
42
+
43
+ def test_language_tag
44
+ cat = 'cat'
45
+ cat_en = LocalizedString.new('cat', '@en')
46
+ assert_equal '"cat"@en', cat_en.to_ntriple
47
+ assert_not_equal cat.to_ntriple, cat_en.to_ntriple
48
+
49
+ assert_equal '"dog"@en-GB', LocalizedString.new('dog', '@en-GB').to_ntriple
50
+ assert_equal '"dog"@en@test', LocalizedString.new('dog', '@en@test').to_ntriple
51
+ end
52
+ end
@@ -0,0 +1,83 @@
1
+ # Author:: Eyal Oren
2
+ # Copyright:: (c) 2005-2006
3
+ # License:: LGPL
4
+
5
+ require 'test/unit'
6
+ require 'active_rdf'
7
+ require 'objectmanager/namespace'
8
+ require "#{File.dirname(__FILE__)}/../common"
9
+
10
+ class TestNamespace < Test::Unit::TestCase
11
+ Rdf = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'
12
+ Rdfs = 'http://www.w3.org/2000/01/rdf-schema#'
13
+ RdfType = RDFS::Resource.new('http://www.w3.org/1999/02/22-rdf-syntax-ns#type')
14
+ RdfsResource = RDFS::Resource.new('http://www.w3.org/2000/01/rdf-schema#Resource')
15
+
16
+ def setup
17
+ end
18
+
19
+ def teardown
20
+ end
21
+
22
+ def test_default_ns_expansion
23
+ rdftype = RdfType
24
+ rdfsresource = RdfsResource
25
+
26
+ assert_equal rdftype, RDF::type
27
+ assert_equal rdftype, Namespace.lookup(:rdf, :type)
28
+ assert_equal rdftype, Namespace.lookup(:rdf, 'type')
29
+ assert_equal rdftype, Namespace.lookup('rdf', :type)
30
+ assert_equal rdftype, Namespace.lookup('rdf', 'type')
31
+
32
+ assert_equal rdfsresource, RDFS::Resource
33
+ assert_equal rdfsresource, Namespace.lookup(:rdfs, :Resource)
34
+ assert_equal rdfsresource, Namespace.lookup(:rdfs, 'Resource')
35
+ assert_equal rdfsresource, Namespace.lookup('rdfs', :Resource)
36
+ assert_equal rdfsresource, Namespace.lookup('rdfs', 'Resource')
37
+ end
38
+
39
+ def test_registration_of_rdf_and_rdfs
40
+ rdftype = RDFS::Resource.new RdfType
41
+ rdfsresource = RDFS::Resource.new RdfsResource
42
+
43
+ assert_equal rdftype, RDF::type
44
+ assert_equal rdfsresource, RDFS::Resource
45
+ end
46
+
47
+ def test_find_prefix
48
+ assert_equal :rdf, Namespace.prefix(Namespace.lookup(:rdf, :type))
49
+ assert_equal :rdf, Namespace.prefix(Namespace.expand(:rdf, :type))
50
+
51
+ assert_equal :rdfs, Namespace.prefix(Namespace.lookup(:rdfs, :Resource))
52
+ assert_equal :rdfs, Namespace.prefix(Namespace.expand(:rdfs, :Resource))
53
+ end
54
+
55
+ def test_class_localname
56
+ assert_equal 'type', Namespace.lookup(:rdf, :type).localname
57
+ assert_equal 'type', RDF::type.localname
58
+
59
+ assert_equal 'Class', Namespace.lookup(:rdfs, :Class).localname
60
+ assert_equal 'Class', RDFS::Class.localname
61
+ end
62
+
63
+ def test_class_register
64
+ test = 'http://test.org/'
65
+ abc = RDFS::Resource.new("#{test}abc")
66
+ Namespace.register :test, test
67
+
68
+ assert_equal abc, Namespace.lookup(:test, :abc)
69
+ assert_equal abc, TEST::abc
70
+ end
71
+
72
+ def test_attributes
73
+ assert_nothing_raised { RDFS::domain }
74
+ assert_nothing_raised { RDF::type }
75
+ assert_raise(NameError) { FOAF::type }
76
+
77
+ foaf = 'http://xmlns.com/foaf/0.1/'
78
+ Namespace.register :foaf, foaf
79
+
80
+ foafname = RDFS::Resource.new(foaf + 'name')
81
+ assert_equal foafname, FOAF::name
82
+ end
83
+ end
@@ -0,0 +1,96 @@
1
+ # Author:: Eyal Oren
2
+ # Copyright:: (c) 2005-2006
3
+ # License:: LGPL
4
+
5
+ require 'test/unit'
6
+ require 'active_rdf'
7
+ require "#{File.dirname(__FILE__)}/../common"
8
+
9
+ class TestObjectManager < Test::Unit::TestCase
10
+ def setup
11
+ ConnectionPool.clear
12
+ end
13
+
14
+ def teardown
15
+ end
16
+
17
+ def test_resource_creation
18
+ assert_nothing_raised { RDFS::Resource.new('abc') }
19
+
20
+ r1 = RDFS::Resource.new('abc')
21
+ r2 = RDFS::Resource.new('cde')
22
+ r3 = RDFS::Resource.new('cde')
23
+ assert_equal r3, RDFS::Resource.new(r3)
24
+ assert_equal r3, RDFS::Resource.new(r3.to_s)
25
+
26
+ assert_equal 'abc', r1.uri
27
+ assert_equal 'cde', r2.uri
28
+ assert_equal r3, r2
29
+ end
30
+
31
+ def test_class_construct_classes
32
+ adapter = get_write_adapter
33
+ adapter.load "#{File.dirname(__FILE__)}/../test_person_data.nt"
34
+
35
+ Namespace.register(:test, 'http://activerdf.org/test/')
36
+
37
+ assert_equal RDFS::Resource.new('http://activerdf.org/test/Person'), TEST::Person
38
+ assert_kind_of Class, TEST::Person
39
+ assert TEST::Person.ancestors.include?(RDFS::Resource)
40
+ assert_instance_of TEST::Person, TEST::Person.new('')
41
+ assert TEST::Person.new('').respond_to?(:uri)
42
+
43
+ assert_equal RDFS::Resource.new('http://www.w3.org/2000/01/rdf-schema#Class'), RDFS::Class
44
+ assert RDFS::Class.ancestors.include?(RDFS::Resource)
45
+ assert_kind_of Class, RDFS::Class
46
+ assert_instance_of RDFS::Resource, RDFS::Class.new('')
47
+ assert RDFS::Class.new('').respond_to?(:uri)
48
+ end
49
+
50
+ def test_custom_code
51
+ Namespace.register(:test, 'http://activerdf.org/test/')
52
+
53
+ TEST::Person.module_eval{ def hello; 'world'; end }
54
+ assert_respond_to TEST::Person.new(''), :hello
55
+ assert_equal 'world', TEST::Person.new('').hello
56
+ end
57
+
58
+ def test_class_uri
59
+ adapter = get_write_adapter
60
+ adapter.load "#{File.dirname(__FILE__)}/../test_person_data.nt"
61
+ Namespace.register(:test, 'http://activerdf.org/test/')
62
+
63
+ assert_equal RDFS::Resource.new('http://www.w3.org/1999/02/22-rdf-syntax-ns#type'), RDF::type
64
+ assert_equal RDF::type, RDFS::Resource.new('http://www.w3.org/1999/02/22-rdf-syntax-ns#type')
65
+ assert_equal TEST::Person, RDFS::Resource.new('http://activerdf.org/test/Person')
66
+ assert_equal RDFS::Resource.new('http://activerdf.org/test/Person'), TEST::Person
67
+ end
68
+
69
+ def test_to_xml
70
+ get_adapter.load "#{File.dirname(__FILE__)}/../test_person_data.nt"
71
+ Namespace.register(:test, 'http://activerdf.org/test/')
72
+
73
+ eyal = RDFS::Resource.new 'http://activerdf.org/test/eyal'
74
+ eyal.age = 29
75
+ assert_equal 29, eyal.age
76
+ snippet =
77
+ '<rdf:Description rdf:about="#eyal">
78
+ <test:age rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">29</test:age>
79
+ <test:eye rdf:datatype="http://www.w3.org/2001/XMLSchema#string">blue</test:eye>
80
+ <rdf:type rdf:resource="http://activerdf.org/test/Person"/>
81
+ <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
82
+ </rdf:Description>
83
+ </rdf:RDF>'
84
+ # Ignore whitespaces in comparison
85
+ assert eyal.to_xml.gsub!(/\s+/, '').include?(snippet.gsub!(/\s+/, ''))
86
+
87
+ require 'net/http'
88
+ url = 'http://librdf.org/parse'
89
+ uri = URI.parse(url)
90
+ req = Net::HTTP::Post.new(url)
91
+ req.set_form_data('content'=>eyal.to_xml, 'language'=>'rdfxml')
92
+ res = Net::HTTP.new(uri.host,uri.port).start {|http| http.request(req) }
93
+ result = res.body.match(/Found.*triples/)[0]
94
+ assert_equal "Found 4 triples", result, 'invalid XML generated (according to online parser at librdf.org'
95
+ end
96
+ end
@@ -0,0 +1,110 @@
1
+ #
2
+ # To change this template, choose Tools | Templates
3
+ # and open the template in the editor.
4
+
5
+
6
+ require 'test/unit'
7
+ require 'active_rdf'
8
+ require "#{File.dirname(__FILE__)}/../common"
9
+ require 'objectmanager/ordered_set'
10
+
11
+ class TestOrderedSet < Test::Unit::TestCase
12
+
13
+ def setup
14
+ ConnectionPool.clear
15
+
16
+ adapter = get_write_adapter
17
+ adapter.load "#{File.dirname(__FILE__)}/../test_person_data.nt"
18
+ adapter.load "#{File.dirname(__FILE__)}/../test_rdf_data.nt"
19
+ ObjectManager.construct_classes
20
+
21
+ @ordered_set = OrderedSet.new('http://activerdf.org/test/ordered_set')
22
+
23
+ @item_1 = RDFS::Resource.new 'http://activerdf.org/test/item_1'
24
+ @item_2 = RDFS::Resource.new 'http://activerdf.org/test/item_2'
25
+ @item_3 = RDFS::Resource.new 'http://activerdf.org/test/item_3'
26
+ end
27
+
28
+ def test_resource_type
29
+ assert_kind_of OrderedSet, @ordered_set
30
+ end
31
+
32
+ def test_query
33
+ # add items to container
34
+ @ordered_set.add @item_1
35
+ @ordered_set.add @item_2
36
+ @ordered_set.add @item_3
37
+
38
+ # check if all items are inserted
39
+ assert_equal 3, @ordered_set.elements.size
40
+
41
+ # check elements array
42
+ assert @ordered_set.elements.include?(@item_1)
43
+ assert @ordered_set.elements.include?(@item_2)
44
+ assert @ordered_set.elements.include?(@item_3)
45
+ end
46
+
47
+ def test_at
48
+ # add items to container
49
+ @ordered_set.add @item_1
50
+ @ordered_set.add @item_2
51
+ @ordered_set.add @item_3
52
+
53
+ # check if all items are inserted
54
+ assert_equal 3, @ordered_set.elements.size
55
+
56
+ # check item for each position
57
+ assert_equal @item_1.uri, @ordered_set.at(1).uri
58
+ assert_equal @item_2.uri, @ordered_set.at(2).uri
59
+ assert_equal @item_3.uri, @ordered_set.at(3).uri
60
+ end
61
+
62
+ def test_order
63
+ # add items to container
64
+ @ordered_set.add @item_1
65
+ @ordered_set.add @item_2
66
+ @ordered_set.add @item_3
67
+
68
+ # check if container include each item
69
+ assert_equal @ordered_set.elements[0].uri, @item_1.uri
70
+ assert_equal @ordered_set.elements[1].uri, @item_2.uri
71
+ assert_equal @ordered_set.elements[2].uri, @item_3.uri
72
+ end
73
+
74
+ def test_delete
75
+ # add items to container
76
+ @ordered_set.add @item_1
77
+ @ordered_set.add @item_2
78
+ @ordered_set.add @item_3
79
+
80
+ # check item number
81
+ assert_equal 3, @ordered_set.elements.size
82
+
83
+ # delete item 2
84
+ @ordered_set.delete(2)
85
+ assert_equal 2, @ordered_set.elements.size
86
+ assert_equal @ordered_set.elements[0].uri, @item_1.uri
87
+ assert_equal @ordered_set.elements[1].uri, @item_3.uri
88
+
89
+ # delete all items
90
+ @ordered_set.delete_all
91
+ assert_equal 0, @ordered_set.elements.size
92
+ end
93
+
94
+ def test_replace
95
+ # add items to container
96
+ @ordered_set.add @item_1
97
+ @ordered_set.add @item_2
98
+
99
+ assert_equal 2, @ordered_set.elements.size
100
+
101
+ # replace item 2
102
+ @ordered_set.replace(2, @item_3)
103
+
104
+ # check if item 2 is replaced
105
+ assert_equal 2, @ordered_set.elements.size
106
+ assert_equal @ordered_set.elements[0].uri, @item_1.uri
107
+ assert_equal @ordered_set.elements[1].uri, @item_3.uri
108
+ end
109
+
110
+ end
@@ -0,0 +1,150 @@
1
+ # Author:: Eyal Oren
2
+ # Copyright:: (c) 2005-2006
3
+ # License:: LGPL
4
+
5
+ require 'test/unit'
6
+ require 'active_rdf'
7
+ require 'federation/connection_pool'
8
+ require "#{File.dirname(__FILE__)}/../common"
9
+
10
+ class TestResourceReading < Test::Unit::TestCase
11
+ def setup
12
+ ConnectionPool.clear
13
+ @adapter = get_adapter
14
+ @adapter.load "#{File.dirname(__FILE__)}/../test_person_data.nt"
15
+ Namespace.register(:test, 'http://activerdf.org/test/')
16
+
17
+ @eyal = RDFS::Resource.new 'http://activerdf.org/test/eyal'
18
+ end
19
+
20
+ def teardown
21
+ end
22
+
23
+ def test_find_all_instances
24
+ assert_equal 7, RDFS::Resource.find_all.size
25
+ assert_equal [TEST::eyal, TEST::other], TEST::Person.find_all
26
+ end
27
+
28
+ def test_class_predicates
29
+ assert_equal 5, RDFS::Resource.predicates.size
30
+ end
31
+
32
+ def test_eyal_predicates
33
+ # assert that eyal's three direct predicates are eye, age, and type
34
+ preds = @eyal.direct_predicates.collect {|p| p.uri }
35
+ assert_equal 3, preds.size
36
+ ['age', 'eye', 'type'].each do |pr|
37
+ assert preds.any? {|uri| uri =~ /.*#{pr}$/ }, "Eyal should have predicate #{pr}"
38
+ end
39
+
40
+ # test class level predicates
41
+ class_preds = @eyal.class_level_predicates.collect {|p| p.uri }
42
+ # eyal.type: person and resource, has predicates age, eye
43
+ # not default rdfs:label, rdfs:comment, etc. because not using rdfs reasoning
44
+ assert_equal 5, class_preds.size
45
+ end
46
+
47
+ def test_eyal_types
48
+ types = @eyal.type
49
+ assert_equal 2, types.size
50
+ assert types.include?(TEST::Person)
51
+ assert types.include?(RDFS::Resource)
52
+ end
53
+
54
+ def test_eyal_age
55
+ # triple exists '<eyal> age 27'
56
+ assert_equal 27, @eyal.age
57
+ assert_equal 27, @eyal.test::age
58
+ assert_equal [27], @eyal.all_age
59
+
60
+ # Person has property car, but eyal has no value for it
61
+ assert_equal nil, @eyal.car
62
+ assert_equal nil, @eyal.test::car
63
+ assert_equal [], @eyal.all_test::car
64
+
65
+ # non-existent method should throw error
66
+ assert_equal nil, @eyal.non_existing_method
67
+ end
68
+
69
+ def test_eyal_type
70
+ assert_instance_of RDFS::Resource, @eyal
71
+ assert_instance_of TEST::Person, @eyal
72
+ end
73
+
74
+ def test_find_options
75
+ all = [Namespace.lookup(:test,:Person), Namespace.lookup(:rdfs, :Class), Namespace.lookup(:rdf, :Property), @eyal, TEST::car, TEST::age, TEST::eye]
76
+ found = RDFS::Resource.find
77
+ assert_equal all.sort, found.sort
78
+
79
+ properties = [TEST::car, TEST::age, TEST::eye]
80
+ found = RDFS::Resource.find(:where => {RDFS::domain => RDFS::Resource})
81
+ assert_equal properties.sort, found.sort
82
+
83
+ found = RDFS::Resource.find(:where => {RDFS::domain => RDFS::Resource, :prop => :any})
84
+ assert_equal properties.sort, found.sort
85
+
86
+ found = TEST::Person.find(:order => TEST::age)
87
+ assert_equal [TEST::other, TEST::eyal].sort, found.sort
88
+ end
89
+
90
+ def test_find_methods
91
+ assert_equal [@eyal], RDFS::Resource.find_by_eye('blue')
92
+ assert_equal [@eyal], RDFS::Resource.find_by_test::eye('blue')
93
+
94
+ assert_equal [@eyal], RDFS::Resource.find_by_age(27)
95
+ assert_equal [@eyal], RDFS::Resource.find_by_test::age(27)
96
+
97
+ assert_equal [@eyal], RDFS::Resource.find_by_age_and_eye(27, 'blue')
98
+ assert_equal [@eyal], RDFS::Resource.find_by_test::age_and_test::eye(27, 'blue')
99
+ assert_equal [@eyal], RDFS::Resource.find_by_test::age_and_eye(27, 'blue')
100
+ assert_equal [@eyal], RDFS::Resource.find_by_age_and_test::eye(27, 'blue')
101
+ end
102
+
103
+ # test for writing if no write adapter is defined (like only sparqls)
104
+ def test_write_without_write_adapter
105
+ ConnectionPool.clear
106
+ get_read_only_adapter
107
+ assert_raises(ActiveRdfError) { @eyal.test::age = 18 }
108
+ end
109
+
110
+ def test_finders_with_options
111
+ ConnectionPool.clear
112
+ adapter = get_adapter
113
+ file_one = "#{File.dirname(__FILE__)}/../small-one.nt"
114
+ file_two = "#{File.dirname(__FILE__)}/../small-two.nt"
115
+ one = RDFS::Resource.new("file:#{file_one}")
116
+ two = RDFS::Resource.new("file:#{file_two}")
117
+
118
+ if (adapter.class.to_s != "SesameAdapter")
119
+ adapter.load file_one
120
+ adapter.load file_two
121
+ else
122
+ adapter.load(file_one, 'ntriples', one)
123
+ adapter.load(file_two, 'ntriples', two)
124
+ end
125
+
126
+ assert_equal 2, RDFS::Resource.find.size
127
+ assert_equal 2, RDFS::Resource.find(:all).size
128
+ assert_equal 2, RDFS::Resource.find(:all, :limit => 10).size
129
+ assert_equal 1, RDFS::Resource.find(:all, :limit => 1).size
130
+ assert_equal 1, RDFS::Resource.find(:all, :context => one).size
131
+ assert_equal 1, RDFS::Resource.find(:all, :context => one, :limit => 1).size
132
+ assert_equal 0, RDFS::Resource.find(:all, :context => one, :limit => 0).size
133
+
134
+ assert_equal 1, RDFS::Resource.find_by_eye('blue').size
135
+ assert_equal 1, RDFS::Resource.find_by_eye('blue', :context => one).size
136
+ assert_equal 0, RDFS::Resource.find_by_eye('blue', :context => two).size
137
+
138
+ assert_equal 2, RDFS::Resource.find_by_rdf::type(RDFS::Resource).size
139
+ assert_equal 1, RDFS::Resource.find_by_rdf::type(RDFS::Resource, :context => one).size
140
+ assert_equal 1, RDFS::Resource.find_by_eye_and_rdf::type('blue', RDFS::Resource, :context => one).size
141
+ end
142
+
143
+ def test_reading_with_block
144
+ qs=<<EOF
145
+ SELECT DISTINCT ?o WHERE { <http://activerdf.org/test/eyal>
146
+ <http://activerdf.org/test/age> ?o . FILTER (regex(lang(?o), '^nl$'))}
147
+ EOF
148
+ @eyal.age {|query, obj| query.lang(obj, "nl"); assert_equal qs.gsub("\n",'').strip, query.to_sp.strip}
149
+ end
150
+ end