Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Carloswaldo

#71
Bases de Datos / Re: ayuda con postgres SQL
12 Mayo 2015, 17:52 PM
Depende de la distribución y forma de instalación.

Una instalación tradicional por paquetes crea el usuario [de sistema] postgres y hace de /var/lib/pgsql/ su directorio home, dándole por tanto permisos de escritura.
#72
No existe Postgres Workbench, pero está PgAdmin

http://www.pgadmin.org/
#73
Foro Libre / Re: Tema
10 Abril 2015, 22:12 PM
No
#74
¿Solo para eso reabren un tema viejo? ¿Para postear estupideces?
#75
Hola,

¿Cómo estás iniciando el servicio y como qué usuario?

¿Hay algo ocupando el puerto 5432?

¿Cuál es el valor del parámetro "listen_address" en postgresql.conf?
#76
Foro Libre / Re: Todo puede existir
16 Diciembre 2014, 19:07 PM
Hemos considerado que el usuario promedio no tiene la madurez necesaria para tratar temas de tamaña importancia y profundidad.
#77
Foro Libre / Re: Todo puede existir
16 Diciembre 2014, 17:19 PM
#78
GNU/Linux / Re: Problema CRON y AT en Debian
11 Diciembre 2014, 18:28 PM
Hola

Estaba pensando en que podías hacerlo con una regla (RULE) pero siendo que tienes el UPDATE, si el update llama a una id que no existe la regla no se va a ejecutar, así que tendrías que tener mejor el INSERT y hacer una regla ON INSERT DO INSTEAD UPDATE.

Otra forma en que lo podrías hacer es con esta función que está en la documentación de PostgreSQL:

Código (sql) [Seleccionar]
CREATE FUNCTION merge_db(key INT, data TEXT) RETURNS VOID AS
$$
BEGIN
    LOOP
        -- first try to update the key
        UPDATE db SET b = data WHERE a = key;
        IF found THEN
            RETURN;
        END IF;
        -- not there, so try to insert the key
        -- if someone else inserts the same key concurrently,
        -- we could get a unique-key failure
        BEGIN
            INSERT INTO db(a,b) VALUES (key, data);
            RETURN;
        EXCEPTION WHEN unique_violation THEN
            -- Do nothing, and loop to try the UPDATE again.
        END;
    END LOOP;
END;
$$
LANGUAGE plpgsql;


http://www.postgresql.org/docs/9.4/static/plpgsql-control-structures.html#PLPGSQL-ERROR-TRAPPING

O, por último, podrías modificar el script para que primero verifique si el registro existe o no y hacer UPDATE o INSERT según corresponda.
#79
Esto es algo rápido que he hecho, una base de datos para procesar la conjugación de los verbos (está en PostgreSQL):

http://pastebin.com/NbNggcLN

Con ella puedo hacer consultas del tipo:

Código (sql) [Seleccionar]
select p.pronombre || ' ' || r.raiz || c.conjugacion
FROM raiz_verbos r
INNER JOIN tipos_conjugacion t ON r.id_tipo_conjugacion = t.id_tipo
INNER JOIN conjugaciones c ON c.id_tipo_conjugacion = t.id_tipo
INNER JOIN tiempos ON c.id_tiempo = tiempos.id_tiempo
INNER JOIN personas p ON c.id_persona = p.id_persona
WHERE r.infinitivo = 'amar'
AND tiempos.tiempo='Presente Indicativo'
AND p.persona = 'Segunda Plural';


Resultando en:


   ?column?    
----------------
vosotros amáis
(1 fila)


Así, si quiero agregar otro verbo solo hago

Código (sql) [Seleccionar]
insert into raiz_verbos (raiz, id_tipo_conjugacion, infinitivo) values ('abale', 1, 'abalear');

Y ya tengo la conjugación:

Código (sql) [Seleccionar]
select p.pronombre || ' ' || r.raiz || c.conjugacion
FROM raiz_verbos r
INNER JOIN tipos_conjugacion t ON r.id_tipo_conjugacion = t.id_tipo
INNER JOIN conjugaciones c ON c.id_tipo_conjugacion = t.id_tipo
INNER JOIN tiempos ON c.id_tiempo = tiempos.id_tiempo
INNER JOIN personas p ON c.id_persona = p.id_persona
WHERE r.infinitivo = 'abalear'
AND tiempos.tiempo='Presente Indicativo'
AND p.persona = 'Segunda Plural';



    ?column?      
-------------------
vosotros abaleáis
(1 fila)


Claro que casi que solo es el esqueleto, lo que faltaría es poblarla y luego ver qué lógica seguir con los verbos irregulares (sería una labor bien grande).

La ventaja de tenerlo en una base de datos es que es independiente del lenguaje y cualquiera podría contribuir.
#80
Me interesa mucho tu proyecto.

Hace un tiempo tuve una idea similar pero para implementarlo en un traductor. Últimamente se me vino a la cabeza hacer un herramienta CAT y cosas como estas podrían ser bastante útiles.

El español esta muy lleno de irregularidades como para hacer las cosas muy dinámicas, lo primero sería ir llenando la base de datos, pero no solo de palabras y sus funciones dentro de la oración, sino también, por ejemplo, de la conjugación de los verbos.