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
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
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
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" : "",
}
]
}