diff --git a/Comm+Sim/Citeseer_1000_2000_comsim.csv b/Comm+Sim/Citeseer_1000_2000_comsim.csv new file mode 100644 index 0000000..454061b --- /dev/null +++ b/Comm+Sim/Citeseer_1000_2000_comsim.csv @@ -0,0 +1,14 @@ +Metric,Value +Dataset,Citeseer +Number of Communities,34 +Original Edge Count,3679 +Final Edge Count,4317 +Edges Modified,638 +Edges to be Added (Budget),1000 +Edges to be Removed (Budget),2000 +Mean edges by cluster,0.0016603416827790686 +Covariance edges by cluster,0.00034657850797783314 +Mean edges intra-cluster,0.01649730374288271 +Covariance edges intra-cluster,0.0008512322502035165 +Mean edges inter-cluster,0.0007611318609546055 +Covariance edges inter-cluster,0.0003032834856890727 diff --git a/Comm+Sim/Citeseer_2000_2000_comsim.csv b/Comm+Sim/Citeseer_2000_2000_comsim.csv new file mode 100644 index 0000000..7c807d8 --- /dev/null +++ b/Comm+Sim/Citeseer_2000_2000_comsim.csv @@ -0,0 +1,14 @@ +Metric,Value +Dataset,Citeseer +Number of Communities,38 +Original Edge Count,3679 +Final Edge Count,4716 +Edges Modified,1037 +Edges to be Added (Budget),2000 +Edges to be Removed (Budget),2000 +Mean edges by cluster,0.004361091394654539 +Covariance edges by cluster,0.001054218127622854 +Mean edges intra-cluster,0.0677765981107619 +Covariance edges intra-cluster,0.013538898498386564 +Mean edges inter-cluster,0.0009332261667568449 +Covariance edges inter-cluster,0.00016823893234729564 diff --git a/Comm+Sim/comsim.py b/Comm+Sim/comsim.py index 852dc27..fc3dec2 100644 --- a/Comm+Sim/comsim.py +++ b/Comm+Sim/comsim.py @@ -1,6 +1,6 @@ import torch import networkx as nx -import nx_cugraph as nxcg +# import nx_cugraph as nxcg import numpy as np import pandas as pd import os @@ -16,8 +16,9 @@ def modify_graph(data, dataset_name, budget_add, budget_delete, seed): print("=============================================================") print("Rewiring based on feature similarity...") G = to_networkx(data, to_undirected=True) - nxcg_G = nxcg.from_networkx(G) - communities = list(nx.community.louvain_communities(nxcg_G, seed=seed)) + # nxcg_G = nxcg.from_networkx(G) + # communities = list(nx.community.louvain_communities(nxcg_G, seed=seed)) + communities = list(nx.community.louvain_communities(G, seed=seed)) cluster_dict_before = {node: i for i, cluster in enumerate(communities) for node in cluster} cluster_list_before = [cluster_dict_before[node] for node in range(len(data.y))] nmiscoremod_before = NMI(cluster_list_before, data.y.cpu().numpy()) diff --git a/Comm+Sim/main.py b/Comm+Sim/main.py index d61ade2..675ab65 100644 --- a/Comm+Sim/main.py +++ b/Comm+Sim/main.py @@ -20,7 +20,7 @@ from matplotlib import pyplot as plt #from comsim_onlysim2 import * from comsim import * -from onlysim import * +# from onlysim import * args = parse_args() @@ -107,15 +107,19 @@ ## For Community+SimilarityBased Rewiring #### algo_stime = time.time() +# ComFy data,nmiscoremod_before = modify_graph(data,args.dataset,budget_edges_add,budget_edges_delete,seed) +# FeaSt +# data, nmiscoremod_before, nmiscoremod_after = modify_graph(data, args.dataset, budget_edges_add, budget_edges_delete, seed) algo_etime = time.time() rewire_time = algo_etime - algo_stime print(f"Time Taken for Rewiring : {rewire_time}") newG = to_networkx(data, to_undirected=True) -nxcg_G = nxcg.from_networkx(newG) -communities_after = list(nx.community.louvain_communities(nxcg_G, seed=seed)) +# nxcg_G = nxcg.from_networkx(newG) +# communities_after = list(nx.community.louvain_communities(nxcg_G, seed=seed)) +communities_after = list(nx.community.louvain_communities(newG, seed=seed)) cluster_dict_after = {node: i for i, cluster in enumerate(communities_after) for node in cluster} cluster_list_after = [cluster_dict_after[node] for node in range(len(data.y))] nmiscoremod_after = NMI(cluster_list_after, data.y.cpu().numpy()) diff --git a/Comm+Sim/model.py b/Comm+Sim/model.py index c92bda6..8478d66 100644 --- a/Comm+Sim/model.py +++ b/Comm+Sim/model.py @@ -76,7 +76,8 @@ def reset_parameters(self): for bn in self.bns: bn.reset_parameters() - def forward(self, x, edge_index): + # def forward(self, x, edge_index): + def forward(self, x, edge_index, p=0.0): for i, conv in enumerate(self.convs[:-1]): x = conv(x, edge_index) if self.use_bn: diff --git a/Comm+Sim/onlysim.py b/Comm+Sim/onlysim.py index 6e3dc25..480e4ad 100644 --- a/Comm+Sim/onlysim.py +++ b/Comm+Sim/onlysim.py @@ -1,5 +1,5 @@ import networkx as nx -import nx_cugraph as nxcg +# import nx_cugraph as nxcg import numpy as np import pandas as pd import os @@ -17,8 +17,9 @@ def modify_graph(data, dataset_name, budget_edges_add, budget_edges_delete, seed print("=============================================================") print("Rewiring based on feature similarity...") G = to_networkx(data, to_undirected=True) - nxcg_G = nxcg.from_networkx(G) - communities = list(nx.community.louvain_communities(nxcg_G, seed=seed)) + # nxcg_G = nxcg.from_networkx(G) + # communities = list(nx.community.louvain_communities(nxcg_G, seed=seed)) + communities = list(nx.community.louvain_communities(G, seed=seed)) cluster_dict_before = {node: i for i, cluster in enumerate(communities) for node in cluster} cluster_list_before = [cluster_dict_before[node] for node in range(len(data.y))] nmiscoremod_before = NMI(cluster_list_before, data.y.cpu().numpy()) @@ -94,8 +95,9 @@ def modify_graph(data, dataset_name, budget_edges_add, budget_edges_delete, seed print("similarity before and after",sim,sim2) pyg_data = from_networkx(G) newG = to_networkx(pyg_data, to_undirected=True) - nxcg_G = nxcg.from_networkx(newG) - communities_after = list(nx.community.louvain_communities(nxcg_G, seed=seed)) + # nxcg_G = nxcg.from_networkx(newG) + # communities_after = list(nx.community.louvain_communities(nxcg_G, seed=seed)) + communities_after = list(nx.community.louvain_communities(newG, seed=seed)) cluster_dict_after = {node: i for i, cluster in enumerate(communities_after) for node in cluster} cluster_list_after = [cluster_dict_after[node] for node in range(len(data.y))] nmiscoremod_after = NMI(cluster_list_after, data.y.cpu().numpy()) diff --git a/Comm+Sim/results_baseline.csv b/Comm+Sim/results_baseline.csv new file mode 100644 index 0000000..3ca37a0 --- /dev/null +++ b/Comm+Sim/results_baseline.csv @@ -0,0 +1,2 @@ +Dataset,AvgValAcc,DeviationVal,AvgTestAcc,Deviation,ELI,AdjHom,NMIBefore,NMIAfter,EdgesAdded,EdgesDeleted,HiddenDim,LR,Dropout,GCNTime,RewireTime +Citeseer,77.94,0.35,77.62,0.33,0.4437396170928487,0.6620897112374549,0.3257939098082461,0.3257939098082461,0,0,32,0.01,0.31,111.7904372215271,1.0000636577606201 diff --git a/Comm+Sim/results_citeseer_final.csv b/Comm+Sim/results_citeseer_final.csv new file mode 100644 index 0000000..e9d472b --- /dev/null +++ b/Comm+Sim/results_citeseer_final.csv @@ -0,0 +1,3 @@ +Dataset,AvgValAcc,DeviationVal,AvgTestAcc,Deviation,ELI,AdjHom,NMIBefore,NMIAfter,EdgesAdded,EdgesDeleted,HiddenDim,LR,Dropout,GCNTime,RewireTime +Citeseer,76.93,0.39,76.62,0.38,0.29706154481533353,0.5336210227744842,0.3257939098082461,0.35253033523293986,1000,2000,32,0.01,0.31,120.44084429740906,2.041614294052124 +Citeseer,72.09,0.43,72.23,0.40,0.29706154481533353,0.5336210227744842,0.3257939098082461,0.35253033523293986,1000,2000,32,0.01,0.31,113.30892968177795,2.047795295715332 diff --git a/Comm+Sim/results_comfy.csv b/Comm+Sim/results_comfy.csv new file mode 100644 index 0000000..788c6f2 --- /dev/null +++ b/Comm+Sim/results_comfy.csv @@ -0,0 +1,2 @@ +Dataset,AvgValAcc,DeviationVal,AvgTestAcc,Deviation,ELI,AdjHom,NMIBefore,NMIAfter,EdgesAdded,EdgesDeleted,HiddenDim,LR,Dropout,GCNTime,RewireTime +Citeseer,76.29,0.37,76.16,0.35,0.38227746056556877,0.6060492452747333,0.32000240378789907,0.3148810758800009,2000,2000,32,0.01,0.31,117.36940407752991,2.1097404956817627 diff --git a/Comm+Sim/results_feast.csv b/Comm+Sim/results_feast.csv new file mode 100644 index 0000000..13369f6 --- /dev/null +++ b/Comm+Sim/results_feast.csv @@ -0,0 +1,2 @@ +Dataset,AvgValAcc,DeviationVal,AvgTestAcc,Deviation,ELI,AdjHom,NMIBefore,NMIAfter,EdgesAdded,EdgesDeleted,HiddenDim,LR,Dropout,GCNTime,RewireTime +Citeseer,76.67,0.34,76.48,0.35,0.4820896180314216,0.6932820241627689,0.32000240378789907,0.3400549267819509,2000,2000,32,0.01,0.31,113.85506987571716,1.1044039726257324 diff --git a/Comm+Sim/simrewirings/similarityreports/Citeseer_0_0_onlysim.csv b/Comm+Sim/simrewirings/similarityreports/Citeseer_0_0_onlysim.csv new file mode 100644 index 0000000..fea1ea1 --- /dev/null +++ b/Comm+Sim/simrewirings/similarityreports/Citeseer_0_0_onlysim.csv @@ -0,0 +1,13 @@ +Metric,Value +Dataset,Citeseer +Number of Communities,34 +Edges to be Added,0 +Edges to be Removed,0 +Mean edges by cluster,0.0 +Covariance edges by cluster,0.0 +Mean edges intra-cluster,0.0 +Covariance edges intra-cluster,0.0 +Mean edges inter-cluster,0.0 +Covariance edges inter-cluster,0.0 +NMI before,0.3257939098082461 +NMI after,0.3257939098082461 diff --git a/Comm+Sim/simrewirings/similarityreports/Citeseer_2000_2000_onlysim.csv b/Comm+Sim/simrewirings/similarityreports/Citeseer_2000_2000_onlysim.csv new file mode 100644 index 0000000..a3db6ad --- /dev/null +++ b/Comm+Sim/simrewirings/similarityreports/Citeseer_2000_2000_onlysim.csv @@ -0,0 +1,13 @@ +Metric,Value +Dataset,Citeseer +Number of Communities,38 +Edges to be Added,2000 +Edges to be Removed,2000 +Mean edges by cluster,0.0021284272871995575 +Covariance edges by cluster,0.00010463365938457873 +Mean edges intra-cluster,0.03465807046907419 +Covariance edges intra-cluster,0.0009286828389534813 +Mean edges inter-cluster,0.0003700681962874153 +Covariance edges inter-cluster,9.734140853178402e-07 +NMI before,0.32000240378789907 +NMI after,0.3400549267819509 diff --git a/CommunityRewiring/clustering.py b/CommunityRewiring/clustering.py new file mode 100644 index 0000000..590fdbc --- /dev/null +++ b/CommunityRewiring/clustering.py @@ -0,0 +1,26 @@ +import networkx as nx +import numpy as np +import scipy.sparse.linalg +from sklearn.cluster import KMeans +import sklearn.preprocessing + + +def k_way_spectral(G, k): + assert nx.is_connected(G), "the graph must be connnected" + clusters = [] + if G.order() < k: + clusters = list(G.nodes()) + else: + L = nx.laplacian_matrix(G) + _, eigenvecs = scipy.sparse.linalg.eigsh(L.asfptype(), k=k+1, which='SM') + eigenvecs = eigenvecs[:, 1:] + eigenvecs = sklearn.preprocessing.normalize(eigenvecs) + kmeans = KMeans(n_clusters=k).fit(eigenvecs) + cluster_labels = kmeans.labels_ + clusters = [[] for _ in range(max(cluster_labels) + 1)] + for node_id, cluster_id in zip(G.nodes(), cluster_labels): + clusters[cluster_id].append(node_id) + return clusters,cluster_labels + +def maximize_modularity(G): + return nx.community.greedy_modularity_communities(G) \ No newline at end of file diff --git a/CommunityRewiring/main.py b/CommunityRewiring/main.py index 77872a6..5101e8e 100644 --- a/CommunityRewiring/main.py +++ b/CommunityRewiring/main.py @@ -24,7 +24,7 @@ from sklearn.metrics.cluster import normalized_mutual_info_score as NMI -import nx_cugraph as nxcg +# import nx_cugraph as nxcg ######### Hyperparams to use ############# #Cora --> Dropout = 0.4130296 ; LR = 0.01 ; Hidden_Dimension = 32 @@ -254,8 +254,9 @@ newG = to_networkx(data, to_undirected=True) -nxcg_G = nxcg.from_networkx(newG) -communities_after = list(nx.community.louvain_communities(nxcg_G, seed=seed)) +# nxcg_G = nxcg.from_networkx(newG) +# communities_after = list(nx.community.louvain_communities(nxcg_G, seed=seed)) +communities_after = list(nx.community.louvain_communities(newG, seed=seed)) cluster_dict_after = {node: i for i, cluster in enumerate(communities_after) for node in cluster} cluster_list_after = [cluster_dict_after[node] for node in range(len(data.y))] nmiscoremod_after = NMI(cluster_list_after, data.y.cpu().numpy()) diff --git a/CommunityRewiring/methods.py b/CommunityRewiring/methods.py index ef5f083..0f92646 100644 --- a/CommunityRewiring/methods.py +++ b/CommunityRewiring/methods.py @@ -12,7 +12,7 @@ from torch_geometric.utils import to_networkx,from_networkx,homophily import random from clustering import * -import nx_cugraph as nxcg +# import nx_cugraph as nxcg from sklearn.metrics.cluster import normalized_mutual_info_score as NMI def proxydelmin(data, nxgraph,seed, max_iterations): @@ -672,8 +672,9 @@ def community_rewiring(data, seed, comm_delete, comm_add): initial_edges = graph.number_of_edges() # Perform community detection - nxcg_G = nxcg.from_networkx(graph) - communities = list(nx.community.louvain_communities(nxcg_G, seed=seed)) + # nxcg_G = nxcg.from_networkx(graph) + # communities = list(nx.community.louvain_communities(nxcg_G, seed=seed)) + communities = list(nx.community.louvain_communities(graph, seed=seed)) cluster_dict = {node: i for i, cluster in enumerate(communities) for node in cluster} @@ -749,8 +750,9 @@ def inverse_community_rewiring(data, seed, intra_delete, inter_add): initial_edges = graph.number_of_edges() # Perform community detection - nxcg_G = nxcg.from_networkx(graph) - communities = list(nx.community.louvain_communities(nxcg_G, seed=seed)) + # nxcg_G = nxcg.from_networkx(graph) + # communities = list(nx.community.louvain_communities(nxcg_G, seed=seed)) + communities = list(nx.community.louvain_communities(graph, seed=seed)) cluster_dict = {node: i for i, cluster in enumerate(communities) for node in cluster} diff --git a/CommunityRewiring/results_comma.csv b/CommunityRewiring/results_comma.csv new file mode 100644 index 0000000..9798ab4 --- /dev/null +++ b/CommunityRewiring/results_comma.csv @@ -0,0 +1,2 @@ +Method,Dataset,AvgValAcc,DeviationVal,AvgTestAcc,Deviation,ELI,AdjHom,NMI,EdgesAdded,EdgesDeleted,FinalGap,HiddenDim,LR,Dropout,RewiringTime,GCNTime +community_rewiring,Citeseer,73.35,0.38,73.63,0.41,0.33304799654311035,0.5685390036963097,0.32185336244421514,2000,40,1.8829173342757362e-07,32,0.01,0.31,0.5870213508605957,118.51752805709839 diff --git a/data/Citeseer/Citeseer/processed/data.pt b/data/Citeseer/Citeseer/processed/data.pt new file mode 100644 index 0000000..e189f22 Binary files /dev/null and b/data/Citeseer/Citeseer/processed/data.pt differ diff --git a/data/Citeseer/Citeseer/processed/pre_filter.pt b/data/Citeseer/Citeseer/processed/pre_filter.pt new file mode 100644 index 0000000..d1101ff Binary files /dev/null and b/data/Citeseer/Citeseer/processed/pre_filter.pt differ diff --git a/data/Citeseer/Citeseer/processed/pre_transform.pt b/data/Citeseer/Citeseer/processed/pre_transform.pt new file mode 100644 index 0000000..d1101ff Binary files /dev/null and b/data/Citeseer/Citeseer/processed/pre_transform.pt differ diff --git a/data/Citeseer/Citeseer/raw/ind.citeseer.allx b/data/Citeseer/Citeseer/raw/ind.citeseer.allx new file mode 100644 index 0000000..5920910 Binary files /dev/null and b/data/Citeseer/Citeseer/raw/ind.citeseer.allx differ diff --git a/data/Citeseer/Citeseer/raw/ind.citeseer.ally b/data/Citeseer/Citeseer/raw/ind.citeseer.ally new file mode 100644 index 0000000..7503f81 Binary files /dev/null and b/data/Citeseer/Citeseer/raw/ind.citeseer.ally differ diff --git a/data/Citeseer/Citeseer/raw/ind.citeseer.graph b/data/Citeseer/Citeseer/raw/ind.citeseer.graph new file mode 100644 index 0000000..a01dca6 Binary files /dev/null and b/data/Citeseer/Citeseer/raw/ind.citeseer.graph differ diff --git a/data/Citeseer/Citeseer/raw/ind.citeseer.test.index b/data/Citeseer/Citeseer/raw/ind.citeseer.test.index new file mode 100644 index 0000000..62d9e3d --- /dev/null +++ b/data/Citeseer/Citeseer/raw/ind.citeseer.test.index @@ -0,0 +1,1000 @@ +2488 +2644 +3261 +2804 +3176 +2432 +3310 +2410 +2812 +2520 +2994 +3282 +2680 +2848 +2670 +3005 +2977 +2592 +2967 +2461 +3184 +2852 +2768 +2905 +2851 +3129 +3164 +2438 +2793 +2763 +2528 +2954 +2347 +2640 +3265 +2874 +2446 +2856 +3149 +2374 +3097 +3301 +2664 +2418 +2655 +2464 +2596 +3262 +3278 +2320 +2612 +2614 +2550 +2626 +2772 +3007 +2733 +2516 +2476 +2798 +2561 +2839 +2685 +2391 +2705 +3098 +2754 +3251 +2767 +2630 +2727 +2513 +2701 +3264 +2792 +2821 +3260 +2462 +3307 +2639 +2900 +3060 +2672 +3116 +2731 +3316 +2386 +2425 +2518 +3151 +2586 +2797 +2479 +3117 +2580 +3182 +2459 +2508 +3052 +3230 +3215 +2803 +2969 +2562 +2398 +3325 +2343 +3030 +2414 +2776 +2383 +3173 +2850 +2499 +3312 +2648 +2784 +2898 +3056 +2484 +3179 +3132 +2577 +2563 +2867 +3317 +2355 +3207 +3178 +2968 +3319 +2358 +2764 +3001 +2683 +3271 +2321 +2567 +2502 +3246 +2715 +3066 +2390 +2381 +3162 +2741 +2498 +2790 +3038 +3321 +2481 +3050 +3161 +3122 +2801 +2957 +3177 +2965 +2621 +3208 +2921 +2802 +2357 +2677 +2519 +2860 +2696 +2368 +3241 +2858 +2419 +2762 +2875 +3222 +3064 +2827 +3044 +2471 +3062 +2982 +2736 +2322 +2709 +2766 +2424 +2602 +2970 +2675 +3299 +2554 +2964 +2597 +2753 +2979 +2523 +2912 +2896 +2317 +3167 +2813 +2482 +2557 +3043 +3244 +2985 +2460 +2363 +3272 +3045 +3192 +2453 +2656 +2834 +2443 +3202 +2926 +2711 +2633 +2384 +2752 +3285 +2817 +2483 +2919 +2924 +2661 +2698 +2361 +2662 +2819 +3143 +2316 +3196 +2739 +2345 +2578 +2822 +3229 +2908 +2917 +2692 +3200 +2324 +2522 +3322 +2697 +3163 +3093 +3233 +2774 +2371 +2835 +2652 +2539 +2843 +3231 +2976 +2429 +2367 +3144 +2564 +3283 +3217 +3035 +2962 +2433 +2415 +2387 +3021 +2595 +2517 +2468 +3061 +2673 +2348 +3027 +2467 +3318 +2959 +3273 +2392 +2779 +2678 +3004 +2634 +2974 +3198 +2342 +2376 +3249 +2868 +2952 +2710 +2838 +2335 +2524 +2650 +3186 +2743 +2545 +2841 +2515 +2505 +3181 +2945 +2738 +2933 +3303 +2611 +3090 +2328 +3010 +3016 +2504 +2936 +3266 +3253 +2840 +3034 +2581 +2344 +2452 +2654 +3199 +3137 +2514 +2394 +2544 +2641 +2613 +2618 +2558 +2593 +2532 +2512 +2975 +3267 +2566 +2951 +3300 +2869 +2629 +2747 +3055 +2831 +3105 +3168 +3100 +2431 +2828 +2684 +3269 +2910 +2865 +2693 +2884 +3228 +2783 +3247 +2770 +3157 +2421 +2382 +2331 +3203 +3240 +2351 +3114 +2986 +2688 +2439 +2996 +3079 +3103 +3296 +2349 +2372 +3096 +2422 +2551 +3069 +2737 +3084 +3304 +3022 +2542 +3204 +2949 +2318 +2450 +3140 +2734 +2881 +2576 +3054 +3089 +3125 +2761 +3136 +3111 +2427 +2466 +3101 +3104 +3259 +2534 +2961 +3191 +3000 +3036 +2356 +2800 +3155 +3224 +2646 +2735 +3020 +2866 +2426 +2448 +3226 +3219 +2749 +3183 +2906 +2360 +2440 +2946 +2313 +2859 +2340 +3008 +2719 +3058 +2653 +3023 +2888 +3243 +2913 +3242 +3067 +2409 +3227 +2380 +2353 +2686 +2971 +2847 +2947 +2857 +3263 +3218 +2861 +3323 +2635 +2966 +2604 +2456 +2832 +2694 +3245 +3119 +2942 +3153 +2894 +2555 +3128 +2703 +2323 +2631 +2732 +2699 +2314 +2590 +3127 +2891 +2873 +2814 +2326 +3026 +3288 +3095 +2706 +2457 +2377 +2620 +2526 +2674 +3190 +2923 +3032 +2334 +3254 +2991 +3277 +2973 +2599 +2658 +2636 +2826 +3148 +2958 +3258 +2990 +3180 +2538 +2748 +2625 +2565 +3011 +3057 +2354 +3158 +2622 +3308 +2983 +2560 +3169 +3059 +2480 +3194 +3291 +3216 +2643 +3172 +2352 +2724 +2485 +2411 +2948 +2445 +2362 +2668 +3275 +3107 +2496 +2529 +2700 +2541 +3028 +2879 +2660 +3324 +2755 +2436 +3048 +2623 +2920 +3040 +2568 +3221 +3003 +3295 +2473 +3232 +3213 +2823 +2897 +2573 +2645 +3018 +3326 +2795 +2915 +3109 +3086 +2463 +3118 +2671 +2909 +2393 +2325 +3029 +2972 +3110 +2870 +3284 +2816 +2647 +2667 +2955 +2333 +2960 +2864 +2893 +2458 +2441 +2359 +2327 +3256 +3099 +3073 +3138 +2511 +2666 +2548 +2364 +2451 +2911 +3237 +3206 +3080 +3279 +2934 +2981 +2878 +3130 +2830 +3091 +2659 +2449 +3152 +2413 +2722 +2796 +3220 +2751 +2935 +3238 +2491 +2730 +2842 +3223 +2492 +3074 +3094 +2833 +2521 +2883 +3315 +2845 +2907 +3083 +2572 +3092 +2903 +2918 +3039 +3286 +2587 +3068 +2338 +3166 +3134 +2455 +2497 +2992 +2775 +2681 +2430 +2932 +2931 +2434 +3154 +3046 +2598 +2366 +3015 +3147 +2944 +2582 +3274 +2987 +2642 +2547 +2420 +2930 +2750 +2417 +2808 +3141 +2997 +2995 +2584 +2312 +3033 +3070 +3065 +2509 +3314 +2396 +2543 +2423 +3170 +2389 +3289 +2728 +2540 +2437 +2486 +2895 +3017 +2853 +2406 +2346 +2877 +2472 +3210 +2637 +2927 +2789 +2330 +3088 +3102 +2616 +3081 +2902 +3205 +3320 +3165 +2984 +3185 +2707 +3255 +2583 +2773 +2742 +3024 +2402 +2718 +2882 +2575 +3281 +2786 +2855 +3014 +2401 +2535 +2687 +2495 +3113 +2609 +2559 +2665 +2530 +3293 +2399 +2605 +2690 +3133 +2799 +2533 +2695 +2713 +2886 +2691 +2549 +3077 +3002 +3049 +3051 +3087 +2444 +3085 +3135 +2702 +3211 +3108 +2501 +2769 +3290 +2465 +3025 +3019 +2385 +2940 +2657 +2610 +2525 +2941 +3078 +2341 +2916 +2956 +2375 +2880 +3009 +2780 +2370 +2925 +2332 +3146 +2315 +2809 +3145 +3106 +2782 +2760 +2493 +2765 +2556 +2890 +2400 +2339 +3201 +2818 +3248 +3280 +2570 +2569 +2937 +3174 +2836 +2708 +2820 +3195 +2617 +3197 +2319 +2744 +2615 +2825 +2603 +2914 +2531 +3193 +2624 +2365 +2810 +3239 +3159 +2537 +2844 +2758 +2938 +3037 +2503 +3297 +2885 +2608 +2494 +2712 +2408 +2901 +2704 +2536 +2373 +2478 +2723 +3076 +2627 +2369 +2669 +3006 +2628 +2788 +3276 +2435 +3139 +3235 +2527 +2571 +2815 +2442 +2892 +2978 +2746 +3150 +2574 +2725 +3188 +2601 +2378 +3075 +2632 +2794 +3270 +3071 +2506 +3126 +3236 +3257 +2824 +2989 +2950 +2428 +2405 +3156 +2447 +2787 +2805 +2720 +2403 +2811 +2329 +2474 +2785 +2350 +2507 +2416 +3112 +2475 +2876 +2585 +2487 +3072 +3082 +2943 +2757 +2388 +2600 +3294 +2756 +3142 +3041 +2594 +2998 +3047 +2379 +2980 +2454 +2862 +3175 +2588 +3031 +3012 +2889 +2500 +2791 +2854 +2619 +2395 +2807 +2740 +2412 +3131 +3013 +2939 +2651 +2490 +2988 +2863 +3225 +2745 +2714 +3160 +3124 +2849 +2676 +2872 +3287 +3189 +2716 +3115 +2928 +2871 +2591 +2717 +2546 +2777 +3298 +2397 +3187 +2726 +2336 +3268 +2477 +2904 +2846 +3121 +2899 +2510 +2806 +2963 +3313 +2679 +3302 +2663 +3053 +2469 +2999 +3311 +2470 +2638 +3120 +3171 +2689 +2922 +2607 +2721 +2993 +2887 +2837 +2929 +2829 +3234 +2649 +2337 +2759 +2778 +2771 +2404 +2589 +3123 +3209 +2729 +3252 +2606 +2579 +2552 diff --git a/data/Citeseer/Citeseer/raw/ind.citeseer.tx b/data/Citeseer/Citeseer/raw/ind.citeseer.tx new file mode 100644 index 0000000..b2aff18 Binary files /dev/null and b/data/Citeseer/Citeseer/raw/ind.citeseer.tx differ diff --git a/data/Citeseer/Citeseer/raw/ind.citeseer.ty b/data/Citeseer/Citeseer/raw/ind.citeseer.ty new file mode 100644 index 0000000..3795f79 Binary files /dev/null and b/data/Citeseer/Citeseer/raw/ind.citeseer.ty differ diff --git a/data/Citeseer/Citeseer/raw/ind.citeseer.x b/data/Citeseer/Citeseer/raw/ind.citeseer.x new file mode 100644 index 0000000..f094104 Binary files /dev/null and b/data/Citeseer/Citeseer/raw/ind.citeseer.x differ diff --git a/data/Citeseer/Citeseer/raw/ind.citeseer.y b/data/Citeseer/Citeseer/raw/ind.citeseer.y new file mode 100644 index 0000000..e857ac4 Binary files /dev/null and b/data/Citeseer/Citeseer/raw/ind.citeseer.y differ