<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://textserver.lsi.upc.edu/wiki/index.php?feed=atom&amp;namespace=0&amp;title=Special%3ANewPages</id>
		<title>Textserver wiki - New pages [en]</title>
		<link rel="self" type="application/atom+xml" href="http://textserver.lsi.upc.edu/wiki/index.php?feed=atom&amp;namespace=0&amp;title=Special%3ANewPages"/>
		<link rel="alternate" type="text/html" href="http://textserver.lsi.upc.edu/wiki/index.php/Special:NewPages"/>
		<updated>2026-10-11T15:02:24Z</updated>
		<subtitle>From Textserver wiki</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>http://textserver.lsi.upc.edu/wiki/index.php/Batch_Results_Retrieval_in_Python3</id>
		<title>Batch Results Retrieval in Python3</title>
		<link rel="alternate" type="text/html" href="http://textserver.lsi.upc.edu/wiki/index.php/Batch_Results_Retrieval_in_Python3"/>
				<updated>2018-08-24T09:33:13Z</updated>
		
		<summary type="html">&lt;p&gt;Padro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
#!/usr/bin/env python3&lt;br /&gt;
&lt;br /&gt;
import requests&lt;br /&gt;
import xml.etree.ElementTree&lt;br /&gt;
&lt;br /&gt;
# set query elements&lt;br /&gt;
user = raw_input('TextServer Username: ')&lt;br /&gt;
tkid = raw_input('TextServer Job Token ID: ')&lt;br /&gt;
outfname = raw_input('Output ZIP file: ')&lt;br /&gt;
 &lt;br /&gt;
# Create request&lt;br /&gt;
request_data = {'username' : user&lt;br /&gt;
                'tokenID' : tkid &lt;br /&gt;
               }&lt;br /&gt;
&lt;br /&gt;
# service URL&lt;br /&gt;
url = &amp;quot;http://frodo.lsi.upc.edu:8080/TextWS/textservlet/ws/resultRetrieve&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Send request and get response    &lt;br /&gt;
resp = requests.post(url, files=request_data)&lt;br /&gt;
&lt;br /&gt;
# HTTP error, raise exception&lt;br /&gt;
if resp.status_code != requests.codes.ok : &lt;br /&gt;
   resp.raise_for_status()&lt;br /&gt;
&lt;br /&gt;
# no error, save results to output file&lt;br /&gt;
outf=open(outfname, 'w+')&lt;br /&gt;
print(resp, file=outf)&lt;br /&gt;
outf.close()&lt;br /&gt;
print &amp;quot;Job finished. Results saved to&amp;quot;,outfname&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Padro</name></author>	</entry>

	<entry>
		<id>http://textserver.lsi.upc.edu/wiki/index.php/Batch_Results_Retrieval_in_Python2</id>
		<title>Batch Results Retrieval in Python2</title>
		<link rel="alternate" type="text/html" href="http://textserver.lsi.upc.edu/wiki/index.php/Batch_Results_Retrieval_in_Python2"/>
				<updated>2018-08-24T09:29:36Z</updated>
		
		<summary type="html">&lt;p&gt;Padro: Created page with &amp;quot;&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; &amp;gt; #! /usr/bin/python  ######################################################################## # #  Example client to retrieve the resu...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
#! /usr/bin/python&lt;br /&gt;
&lt;br /&gt;
########################################################################&lt;br /&gt;
#&lt;br /&gt;
#  Example client to retrieve the results of a batch request to TextServer &lt;br /&gt;
#&lt;br /&gt;
#  Output will be a ZIP file containing results for each input file in&lt;br /&gt;
# the requested format (XML, json, conll)&lt;br /&gt;
#&lt;br /&gt;
########################################################################&lt;br /&gt;
&lt;br /&gt;
# import required libraries&lt;br /&gt;
import urllib2&lt;br /&gt;
# You may need to install &amp;quot;poster&amp;quot; python module for these two:&lt;br /&gt;
from poster.encode import multipart_encode&lt;br /&gt;
from poster.streaminghttp import register_openers&lt;br /&gt;
import xml.etree.ElementTree&lt;br /&gt;
import time&lt;br /&gt;
&lt;br /&gt;
# Register the streaming http handlers with urllib2&lt;br /&gt;
register_openers()&lt;br /&gt;
&lt;br /&gt;
# set query elements&lt;br /&gt;
user = raw_input('TextServer Username: ')&lt;br /&gt;
tkid = raw_input('TextServer Job Token ID: ')&lt;br /&gt;
outfname = raw_input('Output ZIP file: ')&lt;br /&gt;
&lt;br /&gt;
# service URL&lt;br /&gt;
TextServer_URL = &amp;quot;http://frodo.lsi.upc.edu:8080/TextWS/textservlet/ws&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# prepare request to poll for completion and retrieve results&lt;br /&gt;
datagen, headers = multipart_encode({'username' : user,&lt;br /&gt;
                                     'tokenID' : tkid&lt;br /&gt;
                                     })&lt;br /&gt;
request = urllib2.Request(TextServer_URL + &amp;quot;/resultRetrieve&amp;quot;, &lt;br /&gt;
                          datagen, &lt;br /&gt;
                          headers)&lt;br /&gt;
&lt;br /&gt;
try:&lt;br /&gt;
  # send request to check for results&lt;br /&gt;
  print &amp;quot;Polling server for job completion...&amp;quot;&lt;br /&gt;
  resp =  urllib2.urlopen(request).read()&lt;br /&gt;
  &lt;br /&gt;
except urllib2.HTTPError, e:&lt;br /&gt;
  if (e.code == 503 and e.read()[0:8] == &amp;quot;[TS-125]&amp;quot; ) :&lt;br /&gt;
    # http status 503, textserver code TS-125 means the job is not finished yet. &lt;br /&gt;
    print &amp;quot;Job not finished yet&amp;quot; &lt;br /&gt;
  else :      &lt;br /&gt;
    # some actual error happened. abort&lt;br /&gt;
    print e, &amp;quot;-&amp;quot;, e.read()&lt;br /&gt;
  exit()&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
# no error, save results to output file&lt;br /&gt;
outf=open(outfname, 'w+')&lt;br /&gt;
print &amp;gt;&amp;gt;outf, resp&lt;br /&gt;
outf.close()&lt;br /&gt;
print &amp;quot;Job finished. Results saved to&amp;quot;,outfname&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Padro</name></author>	</entry>

	<entry>
		<id>http://textserver.lsi.upc.edu/wiki/index.php/Python3_Batch_Client</id>
		<title>Python3 Batch Client</title>
		<link rel="alternate" type="text/html" href="http://textserver.lsi.upc.edu/wiki/index.php/Python3_Batch_Client"/>
				<updated>2018-08-24T09:27:34Z</updated>
		
		<summary type="html">&lt;p&gt;Padro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
#!/usr/bin/env python3&lt;br /&gt;
&lt;br /&gt;
import requests&lt;br /&gt;
import xml.etree.ElementTree&lt;br /&gt;
&lt;br /&gt;
# set query elements&lt;br /&gt;
fname = raw_input('Input ZIP file: ')&lt;br /&gt;
lang = raw_input('Language: ')&lt;br /&gt;
out = raw_input('Output format (xml,json,conll,naf): ')&lt;br /&gt;
user = raw_input('TextServer Username: ')&lt;br /&gt;
pwd = raw_input('TextServer Password: ')&lt;br /&gt;
 &lt;br /&gt;
# Create request&lt;br /&gt;
request_data = {'username' : user&lt;br /&gt;
                'password' : pwd,&lt;br /&gt;
                'file' : open(fname,&amp;quot;rb&amp;quot;),&lt;br /&gt;
                'language': lang,&lt;br /&gt;
                'output': out,&lt;br /&gt;
                'interactive' : '0' }&lt;br /&gt;
&lt;br /&gt;
# service URL&lt;br /&gt;
service = &amp;quot;SERVICENAME&amp;quot;&lt;br /&gt;
url = &amp;quot;http://frodo.lsi.upc.edu:8080/TextWS/textservlet/ws/processQuery/&amp;quot;+service&lt;br /&gt;
&lt;br /&gt;
# Send request and get response    &lt;br /&gt;
resp = requests.post(url, files=request_data)&lt;br /&gt;
&lt;br /&gt;
# HTTP error, raise exception&lt;br /&gt;
if resp.status_code != requests.codes.ok : &lt;br /&gt;
   resp.raise_for_status()&lt;br /&gt;
&lt;br /&gt;
# No error. Server response should include a job tokenID, retrieve it&lt;br /&gt;
dom = xml.etree.ElementTree.XML(resp)&lt;br /&gt;
tkid = dom.text &lt;br /&gt;
print (&amp;quot;Job sumbitted. Token id=&amp;quot;,tkid)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Padro</name></author>	</entry>

	<entry>
		<id>http://textserver.lsi.upc.edu/wiki/index.php/Python2_Batch_Client</id>
		<title>Python2 Batch Client</title>
		<link rel="alternate" type="text/html" href="http://textserver.lsi.upc.edu/wiki/index.php/Python2_Batch_Client"/>
				<updated>2018-08-24T09:23:48Z</updated>
		
		<summary type="html">&lt;p&gt;Padro: Created page with &amp;quot;&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; &amp;gt; #! /usr/bin/python  ######################################################################## # #  Example client to submit a batch re...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
#! /usr/bin/python&lt;br /&gt;
&lt;br /&gt;
########################################################################&lt;br /&gt;
#&lt;br /&gt;
#  Example client to submit a batch request to TextServer &lt;br /&gt;
# SERVICENAME service, and wait for the job to be finished.&lt;br /&gt;
#&lt;br /&gt;
#  Input must be a ZIP file containing one or more text files to analyze&lt;br /&gt;
#  Output will be a ZIP file containing results for each input file in&lt;br /&gt;
# the requested format (XML, json, conll)&lt;br /&gt;
#&lt;br /&gt;
########################################################################&lt;br /&gt;
&lt;br /&gt;
# import required libraries&lt;br /&gt;
import urllib2&lt;br /&gt;
# You may need to install &amp;quot;poster&amp;quot; python module for these two:&lt;br /&gt;
from poster.encode import multipart_encode&lt;br /&gt;
from poster.streaminghttp import register_openers&lt;br /&gt;
import xml.etree.ElementTree&lt;br /&gt;
import time&lt;br /&gt;
&lt;br /&gt;
# Register the streaming http handlers with urllib2&lt;br /&gt;
register_openers()&lt;br /&gt;
&lt;br /&gt;
# set query elements&lt;br /&gt;
fname = raw_input('Input ZIP file: ')&lt;br /&gt;
lang = raw_input('Language: ')&lt;br /&gt;
out = raw_input('Output format (xml,json,conll,naf): ')&lt;br /&gt;
user = raw_input('TextServer Username: ')&lt;br /&gt;
pwd = raw_input('TextServer Password: ')&lt;br /&gt;
&lt;br /&gt;
# Encode query in a form-data.&lt;br /&gt;
# 'headers' contains the necessary Content-Type and Content-Length.&lt;br /&gt;
# 'datagen' is a generator object that yields the encoded parameters.&lt;br /&gt;
datagen, headers = multipart_encode({'username' : user,&lt;br /&gt;
                                     'password' : pwd,&lt;br /&gt;
                                     'file' : open(fname,&amp;quot;rb&amp;quot;),&lt;br /&gt;
                                     'language' : lang,&lt;br /&gt;
                                     'output' : out,&lt;br /&gt;
                                     'interactive':'0'&lt;br /&gt;
                                     } )&lt;br /&gt;
# service URL&lt;br /&gt;
TextServer_URL = &amp;quot;http://frodo.lsi.upc.edu:8080/TextWS/textservlet/ws&amp;quot;&lt;br /&gt;
service = &amp;quot;SERVICENAME&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Create the Request object&lt;br /&gt;
request = urllib2.Request(TextServer_URL + &amp;quot;/processQuery/&amp;quot; + service,&lt;br /&gt;
                          datagen, &lt;br /&gt;
                          headers)&lt;br /&gt;
&lt;br /&gt;
try:&lt;br /&gt;
  # Actually do the request, and get the response&lt;br /&gt;
  resp =  urllib2.urlopen(request).read()&lt;br /&gt;
&lt;br /&gt;
except urllib2.HTTPError, e:&lt;br /&gt;
  # handle connection errors&lt;br /&gt;
  print e, &amp;quot;-&amp;quot;, e.read()&lt;br /&gt;
  exit()&lt;br /&gt;
&lt;br /&gt;
# Server response should include a job tokenID, retrieve it&lt;br /&gt;
dom = xml.etree.ElementTree.XML(resp)&lt;br /&gt;
tkid = dom.text &lt;br /&gt;
print &amp;quot;Job sumbitted. Token id=&amp;quot;,tkid&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Padro</name></author>	</entry>

	<entry>
		<id>http://textserver.lsi.upc.edu/wiki/index.php/Python3_Interactive_Client</id>
		<title>Python3 Interactive Client</title>
		<link rel="alternate" type="text/html" href="http://textserver.lsi.upc.edu/wiki/index.php/Python3_Interactive_Client"/>
				<updated>2018-08-24T08:55:53Z</updated>
		
		<summary type="html">&lt;p&gt;Padro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
#!/usr/bin/env python3&lt;br /&gt;
&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
# set query elements&lt;br /&gt;
text = input('Text to analyze: ')&lt;br /&gt;
lang = input('Language: ')&lt;br /&gt;
out = input('Output format (xml,json,conll,naf): ')&lt;br /&gt;
user = input('TextServer Username: ')&lt;br /&gt;
pwd = input('TextServer Password: ')&lt;br /&gt;
 &lt;br /&gt;
# Create request&lt;br /&gt;
request_data = {'username':user,&lt;br /&gt;
                'password':pwd,&lt;br /&gt;
                'text_input':text,&lt;br /&gt;
                'language':lang,&lt;br /&gt;
                'output':out,&lt;br /&gt;
                'interactive':'1' }&lt;br /&gt;
&lt;br /&gt;
# service URL&lt;br /&gt;
service = &amp;quot;SERVICENAME&amp;quot;&lt;br /&gt;
url = &amp;quot;http://frodo.lsi.upc.edu:8080/TextWS/textservlet/ws/processQuery/&amp;quot;+service&lt;br /&gt;
&lt;br /&gt;
# Send request and get response    &lt;br /&gt;
resp = requests.post(url, files=request_data)&lt;br /&gt;
&lt;br /&gt;
# HTTP error, raise exception&lt;br /&gt;
if resp.status_code != requests.codes.ok : &lt;br /&gt;
   resp.raise_for_status()&lt;br /&gt;
&lt;br /&gt;
# No error, appropriately process response&lt;br /&gt;
# (e.g. parsing XML or JSON, and doing clever stuff with the content)&lt;br /&gt;
print(resp.text)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Padro</name></author>	</entry>

	<entry>
		<id>http://textserver.lsi.upc.edu/wiki/index.php/Python2_Interactive_Client</id>
		<title>Python2 Interactive Client</title>
		<link rel="alternate" type="text/html" href="http://textserver.lsi.upc.edu/wiki/index.php/Python2_Interactive_Client"/>
				<updated>2018-08-24T08:53:20Z</updated>
		
		<summary type="html">&lt;p&gt;Padro: Created page with &amp;quot;&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; &amp;gt; #! /usr/bin/python  ######################################################################## # #  Example client to submit an interac...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
#! /usr/bin/python&lt;br /&gt;
&lt;br /&gt;
########################################################################&lt;br /&gt;
#&lt;br /&gt;
#  Example client to submit an interactive request to TextServer &lt;br /&gt;
# SERVICENAME service. &lt;br /&gt;
#  Input may be a plain text or a text file.  No ZIP files.&lt;br /&gt;
#  Output will be in the requested format (XML, json, conll)&lt;br /&gt;
#&lt;br /&gt;
########################################################################&lt;br /&gt;
&lt;br /&gt;
# import required libraries&lt;br /&gt;
import urllib2&lt;br /&gt;
# You may need to install &amp;quot;poster&amp;quot; python module for these two:&lt;br /&gt;
from poster.encode import multipart_encode&lt;br /&gt;
from poster.streaminghttp import register_openers&lt;br /&gt;
&lt;br /&gt;
# Register the streaming http handlers with urllib2&lt;br /&gt;
register_openers()&lt;br /&gt;
&lt;br /&gt;
# set query elements&lt;br /&gt;
text = raw_input('Text to analyze: ')&lt;br /&gt;
lang = raw_input('Language: ')&lt;br /&gt;
out = raw_input('Output format (xml,json,conll,naf): ')&lt;br /&gt;
user = raw_input('TextServer Username: ')&lt;br /&gt;
pwd = raw_input('TextServer Password: ')&lt;br /&gt;
&lt;br /&gt;
# Encode query in a form-data.&lt;br /&gt;
# 'headers' contains the necessary Content-Type and Content-Length.&lt;br /&gt;
# 'datagen' is a generator object that yields the encoded parameters.&lt;br /&gt;
datagen, headers = multipart_encode({'username':user,&lt;br /&gt;
                                     'password':pwd,&lt;br /&gt;
                                     'text_input':text,&lt;br /&gt;
                                     'language':lang,&lt;br /&gt;
                                     'output':out,&lt;br /&gt;
                                     'interactive':'1'&lt;br /&gt;
                                     } )&lt;br /&gt;
# service URL&lt;br /&gt;
service = &amp;quot;SERVICENAME&amp;quot;&lt;br /&gt;
url = &amp;quot;http://frodo.lsi.upc.edu:8080/TextWS/textservlet/ws/processQuery/&amp;quot;+service&lt;br /&gt;
&lt;br /&gt;
# Create the Request object&lt;br /&gt;
request = urllib2.Request(url, datagen, headers)&lt;br /&gt;
try:&lt;br /&gt;
  # Actually do the request, and get the response&lt;br /&gt;
  resp =  urllib2.urlopen(request).read()&lt;br /&gt;
&lt;br /&gt;
except urllib2.HTTPError, e:&lt;br /&gt;
  # handle connection errors&lt;br /&gt;
  print e, &amp;quot;-&amp;quot;, e.read()&lt;br /&gt;
  exit()&lt;br /&gt;
&lt;br /&gt;
# No error, appropriately process response&lt;br /&gt;
# (e.g. parsing XML or JSON, and doing clever stuff with the content)&lt;br /&gt;
print resp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Padro</name></author>	</entry>

	</feed>