summaryrefslogtreecommitdiff
path: root/scripts/free917/parse_utterance.rb
diff options
context:
space:
mode:
authorpks <p@simianer.de>2015-01-26 09:34:32 +0100
committerpks <p@simianer.de>2015-01-26 09:34:32 +0100
commit0be900d2e33b4a82994c1d033251fd77b70a4d92 (patch)
treee30585288c5397a1924c312109246881ede37f01 /scripts/free917/parse_utterance.rb
parent25fa34e5c4275cdd4a4ca735c12b4b22f7ed7c0e (diff)
parent79a74fea89be46fc35c55e331d41cf8aeb017771 (diff)
Merge pull request #1 from carhaas/master
Free917
Diffstat (limited to 'scripts/free917/parse_utterance.rb')
-rw-r--r--scripts/free917/parse_utterance.rb42
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
+