Example #1
0
        /// <summary>
        /// Metodo que almacena un objeto de tipo OntologyConcept
        /// </summary>
        /// <param name="myOntologyConcept">Objeto de tipo OntologyConcept que se va almacenar</param>
        /// <returns>retorna 1 si la transaccion se realizo con exito de lo contrario retorna 0</returns>
        public static int Save(OntologyConcept myOntologyConcept)
        {
            int result = 0;

            using (SqlConnection myConnection = new SqlConnection(AppConfiguration.ConnectionString))
            {
                SqlCommand myCommand = new SqlCommand("spOntologyConceptUpsert", myConnection);
                myCommand.CommandType = CommandType.StoredProcedure;

                myCommand.Parameters.AddWithValue("@Ont_Id", myOntologyConcept.OntId);
                myCommand.Parameters.AddWithValue("@Ont_NameConcept", myOntologyConcept.OntNameConcept);


                DbParameter returnValue;
                returnValue           = myCommand.CreateParameter();
                returnValue.Direction = ParameterDirection.ReturnValue;
                myCommand.Parameters.Add(returnValue);

                myConnection.Open();
                myCommand.ExecuteNonQuery();
                result = Convert.ToInt32(returnValue.Value);
                myConnection.Close();
            }
            return(result);
        }
Example #2
0
        /// <summary>
        /// Metodo que inicializa un Objeto myOntologyConcept a partir de un registro de la Base de datos
        /// </summary>
        /// <param name="myDataRecord">Registro de la tabla TBL_ONTOLOGY_CONCEPTS</param>
        /// <returns>retorna Objeto OntologyConcept inicializado</returns>
        public static OntologyConcept FillDataRecord(IDataRecord myDataRecord)
        {
            OntologyConcept myOntologyConcept = new OntologyConcept();

            myOntologyConcept.OntId          = myDataRecord.GetInt32(myDataRecord.GetOrdinal("ONT_ID"));
            myOntologyConcept.OntNameConcept = myDataRecord.GetString(myDataRecord.GetOrdinal("ONTCOPY_NAMECONCEPT"));
            return(myOntologyConcept);
        }
        internal int getWeigthByConcept(OntologyConcept ontologyConcept)
        {
            int Weigth = 0;

            if (ClassParent == null)
            {
                //Obtiene solo las clases.
                OWLClass _class = getClass(ontology.getClassesInSignature(), ontologyConcept.ConceptKey);
                if (_class != null)
                {
                    Weigth = getDepthClass(_class);
                }
                //else
                //{
                //    //Al ser individuo no se puede buscar en subclase, por tanto el peso es 1
                //    Weigth = 1;
                //}
            }
            return(Weigth);
        }
Example #4
0
        /// <summary>
        /// Metodo que obtiene un OntologyConcept
        /// </summary>
        /// <param name="id">Identificador del OntologyConcept que se va obtener</param>
        /// <returns>retorna Objeto OntologyConcept si el mismo se encuentra,de lo contrario retorna null</returns>
        public static OntologyConcept GetItem(int id)
        {
            OntologyConcept myOntologyConcept = null;

            using (SqlConnection myConnection = new SqlConnection(AppConfiguration.ConnectionString))
            {
                SqlCommand myCommand = new SqlCommand("spGetOntologyConcept", myConnection);
                myCommand.CommandType = CommandType.StoredProcedure;
                myCommand.Parameters.AddWithValue("@Ont_Id", id);

                myConnection.Open();
                using (SqlDataReader myReader = myCommand.ExecuteReader())
                {
                    if (myReader.Read())
                    {
                        myOntologyConcept = FillDataRecord(myReader);
                    }
                    myReader.Close();
                }
                myConnection.Close();
            }
            return(myOntologyConcept);
        }
        /// <summary>
        /// proceso para cargar las clases, subclases y axiomas de la ontologia
        /// </summary>
        private void LoadOWLAPI()
        {
            //Inicializamos variables
            OntologyConcept ontologyConcept = null;

            int    weigth     = 1;
            string claseKey   = string.Empty;
            string claseValor = string.Empty;

            //OWLClass _class;
            //Se carga la ontologia
            string path = url;

            java.io.File file = new java.io.File(path);
            //Aseguramos una ontologia en el managet
            ontology = ontologyManager.loadOntologyFromOntologyDocument(file);

            //Creamos el datafactory para obtener los labels de las clases
            OWLDataFactory        df    = ontologyManager.getOWLDataFactory();
            OWLAnnotationProperty label = df.getOWLAnnotationProperty(OWLRDFVocabulary.RDFS_LABEL.getIRI());

            //Obtenemos las clases de la ontologia y las recorremos para obtener las anotaciones
            java.util.Set clases = ontology.getClassesInSignature();
            for (java.util.Iterator iteratorClases = clases.iterator(); iteratorClases.hasNext();)
            {
                OWLClass         clase       = (OWLClass)iteratorClases.next();
                List <Anotacion> Anotaciones = new List <Anotacion>();
                java.util.Set    lit         = clase.getAnnotations(ontology, label);
                //Se recorren las anotaciones tipo Label
                for (java.util.Iterator iteratorAnno = lit.iterator(); iteratorAnno.hasNext();)
                {
                    OWLAnnotation anno           = (OWLAnnotation)iteratorAnno.next();
                    OWLLiteral    val            = (OWLLiteral)anno.getValue();
                    string        valorAnotacion = string.Empty;
                    if (val.hasLang("es"))
                    {
                        //Se debe hacer un tratamiento a la cadena por los acentos
                        valorAnotacion = ToAscii(val.getLiteral()).Trim();
                    }
                    else
                    {
                        valorAnotacion = val.getLiteral().Trim();
                    }
                    //Agregar la anotacion a la lista
                    Anotacion annotemp = new Anotacion(anno.getSignature().ToString(), valorAnotacion, val.getLang());
                    Anotaciones.Add(annotemp);
                    //Añadimos la anotacion a la lista de valores a consultar verificando que no este repetido
                    if (!valores.Contains(valorAnotacion) && !string.IsNullOrEmpty(valorAnotacion))
                    {
                        valores.Add(valorAnotacion);
                    }

                    //Reportar la anotacion encontrada
                    Trace.WriteLine(clase.getSignature().ToString() + " -> " + valorAnotacion);
                    //Almacenamos todas anotaciones en un string para el valor de la clase
                    claseValor = claseValor + " " + valorAnotacion;

                    //En caso de tener individuos se almacena en la lista de valores para su búsqueda
                    Trace.WriteLine("Obteniendo conceptos de los individuos");
                    string        individuoKey = string.Empty;
                    java.util.Set individuos   = clase.getIndividuals(ontology);
                    for (java.util.Iterator iteratorIndividuos = individuos.iterator(); iteratorIndividuos.hasNext();)
                    {
                        OWLIndividual individuo = (OWLIndividual)iteratorIndividuos.next();
                        java.util.Set litind    = individuo.asOWLNamedIndividual().getAnnotations(ontology, df.getRDFSLabel());

                        //Se recorre las anotaciones tipo Label individuo
                        for (java.util.Iterator iteratorAnnoind = litind.iterator(); iteratorAnnoind.hasNext();)
                        {
                            OWLAnnotation annoind           = (OWLAnnotation)iteratorAnnoind.next();
                            OWLLiteral    valind            = (OWLLiteral)annoind.getValue();
                            string        valorAnotacionind = string.Empty;
                            if (valind.hasLang("es"))
                            {
                                //Se debe hacer un tratamiento a la cadena por los acentos
                                valorAnotacionind = ToAscii(valind.getLiteral()).Trim();
                            }
                            else
                            {
                                valorAnotacionind = valind.getLiteral().Trim();
                            }
                            //Agregar la anotacion a la lista
                            Anotacion annotempind = new Anotacion(annoind.getSignature().ToString(), valorAnotacionind, valind.getLang());
                            Anotaciones.Add(annotempind);
                            //Añadimos la anotacion a la lista de valores a consultar verificando que no este repetido
                            if (!valores.Contains(valorAnotacionind) && !string.IsNullOrEmpty(valorAnotacionind))
                            {
                                valores.Add(valorAnotacionind);
                            }
                            //Reportar la anotacion encontrada
                            Trace.WriteLine(clase.getSignature().ToString() + ":" + individuo.getSignature().ToString() + " -> " + valorAnotacionind);
                            //Almacenamos todas anotaciones en un string para el valor de la clase
                            claseValor = claseValor + " " + valorAnotacionind;
                        }
                    }

                    //Agregar el concepto a la lista
                    claseKey                    = clase.getSignature().ToString();
                    ontologyConcept             = new OntologyConcept(claseKey, claseValor, weigth, clase, clase.getSuperClasses(ontology), clase.getSubClasses(ontology));
                    ontologyConcept.Anotaciones = Anotaciones;
                    //Reinicializamos el valor para la nueva clase
                    claseValor = "";
                    //Verificar que se obtengan conceptos diferentes. Las claseKey se repiten siempre que aporten anotaciones diferentes
                    if (!this.concepts.ContainsKey(claseKey) && !this.concepts.ContainsValue(ontologyConcept) && !valores.Contains(ontologyConcept.ConceptValue) && !string.IsNullOrEmpty(ontologyConcept.ConceptValue))
                    {
                        this.concepts.Add(claseKey, ontologyConcept);
                    }
                }
            }
        }
Example #6
0
 /// <summary>
 /// Metodo que delega a OntologyConceptDB almacenar un OntolgyConcept
 /// </summary>
 /// <param name="myOntologyConcept">Objeto de tipo OntologyConcept que se va a almacenar</param>
 /// <returns>retorna 1 si la transaccion se realizo con exito de lo contrario retorna 0</returns>
 public static int Save(OntologyConcept myOntologyConcept)
 {
     return(OntologyConceptDB.Save(myOntologyConcept));
 }