//Hacer Metodo recursivo que me devuelva la mayor profundidad por OWLClass /* private int getDepthClass(OWLClass _class, int level) * { * java.util.Set subClass = _class.getSubClasses(ontology); * * java.util.Iterator iterator = subClass.iterator(); * * level = level + 1; * * int result = level; * * while (iterator.hasNext()) * { * int val = getDepthClass((OWLClass)iterator.next(), level); * * if (val > result) * result = val; * } * * return result; * }*/ //Hacer Metodo recursivo que me devuelva la mayor profundidad por OWLClass private int getDepthClass(OWLClass _class) { int level = 1; java.util.Set supClass = _class.getSuperClasses(ontology); //java.util.Iterator iterator = supClass.iterator(); //int result = level; while (supClass != null) { java.util.Iterator iterator = supClass.iterator(); supClass = null; if (iterator.hasNext()) { object iteratorNext = iterator.next(); if (iteratorNext is OWLClass) { level = level + 1; supClass = (iteratorNext as OWLClass).getSuperClasses(ontology); } } } return(level); }
public static HashSet <T> toHashSet <T>(this java.util.Set set) { HashSet <T> newSet = new HashSet <T>(); if (set != null) { Iterator setIterator = set.iterator(); while (setIterator.hasNext()) { newSet.Add((T)setIterator.next()); } } return(newSet); }
private OWLClass getClass(java.util.Set _Class, string keyOwl) { java.util.Iterator iterator = _Class.iterator(); OWLClass _class; while (iterator.hasNext()) { _class = (OWLClass)iterator.next(); if (_class.getIRI().toString().Equals(keyOwl)) { return(_class); } } return(null); }
// containsAll implemented by AbstractCollection public override bool Equals(object o) { if (o == null || !(o is Set)) { return(false); } Set s = (Set)o; if (size() != s.size()) { return(false); } for (Iterator it = s.iterator(); it.hasNext();) { if (!contains(it.next())) { return(false); } } return(true); }
/// <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); } } } }