<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 Sketches and progress for SHS I/O
Step1:  Read a list of all available URI's
Python
def read_uris()
Step2:  Read cliques
Python
def read_cliques(clique_file='shs_pruned.txt')
Step3:  Split cliques into train, test & evaluation sets
Python
def split_train_test_validation(clique_dict, ratio=(50,20,30),
                           random_state=1988)
Step4:  Get URI's for a clique
First idea
<ASSISTANT_TASK:>
Python Code:
%matplotlib inline
from __future__ import division, print_function
import numpy as np
import os
Explanation: Sketches and progress for SHS I/O
End of explanation
import SHS_data
uris, ids = SHS_data.read_uris()
Explanation: Read a list of all available URI's
Python
def read_uris():
...
End of explanation
reload(SHS_data)
cliques_by_name, cliques_by_id = SHS_data.read_cliques()
Explanation: Read cliques
Python
def read_cliques(clique_file='shs_pruned.txt'):
...
End of explanation
reload(SHS_data)
train_cliques, test_cliques, val_cliques = SHS_data.split_train_test_validation(cliques_by_name)
Explanation: Split cliques into train, test & evaluation sets
Python
def split_train_test_validation(clique_dict, ratio=(50,20,30),
                           random_state=1988):
...
End of explanation
reload(SHS_data)
train_uris = SHS_data.uris_from_clique_dict(train_cliques)
Explanation: Get URI's for a clique
First idea: get URI's and a ground truth matrix.
But maybe that's not what we want:
18K x 18K ground truth matrix in dense form = 2Gb.
Therefore: just URI's for now.
Open Question
Should this function be in SHS_data or somewhere more general?
Probably somewhere more general, but there is no such somewhere for now, so leaving it in place.
End of explanation
<END_TASK>