def determine_completeness(py_untl):
    completeness_dict = {
        'title': {'present': False, 'weight': 10, },
        'description': {'present': False, 'weight': 1, },
        'language': {'present': False, 'weight': 1, },
        'collection': {'present': False, 'weight': 10, },
        'institution': {'present': False, 'weight': 10, },
        'resourceType': {'present': False, 'weight': 5, },
        'format': {'present': False, 'weight': 1, },
        'subject': {'present': False, 'weight': 1, },
        'meta': {'present': False, 'weight': 20, },
    }
    total_points = sum(item['weight'] for item in completeness_dict.values())
    py_untl_object_score = 0.0
    for i in py_untl.children:
        if i.tag in PYUNTL_COMPLETENESS_SCORED_ATTRIBUTES:
            if i.content:
                content = i.content.lower()
                match = bool(DEFAULT_VALUE_REGEX.search(content))
                if content not in COMMON_DEFAULT_ATTRIBUTE_VALUES and not match:
                    if i.tag == 'meta':
                        if i.qualifier == 'system':
                            completeness_dict['%s' % i.tag]['present'] = True
                    else:
                        completeness_dict['%s' % i.tag]['present'] = True
    for k, v in completeness_dict.iteritems():
        if v['present']:
            py_untl_object_score += completeness_dict[k]['weight']
    completeness = py_untl_object_score / total_points
    return completeness