Biblioteca para la migración de datos de GeoNames a vocabularios controlados en formato SKOS y texto etiquetado. Garantiza la generacion de archivos JSON, CSV con los datos completos de los lugares de geonames segun se le pase un txt con los datos en crudo que proprociona GeoNames. Tambien los puede exportar a formato de texto etuiquetado y rdf:skos para poder importar los loguares y sus nombres alternativos a un vocabulario controlado como por ejemplo TemaTres
Project description
GeoTesuario
GeoTesuario es una biblioteca de Python diseñada para facilitar la migración de datos geográficos desde los archivos de texto plano proporcionados por GeoNames a formatos estructurados como JSON, CSV, texto etiquetado y RDF SKOS. Esto permite integrar estos datos en vocabularios controlados como TemaTres.
Características
- Exportación a JSON: Convierte los datos de GeoNames a un archivo JSON estructurado.
- Exportación a CSV: Genera un archivo CSV con los datos organizados en columnas.
- Exportación a texto etiquetado: Crea un archivo de texto etiquetado compatible con TemaTres.
- Exportación a RDF SKOS: Genera un archivo RDF SKOS para vocabularios controlados, con soporte para términos y nombres alternativos.
Instalación
- Clona este repositorio:
git clone https://github.com/tu_usuario/GeoTesuario.git
- Navega al directorio del proyecto:
cd GeoTesuario
- Instala la biblioteca:
pip install .
Uso
1. Clase Migration
La clase Migration permite transformar los datos de GeoNames a formatos JSON, CSV y texto etiquetado.
Ejemplo de uso:
from GeoTesuario import Migration
# Inicializa la migración
migration = Migration("geonames_data.txt")
# Exporta a JSON
migration.exportToJSON("output.json")
# Exporta a CSV
migration.exportToCSV("output.csv")
# Exporta a texto etiquetado
migration.exportToTaggedText("output.txt")
2. Clase SkosMigration
La clase SkosMigration extiende Migration y permite exportar los datos a un formato RDF SKOS.
Ejemplo de uso:
from GeoTesuario import SkosMigration
# Inicializa la migración SKOS
skos_migration = SkosMigration("geonames_data.txt", scheme_uri="http://example.org/vocab")
# Exporta a SKOS
skos_migration.exportToSKOS("Mi Vocabulario", "output.rdf")
Estructura del Proyecto
GeoTesuario/
├── GeoTesuario/
│ ├── __init__.py # Inicialización del paquete
│ ├── Migration.py # Clase base para la migración de datos
│ └── SkosMigration.py # Clase para la exportación a RDF SKOS
├── LICENSE # Licencia MIT
├── README.md # Documentación del proyecto
├── setup.py # Configuración para PyPI
└── .gitignore # Archivos y carpetas ignorados por Git
Detalles Técnicos
Clase Migration
-
Métodos principales:
exportToJSON(path): Exporta los datos a un archivo JSON.exportToCSV(path): Exporta los datos a un archivo CSV.exportToTaggedText(path): Exporta los datos a un archivo de texto etiquetado.
-
Transformaciones:
- Convierte nombres alternativos en listas.
- Reemplaza comas en los datos por punto y coma para evitar conflictos en CSV.
Clase SkosMigration
-
Métodos principales:
createConceptScheme(scheme_name): Crea el esquema principal del vocabulario SKOS.createConcept(geonameid, name, alternatenames, base_concept_uri): Crea un concepto SKOS con términos y nombres alternativos.exportToSKOS(scheme_name, output_file): Exporta los datos a un archivo RDF SKOS.
-
Detalles:
- Utiliza
xml.etree.ElementTreepara generar estructuras XML. - Formatea el XML con
xml.dom.minidompara hacerlo legible.
- Utiliza
Requisitos
- Python 3.6 o superior.
Licencia
Este proyecto está licenciado bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.
Contribuciones
¡Las contribuciones son bienvenidas! Si deseas mejorar esta biblioteca, por favor abre un issue o envía un pull request.
Contacto
- Autor: Yorjandy Martínez Lamas
- Correo: yorjandy5@gmail.com
- Repositorio: GitHub
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file geotesuario-1.0.0.tar.gz.
File metadata
- Download URL: geotesuario-1.0.0.tar.gz
- Upload date:
- Size: 6.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b7ad910d39196fe0a17263d87c1f02432c374a2ab5f093e31a8be4773a80f50e
|
|
| MD5 |
ed53eaaf4457783f762b7b6562482f6d
|
|
| BLAKE2b-256 |
a058b9f345d6d698429a86e4732b27de24870afcb3a9edb3503da08637d18a82
|
Provenance
The following attestation bundles were made for geotesuario-1.0.0.tar.gz:
Publisher:
publish.yml on Yorjandy/geo_tesuario
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
geotesuario-1.0.0.tar.gz -
Subject digest:
b7ad910d39196fe0a17263d87c1f02432c374a2ab5f093e31a8be4773a80f50e - Sigstore transparency entry: 774235831
- Sigstore integration time:
-
Permalink:
Yorjandy/geo_tesuario@86d4edc812447372dc57e3bee3d4d5ccbbe2770e -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/Yorjandy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@86d4edc812447372dc57e3bee3d4d5ccbbe2770e -
Trigger Event:
release
-
Statement type:
File details
Details for the file geotesuario-1.0.0-py3-none-any.whl.
File metadata
- Download URL: geotesuario-1.0.0-py3-none-any.whl
- Upload date:
- Size: 7.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a3803e977bb6acd1a203c50a979ce8ba5f77f0cec87f5dbc9528879f36cf78d
|
|
| MD5 |
b1eb8c1edeb41181449ffd0c3c9540e7
|
|
| BLAKE2b-256 |
e80aa4bdee339326675adbe656dbba21bcddac5f39ae13339cd4a40086346532
|
Provenance
The following attestation bundles were made for geotesuario-1.0.0-py3-none-any.whl:
Publisher:
publish.yml on Yorjandy/geo_tesuario
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
geotesuario-1.0.0-py3-none-any.whl -
Subject digest:
8a3803e977bb6acd1a203c50a979ce8ba5f77f0cec87f5dbc9528879f36cf78d - Sigstore transparency entry: 774235832
- Sigstore integration time:
-
Permalink:
Yorjandy/geo_tesuario@86d4edc812447372dc57e3bee3d4d5ccbbe2770e -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/Yorjandy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@86d4edc812447372dc57e3bee3d4d5ccbbe2770e -
Trigger Event:
release
-
Statement type: