activerdf_rules 0.0.1 → 0.0.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/CHANGELOG.txt +2 -0
- data/Manifest.txt +10 -3
- data/README.txt +3 -8
- data/TODO.txt +1 -0
- data/lib/activerdf_rules/rule_base.rb +21 -16
- data/lib/activerdf_rules/rule_engine.rb +180 -52
- data/lib/activerdf_rules/rule_engine_mixin.rb +8 -4
- data/lib/activerdf_rules/version.rb +1 -1
- data/test/activerdf_rules/{owl_rulebase_test.rb → owl_rule_base_test.rb} +6 -2
- data/test/activerdf_rules/rdfs_ext_rule_base_test.rb +127 -0
- data/test/activerdf_rules/rdfs_rule_base_test.rb +183 -0
- data/test/activerdf_rules/rule_engine_test.rb +14 -9
- metadata +15 -7
- data/setup.rb +0 -1585
- data/test/activerdf_rules/rdfs_rulebase_test.rb +0 -95
@@ -1,95 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../test_helper'
|
2
|
-
|
3
|
-
class RDFSRulebaseTest < Test::Unit::TestCase
|
4
|
-
def setup
|
5
|
-
ConnectionPool.clear
|
6
|
-
@adapter = ConnectionPool.add_data_source :type => :redland
|
7
|
-
@re = RuleEngine.new
|
8
|
-
@re.rule_base = RuleEngine::RDFSRuleBase
|
9
|
-
@type = Namespace.lookup(:rdf, 'type')
|
10
|
-
@rdfclass = Namespace.lookup(:rdfs, 'Class')
|
11
|
-
@subClassOf = Namespace.lookup(:rdfs, 'subClassOf')
|
12
|
-
@property = Namespace.lookup(:rdf, 'Property')
|
13
|
-
@subPropertyOf = Namespace.lookup(:rdfs, 'subPropertyOf')
|
14
|
-
@range = Namespace.lookup(:rdfs, 'range')
|
15
|
-
@domain = Namespace.lookup(:rdfs, 'domain')
|
16
|
-
|
17
|
-
Namespace.register(:test, 'http://test.com/')
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_type_inheritance
|
21
|
-
morris = Namespace.lookup(:test, 'morris')
|
22
|
-
cat = Namespace.lookup(:test, 'cat')
|
23
|
-
mammal = Namespace.lookup(:test, 'mammal')
|
24
|
-
|
25
|
-
@adapter.add morris, @type, cat
|
26
|
-
@adapter.add cat, @subClassOf, mammal
|
27
|
-
|
28
|
-
assert @re.process_rules
|
29
|
-
assert morris.type.collect{|t| t.class_uri}.include?(mammal)
|
30
|
-
end
|
31
|
-
|
32
|
-
def test_reflexivity_sub_property
|
33
|
-
prop = Namespace.lookup(:test, 'prop')
|
34
|
-
@adapter.add prop, @type, @property
|
35
|
-
|
36
|
-
assert @re.process_rules
|
37
|
-
assert prop.subPropertyOf.include?(prop)
|
38
|
-
end
|
39
|
-
|
40
|
-
def test_reflexivity_sub_class
|
41
|
-
c = Namespace.lookup(:test, 'class')
|
42
|
-
@adapter.add c, @type, @rdfclass
|
43
|
-
|
44
|
-
assert @re.process_rules
|
45
|
-
assert c.subClassOf.include?(c)
|
46
|
-
end
|
47
|
-
|
48
|
-
def test_type_inference_domain
|
49
|
-
teaches = Namespace.lookup(:test, 'teaches')
|
50
|
-
teacher = Namespace.lookup(:test, 'Teacher')
|
51
|
-
bob = Namespace.lookup(:test, 'Bob')
|
52
|
-
scooter = Namespace.lookup(:test, 'Scooter')
|
53
|
-
|
54
|
-
@adapter.add teaches, @domain, teacher
|
55
|
-
@adapter.add bob, teaches, scooter
|
56
|
-
|
57
|
-
assert @re.process_rules
|
58
|
-
assert bob.type.collect{|t| t.class_uri}.include?(teacher)
|
59
|
-
end
|
60
|
-
|
61
|
-
def test_type_inference_range
|
62
|
-
teaches = Namespace.lookup(:test, 'teaches')
|
63
|
-
student = Namespace.lookup(:test, 'Student')
|
64
|
-
bob = Namespace.lookup(:test, 'Bob')
|
65
|
-
scooter = Namespace.lookup(:test, 'Scooter')
|
66
|
-
|
67
|
-
@adapter.add teaches, @range, student
|
68
|
-
@adapter.add bob, teaches, scooter
|
69
|
-
|
70
|
-
assert @re.process_rules
|
71
|
-
assert scooter.type.collect{|t| t.class_uri}.include?(student)
|
72
|
-
end
|
73
|
-
|
74
|
-
def test_transitivity_sub_class
|
75
|
-
dog = Namespace.lookup(:test, 'Dog')
|
76
|
-
mammal = Namespace.lookup(:test, 'Mammal')
|
77
|
-
animal = Namespace.lookup(:test, 'Animal')
|
78
|
-
@adapter.add dog, @subClassOf, mammal
|
79
|
-
@adapter.add mammal, @subClassOf, animal
|
80
|
-
|
81
|
-
assert @re.process_rules
|
82
|
-
assert dog.subClassOf.include?(animal)
|
83
|
-
end
|
84
|
-
|
85
|
-
def test_transitivity_sub_property
|
86
|
-
parent = Namespace.lookup(:test, 'parent')
|
87
|
-
ancestor = Namespace.lookup(:test, 'ancestor')
|
88
|
-
relative = Namespace.lookup(:test, 'relative')
|
89
|
-
@adapter.add parent, @subPropertyOf, ancestor
|
90
|
-
@adapter.add ancestor, @subPropertyOf, relative
|
91
|
-
|
92
|
-
assert @re.process_rules
|
93
|
-
assert parent.subPropertyOf.include?(relative)
|
94
|
-
end
|
95
|
-
end
|