~kubuntu-members/korundum/4.11

« back to all changes in this revision

Viewing changes to soprano/examples/soprano_util/soprano_util.rb

  • Committer: Ian Monroe
  • Date: 2010-11-21 15:55:01 UTC
  • Revision ID: git-v1:c37670e4e3c59f5eb2ba112f5341a5e706217f6f
Split up Smoke into Qt and KDE directories. 
Move libsmoke stuff into the generator directory
Split up Ruby into qtruby and korundum directories

svn path=/trunk/KDE/kdebindings/ruby/; revision=1199320

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!/usr/bin/ruby
2
 
 
3
 
# Example of use of the Korundum soprano bindings, trying to mimic sopranocmd.
4
 
# Translated from Python to Ruby by Richard Dale
5
 
 
6
 
# Copyright (c) 2009 Olivier Berger + Institut T�l�com, released under
7
 
# the BSD license.
8
 
# Copyright (c) 2009 Richard Dale
9
 
 
10
 
require 'Qt4'
11
 
require 'soprano'
12
 
require 'getoptlong'
13
 
 
14
 
opts = GetoptLong.new(
15
 
  [ "--help", "-H", GetoptLong::REQUIRED_ARGUMENT ],
16
 
  [ "--backend", "-b", GetoptLong::REQUIRED_ARGUMENT ],
17
 
  [ "--dir", "-d", GetoptLong::REQUIRED_ARGUMENT ],
18
 
  [ "--port", "-p", GetoptLong::REQUIRED_ARGUMENT ],
19
 
  [ "--host", "-h", GetoptLong::REQUIRED_ARGUMENT ],
20
 
  [ "--username", "-U", GetoptLong::REQUIRED_ARGUMENT ],
21
 
  [ "--password", "-P", GetoptLong::REQUIRED_ARGUMENT ],
22
 
  [ "--settings", "-S", GetoptLong::REQUIRED_ARGUMENT ],
23
 
  [ "--serialization", "-s", GetoptLong::REQUIRED_ARGUMENT ]
24
 
)
25
 
 
26
 
backendOpt = dirOpt = portOpt = hostOpt = usernameOpt = passwordOpt = settingsOpt = serializationOpt = nil
27
 
 
28
 
opts.each do |opt, arg|
29
 
  case opt
30
 
  when '--help'
31
 
  when '--backend'
32
 
    backendOpt = arg
33
 
  when '--dir'
34
 
    directoryOpt = arg
35
 
  when '--port'
36
 
    portOpt = arg.to_i
37
 
  when '--host'
38
 
    hostOpt = arg
39
 
  when '--username'
40
 
    usernameOpt = arg
41
 
  when '--password'
42
 
    passwordOpt = arg
43
 
  when '--settings'
44
 
    settingsOpt = arg
45
 
  when '--serialization'
46
 
    serializationOpt = arg
47
 
  end
48
 
end
49
 
 
50
 
command = ARGV[0]
51
 
 
52
 
if !['query', 'list'].include? command
53
 
  $stderr.puts "Error: unknown command #{command}"
54
 
  exit 1
55
 
end
56
 
 
57
 
if command == 'query'
58
 
  query = ARGV[1]
59
 
end
60
 
 
61
 
backend = Soprano.discoverBackendByName(backendOpt)
62
 
 
63
 
settings = []
64
 
settings << Soprano::BackendSetting.new(Soprano::BackendOptionHost, hostOpt)
65
 
settings << Soprano::BackendSetting.new(Soprano::BackendOptionPort, portOpt)
66
 
settings << Soprano::BackendSetting.new(Soprano::BackendOptionUsername, usernameOpt)
67
 
settings << Soprano::BackendSetting.new(Soprano::BackendOptionPassword, passwordOpt)
68
 
model = backend.createModel(settings)
69
 
 
70
 
if command == 'query'
71
 
  result = model.executeQuery(query, Soprano::Query::QueryLanguageSparql)
72
 
 
73
 
  result.each do |binding_set|
74
 
    binding_set.bindingNames.each do |name|
75
 
      puts "#{binding_set.value(name).inspect}"
76
 
    end
77
 
  end
78
 
elsif command == 'list'
79
 
  statements = model.listStatements
80
 
  statements.each do |statement|
81
 
    puts "#{statement.subject.toN3} - #{statement.predicate.toN3} - #{statement.object.toN3}"
82
 
  end
83
 
end
84
 
 
85
 
# kate: space-indent on; indent-width 2; replace-tabs on; mixed-indent off;