Panorama del Modelo de Datos

La base de datos de SWIM está diseñada conforme a las restricciones de un base de datos de NoSQL administrada con MongoDB. Está sección describe la colección de esquemas que han sido implementados por medio de MongoDB para este proyecto.

Nota: Esta sección tiene actualizaciones pendientes.

Catálogo de la Base de Datos

El Modelo de Datos actual está compuesto de las siguientes colecciones:

  • model-base: Posee la estructura base de los modelos registrados en formato JSON.
  • model-meta: Posee los metadatos de modelos registrados en SWIM.
  • output: Posee una colección de metadatos de salida del modelo.
  • parameter2: Posee una colección de metadatos de los parámetros del modelo y valores por defecto.
  • provschema: Posee la estructura de procedencia básica de la ejecución del modelo.
  • userscenario: Posee los escenarios personalizados ejecutados en el sistema.

MODEL-META (Metadatos del Modelo)

Almacena información de la implementación de un modelo científico específico, esta implementación es ejecutable por medio de un agente de software de modelaje. También proporciona información acerca de los creadores del modelo, servidor anfitrión e información de la interfaz.

Representación Primaria

MODEL-META Figure

Detalles de los Campos

Campo Categoría Descripción
_id xsd:string Identificador único autogenerado por MongoDB.
modelName xsd:string Nombre del modelo expuesto.
modelDescription xsd:string Una breve descripción de lo que el modelo hace.
dateCreated xsd:datetime Fecha de la primera edición del modelo.
dateModified xsd:datetime Fecha y hora de la última modificación al modelo.
softwareAgent xsd:string Aplicación de software que es capaz de ejecutar e implementar el modelo.
license xsd:string Información de la licencia del modelo expuesto.
version xsd:string Versión del modelo base.
sponsor xsd:string Organización, persona o institución que proporciona patrocinio.
creators Object array Autores/creadores del modelo.
creators.name xsd:string Nombre completo del creador.
creators.department xsd:string El departamento de una organización, tal como el gobierno, una universidad, un negocio o tienda, que trata con un tema específico.
creators.organization xsd:string Nombre de la organización del creador.
creators.email xsd:string Dirección de correo electrónico.
creators.city xsd:string Nombre geográfico de la localidad.
creators.state xsd:string Región asociada con la dirección de un objeto.
creators.country xsd:string Nombre del país asociado con la dirección de un objeto.
hostServer Object container Equipo del servidor en el que el modelo base y el agente de software corresponfiente es empleado.
hostServer.serverName xsd:string Nombre DNS del servidor.
hostServer.serverIP xsd:string Dirección IP externa del servidor.
hostServer.serverAdmin xsd:string Persona encargada de la administración del servidor.
hostServer.adminEmail xsd:string Dirección de correo electrónico del administrador.
hostServer.serverOwner xsd:string Organización o persona que posee el servidor físico.
serviceInfo Object container Información sobre el servicio web del modelo expuesto.
serviceInfo.serviceURL xsd:string Solicitar el URI.
serviceInfo.serviceMethod xsd:string Método http de invocar una solicitud. (ej.: POST, GET)
serviceInfo.consumes xsd:string Una lista de categorías MIME que el servicio puede consumir. (Ej.: aplicación/json)
serviceInfo.produces xsd:string Categorías MIME que son producidas como respuesta por el servicio.
service.isPublic xsd:string Determina si el servicio está disponible en la web para uso público. (verdadero/true o falso/false).
serviceInfo.externalDocs Object array Documentación externa adicional.

Representación del Esqueleto JSON

{
    "_id" : "",
    "modelName" : "",
    "modelDescription" : "",
    "dateCreated" : "",
    "dateModified" : "",
    "softwareAgent" : "",
    "license" : "",
    "version" : "",
    "sponsor" : "",
    "creators" : [
    {
        "name" : "",
        "department" : "",
        "email" : "",
        "organization" : "",
        "city" : "",
        "state" : "",
        "country" : ""
    }
    ],
    "hostServer" : {
        "serverName" : "",
        "serverIP" : "",
        "serverAdmin" : "",
        "adminEmail" : "",
        "serverOwner" : ""
    },
    "serviceInfo" : {
        "serviceURL" : "",
        "serviceMethod" : "",
        "consumes" : "",
        "produces" : "",
        "isPublic" : "",
        "externalDocs" : [""]
    }
}

MODEL BASE (Base del Modelo)

Cada documento provee metadatos sobre el escenario, tales como: nombre, descripción, fecha de creación y última modificación; un conjunto de configuraciones del modelo: Identificación (ID) del modelo, algoritmo, método.

Representación Primaria

SCENARIO Figure

Detalles de los Campos

Campo Categoría Descripción
_id xsd:string Identificador único autogenerado por MongoDB.
scenarioName xsd:string Nombre del escenario.
scenarioDescription xsd:string Una breve descripción de lo que es el escenario.
dateCreated xsd:string Fecha de la primera especificación de escenario.
dateModified xsd:datetime Fecha de la última modificación de los campos del escenario.
modelSettings Object array Configuración general de los modelos por defecto usados para el escenario actual.
modelSettings.modelID xsd:string Referencia al documento de metadatos del modelo.
modelSettings. ... xsd:string Configuraciones específicas del software de modelaje que pueden ser añadidas como atributos.
modelInputs Object array Matriz de valores de entrada del modelo.
modelInputs.paramName xsd:string Nombre del parámetro definido por el código de modelado o el agente de software.
modelInputs.paramCategory xsd:string Una clase o división de la cual el parámetro es parte.
modelInputs.paramLabel xsd:string Nombre legible de el parámetro.
modelInputs.paramUnit xsd:string Cantidad física particular, definida y adoptada por convención.
modelInputs.paramDefaultValue Object array Un valor predefinido para un parámetro en particular.
modelInputs.paramDefaultSource xsd:string Un recurso relacionado del que se deriva el recurso descrito.
modelInputs.maxValue xsd:string El mayor valor numérico que el parámetro puede tomar.
modelInputs.minValue xsd:string El menor valor numérico que el parámetro puede tomar.
modelInputs.structType xsd:string Estructura de datos usada en el campo de valor del parámetro: Escalar: Valor ssingular Tabla 1: tablas de dimensión 1 a n.
modelInputs.structDimension xsd:string Dimensiones de la estructura de la tabla. Este campo no es requerido para los valores escalares.
modelInputs.dataType xsd:string Tipos de datos del valor definido. Ej.: Integer, double.
modelInputs.definitionType xsd:string La manera en la que el valor del parámetro es establecido: Estático: codificado en el modelo. Escenario: Definido por una selección de modelo específica. Usuario: Puede ser personalizado por un usuario.

Representación del Esqueleto JSON

{
    "_id" : "",
    "scenarioName" : "",
    "scenarioDescription" : "",
    "dateCreated" : "",
    "dateModified" : "",
    "modelSettings" : [
    {
        "modelID" : "",
    }
    ],
    "modelInputs" : [
    {
        "modelID" : "",
        "paramName" : "",
        "paramLabel" : "",
        "paramCategory : "",
        "paramUnit" : "",
        "paramDefaultValue" : "",
        "paramDefaultSource" : "",
        "maxValue" : "",
        "minValue" : "",
        "dataType" : "",
        "structType" : "",
        "structDimension" : "",
        "dataType" : "",
        "definitionType" : ""
    }
    ]
}

ESCENARIO PERSONALIZADO

Almacena un conjunto de metadatos de escenarios definidos por el usuario, valores de entrada del modelo y valores de salida resultantes.

Representación Primaria

USER SCENARIO Figure

Detalles de los Campos

Campo Categoría Descripción
_id xsd:string Identificador único autogenerado por MongoDB.
className xsd:string Clase cartográfica de java "Morphia" en el servicio web.
name xsd:string Nombre definido por el usuario de un valor de entrada de proyección dado.
description xsd:string Breve descripción del escenario de proyección y los valores de entrada.
userid xsd:string Referencia a la identificación de usuario del sitio web del proyecto de agua.
baseScenario xsd:string Nombre del escenario tomado como base para la proyección actual.
baseClimateScenario xsd:string Nombre de un escenario climático tomado como base para la proyección actual.
startedAtTime xsd:datetime Fecha y hora en que se envió la proyección.
endedAtTime xsd:datetime Fecha y hora en que finalizó la ejecución del modelo.
status xsd:string Estado de ejecución de la proyección enviada. (en cola, en ejecución, completa, error)
isPublic xsd:string Marca para determinar si la proyección está disponible para el público. (verdadero/true o falso/false)
modelSettings Object array Configuración general de los modelos por defecto usados para el escenario actual.
modelSettings.modelID xsd:string Referencia al documento de metadatos del modelo.
modelInputs Object array Matriz de valores de entrada del modelo.
modelInputs.modelID xsd:string Referencia al documento de metadatos del modelo.
modelInputs.paramName xsd:string Nombre del parámetro definido por el código de modelado o el agente de software.
modelInputs.paramLabel xsd:string Nombre legible de el parámetro.
modelInputs.paramUnit xsd:string Cantidad física particular, definida y adoptada por convención.
modelInputs.paramDefaultValue Object array Un valor predefinido para un parámetro en particular.
modelInputs.paramValue Object array Valor definido por el usuario de un parámetro particular.
modelInputs.paramDefaultSource xsd:string Un recurso relacionado del que se deriva el recurso descrito.
modelInputs.maxValue xsd:string El mayor valor numérico que el parámetro puede tomar.
modelInputs.minValue xsd:string El menor valor numérico que el parámetro puede tomar.
modelInputs.structType xsd:string Estructura de datos usada en el campo de valor del parámetro: Escalar: Valor singular Tabla 1: tablas de dimensión 1 a n.
modelInputs.structDimension xsd:string Dimensiones de la estructura de la tabla. Este campo no es requerido para los valores escalares.
modelInputs.dataType xsd:string Tipo de dato del valor definido. Ej. Integer, double
modelInputs.definitionMethod xsd:string Cómo se establece el valor del parámetro: Estático: codificado en el modelo. Escenario: definido por una selección de escenario específico. Usuario: puede ser personalizado por un usuario.
modelOutputs Object array.
modelOutputs.varName xsd:string Nombre del agente de modelo o software de una variable de salida.
modelOutputs.varLabel xsd:string Nombre legible de una variable de salida.
modelOutputs.varDescription xsd:string Información detallada sobre la variable.
modelOutputs.varCategory xsd:string Clase o división de la cual la variable es parte.
modelOutputs.varValue xsd:string Valor de salida de una variable particular.
modelOutputs.varUnit xsd:string Cantidad física particular, definida y adoptada por convención.

Representación del Esqueleto JSON

{
    "_id" : "",
    "className" : "",
    "name" : "",
    "description" : "",
    "userid" : "",
    "baseScenario" : "",
    "baseClimateScenario" : "",
    "startedAtTime" : "",
    "endedAtTime" : "",
    "status" : "",
    "isPublic" : "",
    "modelSettings" : [
    {
        "modelID" : "",
    }
    ],
"modelInputs" : [
    {
    "modelID" : "",
    "paramName" : "",
    "paramLabel" : "",
    "paramCategory" : "",
    "paramUnit" : "",
    "paramDefaultValue" : "",
    "paramDefaultSource" : "",
    "paramValue" : [""],
    "structType" : "",
    "structDimension" : "",
    "dataType" : "",
    "definitionType" : ""
    }
    ],
"modelOutputs" : [
    {
    "varName" : "",
  "varLabel" : "",
    "varDescription" :"",
    "varCategory" : "",
    "varValue" : [""],
    "varUnit" : "",
    }
    ]
}