O corpus nace como unha
ferramenta para facilitar o mantemento da coherencia terminolóxica
nas traducións de distintas aplicacións libres,
cuestión fundamental para a calidade final dos produtos.
Trátase dun corpus paralelo que permite procurar
palabras en inglés ou en galego nalgún dos distintos
proxectos almacenados e devolve parellas de frases inglés-galego
nas que se atopa a palabra procurada e a frase traducida
correspondente. É importante salientar que toda esta
terminoloxía foi aprobada polo TERMIGAL, órgano
avaliador e sancionador de toda a terminoloxía galega.
Este
corpus naceu coa tradución ao galego do OpenOffice.org 2.0
contendo máis de 650.000 palabras traducidas (interface e
axuda do paquete ofimático) incluída terminoloxía
do campo da ofimática. Actualmente inclúe memorias de
tradución doutras aplicacións e posteriormente irase
actualizando a medida que se traduza novo software.
O corpus de Mancomun.org era un servizo que ata o de agora só se podía traballar con él facendo uso dun navegador. Agora é posible integrar o servizo dentro doutras aplicacións facilitando o traballo e realizar procuras sen ter que abrir o navegador.
Para a integración co corpus de Mancomun.org (http://corpus.mancomun.org) implementáronse dúas interfaces: unha vía XML e outra empregando XML-RPC. Deste xeito é posible facer procuras no Corpus de Mancomun.org dende outras aplicacións que fagan uso do servizo web e non terse que limitar á aplicación web.
Exemplo dunha URL para facer a petición ao servidor e que devolva o resultado en XML:
http://corpus.mancomun.org/cgi-bin/xes_termos_xml.pl?q=<procura>&l=1&p=<proxecto>
|
Parámetro |
Descrición |
|
q |
O parámetro “q” (query) é o que leva o termo da procura. |
|
l |
O parámetro “l” (language) é o encargado de indicar a dirección da tradución. Se ten valor “l=0” entón indica a dirección inglés a galego. En caso de que sexa “l=1” a dirección é galego a inglés. 0 → en-gl 1 → gl-en |
|
p |
É un parámetro opcional (project) que permite seleccionar unha carpeta/proxecto no servidor para procurar nun determinado proxecto. |
Exemplo do resultado en formato XML dunha consulta feita directamente ao CGI (xes_termos_xml.pl) facendo a seguinte petición:
http://corpus.mancomun.org/cgi-bin/xes_termos_xml.pl?q=resource&l=1&p=tinyerp
<?xml
version="1.0"
?>
<corpus>
<term>recursos</term>
<direction>gl-en</direction>
<items>
<item
path="tinyerp/saida.po">
<original>Non foi posible cambiar
o recurso... </original>
<translated>Unable to chroot a
resource... </translated>
</item>
<item
path="tinyerp/saida.po">
<original>Buscar
recursos</original>
<translated>Find a
resource</translated>
</item>
...
</items>
<matches>12</matches>
</corpus>
OLLO: Se temos unha instalación propia do corpus é preciso ter instalado/configurado o script de Perl “xes_termos_xml.pl” nunha ruta no servidor web apache que permita a súa execución como cgi.
Para facer peticións vía XML-RPC hai que especificar o enderezo do servidor. Dependendo da máquina na que esté configurada o servidor haberá que especificar o nome do servidor e a ruta.
http://corpus.mancomun.org/xmlrpc/server.php
|
Método |
Descrición |
|
corpus_service(q, l, p) |
Método encargado de realizar a procura no corpus. Os parámetros correspóndense cos empregados no caso da petición XML tendo en conta que é necesario gardar o orde.
0 → en-gl 1 → gl-en
Devolve: O valor de retorno é un array con obxectos coas seguintes propiedades:
|
|
corpus_projects() |
Método para recuperar os proxectos que están no corpus. Posteriormente pódese empregar un nome de proxecto na chamada a “corpus_service” para realizar buscas nun só proxecto.
Devolve: O valor de retorno é un array de cadeas que se corresponden cos nomes dos proxectos. |
Exemplo implementado na linguaxe de programación Python que recupera o listado dos proxectos e fai unha procura no corpus pola palabra “recurso”:
from
xmlrpclib
import
ServerProxy,
Error
import
pprint
server
= ServerProxy("http://corpus.mancomun.org/xmlrpc/server.php")
pp
= pprint.PrettyPrinter(indent=4)
try:
result = server.corpus_search('recurso',
1, '')
except
Error,
v:
print
"ERROR",
v
print
"\nPrimer
resultado: "
pp.pprint(result['items'][0])
print
"\nProxectos:
"
pp.pprint(server.corpus_projects())

Exemplo de uso na linguaxe de programación PHP que recupera todos os proxectos no corpus:
<?php
//
Exemplo de petición XML-RPC ao Corpus
$request
=
xmlrpc_encode_request("corpus_projects",
array());
$context
=
stream_context_create(array('http'
=>
array(
'method'
=>
"POST",
'header'
=>
"Content-Type:
text/xml",
'content'
=>
$request
)));
$file
=
file_get_contents("http://corpus.mancomun.org/xmlrpc/server.php",
false,
$context);
$response
=
xmlrpc_decode($file);
if
(xmlrpc_is_fault($response))
{
trigger_error("xmlrpc:
$response[faultString]
($response[faultCode])");
}
else
{
print_r($response);
}
?>