public List <GeonameNode> ObtenerLocalizacion(string lugar) { //Crea el Objeto que guarda todo el conocimiento del negocio semanticIndexManager = new SemanticIndexManager(); return(semanticIndexManager.ObtenerLocalizaciones(lugar)); }
public List <GeonameNode> ObtenerLugardeCoordenadasJerarquia(string latitud, string longitud) { //Crea el Objeto que guarda todo el conocimiento del negocio semanticIndexManager = new SemanticIndexManager(); return(semanticIndexManager.ObtenerLugardeCoordenadasJerarquia(latitud, longitud)); }
public List <GeonameNode> GeoNames_Hierarchy(int GeonameId) { //Crea el Objeto que guarda todo el conocimiento del negocio semanticIndexManager = new SemanticIndexManager(); return(semanticIndexManager.GeoNames_Hierarchy(GeonameId)); }
public List <GeonameNode> ObtenerCiudadesConsulta(string Consulta) { //Crea el Objeto que guarda todo el conocimiento del negocio semanticIndexManager = new SemanticIndexManager(); return(semanticIndexManager.ObtenerCiudadesConsulta(Consulta)); }
public string ObtenerListaLugarCoordenadas_AM1(string geonodesSerializados) { //Crea el Objeto que guarda todo el conocimiento del negocio semanticIndexManager = new SemanticIndexManager(); //Desserializamos el objeto enviado List <GeonameNode> geonodes = geonodesSerializados.DeserializarTo <List <GeonameNode> >(); //Objeto copia para las operaciones List <GeonameNode> geonodestmp = new List <GeonameNode>(); foreach (GeonameNode geotmp in geonodes) { List <GeonameNode> geonodestmpj = new List <GeonameNode>(); geonodestmpj = semanticIndexManager.ObtenerLugardeCoordenadasJerarquia(geotmp.Latitud, geotmp.Longitud); if (geonodestmpj != null) { foreach (GeonameNode getmpj in geonodestmpj) { if (getmpj.fcode == "ADM1") { geonodestmp.Add(getmpj); } } } } //Serializar la lista de salida return(geonodestmp.SerializarToXml()); }
public FeedXively RetornarDatosSensor(string feedID, DateTime fechaInicio, DateTime fechaFin) { //Crea el Objeto que guarda todo el conocimiento del negocio semanticIndexManager = new SemanticIndexManager(); //Obtener el JSON de la BDD return(semanticIndexManager.RetornarDatosSensor(feedID, fechaInicio, fechaFin)); }
public List <FeedXively> RetornarMapaLugarDatapoints(double Latitud, double Longitud, string Consulta, DateTime fechaInicio, DateTime fechaFin, string idioma = "Español", double radio = 100) { string expansion = ObtenerConfig("utilizarExpansion"); //Crea el Objeto que guarda todo el conocimiento del negocio semanticIndexManager = new SemanticIndexManager(); //Crea una copia de la lista para eliminar los sensores que no se les puede calcular distancia List <FeedXively> FeedsConPosicion = new List <FeedXively>(); //Lista de los resultados de la busqueda List <FeedXively> dtsResult = new List <FeedXively>(); //Buscar la consulta en el índice if (!string.IsNullOrEmpty(Consulta) && ObtenerConfiguracion("BusquedaBloqueada") == "No") { dtsResult = BuscarFeedsDataPoints(Consulta, fechaInicio, fechaFin, idioma); } else { return(null); } //Si encontro sensores entonces validar los que entran en el radio de acción if (dtsResult != null) { List <string> clavesBorrar = new List <string>(); foreach (FeedXively dtr in dtsResult) { if (dtr.feed.location != null && dtr.feed.location.lat != null && dtr.feed.location.lon != null) { //La funcion establece que el sensor este en el rango de N kms del lugar especificado. Si esta devuelve la distancia, sino devuelve cero double distancia = semanticIndexManager.VerificarSensorenLugar(Latitud, Longitud, Convert.ToDouble(dtr.feed.location.lat, culture), Convert.ToDouble(dtr.feed.location.lon, culture), radio); if (distancia > 0) { //ListaResultados.Add(indice, distancia); GeonameNode nodolugardistancia = new GeonameNode(); nodolugardistancia.Latitud = Latitud.ToString(); nodolugardistancia.Longitud = Longitud.ToString(); lugar ld = new lugar(); ld.nodoGeoname = nodolugardistancia; ld.distancia = distancia; //Creamos el espacio en la variable de lista de lugares relacionada al sensor dtr.lugares = new List <lugar>(); dtr.lugares.Add(ld); FeedsConPosicion.Add(dtr); } } } } //Finalmente retorna la lista con los sensores correspondientes return(FeedsConPosicion); }
public FeedXively RetornarMetadatosSensor(string IdSensor) { //Crea el Objeto que guarda todo el conocimiento del negocio semanticIndexManager = new SemanticIndexManager(); //Obtener el objeto de la BDD FeedXively xtemp = semanticIndexManager.ObtenerJSONFeedBDD(IdSensor); return(xtemp); }
public string RetornarJsonSensor(string IdSensor) { //Crea el Objeto que guarda todo el conocimiento del negocio semanticIndexManager = new SemanticIndexManager(); //Obtener el JSON de la BDD string xtemp = semanticIndexManager.ObtenerJsonFeed(ConfigurationManager.AppSettings["APIkey"], IdSensor); //Retornar el json return(xtemp); }
public string RetornarDatapointsFeed(string feedID, string DatastreamId, string fechaInicio, string fechaFin) { //Crea el Objeto que guarda todo el conocimiento del negocio semanticIndexManager = new SemanticIndexManager(); //Obtener el JSON de la BDD string datapoints = semanticIndexManager.RetornarDatapointsFeed(feedID, DatastreamId, Convert.ToDateTime(fechaInicio), Convert.ToDateTime(fechaFin)); return(datapoints); }
public string RetornarJsonSensorLocal(string IdSensor) { //Crea el Objeto que guarda todo el conocimiento del negocio semanticIndexManager = new SemanticIndexManager(); //Obtener el JSON de la BDD //string xtemp = semanticIndexManager.ObtenerJsonFeed(ConfigurationManager.AppSettings["APIkey"], IdSensor); FeedXively xftemp = semanticIndexManager.ObtenerJSONFeedBDD(IdSensor); string xtemp = JsonConvert.SerializeObject(xftemp); //Retornar el json return(xtemp); }
public List <GeonameNode> ObtenerListaLugarCoordenadas(string geonodesSerializados) { //Crea el Objeto que guarda todo el conocimiento del negocio semanticIndexManager = new SemanticIndexManager(); //Desserializamos el objeto enviado List <GeonameNode> geonodes = geonodesSerializados.DeserializarTo <List <GeonameNode> >(); //Objeto copia para las operaciones List <GeonameNode> geonodestmp = new List <GeonameNode>(); foreach (GeonameNode geotmp in geonodes) { geonodestmp.Add(semanticIndexManager.ObtenerLugardeCoordenadas(geotmp.Latitud, geotmp.Longitud)); } return(geonodestmp); }
public string CrearIndiceSemantico(string NombreOntología) { string fuentedatos; string conceptoscargados = string.Empty; string filename = Path.GetFileName(NombreOntología); string ruta = SemanticIndexManager.RutaOntologiaSinArchivo; try { //Bloquea las búsquedas AsignarConfig("BusquedaBloqueada", "Si"); //Crea el Objeto que guarda todo el conocimiento del negocio semanticIndexManager = new SemanticIndexManager(); //Aplicar segpun los parámetros if (ObtenerConfig("BDDfuente") == "Xively") { semanticIndexManager.CrearIndiceSemantico(true); fuentedatos = "el servidor Xively"; } else { semanticIndexManager.CrearIndiceSemantico(false); fuentedatos = "la Base de Datos Local de Archivos JSON"; } //Se debe cargar los conceptos de la ontologia para el proceso de expansión de consulta conceptoscargados = CargarConceptosOntologia(ruta + NombreOntología); //Desbloquear la búsqueda AsignarConfig("BusquedaBloqueada", "No"); return("El índice se ha creado correctamente desde " + fuentedatos); } catch (Exception ex) { //Se restablece la busqueda AsignarConfig("BusquedaBloqueada", "No"); //Enviar error return("Error: Ocurrio un error al crear el Índice: " + ex.Message); } }
public List <FeedXively> RetornarMapaLugarListaSensores(double Latitud, double Longitud, List <FeedXively> dtsResult, string idioma = "Español", double radio = 100) { //Crea el Objeto que guarda todo el conocimiento del negocio semanticIndexManager = new SemanticIndexManager(); //Crea una copia de la lista para eliminar los sensores que no se les puede calcular distancia List <FeedXively> FeedsConPosicion = new List <FeedXively>(); //Si encontro sensores entonces validar los que entran en el radio de acción if (dtsResult != null) { List <string> clavesBorrar = new List <string>(); foreach (FeedXively dtr in dtsResult) { if (dtr.feed.location != null) { //La funcion establece que el sensor este en el rango de N kms del lugar especificado. Si esta devuelve la distancia, sino devuelve cero double distancia = semanticIndexManager.VerificarSensorenLugar(Latitud, Longitud, Convert.ToDouble(dtr.feed.location.lat, culture), Convert.ToDouble(dtr.feed.location.lon, culture), radio); if (distancia > 0) { //ListaResultados.Add(indice, distancia); GeonameNode nodolugardistancia = new GeonameNode(); nodolugardistancia.Latitud = Latitud.ToString(); nodolugardistancia.Longitud = Longitud.ToString(); lugar ld = new lugar(); ld.nodoGeoname = nodolugardistancia; ld.distancia = distancia; //Creamos el espacio en la variable de lista de lugares relacionada al sensor dtr.lugares = new List <lugar>(); dtr.lugares.Add(ld); FeedsConPosicion.Add(dtr); } } } } //Finalmente retorna la lista con los sensores correspondientes return(FeedsConPosicion); }
public List <FeedXively> BuscarFeeds(string consulta, string idioma = "Español") { if (!string.IsNullOrEmpty(consulta) && ObtenerConfiguracion("BusquedaBloqueada") == "No") { //Crea el Objeto que guarda todo el conocimiento del negocio SemanticIndexManager semanticIndexManager = new SemanticIndexManager(); //Crea la lista de documentos que serán el resultado de la búsqueda List <UrlDocument> allReponse = new List <UrlDocument>(); //Se busca en español o el ingles. Si es nulo busca por ambos. if (idioma == "Español") { allReponse = semanticIndexManager.BuscarSemanticIndex(consulta, true); } else if (idioma == "Ingles") { allReponse = semanticIndexManager.BuscarSemanticIndex(consulta, false); } else { allReponse = semanticIndexManager.BuscarSemanticIndex(consulta, true); //Por defecto busca español } //Armar la estructura de datos a retornar como resltado List <FeedXively> SensoresResult = new List <FeedXively>(); //Traemos todos los metadatos del sensor que estan almacenados en la BDD local foreach (UrlDocument urldoc in allReponse) { FeedXively xtemp = semanticIndexManager.ObtenerJSONFeedBDD(urldoc.Id); SensoresResult.Add(xtemp); } return(SensoresResult); } else { return(null); } }
public string CargarFeedXivelyBDD(string feedId) { try { //Bloquea las búsquedas AsignarConfig("BusquedaBloqueada", "Si"); //Recupera el objeto de logica de negoicio de la aplicación para que el cambio de ontologia tenga efecto semanticIndexManager = new SemanticIndexManager(); //semanticIndexManager.Timeout = -1; semanticIndexManager.CargarFeedXivelyBDD(feedId); //Desbloquea las búsquedas AsignarConfig("BusquedaBloqueada", "No"); return("El índice se ha Actualizado correctamente desde el servidor Xively."); } catch (Exception ex) { AsignarConfig("BusquedaBloqueada", "No"); return("Ocurrio un error para cargar e indexar el Feed: " + ex.Message); } }
public List <GeonameNode> ObtenerListaLugarCoordenadasJerarquica(string geonodesSerializados) { //Crea el Objeto que guarda todo el conocimiento del negocio semanticIndexManager = new SemanticIndexManager(); //Desserializamos el objeto enviado List <GeonameNode> geonodes = geonodesSerializados.DeserializarTo <List <GeonameNode> >(); //Objeto copia para las operaciones List <GeonameNode> geonodestmp = new List <GeonameNode>(); foreach (GeonameNode geotmp in geonodes) { List <GeonameNode> geonodestmpj = new List <GeonameNode>(); geonodestmpj = ObtenerLugardeCoordenadasJerarquia(geotmp.Latitud, geotmp.Longitud); //Añadimos el último nodo que contiene el lugar buscado if (geonodestmpj != null) { geonodestmp.Add(geonodestmpj[geonodestmpj.Count - 1]); } } return(geonodestmp); }
private DataSet SearchSemanticIndex(string Consulta, string idioma) { //string idioma = ObtenerConfig("idiomaBusqueda"); string expansion = ObtenerConfig("utilizarExpansion"); //Crea el Objeto que guarda todo el conocimiento del negocio semanticIndexManager = new SemanticIndexManager(); //Crea la lista de documentos que serán el resultado de la búsqueda List <UrlDocument> allReponse = new List <UrlDocument>(); if (expansion == "Si") { //Realiza la expansión de la consulta a través del servicio. Consulta = ExpandirConsulta(Consulta, idioma); } //Se busca en español o el ingles. Si es nulo busca por ambos. if (idioma == "Español") { allReponse = semanticIndexManager.BuscarSemanticIndex(Consulta, true); } else if (idioma == "Ingles") { allReponse = semanticIndexManager.BuscarSemanticIndex(Consulta, false); } else { allReponse = semanticIndexManager.BuscarSemanticIndex(Consulta, true); //Por defecto busca español } //para DATASET que se devolvera como resultado UrlDocument objUrld = new UrlDocument(); DataSet nuevoDS = new DataSet(); DataTable table1 = new DataTable("Objetos Encontrados"); table1.Columns.Add("Id"); table1.Columns.Add("Title"); table1.Columns.Add("Titulo_HTML"); table1.Columns.Add("Url"); table1.Columns.Add("URL_Sensor"); table1.Columns.Add("Resumen"); table1.Columns.Add("Tags"); table1.Columns.Add("Localizacion"); table1.Columns.Add("Dominio"); table1.Columns.Add("Datastreams_feed"); table1.Columns.Add("Website"); table1.Columns.Add("Elevacion"); table1.Columns.Add("Latitud"); table1.Columns.Add("Longitud"); //Campos para el PageRangkin table1.Columns.Add("Conceptos"); //Conceptos por los cuales fue encontrado en Xively table1.Columns.Add("Consulta"); //Consulta por la cual fue seleccionado el sensor table1.Columns.Add("Distancia"); //Distancia para efectos de un lugar específico table1.PrimaryKey = new DataColumn[] { table1.Columns["Id"] }; foreach (UrlDocument urldoc in allReponse) { table1.Rows.Add(urldoc.Id, urldoc.Tittle, urldoc.TituloHTML(), urldoc.URL, urldoc.URLMostrar(), urldoc.Resume, urldoc.Tags, urldoc.Localizacion_name, urldoc.Domain, urldoc.Datastreams_feed, urldoc.Website, urldoc.Elevacion, urldoc.Latitud, urldoc.Longitud, urldoc.ConceptosLista(), Consulta); } nuevoDS.Tables.Add(table1); return(nuevoDS); }
public WSSemanticSearch() { SemanticIndexManager _semanticIndexManager = new SemanticIndexManager(); }