3
require 'rdf/constants'
7
class TestModel < Test::Unit::TestCase
11
@foaf = Namespace.new('http://xmlns.com/foaf/0.1/')
12
@faa = Namespace.new("http://www.faa.gov/faa#")
17
assert_equal(0,model.size)
18
st = Statement.new(Uri.new("http://foo"),Uri.new("http://bar"),"baz")
19
st2 = Statement.new(Uri.new("http://xmlns/"),Uri.new("http://name"),"bar")
20
model.add_statement(st)
21
model.add_statement(st2)
22
assert_equal(2,model.size)
27
foaf = Namespace.new('http://xmlns.com/foaf/0.1/')
28
faa = Namespace.new('http://www.faa.gov/people#')
29
model.add_statement(Statement.new(@faa['dom@some.gov'],@foaf['name'],"Dominic"))
30
model.add_statement Statement.new(@faa['kris'],@foaf['firstName'],"Kris")
31
model.add_statement Statement.new(@faa['kris'],@foaf['phone'],"333-123-2387")
32
model.add(@faa['kris'],@foaf['name'],"Kris Frame")
33
model.add( Uri.new('dom'),Uri.new('project'),'2334')
34
domnode = model.subject(@foaf['name'],"Dominic")
35
assert_equal(@faa['dom@some.gov'], domnode)
36
assert_equal('333-123-2387',model.object(@faa['kris'],@foaf['phone']).to_s)
39
#model.predicates(@faa['kris'],"Kris"){|p| puts p }
40
#model.triples{|s,p,o| puts "subject: #{s}, pred: #{p}, object: #{o}"}
41
model.find( nil,@foaf['name'],nil){|s,p,o| puts o }
43
#model.save('out3.rdf')
45
serializer = Serializer.new()
46
serializer.to_file('out2.rdf',model,Uri.new("http://www.faa.gov/people#"))
47
# serializer.namespace(@foaf,'foaf')
54
dom = BNode.new('dom')
55
model.add(dom,@foaf['firstName'],'Dominic')
56
model.add(dom,@foaf['surname'],'Sisneros')
57
assert_equal(2,model.size)
58
st = Statement.new(dom,@foaf['firstName'],'Dominic')
59
assert(model.include_statement?(st))
60
model.delete_statement(st)
61
assert(!model.include_statement?(st),"model should not include statement")
62
assert_equal(1,model.size)
63
model.delete(dom,@foaf['surname'],'Bogus')
64
assert_equal(1,model.size)
65
model.delete(dom,@foaf['surname'],'Sisneros')
66
assert_equal(0,model.size)
69
def test_add_statements(model)
70
dom = BNode.new('dom')
71
kris = BNode.new('kris')
72
model.add(dom,@foaf['firstName'],'Dominic')
73
model.add(dom,@foaf['surname'],'Sisneros')
74
model.add_statement Statement.new(kris,@foaf['firstName'],"Kris")
75
model.add_statement Statement.new(kris,@foaf['phone'],"425-227-2387")
80
dom = BNode.new('dom')
81
kris = BNode.new('kris')
82
model.add(dom,@foaf['firstName'],'Dominic')
83
model.add(dom,@foaf['surname'],'Sisneros')
84
model.add_statement Statement.new(kris,@foaf['firstName'],"Kris")
85
model.add_statement Statement.new(kris,@foaf['phone'],"192-192-192")
86
assert_equal(4,model.size)
87
to_delete =model.find(dom,nil,nil) # delete all dom nodes
88
to_delete.each{|st| model.delete_statement(st)}
89
assert_equal(2,model.size)
90
assert_equal(0, model.find(dom,nil,nil).size)
91
assert_equal(2, model.find(kris,nil,nil).size)
96
store = HashStore.new('bdb','thestore')
97
model = Model.new(store)
98
model.add_statement(Statement.new(Uri.new('dom'),Uri.new('project'),'10892'),Node.new(Uri.new('http://mycontext/dom')))
99
model.add(Uri.new('dom'),Uri.new('name'),'Dominic',Uri.new('http://mycontext/dom'))
100
model.statements(){|s| puts s}
102
model.contexts{|c| contexts << c}
103
assert_equal(1,contexts.size)
104
#assert_equal(contexts[0],model.create_resource('http://mycontext/dom'))
105
#model.add(Uri.new('dom'),Uri.new('surname'),'Sisneros',Uri.new('http://newcontext/dom'))
106
#contexts = model.contexts()
107
#puts "## CONTEXTS ARE #{contexts}"
108
#assert_equal(2,contexts.size)
113
foaf = Namespace.new("http://xmlns.com/foaf/0.1/")
114
rdfs = Namespace.new("http://www.23.org/2000/01/rdf-schema#")
115
dom = Node.new(:blank=>'dom')
116
model.add(dom,rdfs['type'],foaf['Person'])
117
model.add(dom,foaf['mbox'],Uri.new('mailto:dom@sisna.com'))
118
model.add(dom,foaf['firstName'],'Dominic')
119
dom2 = Node.new(:blank=>'dom2')
120
model.add_statement(Statement.new(dom2,rdfs['type'],foaf['Person']))
121
model.add_statement(Statement.new(dom2,foaf['mbox'],Uri.new('mailto:dom@sisna.com')))
122
model.add_statement(Statement.new(dom2,foaf['surname'],'Sisneros'))
123
assert_equal(6,model.size)
125
model.subjects(foaf['mbox'],Uri.new('mailto:dom@sisna.com')){|s|
128
assert_equal(2,subjects.size)
129
model.smush(foaf['mbox'])
130
assert_equal(2,model.subjects(foaf['mbox'],Uri.new('mailto:dom@sisna.com')).size)
134
def test_parse_and_merge()
136
dom = BNode.new('dom')
137
model.add(dom,FOAF::MBOX,Node.new(:uri_string=>'mailto:dominic@bogus.com'))
138
model.add(dom,FOAF::NAME,'Dominic Sisneros')
139
parser = Parser.new()
140
model.parse_and_merge(parser,'file:./triples.rdf',[FOAF::MBOX])
141
assert_equal('Electronic Engineer',model.object(dom,FOAF::TITLE).to_s)
142
assert_equal('Sisneros',model.object(dom,FOAF::SURNAME).to_s)
3
require 'rdf/redland/constants'
4
require 'rdf/redland/schemas/foaf'
6
class TestModel < Test::Unit::TestCase
10
@foaf = Namespace.new('http://xmlns.com/foaf/0.1/')
11
@faa = Namespace.new("http://www.faa.gov/faa#")
16
assert_equal(0,model.size)
17
st = Statement.new(Uri.new("http://foo"),Uri.new("http://bar"),"baz")
18
st2 = Statement.new(Uri.new("http://xmlns/"),Uri.new("http://name"),"bar")
19
model.add_statement(st)
20
model.add_statement(st2)
21
assert_equal(2,model.size)
26
foaf = Namespace.new('http://xmlns.com/foaf/0.1/')
27
faa = Namespace.new('http://www.faa.gov/people#')
28
model.add_statement(Statement.new(@faa['dom@some.gov'],@foaf['name'],"Dominic"))
29
model.add_statement Statement.new(@faa['kris'],@foaf['firstName'],"Kris")
30
model.add_statement Statement.new(@faa['kris'],@foaf['phone'],"333-123-2387")
31
model.add(@faa['kris'],@foaf['name'],"Kris Frame")
32
model.add( Uri.new('dom'),Uri.new('project'),'2334')
33
domnode = model.subject(@foaf['name'],"Dominic")
34
assert_equal(@faa['dom@some.gov'], domnode)
35
assert_equal('333-123-2387',model.object(@faa['kris'],@foaf['phone']).to_s)
38
#model.predicates(@faa['kris'],"Kris"){|p| puts p }
39
#model.triples{|s,p,o| puts "subject: #{s}, pred: #{p}, object: #{o}"}
40
model.find( nil,@foaf['name'],nil){|s,p,o| puts o }
42
#model.save('out3.rdf')
44
serializer = Serializer.new()
45
serializer.to_file('out2.rdf',model,Uri.new("http://www.faa.gov/people#"))
46
# serializer.namespace(@foaf,'foaf')
53
dom = BNode.new('dom')
54
model.add(dom,@foaf['firstName'],'Dominic')
55
model.add(dom,@foaf['surname'],'Sisneros')
56
assert_equal(2,model.size)
57
st = Statement.new(dom,@foaf['firstName'],'Dominic')
58
assert(model.include_statement?(st))
59
model.delete_statement(st)
60
assert(!model.include_statement?(st),"model should not include statement")
61
assert_equal(1,model.size)
62
model.delete(dom,@foaf['surname'],'Bogus')
63
assert_equal(1,model.size)
64
model.delete(dom,@foaf['surname'],'Sisneros')
65
assert_equal(0,model.size)
68
def test_add_statements(model)
69
dom = BNode.new('dom')
70
kris = BNode.new('kris')
71
model.add(dom,@foaf['firstName'],'Dominic')
72
model.add(dom,@foaf['surname'],'Sisneros')
73
model.add_statement Statement.new(kris,@foaf['firstName'],"Kris")
74
model.add_statement Statement.new(kris,@foaf['phone'],"425-227-2387")
79
dom = BNode.new('dom')
80
kris = BNode.new('kris')
81
model.add(dom,@foaf['firstName'],'Dominic')
82
model.add(dom,@foaf['surname'],'Sisneros')
83
model.add_statement Statement.new(kris,@foaf['firstName'],"Kris")
84
model.add_statement Statement.new(kris,@foaf['phone'],"192-192-192")
85
assert_equal(4,model.size)
86
to_delete =model.find(dom,nil,nil) # delete all dom nodes
87
to_delete.each{|st| model.delete_statement(st)}
88
assert_equal(2,model.size)
89
assert_equal(0, model.find(dom,nil,nil).size)
90
assert_equal(2, model.find(kris,nil,nil).size)
95
store = HashStore.new('bdb','thestore')
96
model = Model.new(store)
97
model.add_statement(Statement.new(Uri.new('dom'),Uri.new('project'),'10892'),Node.new(Uri.new('http://mycontext/dom')))
98
model.add(Uri.new('dom'),Uri.new('name'),'Dominic',Uri.new('http://mycontext/dom'))
99
model.statements(){|s| puts s}
101
model.contexts{|c| contexts << c}
102
assert_equal(1,contexts.size)
103
#assert_equal(contexts[0],model.create_resource('http://mycontext/dom'))
104
#model.add(Uri.new('dom'),Uri.new('surname'),'Sisneros',Uri.new('http://newcontext/dom'))
105
#contexts = model.contexts()
106
#puts "## CONTEXTS ARE #{contexts}"
107
#assert_equal(2,contexts.size)
112
foaf = Namespace.new("http://xmlns.com/foaf/0.1/")
113
rdfs = Namespace.new("http://www.23.org/2000/01/rdf-schema#")
114
dom = Node.new(:blank=>'dom')
115
model.add(dom,rdfs['type'],foaf['Person'])
116
model.add(dom,foaf['mbox'],Uri.new('mailto:dom@sisna.com'))
117
model.add(dom,foaf['firstName'],'Dominic')
118
dom2 = Node.new(:blank=>'dom2')
119
model.add_statement(Statement.new(dom2,rdfs['type'],foaf['Person']))
120
model.add_statement(Statement.new(dom2,foaf['mbox'],Uri.new('mailto:dom@sisna.com')))
121
model.add_statement(Statement.new(dom2,foaf['surname'],'Sisneros'))
122
assert_equal(6,model.size)
124
model.subjects(foaf['mbox'],Uri.new('mailto:dom@sisna.com')){|s|
127
assert_equal(2,subjects.size)
128
model.smush(foaf['mbox'])
129
assert_equal(2,model.subjects(foaf['mbox'],Uri.new('mailto:dom@sisna.com')).size)
133
def test_parse_and_merge()
134
store = HashStore.new(hash_type='memory', options="contexts='yes'")
135
model = Model.new(store)
136
dom = BNode.new('dom')
137
model.add(dom,FOAF::MBOX,Node.new(:uri_string=>'mailto:dominic@bogus.com'))
138
model.add(dom,FOAF::NAME,'Dominic Sisneros')
139
parser = Parser.new()
140
model.parse_and_merge(parser,'file:./triples.rdf',[FOAF::MBOX])
141
assert_equal('Electronic Engineer',model.object(dom,FOAF::TITLE).to_s)
142
assert_equal('Sisneros',model.object(dom,FOAF::SURNAME).to_s)