rtm 0.2.0 → 0.2.1

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 (88) hide show
  1. data/README +38 -3
  2. data/lib/rtm.rb +25 -47
  3. data/lib/rtm/axes.rb +7 -4
  4. data/lib/rtm/axes/association.rb +1 -1
  5. data/lib/rtm/axes/associations.rb +1 -1
  6. data/lib/rtm/axes/characteristic.rb +1 -1
  7. data/lib/rtm/axes/characteristics.rb +1 -1
  8. data/lib/rtm/axes/topic.rb +3 -3
  9. data/lib/rtm/axes/topics.rb +3 -3
  10. data/lib/rtm/engine.rb +48 -5
  11. data/lib/rtm/extensions.rb +58 -8
  12. data/lib/rtm/io.rb +2 -1
  13. data/lib/rtm/io/tmapix_from.rb +155 -0
  14. data/lib/rtm/io/tmapix_to.rb +223 -0
  15. data/lib/rtm/io/to_hash.rb +79 -41
  16. data/lib/rtm/io/to_jtm.rb +1 -1
  17. data/lib/rtm/io/to_rdf.rb +20 -5
  18. data/lib/rtm/io/to_string.rb +13 -2
  19. data/lib/rtm/io/to_yaml.rb +39 -11
  20. data/lib/rtm/navigation.rb +1 -15
  21. data/lib/rtm/navigation/association/players.rb +1 -1
  22. data/lib/rtm/navigation/name/characteristics.rb +1 -1
  23. data/lib/rtm/navigation/occurrence/characteristics.rb +1 -1
  24. data/lib/rtm/navigation/topic/characteristics.rb +1 -1
  25. data/lib/rtm/navigation/topic/players.rb +1 -1
  26. data/lib/rtm/navigation/topic/supertypes.rb +21 -17
  27. data/lib/rtm/navigation/topic/traverse.rb +1 -1
  28. data/lib/rtm/navigation/topic/types.rb +6 -4
  29. data/lib/rtm/psi.rb +6 -0
  30. data/lib/rtm/sugar.rb +42 -29
  31. data/lib/rtm/sugar/association/hash_access.rb +3 -3
  32. data/lib/rtm/sugar/occurrence/dynamic_value.rb +39 -56
  33. data/lib/rtm/sugar/occurrence/external.rb +53 -0
  34. data/lib/rtm/sugar/reifiable/reifier.rb +21 -0
  35. data/lib/rtm/sugar/role/counterparts.rb +12 -6
  36. data/lib/rtm/sugar/topic/best_name.rb +74 -0
  37. data/lib/rtm/sugar/topic/characteristics.rb +10 -10
  38. data/lib/rtm/sugar/topic/counterparts.rb +131 -119
  39. data/lib/rtm/sugar/topic/scoped.rb +102 -53
  40. data/lib/rtm/sugar/topic/topic_ref.rb +63 -12
  41. data/lib/rtm/sugar/topic/typed.rb +50 -2
  42. data/lib/rtm/sugar/topic_map/query_cache.rb +66 -0
  43. data/lib/rtm/sugar/topic_map/themes.rb +53 -0
  44. data/lib/rtm/sugar/typed/types.rb +1 -1
  45. data/lib/rtm/validation.rb +2 -2
  46. data/lib/rtm/version.rb +18 -6
  47. data/spec/rtm/axes/string_spec.rb +7 -7
  48. data/spec/rtm/axes/strings_spec.rb +10 -10
  49. data/spec/rtm/io/tmapix_from_spec.rb +76 -0
  50. data/spec/rtm/io/tmapix_to_spec.rb +159 -0
  51. data/spec/rtm/io/to_hash_spec.rb +90 -0
  52. data/spec/rtm/io/to_rdf_spec.rb +37 -0
  53. data/spec/rtm/io/to_string_spec.rb +122 -0
  54. data/spec/rtm/io/to_yaml_spec.rb +89 -0
  55. data/spec/rtm/sugar/occurrence/dynamic_value_spec.rb +156 -1
  56. data/spec/rtm/sugar/occurrence/external_spec.rb +129 -0
  57. data/spec/rtm/sugar/reifiable/reifier_spec.rb +41 -0
  58. data/spec/rtm/sugar/role/counterparts_spec.rb +174 -172
  59. data/spec/rtm/sugar/topic/best_name_spec.rb +25 -0
  60. data/spec/rtm/sugar/topic/characteristics_spec.rb +20 -5
  61. data/spec/rtm/sugar/topic/counterparts_spec.rb +41 -1
  62. data/spec/rtm/sugar/topic/hash_access_spec.rb +1 -1
  63. data/spec/rtm/sugar/topic/scoped_spec.rb +178 -114
  64. data/spec/rtm/sugar/topic/topic_ref_spec.rb +10 -10
  65. data/spec/rtm/sugar/topic/typed_spec.rb +196 -134
  66. data/spec/rtm/sugar/topic_map/themes_spec.rb +67 -0
  67. data/spec/rtm/sugar/typed/types_spec.rb +1 -1
  68. data/spec/rtm/tmapi/core/association_spec.rb +2 -2
  69. data/spec/rtm/tmapi/core/datatype_aware_spec.rb +236 -0
  70. data/spec/rtm/tmapi/core/name_spec.rb +186 -1
  71. data/spec/rtm/tmapi/core/occurrence_spec.rb +24 -67
  72. data/spec/rtm/tmapi/core/reifiable_spec.rb +2 -2
  73. data/spec/rtm/tmapi/core/scoped_spec.rb +40 -2
  74. data/spec/rtm/tmapi/core/topic_map_spec.rb +98 -30
  75. data/spec/rtm/tmapi/core/topic_spec.rb +558 -82
  76. data/spec/rtm/tmapi/core/variant_spec.rb +3 -3
  77. data/spec/rtm_spec.rb +0 -1
  78. data/spec/spec_helper.rb +7 -2
  79. data/test/javalibs/junit-4.5.jar +0 -0
  80. data/test/javalibs/tmapi-2.0-tests.jar +0 -0
  81. data/test/tmapi_tests.rb +25 -0
  82. metadata +66 -11
  83. data/lib/rtm/io/ontopia_io.rb +0 -25
  84. data/lib/rtm/io/tmapix.rb +0 -234
  85. data/lib/rtm/sugar/occurrence/externalize.rb +0 -31
  86. data/spec/rtm/io/tmapix_spec.rb +0 -85
  87. data/test/base_unit_test.rb +0 -161
  88. data/test/base_unit_test_tmapi.rb +0 -165
data/lib/rtm/io/to_jtm.rb CHANGED
@@ -88,7 +88,7 @@ module RTM::IO
88
88
  alias :to_json :to_jtm
89
89
  end
90
90
 
91
- RTM.register_extension self
91
+ RTM.register_extension self
92
92
 
93
93
  end
94
94
  end
data/lib/rtm/io/to_rdf.rb CHANGED
@@ -1,21 +1,36 @@
1
1
  # Copyright: Copyright 2009 Topic Maps Lab, University of Leipzig.
2
2
  # License: Apache License, Version 2.0
3
3
 
4
-
5
4
  module RTM::IO
6
5
 
7
6
  # RDF Export.
8
7
  # RTM::TopicMap gets a to_rdf method.
9
- module TORDF
8
+ module ToRDF
10
9
  module TopicMap
11
-
10
+
11
+ # If this topic map is an Ontopia tmapi2 topic map to_rdf_ontopia is
12
+ # called and the RDF reprensentation is returned.
13
+ #
14
+ # Else, a "Not supported" error is raised.
15
+ #
16
+ # :call-seq:
17
+ # to_rdf -> String
18
+ #
12
19
  def to_rdf
13
20
  case self
14
21
  when net.ontopia.topicmaps.impl.tmapi2.TopicMapImpl then to_rdf_ontopia
15
22
  else raise "Not supported for #{self}"
16
23
  end
17
24
  end
18
-
25
+
26
+ # Returns the RDF representation according to RDF2TM
27
+ # of this topic map as String.
28
+ #
29
+ # @see http://www.ontopia.net/topicmaps/materials/rdf2tm.html
30
+ #
31
+ # :call-seq:
32
+ # to_rdf_ontopia -> String
33
+ #
19
34
  def to_rdf_ontopia
20
35
  @out = java.io.StringWriter.new
21
36
  w=Java::NetOntopiaTopicmapsUtilsRdf::RDFTopicMapWriter.new @out
@@ -24,7 +39,7 @@ module RTM::IO
24
39
  end
25
40
  end
26
41
 
27
- RTM.register_extension self
42
+ RTM.register_extension self
28
43
 
29
44
  end
30
45
  end
@@ -3,7 +3,7 @@
3
3
 
4
4
  module RTM::IO
5
5
  # Each Topic Maps Construct gets a custom to_s method which supports optional :short or :long output.
6
- module TOSTRING
6
+ module ToString
7
7
 
8
8
  module TopicMap
9
9
  # Returns different String representations. Try :short (default), :long, :super (original)
@@ -123,7 +123,18 @@ module RTM::IO
123
123
  end
124
124
  end
125
125
  end
126
-
126
+
127
+ module Locator
128
+ def to_s(style=:short)
129
+ case style
130
+ when :short
131
+ value
132
+ when :long
133
+ value
134
+ end
135
+ end
136
+ end
137
+
127
138
  RTM.register_extension( self )
128
139
  end
129
140
  end
@@ -2,56 +2,84 @@
2
2
  # License: Apache License, Version 2.0
3
3
 
4
4
  module RTM::IO
5
- # YAML Export.
5
+ # Yaml Export.
6
6
  # Each Topic Maps Construct gets a to_yaml method.
7
- module TOYAML
7
+ module ToYAML
8
8
 
9
9
  module TopicMap
10
- # Returns the YAML representation of this RTM::TopicMap
10
+ # Returns the YAML representation of this topic map as String.
11
+ #
12
+ # :call-seq:
13
+ # to_yaml -> String
14
+ #
11
15
  def to_yaml
12
16
  to_hash.to_yaml
13
17
  end
14
18
  end
15
19
 
16
20
  module Topic
17
- # Returns the YAML representation of this RTM::Topic
21
+ # Returns the YAML representation of this topic as String.
22
+ #
23
+ # :call-seq:
24
+ # to_yaml -> String
25
+ #
18
26
  def to_yaml
19
27
  to_hash.to_yaml
20
28
  end
21
29
  end
22
30
 
23
31
  module Association
24
- # Returns the YAML representation of this RTM::Association
32
+ # Returns the YAML representation of this association as String.
33
+ #
34
+ # :call-seq:
35
+ # to_yaml -> String
36
+ #
25
37
  def to_yaml
26
38
  to_hash.to_yaml
27
39
  end
28
40
  end
29
41
 
30
42
  module Name
31
- # Returns the YAML representation of this RTM::Name
43
+ # Returns the YAML representation of this name as String.
44
+ #
45
+ # :call-seq:
46
+ # to_yaml -> String
47
+ #
32
48
  def to_yaml
33
49
  to_hash.to_yaml
34
50
  end
35
51
  end
36
52
 
37
53
  module Occurrence
38
- # Returns the YAML representation of this RTM::Occurrence
54
+ # Returns the YAML representation of this occurrence as String.
55
+ #
56
+ # :call-seq:
57
+ # to_yaml -> String
58
+ #
39
59
  def to_yaml
40
60
  to_hash.to_yaml
41
61
  end
42
62
  end
43
63
 
44
64
  module Role
45
- # Returns the YAML representation of this RTM::Role
65
+ # Returns the YAML representation of this role as String.
66
+ #
67
+ # :call-seq:
68
+ # to_yaml -> String
69
+ #
46
70
  def to_yaml
47
- to_yaml_hash.to_yaml
71
+ to_hash.to_yaml
48
72
  end
49
73
  end
50
74
 
51
75
  module Variant
52
- # Returns the YAML representation of this RTM::Variant
76
+ # Returns the YAML representation of this variant as String.
77
+ #
78
+ # :call-seq:
79
+ # to_yaml -> String
80
+ #
53
81
  def to_yaml
54
- to_yaml_hash.to_yaml
82
+ to_hash.to_yaml
55
83
  end
56
84
  end
57
85
 
@@ -20,18 +20,4 @@ require "rtm/navigation/topic/supertypes"
20
20
  require "rtm/navigation/topic/traverse"
21
21
  require "rtm/navigation/topic/types"
22
22
 
23
- module RTM::Topic
24
- include RTM::Navigation::Topic
25
- end
26
-
27
- module RTM::Name
28
- include RTM::Navigation::Name
29
- end
30
-
31
- module RTM::Occurrence
32
- include RTM::Navigation::Occurrence
33
- end
34
-
35
- module RTM::Association
36
- include RTM::Navigation::Association
37
- end
23
+ RTM.register_extension(RTM::Navigation)
@@ -8,7 +8,7 @@ module RTM
8
8
  # Returns all players of roles in this association.
9
9
  #
10
10
  # The optional identifier specifies the type of the roles to be considered.
11
- # The identifier may be a topic or topic reference.
11
+ # The identifier may be a topic reference.
12
12
  #
13
13
  # Multiple instances of the same topics are possible.
14
14
  #
@@ -10,7 +10,7 @@ module RTM
10
10
  # Characteristic for its type. If the type
11
11
  # does not match, nil is returned.
12
12
  #
13
- # The identifier may be a Topic or Topic-Reference.
13
+ # The identifier may be a topic reference.
14
14
  #
15
15
  # :call-seq:
16
16
  # reverse_characteristics -> Topic
@@ -10,7 +10,7 @@ module RTM
10
10
  # Characteristic for its type. If the type
11
11
  # does not match, nil is returned.
12
12
  #
13
- # The identifier may be a Topic or Topic-Reference.
13
+ # The identifier may be a topic reference.
14
14
  #
15
15
  # :call-seq:
16
16
  # reverse_characteristics -> Topic
@@ -9,7 +9,7 @@ module RTM
9
9
  # If an identifier is given, only those Names and Occurrences are returned,
10
10
  # whose type or supertypes include the identifier.
11
11
  #
12
- # Identifier may be a Topic or Topic-Reference.
12
+ # Identifier may be a topic reference.
13
13
  #
14
14
  # The result may be empty.
15
15
  #
@@ -9,7 +9,7 @@ module RTM
9
9
  #
10
10
  # The optional
11
11
  # identifier specifies the type of the Roles to be considered.
12
- # The identifier may be a Topic or Topic-Reference.
12
+ # The identifier may be a topic reference.
13
13
  #
14
14
  # Multiple instances of the same Association are possible.
15
15
  # The result may be empty.
@@ -23,7 +23,7 @@ module RTM
23
23
  # the player of the supertype-Role. The current Topic will play the
24
24
  # subtype-Role. Returns the created Association.
25
25
  #
26
- # Identifier may be a Topic or Topic-Reference.
26
+ # Identifier may be a topic reference.
27
27
  #
28
28
  # :call-seq:
29
29
  # add_supertype(identifier) -> Association
@@ -40,7 +40,7 @@ module RTM
40
40
  # the player of a supertype-Role. The current topic will play the
41
41
  # subtype-Role in each association. Returns the associations.
42
42
  #
43
- # The identifier may be topic references.
43
+ # The identifiers may be topic references.
44
44
  #
45
45
  # :call-seq:
46
46
  # add_supertypes(identifier1, identifier2, ...) -> Array of Associtions
@@ -60,13 +60,15 @@ module RTM
60
60
  # transitive_supertypes -> Array of Topics
61
61
  #
62
62
  def transitive_supertypes
63
- result_types = new_s_t = direct_supertypes
64
- until new_s_t.empty?
65
- new_s_t = new_s_t.map{|s| s.direct_supertypes}.flatten.uniq
66
- new_s_t = new_s_t.reject{|s| result_types.include?(s)}
67
- result_types = result_types + new_s_t
68
- end
69
- return result_types
63
+ # topic_map.cached self, :transitive_supertypes do
64
+ result_types = new_s_t = direct_supertypes
65
+ until new_s_t.empty?
66
+ new_s_t = new_s_t.map{|s| s.direct_supertypes}.flatten.uniq
67
+ new_s_t = new_s_t.reject{|s| result_types.include?(s)}
68
+ result_types = result_types + new_s_t
69
+ end
70
+ result_types
71
+ # end
70
72
  end
71
73
 
72
74
  # Returns all supertypes of this Topic. The result includes the direct_supertypes
@@ -97,7 +99,7 @@ module RTM
97
99
  # the player of the subtype-Role. The current Topic will play the
98
100
  # supertype-Role. Returns the created Association.
99
101
  #
100
- # Identifier may be Topic or Topic Reference.
102
+ # Identifier may be topic reference.
101
103
  #
102
104
  # :call-seq:
103
105
  # add_subtype(identifier) -> Association
@@ -114,7 +116,7 @@ module RTM
114
116
  # the player of a subtype-Role. The current topic will play the
115
117
  # supertype-Role in each association. Returns the associations.
116
118
  #
117
- # The identifier may be topic references.
119
+ # The identifiers may be topic references.
118
120
  #
119
121
  # :call-seq:
120
122
  # add_subtypes(identifier1, identifier2, ...) -> Array of Associtions
@@ -133,13 +135,15 @@ module RTM
133
135
  # transitive_subtypes -> Array of Topics
134
136
  #
135
137
  def transitive_subtypes
136
- result_types = new_s_t = direct_subtypes
137
- until new_s_t.empty?
138
- new_s_t = new_s_t.map{|s| s.direct_subtypes}.flatten.uniq
139
- new_s_t = new_s_t.reject{|s| result_types.include?(s)}
140
- result_types = result_types + new_s_t
138
+ topic_map.cached self, :transitive_subtypes do
139
+ result_types = new_s_t = direct_subtypes
140
+ until new_s_t.empty?
141
+ new_s_t = new_s_t.map{|s| s.direct_subtypes}.flatten.uniq
142
+ new_s_t = new_s_t.reject{|s| result_types.include?(s)}
143
+ result_types = result_types + new_s_t
144
+ end
145
+ result_types
141
146
  end
142
- return result_types
143
147
  end
144
148
 
145
149
  # Returns all subtypes of this Topic. The result includes the direct_subtypes
@@ -12,7 +12,7 @@ module RTM
12
12
  # The current Topic is not included in the result.
13
13
  # The result may be empty.
14
14
  #
15
- # The identifier may be a Topic or Topic-Reference.
15
+ # The identifier may be a topic reference.
16
16
  #
17
17
  # :call-seq:
18
18
  # traverse(identifier) -> Array of Topics
@@ -27,8 +27,9 @@ module RTM
27
27
  # type -> Topic or nil
28
28
  #
29
29
  def type
30
- raise "Topic must have exactly one type to call the type-method. Use the types-method instead." unless types.size < 2
31
- types.size == 1 ? types.to_a.first : nil
30
+ _types = types
31
+ raise "Topic must have exactly one type to call the type-method. Use the types-method instead." unless _types.size < 2
32
+ _types.size == 1 ? _types.to_a.first : nil
32
33
  end
33
34
 
34
35
  # Returns the topics which are instances of this topic.
@@ -52,8 +53,9 @@ module RTM
52
53
  # instance -> Topic
53
54
  #
54
55
  def instance
55
- raise "Topic must have exactly one instance to call the instance-method. Use the instances-method instead." unless instances.size < 2
56
- instances.size == 1 ? instances.to_a.first : nil
56
+ _instances = instances
57
+ raise "Topic must have exactly one instance to call the instance-method. Use the instances-method instead." unless _instances.size < 2
58
+ _instances.size == 1 ? _instances.to_a.first : nil
57
59
  end
58
60
 
59
61
  alias :reverse_types :instances
data/lib/rtm/psi.rb CHANGED
@@ -29,6 +29,9 @@ module RTM
29
29
  PSI[:Integer] = "http://www.w3.org/2001/XMLSchema#integer"
30
30
  PSI[:Int] = "http://www.w3.org/2001/XMLSchema#int"
31
31
  PSI[:Decimal] = "http://www.w3.org/2001/XMLSchema#decimal"
32
+ PSI[:Date] = "http://www.w3.org/2001/XMLSchema#date"
33
+ PSI[:DateTime] = "http://www.w3.org/2001/XMLSchema#dateTime"
34
+ PSI[:Time] = "http://www.w3.org/2001/XMLSchema#time"
32
35
 
33
36
  PSI[:XTM] = "http://psi.topicmaps.org/iso13250/glossary/XTM"
34
37
  PSI[:association] = "http://psi.topicmaps.org/iso13250/glossary/association"
@@ -62,6 +65,9 @@ module RTM
62
65
  PSI[:variant] = "http://psi.topicmaps.org/iso13250/glossary/variant-name"
63
66
  PSI[:variant_name] = "http://psi.topicmaps.org/iso13250/glossary/variant-name"
64
67
 
68
+ PSI[:subject_representation] = "http://psi.topicmapslab.de/subject-representation"
69
+ PSI[:represented_subject] = "http://psi.topicmapslab.de/represented-subject"
70
+
65
71
  # languages
66
72
  # PSI[:] = "http://psi.oasis-open.org/iso/639/#"
67
73
  PSI[:language] = "http://psi.oasis-open.org/iso/639/#language"
data/lib/rtm/sugar.rb CHANGED
@@ -1,34 +1,47 @@
1
1
  # Copyright: Copyright 2009 Topic Maps Lab, University of Leipzig.
2
2
  # License: Apache License, Version 2.0
3
3
 
4
- module RTM::Topic
5
- require 'rtm/sugar/topic/topic_ref'
6
- include Sugar::Topic::TopicRef
7
- require 'rtm/sugar/topic/hash_access'
8
- include RTM::Sugar::Topic::HashAccess
9
- require 'rtm/sugar/topic/characteristics'
10
- include Sugar::Topic::Characteristics
11
- require 'rtm/sugar/topic/counterparts'
12
- include Sugar::Topic::Counterparts
13
- require 'rtm/sugar/topic/scoped'
14
- include Sugar::Topic::Scoped
15
- require 'rtm/sugar/topic/typed'
16
- include Sugar::Topic::Typed
17
- end
18
- module RTM::Association
19
- require "rtm/sugar/association/hash_access"
20
- include Sugar::Association::HashAccess
21
- end
22
- module RTM::Role
23
- require "rtm/sugar/role/counterparts"
24
- include Sugar::Role::Counterparts
25
- end
26
- module RTM::Occurrence
27
- require "rtm/sugar/occurrence/dynamic_value"
28
- include Sugar::Occurrence::DynamicValue
29
- end
30
- module RTM::Typed
31
- require "rtm/sugar/typed/types"
32
- include Sugar::Typed::Types
4
+ module RTM::Sugar;end
5
+
6
+ require 'rtm/sugar/topic/topic_ref'
7
+ require 'rtm/sugar/topic/hash_access'
8
+ require 'rtm/sugar/topic/characteristics'
9
+ require 'rtm/sugar/topic/counterparts'
10
+ require 'rtm/sugar/topic/scoped'
11
+ require 'rtm/sugar/topic/typed'
12
+ require 'rtm/sugar/topic/best_name'
13
+ RTM::Topic.register_extension(RTM::Sugar::Topic::TopicRef)
14
+ RTM::Topic.register_extension(RTM::Sugar::Topic::HashAccess)
15
+ RTM::Topic.register_extension(RTM::Sugar::Topic::Characteristics)
16
+ RTM::Topic.register_extension(RTM::Sugar::Topic::Counterparts)
17
+ RTM::Topic.register_extension(RTM::Sugar::Topic::Scoped)
18
+ RTM::Topic.register_extension(RTM::Sugar::Topic::Typed)
19
+ RTM::Topic.register_extension(RTM::Sugar::Topic::BestName)
20
+
21
+ require "rtm/sugar/association/hash_access"
22
+ RTM::Association.register_extension(RTM::Sugar::Association::HashAccess)
23
+
24
+ require "rtm/sugar/role/counterparts"
25
+ RTM::Role.register_extension(RTM::Sugar::Role::Counterparts)
26
+
27
+ require "time"
28
+ require "rtm/sugar/occurrence/dynamic_value"
29
+ require "rtm/sugar/occurrence/external"
30
+ RTM::Occurrence.register_extension(RTM::Sugar::Occurrence::DynamicValue)
31
+ RTM::Occurrence.register_extension(RTM::Sugar::Occurrence::External)
32
+
33
+ require "rtm/sugar/typed/types"
34
+ RTM::Typed.register_extension(RTM::Sugar::Typed::Types)
35
+
36
+ require 'rtm/sugar/reifiable/reifier'
37
+ RTM::Reifiable.register_extension(RTM::Sugar::Reifiable::CreateReifier)
38
+
39
+ require 'rtm/sugar/topic_map/query_cache'
40
+ require 'rtm/sugar/topic_map/themes'
41
+ module RTM::TopicMap
42
+ include RTM::Reifiable
43
+ @query_cache = nil #disables query caching
33
44
  end
45
+ RTM::TopicMap.register_extension(RTM::Sugar::TopicMap::QueryCache)
46
+ RTM::TopicMap.register_extension(RTM::Sugar::TopicMap::Themes)
34
47