Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Recursividad #1

Open
ExarcaFidalgo opened this issue Feb 16, 2021 · 1 comment
Open

Recursividad #1

ExarcaFidalgo opened this issue Feb 16, 2021 · 1 comment

Comments

@ExarcaFidalgo
Copy link
Collaborator

El funcionamiento estándar con las ShapeRef (ahora mismo) es que genere un mini-formulario con los correspondientes campos del referido. Esto está muy bien si, digamos, es un Usuario con una Dirección, pero cuando una Shape nos hace algo así:

<human> EXTRA wdt:P31 {
  wdt:P22 @<human> *;             # father
  wdt:P25 @<human> *;             # mother
}

Intenta generar formularios de aquí hasta la reunificación china, lo cual es excesivo, naturalmente.

Podríamos detectar que está referenciandose a sí mismo e imponer un límite... pero yo me pregunto, ¿no sería lógico dar la posibilidad de señalar como padre a una "entidad" de Humano ya creada? En un caso como este, ante un nuevo nacimiento de una figura pública sería algo esperable... Así que no todo son formularios simples, digo yo. Pero bueno, por ahora quizá con que estos campos se generen de manera gandul (lazy para los corsarios), un "Añadir Padre" supongo que será suficiente.

Ahora que me fijo, y lo anoto por curiosidad, se pueden tener varios padres. Imagino que se refiere pues a una cuestion legal, y no biológica.

@labra
Copy link
Member

labra commented Mar 20, 2021

Creo que lo mejor para tratar con shapes recursivas es asumir que son potencialmente infinitas pero no mostrarlas de forma infinita sino bajo demanda.

Sería algo similar a cómo se trabaja en lenguajes de programación con evaluación perezosa (ejemplo, Haskell), en los que se pueden definir estructuras de datos potencialmente infinitas, pero que realmente el sistema no las computa de forma "eager", si no de forma perezosa (bajo demanda).

De esa forma, el formulario, podría mostrar un par de símbolos "+" para añadir padres o madres según quiera el que rellene el informe.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants