diff options
author | carhaas <carhaas1@gmail.com> | 2014-09-09 09:31:07 +0200 |
---|---|---|
committer | carhaas <carhaas1@gmail.com> | 2014-09-09 09:31:07 +0200 |
commit | 4dd862953695849412cef0d8d840266a0a8c86cf (patch) | |
tree | c28951147b1386c7725e3afc31020a527f647eec /scripts/free917/parse_utterance.rb | |
parent | 25fa34e5c4275cdd4a4ca735c12b4b22f7ed7c0e (diff) |
add free917
Diffstat (limited to 'scripts/free917/parse_utterance.rb')
-rw-r--r-- | scripts/free917/parse_utterance.rb | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/scripts/free917/parse_utterance.rb b/scripts/free917/parse_utterance.rb new file mode 100644 index 0000000..1206c32 --- /dev/null +++ b/scripts/free917/parse_utterance.rb @@ -0,0 +1,42 @@ +#!/usr/bin/env ruby + +require 'pty' +require 'expect' +def query(string) + answer = "\n" + @in.printf("#{string}\n") + result = @out.expect(/^> /,timeout=30) + if result!=nil + result[0].delete!("\r\n") + result[0].delete!("\n") + result[0].delete!("\r") + matchData = result[0].match(/Top value { (.*) }>/) + if matchData!=nil + save = matchData[1].gsub(/^ */,"") + save = save.gsub(/ *$/,"") + save = save.gsub(/ +/," ") + answer = save+"\n" + end + end + STDOUT.write answer +end + +def main + model = ARGV[0] #parser model to be used + lines = Array.new + answers = Array.new + original_dir = Dir.pwd + Dir.chdir ARGV[1] #location of sempre + @out, @in, @pid = PTY.spawn("./sempre @mode=interact @domain=free917 @sparqlserver=localhost:3093 @cacheserver=local @load=#{model} @executeTopOnly=0") + @out.expect(/^> /,timeout=300)[0] + @in.printf("initialize model\n") + result = @out.expect(/^> /,timeout=300) + + Dir.chdir original_dir + while line = $stdin.gets + query(line.chomp) + end +end + +main + |