Publica tu propio perfil

La mayoría de las organizaciones se unen al mapa de la manera fácil — al añadiendo tu organización a través de nuestro formulario, sin necesidad de código. Esta página es para las redes de permacultura y los desarrolladores que prefieren publicar y alojar sus propias Murmuraciones perfiles, y mantener sus datos completamente en sus propias manos.


Esta guía es para las redes y organizaciones regionales de permacultura que deseen que sus datos aparezcan en el mapa de Colaboración Internacional de Permacultura y, debido a su funcionamiento, en cualquier otro mapa construido sobre la Murmuraciones protocolo al mismo tiempo.

La idea detrás de esto es sencilla. Publicas tus datos una vez, en un formato abierto, y los conservas. Nosotros (y cualquier otra persona) los recopilamos en nuestros mapas. Cuando cambias tus datos, todos los mapas que te incluyen también cambian. Nunca terminas rellenando la base de datos de otra persona.


Cómo funciona, en tres pasos

1. Describe cada organización como un PERFIL de Murmurations (un pequeño documento JSON)
2. ALOJA ese perfil en una URL estable que controles
3. ENVÍA la URL del perfil al ÍNDICE de Murmurations
                        │
                        ▼
   Consultamos el índice en busca de las etiquetas en las que confiamos → recuperamos tu perfil → y este aparece en nuestro mapa

No hay ninguna cuenta que abrir con nosotros, ni clave API que administrar. Tú sigues siendo tu propia fuente de verdad, y el índice simplemente apunta de vuelta a ti.

Nuestro mapa recopila los perfiles que llevan una etiqueta que hemos acordado contigo. Pregúntanos para la etiqueta de tu red — algo así como pc-network:permacultura-granbretaña —y añádelo al perfil de tu etiquetas Etiqueta. Esa etiqueta es la que le dice a nuestro agregador: “este perfil pertenece al mapa de permacultura”.”

¿Tienen datos que aún no cubre ningún esquema, como el tipo de suelo o la lluvia promedio? Echa un vistazo a Ampliando con tus propios datos más abajo. Nuestro mapa renderiza automáticamente cualquier campo documentado, y estaremos encantados de ayudarte a estandarizarlo para que otras redes adopten el mismo enfoque.


¿Preferirías no escribir JSON a mano?

No tienes que escribir JSON ni ejecutar un servidor para participar. Hay varias formas más sencillas de hacerlo.

El más simple es el nuestro Añade tu organización formulario. Rellénalo y, una vez que uno de nuestros moderadores lo haya revisado, tu organización aparecerá en el mapa. Sin código, sin alojamiento y nada que mantener después.

Si prefieres usar la herramienta más amplia de Murmurations (parte de MurmurMaps), también hay opciones alojadas:

  • Una organización: el Generador de perfiles. Rellena el formulario web en https://murmurmaps.murmurations.network/profile-generator, elige los esquemas y aloja el perfil y lo envía al índice por ti. Obtienes un perfil editable al que puedes volver y actualizar, sin necesidad de tu propio sitio web o servidor.
  • Toda una red a la vez: el Importador por Lotes. Cargar un CSV en https://murmurmaps.murmurations.network/batch-importer y valida, aloja y envía cada fila. Se aplican algunas reglas:
    • Hasta 1000 filas por lote.
    • En la primera columna debe ser oído — un identificador estable y único para cada organización que nunca se reasigna, ya que es la forma en que se comparan las actualizaciones posteriores.
    • Los encabezados de columna deben coincidir con los nombres de los campos del esquema exacto. Los campos anidados usan la notación de puntos (geolocation.lat); los arreglos usan notación de corchetesetiquetas[0], urls[0].url).
    • Para actualizar más tarde, vuelva a cargar un CSV revisado con el mismo oídos.
  • ¿Ya tienes JSON alojado? — el Actualizador de Índices. Pega una URL de perfil en https://murmurmaps.murmurations.network/index-updater para enviarlo o actualizarlo.

Estas herramientas alojadas son la forma más fácil de empezar, aunque implican que otra persona tiene tus datos. Alojar el JSON en tu propio dominio —que es lo que cubre el resto de esta guía— te da el mayor control y la reclamación más fuerte sobre la entrada de tu propia organización. Elige la que mejor se adapte a la capacidad de tu red.


Los esquemas

Un perfil declara qué esquemas sigue en esquemas_vinculados. Una organización de permacultura debería enlazar ambos de estos:

EsquemaPropósitoURL de la biblioteca
organizaciones_esquema-v1.0.0La identidad base de cualquier grupo, proyecto u organizaciónhttps://library.murmurations.network/v2/schemas/organizations_schema-v1.0.0
permacultura_complemento_esquema-v1.0.0Campos específicos de permaculturahttps://library.murmurations.network/v2/schemas/permaculture_addon_schema-v1.0.0

organizaciones_esquema-v1.0.0 campos

Requerido: esquemas_vinculados, nombre.

CampoEscribirNotas
esquemas_vinculadosmatrizRequerido. Enumere todos los esquemas que vincula, por ejemplo. ["organizaciones_esquema-v1.0.0","permacultura_complemento_esquema-v1.0.0"]
nombrecadenaRequerido. El nombre de la organización
apodocadenaNombre corto o alternativo
url_primariacadenaTu sitio web. Muy recomendado — lo usamos para reconocer la misma organización a través de redes (desduplicación)
etiquetasmatrizPalabras clave y tipos. Pon tu etiqueta de red acordada aquí para que te recojamos
urlsmatrizOtros enlaces: { "name": "Facebook", "url": "https://…" }
DescripcióncadenaLa organización es una entidad compleja compuesta por individuos que trabajan juntos hacia objetivos comunes. Implica una estructura definida, roles y responsabilidades, y procesos para guiar las acciones y la toma de decisiones. El éxito de una organización depende de factores como la comunicación efectiva, el liderazgo, la colaboración, la adaptabilidad y la capacidad de asignar recursos de manera eficiente. Ya sea una empresa, una institución de caridad o un organismo gubernamental, las organizaciones desempeñan un papel crucial en la sociedad, abordando diversas necesidades e impulsando el progreso.
misióncadenaMisión o propósito
estadocadena (enumeración)activo · Completado · cancelado · en espera · en_planificación
dirección_completacadenaDirección postal
país_iso_3166cadena (enumeración)Código de país de dos letras, por ejemplo. Reino Unido, KE, EN
geolocalizaciónobjeto{ "lat": , "lon": }necesitaba aparecer en el mapa
imagencadenaURL del logotipo
imagen_encabezadocadenaURL del banner
imágenesmatrizMás imágenes
rsscadenaURL del feed RSS
relacionesmatrizEnlaces a otros perfiles de Murmurations
comienza_a / finaliza_ennúmeroMarcas de tiempo de Unix (para entidades con tiempo limitado)
detalles de contactoobjeto{ "email": "hola@org.ejemplo", "contact_form": "https://org.ejemplo/contacto" }
teléfonocadenaNúmero de teléfono
alcance_geográficocadena (enumeración)local · regional · nacional · internacional
id_unicocadenaUna ID estable que controlas. Si está presente, la usamos como la clave de deduplicación más sólida.

permacultura_complemento_esquema-v1.0.0 campos

Requerido: esquemas_vinculados (ya cubierto arriba).

CampoEscribirNotas / valores permitidos
tipo_organizaciónmatriz (enumeración)Asociación · Red · Grupo · Proyecto · Escuela o academia de permacultura · Organización o cooperativa de diseñadores de permacultura · Otra organización
Permacultura_dominiosmatriz (enumeración)Entorno construido · Cultura y Educación · Salud y Bienestar · Finanzas y Economía · Gestión de la Tierra y la Naturaleza · Tenencia de la tierra y gobernanza comunitaria · Herramientas y Tecnología
formas de participarmatriz (enumeración)Únete como miembro · Voluntario · Donar · Visítanos · Compre nuestros productos o servicios · Inscríbete en nuestras actividades · Otros - vea nuestro sitio web o redes sociales para más detalles
PropósitocadenaTexto libre
número_de_miembrosnúmero
número_de_beneficiariosnúmero
alcance geográficocadenaTexto libre describiendo tu alcance
etiquetas_liderazgomatrizLiderazgo, dirección, impulso, guía, influencia, autoridad, iniciativa, toma de decisiones, visión, estrategia, inspiración, ejemplo, gestión, organización, coordinación, colaboración, equipo, motivación, responsabilidad, delegación.
fecha_agregadanúmeroMarca de tiempo Unix

Los valores del enumerado deben coincidir exactamente, incluyendo las mayúsculas y el apóstrofo en diseñadores'. Cualquier cosa fuera de la lista fallará la validación.


Un perfil completo de ejemplo

{
  "linked_schemas": [
    "organizations_schema-v1.0.0",
    "permaculture_addon_schema-v1.0.0"
  ],
  "name": "Asociación de Permacultura de Gran Bretaña",
  "nickname": "PAB",
  "primary_url": "https://www.permaculture.org.uk",
  "description": "La organización benéfica miembro que apoya la permacultura en toda Gran Bretaña.",
  "tags": ["permacultura", "pc-network:permaculture-britain"],
  "urls": [
    { "name": "Foro", "url": "https://www.permaculture.org.uk/forums" }
  ],
  "country_iso_3166": "GB",
  "geolocation": { "lat": 51.5074, "lon": -0.1278 },
  "image": "https://www.permaculture.org.uk/logo.png",
  "contact_details": { "email": "hello@permaculture.org.uk" },
  "geographic_scope": "nacional",
  "status": "activo",
  "unique_id": "pab-uk",
  "org_type": ["Asociación", "Red"],
  "permaculture_domains": ["Cultura y Educación", "Gestión de la tierra y la naturaleza"],
  "ways_to_get_involved": ["Únete como miembro", "Ser voluntario", "Donar"]
}

Los dos esquemas enlazados se fusionan en un único objeto plano, por lo que los campos de organización y los campos del complemento de permacultura se encuentran uno al lado del otro.


Alojamiento del perfil

Sirva ese JSON a URL estable y accesible públicamente que controles, con Content-Type: application/json. Cualquiera de estos servirá:

  • Un archivo estático en tu sitio, como https://your-org.example/murmurations.json
  • Un punto de conexión CMS o una función sin servidor que devuelve el JSON
  • Un archivo generado en tu pipeline de CI/CD

Si publicas muchos organizaciones —una red con docenas de miembros— le da a cada una su propia URL, por ejemplo https://your-network.example/murmurations/{slug}.json.


Enviando al índice

Díganle al Índice de Murmuraciones dónde reside su perfil. Lo obtendrá, lo validará y comenzará a servirlo a los agregadores, incluidos nosotros.

POST https://index.murmurations.network/v2/nodes
Content-Type: application/json
{ "profile_url": "https://tu-org.example/murmurations.json" }

Una respuesta exitosa devuelve una id_nodo tu SHA-256 url_perfil) y una estado. Puedes consultarlo en cualquier momento:

GET https://index.murmurations.network/v2/nodes/{node_id}
  • Valida primero — te ahorra muchas molestias. Puedes revisar un perfil antes tú alojas o envías algo enviando la perfil completo JSON al validador:
  POST https://index.murmurations.network/v2/validate
  Content-Type: application/json
  { …tu perfil JSON completo, incluyendo linked_schemas… }

Devuelve éxito o una lista de errores precisos a nivel de campo, cada uno con un Puntero JSON como /geolocalización/lat. No se requiere alojamiento.

  • Actualizando. Edita tu JSON alojado, luego envía lo mismo url_perfil otra vez — volver a enviar es lo que hace que el índice vuelva a obtener la información. Esto es importante: el índice no consulta los perfiles en buen estado de forma programada, por lo que un cambio en su archivo no se detecta hasta que lo vuelve a enviar. Volver a enviar contenido sin cambios no causa daño y no actualizará su marca de tiempo.
  • Eliminando. Pon el perfil sin conexión para que su URL deje de devolver el JSON 404 es la forma habitual), entonces llamar ELIMINAR https://index.murmurations.network/v2/nodes/{node_id}. El índice verifica la URL primero y se negará mientras el perfil todavía se esté sirviendo. Alternativamente, establezca un expira campo (una marca de tiempo de Unix) en el perfil, y el índice lo elimina automáticamente una vez que pasa ese tiempo. De cualquier manera, luego desaparece de los mapas que lo agregan, incluidos los nuestros.

Puedes ensayar todo esto de forma segura. Hay un entorno de prueba completo — https://test-index.murmurations.network/v2 para validar y enviar, y https://test-library.murmurations.network/v2 para esquemas — así puedes probar cosas sin tocar producción. No se necesita cuenta ni clave de API en ninguna parte.


Fragmentos de código

Cada fragmento (a) crea un objeto de perfil y (b) envía su URL alojada al índice. Adapta perfil a tus propios datos, y aloja el JSON serializado en profileUrl.

TypeScript / Node

type Geo = { lat: number; lon: number };
interface PermacultureProfile {
  linked_schemas: string[];
  name: string;
  primary_url?: string;
  tags?: string[];
  country_iso_3166?: string;
  geolocation?: Geo;
  org_type?: string[];
  permaculture_domains?: string[];
  ways_to_get_involved?: string[];
  unique_id?: string;
}
const profile: PermacultureProfile = {
  linked_schemas: ["organizations_schema-v1.0.0", "permaculture_addon_schema-v1.0.0"],
  name:;

Python

import json
import requests
profile = {
    "linked_schemas": [
        "organizations_schema-v1.0.0",
        "permaculture_addon_schema-v1.0.0",
    ],
    "name": "Permaculture Association Britain",
    "primary_url": "https://www.permaculture.org.uk",
    "tags": ["permaculture", "pc-network:permaculture-britain"],
    "country_iso_3166": "GB",
    "geolocation": {"lat": 51.5074, "lon": -0.1278},
    "org_type": ["Asociación", "Red"],
    "permaculture_domains": ["Cultura y Educación"],
    "ways_to_get_involved": ["Hacerse socio", "Voluntariado"],
    "unique_id": "pab-uk",
}
# 1. Aloja este JSON en una URL que controles:
with open("murmurations.json", "w", encoding="utf-8") as f:
    json.dump(profile, f, ensure_ascii=False, indent=2)
profile_url = "https://www.permaculture.org.uk/murmurations.json"
# 2. Envíalo al índice:
res = requests.post(
    "https://index.murmurations.network/v2/nodes",
    json={"profile_url": profile_url},
    timeout=15,
)
print(res.status_code, res.json())

PHP

[
        'organizations_schema-v1.0.0',
        'permaculture_addon_schema-v1.0.0',
    ],
    'name' => 'Asociación de Permacultura de Gran Bretaña',
    'primary_url' => 'https://www.permaculture.org.uk',
    'tags' => ['permaculture', 'pc-network:permaculture-britain'],
    'country_iso_3166' => 'GB',
    'geolocation' => ['lat' => 51.5074, 'lon' => -0.1278],
    'org_type' => ['Asociación', 'Red'],
    'permaculture_domains' => ['Cultura y educación'],
    'ways_to_get_involved' => ['Hacerse socio', 'Voluntariado'],
    'unique_id' => 'pab-uk',
];
// 1. Aloja este JSON en una URL que controles:
file_put_contents('murmurations.json', json_encode($profile, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES));
$profileUrl = 'https://www.permaculture.org.uk/murmurations.json';
// 2. Envíalo al índice:
$ch = curl_init('https://index.murmurations.network/v2/nodes');
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS => json_encode(['profile_url' => $profileUrl]),
    CURLOPT_RETURNTRANSFER => true,
]);
$response = curl_exec($ch);
echo curl_getinfo($ch, CURLINFO_HTTP_CODE) . "n" . $response . "n";
curl_close($ch);

Deduplicación y traspasos

Si dos redes enumeran la misma organización, nuestro mapa las colapsa en una sola entrada y muestra la actualizado más recientemente perfil. Los empareja en un compartido url_primaria (normalizado) o uno compartido id_unico. Unas pocas cosas se derivan de eso:

  • Siempre pon url_primaria, y, idealmente id_unico también. Es como sabemos que dos entradas son la misma organización.
  • Cuando una red regional se hace cargo de una organización que CoLab había estado listando como un marcador de posición, la red simplemente publica un perfil más actualizado, y este se convierte en la entrada canónica por sí sola.
  • Si dos redes no están de acuerdo sobre quién debe listar una organización, no hay una autoridad central para resolverlo. CoLab puede ayudarle a discutirlo, pero no puede anular una red. En la práctica, el mecanismo anterior tiende a resolver las cosas: quienquiera que la organización misma reconozca mantiene su perfil actualizado, y el perfil más actualizado es el que se muestra. Si es necesario, un operador también puede fijar un perfil particular como el canónico en nuestro propio mapa.

Ampliando con tus propios datos

¿Almacena datos que ningún esquema existente cubre, como tipo de suelo, lluvia promedio, zona climática? Tiene tres opciones, en orden de preferencia.

Una nota rápida: el de hoy permacultura_complemento_esquema-v1.0.0 no tiene campos ambientales ni cuantitativos en absoluto: ni suelo, ni lluvia ni clima. Para datos como ese, que genuinamente no tienen campo aún, se aplica la opción 2 o 3.

1. Reutilice un esquema compartido si ya existe uno. Navegar biblioteca primero. Si el campo ya está estandarizado, simplemente agregue ese esquema a su esquemas_vinculados. Nuestro mapa renderiza cualquier campo documentado automáticamente, por lo que nada cambia de nuestro lado.

2. Proponer un nuevo esquema compartido: el camino correcto a largo plazo. Así es precipitacion_anual_promedio_mm se convierte uno campo acordado en lugar de cinco incompatibles. En resumen: háblanos Primero, como supervisamos los esquemas de permacultura y ayudamos a que las redes converjan en nombres compartidos; luego bifurcar MurmuracionesBiblioteca, agrega un archivo de esquema draft-07 bajo /esquemas/, y abrir una solicitud de extracción en prueba rama. Se implementa en el entorno de pruebas cuando se fusiona, y los mantenedores luego promocionan prueba → principal para producción. Una cosa a saber: no puedes alojar tú mismo un esquema y apuntar esquemas_vinculados en tu propia URL. esquemas_vinculados contiene esquema vacío Nombres, el cual el índice resuelve solo contra la biblioteca central, por lo que un nuevo campo compartido siempre pasa por esa solicitud de extracción.

Si desea un ejemplo práctico —tomando un campo de suelo o lluvia desde “no existe campo” hasta “en vivo en el mapa”, con el archivo de esquema real y los pasos para probarlo primero— Ponerse en contacto y te guiaremos a través de él.

**3. Se necesita un campo en el mapa hoy, ¿antes de que exista algún esquema?** Como los esquemas no prohíben propiedades adicionales, puedes añadir tus propios campos a un perfil (usa nombres en minúsculas y separados por guiones bajos, por ejemplo. "precipitación_anual_media_mm": 850) y pasarán la validación y se almacenarán. Nuestras páginas de detalles ya muestran cualquier campo de este tipo con una etiqueta legible. Trate esto solo como una solución temporal: estos campos no están validados por esquema, otros agregadores que solo leen campos declarados los ignorarán y se basa en el comportamiento actual del índice que no es una característica garantizada. Indíquenos qué campos adicionales está utilizando y aceleraremos su estandarización en la opción 2.

La convergencia —todos buscando el mismo esquema compartido— es el propósito fundamental. Publica abiertamente, enlaza esquemas compartidos y tus datos se volverán útiles mucho más allá de nuestro único mapa.


Preguntas que las redes suelen hacer

¿Con qué rapidez aparece mi información y con qué rapidez aparecen las actualizaciones? Hay dos saltos, y ambos son de tipo pull. Primero, el índice solo se entera de un cambio cuando vuelves a enviar tu url_perfil, ya que no sondea perfiles saludables. Segundo, cada mapa vuelve a consultar el índice en su propio horario; el nuestro se sincroniza cada hora, por lo que una actualización llega a nuestro mapa aproximadamente una hora después de que vuelvas a enviarlo. No hay una difusión global; cada agregador extrae.

¿Cómo elimino a alguien o cumplo con una solicitud de “eliminar mis datos”? Pon el perfil sin conexión y llama ELIMINAR …/v2/nodos/{node_id} (ver Enviando al índice). La eliminación se detiene nuevo agregación y borra el índice, pero no puede retirar copias que un mapa ya haya extraído; estas se borran cuando cada mapa se resincroniza. Tenga eso en cuenta antes de publicar personas.

¿Puedo publicar personas, proyectos o eventos, no solo organizaciones? Sí. Murmurations tiene otros esquemas, como esquema_personas, y nuestro mapa no depende del esquema: mostrará cualquier tipo de perfil, con filtros. Pero los datos personales son sensibles. El índice es completamente público, así que solo publica el nombre, los datos de contacto o la dirección de una persona con su consentimiento explícito, y publicar lo mínimo necesario. Los datos de organización no están restringidos; los datos de miembros y personas son responsabilidad legal de la red de publicación.

¿Cómo maneja CoLab la privacidad y el GDPR para los datos? it ¿publica?** Mantenemos una política de GDPR y una casilla de verificación de consentimiento. CoLab solo publica los datos personales de los miembros de CoLab que han aceptado activamente, y solo los campos que acordaron. Retirar el consentimiento es el interruptor: cuando alguien se da de baja, dejamos de publicarlos, sacamos el perfil de línea y, dado que todo el proceso se actualiza cada hora, sus datos desaparecen de los mapas en aproximadamente una hora. Solo podemos hablar por la parte nosotros publicar; cada otra red que publique personas tiene que ejecutar su propio equivalente — una base legal para publicar, un paso de consentimiento claro y una forma rápida de retirar. Murmurations en sí mismo no te da nada de ese soporte, ya que el índice es simplemente público, por lo que tiene que convivir con la red de publicación.

¿Publicará el CoLab mi organización sin que yo lo pida? No. El CoLab solo publica el perfil de una organización cuando la organización nos lo pide, y solo cuando

¿Qué datos míos aparecen realmente? En el mapa: un pasador (que necesita geolocalización) con el nombre, la localidad y los enlaces. En el directorio y en la página de detalles de la organización: todos los campos de sus esquemas enlazados, más los campos adicionales, cada uno con una etiqueta legible.

¿Y si tu mapa —o el índice— desaparece? Tus datos son portátiles por diseño. Tú los alojas y tú eres dueño de ellos. Cualquier mapa basado en Murmurations puede agregar los mismos perfiles, por lo que nunca estarás atrapado con nosotros. Esa es la razón principal para publicar en este formato abierto en lugar de llenar la base de datos privada de alguien.

¿Quién decide la etiqueta de mi red? Nadie posee el espacio de nombres de etiquetas; las etiquetas de Murmurations son solo texto libre, y no podemos (ni querríamos) controlarlas. Lo que hace el CoLab es recomendar una convención, red de ordenadores: (por ejemplo pc-network:permacultura-granbretaña), y mantén un registro informal para que dos redes no escojan accidentalmente la misma. Pregúntanos qué etiqueta usar antes de publicar. Cuantas más redes adopten la convención, mejor se alinearán los datos de todos. Funciona por colaboración, no por imposición.

¿Necesito una cuenta o una clave API? No — no con nosotros, ni con el índice. El control se demuestra con tu control de la URL del perfil.


Lista de verificación

  • ☐ Los enlaces del perfil ambos esquemas en esquemas_vinculados
  • nombre está configurado; url_primaria está configurado (para deduplicación); geolocalización está configurado (para el mapa)
  • ☐ Tu etiqueta de red está en etiquetas
  • ☐ Los valores de enumeración coinciden exactamente (tipo_organización, Permacultura_dominios, formas de participar, país_iso_3166, estado, alcance_geográfico)
  • ☐ Validado mediante POST /v2/validar, para detectar errores antes de salir en vivo
  • ☐ El perfil está alojado en una URL pública estable que devuelve aplicación/json
  • ☐ El url_perfil se envía a https://index.murmurations.network/v2/nodes
  • ☐ (Opcional) verificado mediante GET /v2/nodos/{node_id}