/// <summary>
        /// Metodo que almacena un objeto de tipo OntologyConceptCopy
        /// </summary>
        /// <param name="myOntologyConcept">Objeto de tipo OntologyConceptCopy 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(OntologyConceptCopy myOntologyConceptCopy)
        {
            int result = 0;

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

                myCommand.Parameters.AddWithValue("@OntCopy_Id", myOntologyConceptCopy.OntCopyId);
                myCommand.Parameters.AddWithValue("@OntCopy_NameConcept", myOntologyConceptCopy.OntCopyNameConcept);
                myCommand.Parameters.AddWithValue("@Ont_Id", myOntologyConceptCopy.OntId);
                myCommand.Parameters.AddWithValue("@Ont_uri", myOntologyConceptCopy.Urlconcepto);


                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);
        }
        /// <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 OntologyConceptCopy FillDataRecordOriginal(IDataRecord myDataRecord)
        {
            OntologyConceptCopy myOntologyConcept = new OntologyConceptCopy();

            myOntologyConcept.OntId = myDataRecord.GetInt32(myDataRecord.GetOrdinal("ONT_ID"));
            myOntologyConcept.OntCopyNameConcept = myDataRecord.GetString(myDataRecord.GetOrdinal("ONTCOPY_NAMECONCEPT"));
            return(myOntologyConcept);
        }
        /// <summary>
        /// Metodo que inicializa un Objeto OntologyConceptCopy a partir de un registro de la Base de datos
        /// </summary>
        /// <param name="myDataRecord">Registro de la tabla TBL_ONTOLOGY_CONCEPTS_COPY</param>
        /// <returns>retorna Objeto OntologyConceptCopy inicializado</returns>
        public static OntologyConceptCopy FillDataRecord(IDataRecord myDataRecord)
        {
            OntologyConceptCopy myOntologyConceptCopy = new OntologyConceptCopy();

            myOntologyConceptCopy.OntId = myDataRecord.GetInt32(myDataRecord.GetOrdinal("ONT_ID"));
            if (!myDataRecord.IsDBNull(myDataRecord.GetOrdinal("ONTCOPY_NAMECONCEPT")))
            {
                myOntologyConceptCopy.OntCopyNameConcept = myDataRecord.GetString(myDataRecord.GetOrdinal("ONTCOPY_NAMECONCEPT"));
            }
            return(myOntologyConceptCopy);
        }
        /// <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 OntologyConceptCopy GetItem(int id)
        {
            OntologyConceptCopy 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 = FillDataRecordOriginal(myReader);
                    }
                    myReader.Close();
                }
                myConnection.Close();
            }
            return(myOntologyConcept);
        }
        public static OntologyConceptCopy GetItemUniqueConceptInUrl(string conceptName)
        {
            OntologyConceptCopy myOntologyConcept = null;

            using (SqlConnection myConnection = new SqlConnection(AppConfiguration.ConnectionString))
            {
                SqlCommand myCommand = new SqlCommand("spGetUniqueOntologyConceptInUrl", myConnection);
                myCommand.CommandType = CommandType.StoredProcedure;
                myCommand.Parameters.AddWithValue("@Ont_NameConcept", conceptName);

                myConnection.Open();
                using (SqlDataReader myReader = myCommand.ExecuteReader())
                {
                    if (myReader.Read())
                    {
                        myOntologyConcept = FillDataRecordFull(myReader);
                    }
                    myReader.Close();
                }
                myConnection.Close();
            }
            return(myOntologyConcept);
        }
        /// <summary>
        /// Metodo que obtiene un OntologyConceptCopy
        /// </summary>
        /// <param name="concepto">concepto de OntologyConceptCopy por el cual se va a buscar</param>
        /// <returns>retorna Objeto OntologyConceptCopy si el mismo se encuentra,de lo contrario retorna null</returns>
        public static OntologyConceptCopy GetItem(string concepto, string invertConcept)
        {
            OntologyConceptCopy myOntologyConceptCopy = null;

            using (SqlConnection myConnection = new SqlConnection(AppConfiguration.ConnectionString))
            {
                SqlCommand myCommand = new SqlCommand("spGetOntologyConceptCopy", myConnection);
                myCommand.CommandType = CommandType.StoredProcedure;
                myCommand.Parameters.AddWithValue("@OntCopy_NameConcept", concepto);
                myCommand.Parameters.AddWithValue("@NameConceptInvert", invertConcept);

                myConnection.Open();
                using (SqlDataReader myReader = myCommand.ExecuteReader())
                {
                    if (myReader.Read())
                    {
                        myOntologyConceptCopy = FillDataRecord(myReader);
                    }
                    myReader.Close();
                }
                myConnection.Close();
            }
            return(myOntologyConceptCopy);
        }
Exemplo n.º 7
0
        /// <summary>
        /// Metodo que retorna una lista de nombres de conceptos (clases) e individuos de la ontología
        /// </summary>
        public static List <OntologyConceptCopy> ObtenerConceptosOntologia(string ontologia)
        {
            List <OntologyConceptCopy> listaClases = new List <OntologyConceptCopy>();
            List <string> noduplicados             = new List <string>();

            string rutaDirActual = System.AppDomain.CurrentDomain.BaseDirectory;
            string rutaRelOwl    = @ontologia;
            string rutaOwl       = Path.Combine(rutaDirActual, rutaRelOwl);

            //string clases = "";

            rutaOwl = "file:///" + rutaOwl;
            OntModel m;

            m = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM);
            m.read(rutaOwl, "RDF/XML");

            for (Iterator i = m.listNamedClasses(); i.hasNext();)  //se recorren todas clases nombradas
            {
                //se la convierte a OntClass para su analisis
                OntClass cls = (OntClass)i.next();

                //Añadimos el nombre de las anotaciones Label que tenga la clase
                ExtendedIterator label = cls.listLabels(null);
                while (label.hasNext())
                {
                    //Variable temporal en el que se almacena el concepto actual
                    OntologyConceptCopy Oconcept = new OntologyConceptCopy();

                    Oconcept.Urlconcepto = cls.getURI().ToString();
                    RDFNode thisLabel = (RDFNode)label.next();
                    if (thisLabel.isLiteral())
                    {
                        Oconcept.OntCopyNameConcept = ((Literal)thisLabel).getValue().ToString();
                        //Verificar no colocar conceptos duplicados
                        if (!noduplicados.Contains(Oconcept.OntCopyNameConcept))
                        {
                            listaClases.Add(Oconcept);
                            noduplicados.Add(Oconcept.OntCopyNameConcept);
                        }
                    }
                    else
                    {
                        Oconcept.OntCopyNameConcept = thisLabel.ToString();
                        //Verificar no colocar conceptos duplicados
                        if (!noduplicados.Contains(Oconcept.OntCopyNameConcept))
                        {
                            listaClases.Add(Oconcept);
                            noduplicados.Add(Oconcept.OntCopyNameConcept);
                        }
                    }
                }
                //Se añaden las instancias. Para que no se aliminada una instancia con el mismo nombre de una clase se inicializa el vector de duplicados
                noduplicados.Clear();
                for (Iterator j = cls.listInstances(true); j.hasNext();)
                {
                    Individual ind = (Individual)j.next();
                    if (ind.isIndividual())
                    {
                        //Añadimos el nombre de las anotaciones Label que tenga el individuo
                        ExtendedIterator labelind = ind.listLabels(null);
                        while (labelind.hasNext())
                        {
                            //Variable temporal en el que se almacena el concepto actual
                            OntologyConceptCopy Oconcept = new OntologyConceptCopy();
                            Oconcept.Urlconcepto = cls.getURI().ToString();
                            RDFNode thisLabel = (RDFNode)labelind.next();
                            if (thisLabel.isLiteral())
                            {
                                Oconcept.OntCopyNameConcept = ((Literal)thisLabel).getValue().ToString();
                                //Verificar no colocar conceptos duplicados
                                if (!noduplicados.Contains(Oconcept.OntCopyNameConcept))
                                {
                                    listaClases.Add(Oconcept);
                                    noduplicados.Add(Oconcept.OntCopyNameConcept);
                                }
                            }
                            else
                            {
                                Oconcept.OntCopyNameConcept = thisLabel.toString();
                                //Verificar no colocar conceptos duplicados
                                if (!noduplicados.Contains(Oconcept.OntCopyNameConcept))
                                {
                                    listaClases.Add(Oconcept);
                                    noduplicados.Add(Oconcept.OntCopyNameConcept);
                                }
                            }
                        }
                    }
                }
            }

            return(listaClases);
        }
 /// <summary>
 /// Metodo que delega a OntologyConceptCopyDB almacenar un OntologyConceptCopy
 /// </summary>
 /// <param name="myOntolgyConceptCopy">Objeto de tipo OntologyConceptCopy 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(OntologyConceptCopy myOntologyConceptCopy)
 {
     return(OntologyConceptCopyDB.Save(myOntologyConceptCopy));
 }