public function findUsedVocabularyProfileProperties()
    {
        $c = new \Criteria();
        $c->add( \ConceptPeer::VOCABULARY_ID, $this->getSchema()->getId() );
        $c->clearSelectColumns();
        $c->addSelectColumn( \ConceptPropertyPeer::CONCEPT_ID );
        $c->addSelectColumn( \ProfilePropertyPeer::ID );
        $c->addSelectColumn( \ConceptPropertyPeer::LANGUAGE );
        $c->addAscendingOrderByColumn( \ConceptPropertyPeer::CONCEPT_ID );
        $c->addJoin( \ConceptPropertyPeer::CONCEPT_ID, \ConceptPeer::ID );
        $c->addJoin( \ConceptPropertyPeer::SKOS_PROPERTY_ID, \ProfilePropertyPeer::SKOS_ID );

        $foo     = array();
        $results = \ConceptPropertyPeer::doSelectRS( $c );
        unset( $c );

        foreach ( $results as $result )
        {
            if ( ! isset( $foo[$result[0]][$result[1]][$result[2]] ) )
            {
                $foo[$result[0]][$result[1]][$result[2]] = 1;
            }
            else
            {
                $foo[$result[0]][$result[1]][$result[2]] ++;
            }
        }

        $bar = self::buildColumnArray( $foo );

        return $bar;
    }
 /**
  * Returns the number of rows matching criteria, joining the related ProfilePropertyRelatedByProfilePropertyId table
  *
  * @param Criteria $c
  * @param boolean $distinct Whether to select only distinct columns (You can also set DISTINCT modifier in Criteria).
  * @param Connection $con
  * @return int Number of matching rows.
  */
 public static function doCountJoinAllExceptProfilePropertyRelatedByProfilePropertyId(Criteria $criteria, $distinct = false, $con = null)
 {
     // we're going to modify criteria, so copy it first
     $criteria = clone $criteria;
     // clear out anything that might confuse the ORDER BY clause
     $criteria->clearSelectColumns()->clearOrderByColumns();
     if ($distinct || in_array(Criteria::DISTINCT, $criteria->getSelectModifiers())) {
         $criteria->addSelectColumn(ConceptPropertyPeer::COUNT_DISTINCT);
     } else {
         $criteria->addSelectColumn(ConceptPropertyPeer::COUNT);
     }
     // just in case we're grouping: add those columns to the select statement
     foreach ($criteria->getGroupByColumns() as $column) {
         $criteria->addSelectColumn($column);
     }
     $criteria->addJoin(ConceptPropertyPeer::CREATED_USER_ID, UserPeer::ID);
     $criteria->addJoin(ConceptPropertyPeer::UPDATED_USER_ID, UserPeer::ID);
     $criteria->addJoin(ConceptPropertyPeer::CONCEPT_ID, ConceptPeer::ID);
     $criteria->addJoin(ConceptPropertyPeer::SCHEME_ID, VocabularyPeer::ID);
     $criteria->addJoin(ConceptPropertyPeer::RELATED_CONCEPT_ID, ConceptPeer::ID);
     $criteria->addJoin(ConceptPropertyPeer::STATUS_ID, StatusPeer::ID);
     $rs = ConceptPropertyPeer::doSelectRS($criteria, $con);
     if ($rs->next()) {
         return $rs->getInt(1);
     } else {
         // no rows returned; we infer that means 0 matches.
         return 0;
     }
 }