/** * Возвращает фрагмент названия субаксиомы из ее типизированных свойств и из диапазонов. * * @param propDomainPairList * @return */ private String getDatatypePropNameFragment(ArrayList<PairOfIRI> propDomainPairList) { String fragment = ""; for (PairOfIRI pairOfIRI : propDomainPairList) { // fragment = fragment + pairOfIRI.fIRI.getFragment() // +"{"+pairOfIRI.sIRI.getFragment()+"}" + // ConstantsOntConverter.UPO_TITLE_DELIMITER; fragment = fragment + pairOfIRI.getFirst().getFragment() + UPOont.getFBrackedString(pairOfIRI.getFirst().getFragment()) + ConstantsOntConverter.UPO_TITLE_DELIMITER; } return fragment; }
/** * Связывает концепт-субаксиому с другими концептами в ОПП. * * @param sbAx суаксиома * @param sbAxInd экземпляр субаксиомы */ private void bindingConceptOfComplexSubAxiomWithOther( OWLNamedIndividual sbAxInd, UserPresenOnt upo) { /* * связать концепт субаксиомы с объектными и типизированными свойствами * классов субаксиомы разобраться с объектными свойсвами внутри аксиомы * ! Решил убрать привязку объектных свойств классов в субаксиоме к ней * т.к. ранее убрал привязку к классам (простым субаксиомам) по * домену/радиусу свойства */ LOGGER.info(" ===bindingConceptOfComplexSubAxiomWithOther================"); LOGGER.info(" Subaxiom:<" + this.getTitle() + ">"); /* * Убираем привязку объектных свойств * LOGGER.info(" =Binding sbAx with obj properties:"); for * (Iterator<PairOfIRI> it = sbAx.getIteratorOfObjectPropertyList(); * it.hasNext();) { PairOfIRI pair = (PairOfIRI) it.next(); * LOGGER.info(" ObjPrp:"+ pair.fIRI + " Val:" + pair.sIRI); * this.makeObjPrpOBetweenElements(sbAxInd.getIRI(), pair.fIRI, * pair.sIRI, false); } */ LOGGER.info(" =Binding sbAx with dtp properties:"); for (Iterator<PairOfIRI> it = this.getIteratorOfDataPropertyList(); it.hasNext(); ) { PairOfIRI pair = (PairOfIRI) it.next(); LOGGER.info(" DtpPrp:" + pair.getFirst() + " Val:" + pair.getFirst()); /* * Добавляем новый концеп-радиус т.к. старый (если существует) * связан с другим СКОС концептом, а договорились что у радиусов * будем генерить новый */ OWLNamedIndividual newRange = upo.addDatatypeRangeToUPO(pair.getFirst(), pair.getFirst()); upo.makeObjPrpOBetweenElements(sbAxInd.getIRI(), pair.getFirst(), newRange.getIRI(), false); } /* * Привязывем к субаксиоме ее именованные классы */ for (ArrayList<IRI> prpAndCls : this.getBindedClassList()) { // Карта пар: свойство --> именованный класс (входящий в субаксиому // * и потому привязываемый к ней). IRI clsIndIRI = upo.getConceptOfSubAxiomFromUPObyIRIinHiddenLabel(prpAndCls.get(1)); IRI prpIRI = prpAndCls.get(0); upo.makeObjPrpOBetweenElements(sbAxInd.getIRI(), prpIRI, clsIndIRI, false); } /* Привязываем субаксиомы */ LOGGER.info(" =Binding sbAx with other Subaxiom:"); for (Iterator<PrpIRIandSubAxiom> it = this.getIteratorOfprpFromAxList(); it.hasNext(); ) { PrpIRIandSubAxiom pair = (PrpIRIandSubAxiom) it.next(); LOGGER.info(" PRP:" + pair.propIRI + " SbAx:" + pair.subax.getTitle()); OWLNamedIndividual newSbAx = pair.subax.addRelatedSubAxiom(sbAxInd, pair.propIRI, upo); /*- OWLNamedIndividual newSbAx = this.addSubAxiom(pair.subax); this.makeObjPrpOBetweenElements(sbAxInd.getIRI(), pair.propIRI, newSbAx.getIRI(), false); */ LOGGER.info(" Subaxiom:" + newSbAx.toString()); } LOGGER.info(" ===END-bindingConceptOfComplexSubAxiomWithOther================"); }