protected function evaluateValues($column, core_kernel_classes_Property $property, $value)
    {
        $range = $property->getRange();
        // assume literal if no range defined
        $range = is_null($range) ? new core_kernel_classes_Class(OntologyRdfs::RDFS_LITERAL) : $range;

        $evaluatedValue = $this->applyCallbacks($value, $this->options, $property);
        // ensure it's an array
        $evaluatedValue = is_array($evaluatedValue) ? $evaluatedValue : array($evaluatedValue);

        if ($range->getUri() != OntologyRdfs::RDFS_LITERAL) {
            // validate resources
            foreach ($evaluatedValue as $key => $eVal) {
                $resource = new core_kernel_classes_Resource($eVal);
                if ($resource->exists()) {
                    if (!$resource->hasType($range)) {
                        // value outside of range
                        unset($evaluatedValue[$key]);
                    }
                } else {
                    // value not found
                    unset($evaluatedValue[$key]);
                }
            }
        }
        return $evaluatedValue;
    }