<repositories>
<repository>
<id>gedcomx-release-repo</id>
<name>GEDCOM X Release Repository</name>
<url>https://repository-gedcom.forge.cloudbees.com/release/</url>
</repository>
<repository>
<id>gedcomx-snapshot-repo</id>
<name>GEDCOM X Snapshot Repository</name>
<url>https://repository-gedcom.forge.cloudbees.com/snapshot/</url>
</repository>
</repositories>
Y tenemos que añadir la dependendia:
<dependency>
<groupId>org.gedcomx</groupId>
<artifactId>gedcom5-conversion</artifactId>
<version>${gedcom5-conversion.version}</version>
</dependency>
Esta dependencia incluye todas las librerías que necesitamos. Las que utilizaremos directamente son:
- gedcom-fileformat-java
- Gedcom
- gedcom5-conversion
Las primeras pruebas que he realizado incluyen los casos que detallo a continuación:
Lectura de fichero Gedcom5.5 (Gedcom)
El proyecto Gedcom y el proyecto Gedcom5-conversion incluyen varios ficheros de test .ged que he utilizado. Ademas, he encontrado ficheros de stress que nos ayudarán a comprobar todos los tags del estándar. El resultado de leer los ficheros es un modelo de datos que consiste en:
Personas
Familias
Fuentes
Repositorios
Escritura de fichero Gedcom5.5 (Gedcom)
Teniendo el fichero leído, comprobamos la escritura. He apreciado varios cambios de orden en los tags, pero ahora mismo no sé decir si eso provocaría inconsistencias.
Lectura/escritura de fichero GedcomX (gedcom-fileformat-java)
Este proceso sólo tiene una peculiaridad, que es el modelo conceptual. En GedcomX sólo existen:
Personas
Relaciones
Agentes
Fuentes
Todos estos tipos serían lo que llamamos "entidades Gedcom X". Además, tenemos los atributos, tanto globales como de cada entidad en particular (pares clave-valor). El proceso de lectura y escritura de fichero .gedx es bastante simple y no se aprecia ninguna inconsistencia en los datos de salida. El fichero .gedx se puede abrir como un fichero .jar.
Será importante encontrar ficheros .gedx de stress.
Paso de Gedcom5.5 a GedcomX (Gedcom y gedcom5-conversion)
Leemos el fichero Gedcom5.5 y lo mapeamos con el modelo de datos GedcomX. El resultado son las entidades GedcomX descritas anteriormente.
Paso de GedcomX a Gedcom5.5
Este caso NO ESTÁ IMPLEMENTADO en el proyecto gedcom5-converson. Sólo existen mapeadores de modelo 5.5 a X y no a la inversa. Esto nos obliga a tomar una decisión:
- Fork del proyecto gedcom5-conversión. Ampliación de funcionalidad creando clases de mapping de entidades X a 5.5 realizando ingeniería inversa del código ya existente.
- El proyecto adopta el formato GedcomX como estándar de facto, PERMITIRÁ importar ficheros Gedcom5.5 como funcionalidad "legacy". NO permitirá exportar datos genealógicos en formato 5.5.
- Se utilizará el modelo de datos Gedcom que propone el parser Gedcom. NO se utilizará el modelo de datos GedcomX, ni el formato GedcomX de ficheros XML. Sólo se leerán y escribirán ficheros 5.5.
No hay comentarios:
Publicar un comentario