public static synchronized boolean isSingleValued( OntClass cls, OntProperty prop, String rngString) { if (prop.isFunctionalProperty()) { return true; } if (cls != null) { ExtendedIterator<OntClass> eitr = cls.listSuperClasses(false); while (eitr.hasNext()) { OntClass supercls = eitr.next(); if (supercls.isRestriction()) { Restriction rstrct = supercls.asRestriction(); if (rstrct.isMaxCardinalityRestriction()) { MaxCardinalityRestriction mxcr = rstrct.asMaxCardinalityRestriction(); if (mxcr.getOnProperty().equals(prop) && mxcr.getMaxCardinality() == 1) { return true; } } else if (rstrct.isCardinalityRestriction()) { if (rstrct.isCardinalityRestriction()) { CardinalityRestriction cr = rstrct.asCardinalityRestriction(); if (cr.getOnProperty().equals(prop) && cr.getCardinality() == 1) { return true; } } } else { if (rstrct.hasProperty(OWL2.maxQualifiedCardinality)) { if (rstrct.getOnProperty().equals(prop) && rstrct.getProperty(OWL2.maxQualifiedCardinality).getInt() == 1) { // check class if (rstrct.getProperty(OWL2.onClass).getResource().toString().equals(rngString)) { return true; } } } else if (rstrct.hasProperty(OWL2.qualifiedCardinality)) { if (rstrct.getOnProperty().equals(prop) && rstrct.getProperty(OWL2.qualifiedCardinality).getInt() == 1) { // check class if (rstrct.getProperty(OWL2.onClass).getResource().toString().equals(rngString)) { return true; } } } // StmtIterator siter = rstrct.listProperties(); // while (siter.hasNext()) { // System.out.println(siter.nextStatement().toString()); // } } } } } return false; }
private void tryRestriction( OntClass theClass, VClassDao vcDao, ObjectPropertyDao opDao, IndividualDao iDao, ArrayList results, String vClassURI) { if (theClass.isRestriction()) { Restriction rest = (Restriction) theClass.as(Restriction.class); try { results.add("XX"); Property onProperty = rest.getOnProperty(); ObjectProperty op = opDao.getObjectPropertyByURI(onProperty.getURI()); results.add(op.getLocalNameWithPrefix()); if (rest.isAllValuesFromRestriction()) { results.add("all values from"); AllValuesFromRestriction avfrest = (AllValuesFromRestriction) rest.as(AllValuesFromRestriction.class); Resource allValuesFrom = avfrest.getAllValuesFrom(); results.add(printAsClass(vcDao, allValuesFrom)); } else if (rest.isSomeValuesFromRestriction()) { results.add("some values from"); SomeValuesFromRestriction svfrest = (SomeValuesFromRestriction) rest.as(SomeValuesFromRestriction.class); Resource someValuesFrom = svfrest.getSomeValuesFrom(); results.add(printAsClass(vcDao, someValuesFrom)); } else if (rest.isHasValueRestriction()) { results.add("has value"); HasValueRestriction hvrest = (HasValueRestriction) rest.as(HasValueRestriction.class); RDFNode hasValue = hvrest.getHasValue(); if (hasValue.isResource()) { Resource hasValueRes = (Resource) hasValue.as(Resource.class); try { if (hasValueRes.getURI() != null) { Individual ind = iDao.getIndividualByURI(hasValueRes.getURI()); if (ind.getName() != null) { results.add(ind.getName()); } } } catch (Exception e) { results.add("???"); } } } else if (rest.isMinCardinalityRestriction()) { MinCardinalityRestriction crest = (MinCardinalityRestriction) rest.as(MinCardinalityRestriction.class); results.add("at least " + crest.getMinCardinality()); results.add(LAMBDA); } else if (rest.isMaxCardinalityRestriction()) { MaxCardinalityRestriction crest = (MaxCardinalityRestriction) rest.as(MaxCardinalityRestriction.class); results.add("at most " + crest.getMaxCardinality()); results.add(LAMBDA); } else if (rest.isCardinalityRestriction()) { CardinalityRestriction crest = (CardinalityRestriction) rest.as(CardinalityRestriction.class); results.add("exactly " + crest.getCardinality()); results.add(LAMBDA); } results.add( "<form action=\"addRestriction\" method=\"post\">" + "<input type=\"hidden\" name=\"_action\" value=\"delete\"/>" + "<input type=\"submit\" value=\"Delete\"/>" + "<input type=\"hidden\" name=\"_epoKey\" value=\"" + epo.getKey() + "\"/>" + "<input type=\"hidden\" name=\"classUri\" value=\"" + vClassURI + "\"/>" + "<input type=\"hidden\" name=\"restrictionId\" value=\"" + ((rest.getId() != null) ? rest.getId() : rest.getURI()) + "\"/>" + "</form>"); } catch (Exception e) { e.printStackTrace(); // results.add("unknown property"); } } }