def extract_uri(uri) :
    """
    Destructure the given REST uri into project,subject and experiment.

    Returns None if any one of project,subject or experiment is unspecified in the URI and a
    (project,subject,experiment) triple otherwise.
    """
    # elements in URLs are always separated by /, regardless of client
    split = uri.split('/')
    # a well qualified uri has a project subject, and experiment name
    # so when split the following items should be present:
    # ['', 'data', 'projects', 'project-name', 'subjects', 'subject-name', 'experiments', 'experiment-name', 'scans']

    # Based on the above comment if there aren't 9 items in the split list the uri isn't well qualified
    if (len(split) != 9): return None

    project = split[3]
    subject = split[5]
    experiment = split[7]

    return (project,subject,experiment)