System Code
				
					
				
			
			
			The above system code includes the code for three systems: Pregel+, Blogel, and Quegel. All files are header files, one may include them into the application code and compile using GCC. The current system code runs in Linux.
			The base classes of Quegel is defined in folder ol which relies on folders utils, basic and tools, and the relevant API can be found from here.
			If you use Hadoop 2.x, please edit "utils/ydhdfs.h" and uncomment the line "#define YARN" to use "ydhdfs2.h" instead of "ydhdfs1.h".
			Also, please make sure that the hostname and port are correct in the function "getHdfsFS()" of "ydhdfs1.h" or "ydhdfs2.h".
            
			
				Client-Side Code
				
					
				
			
			
			In Quegel, the client-side program is just responsible for sending query strings to the Quegel server, and the code is fixed. User only needs to write the server-side code to specify how they want to process each query string.
			A client-side code should be compiled using the system code, and the compiled executable program can be used as a client program that takes user queries. See here for the detailed usage of a client program.
			In the above package, "console_version/run.cpp" is the client code for users to type their queries in the console, while "batchFile_version/run.cpp" is the client code for users to type the name of a file that contains a batch of queries.
            
			
				Toy Graphs
			
			
			[1] Web-Stanford [Download]: a small web graph where each line represents a vertex.
			
                Line format:    vertex_ID    \t    num_out-neighbors    neighbor1_ID    neighbor2_ID    •••
             
			One may run BFS on this graph. To run Quegel algorithm with the toy graph, one may put the data to HDFS at path "/toy_out" as follows:
			
                hadoop fs -mkdir /toy_out
				hadoop fs -put {your local path of web_stanford.adj} /toy_out
             
			Some algorithms like Bidirectional BFS (BiBFS) and Hub2-Labeling also require an adjacency list of in-neighbors.
			
                Line format:  vertex_ID  \t  num_in-neighbors  in_1  in_2  •••  num_out-neighbors  out_1  out_2  •••
             
			To convert the toy graph under "/toy_out" to this format, and put under path "/toy_inout", one may run this two-superstep Pregel+ job (i.e., a normal Pregel job).
			
			[2] LiveJournal [Download]: a small undirected social network. Please decompress it to get "live.adj" first.
			
                Line format:    vertex_ID    \t    num_neighbors    neighbor1_ID    neighbor2_ID    •••
             
			One may run BFS, BiBFS and Hub2-Labeling on it directly. In our examples of running application code, we assume it is put to HDFS path "/toy_ug".
			
			Application Code
			Point-to-Point Shortest Path Distance
            
				
					Format of a query:    source_vertexID    target_vertexID
				
 
                
				
					BiBFS (Undirected)
					[Download]
				
 
				
					BiBFS (Directed)
					[Download]
				
 
				
            
			XML Keyword Search
			
				
					Format of a query: a list of keywords separated by space
				
 
				
				
				
				
					Vertex Level Computation
					[Download]
				
 
				
					SLCA (Level-Aligned)
					[Download]
				
 
				
					ELCA (Level-Aligned)
					[Download]
				
 
				
					MaxMatch (Level-Aligned)
					[Download]
				
 
            
			Terrain Shortest Path Distance
            
				
					Format of a query:    source_vertexID    target_vertexID
				
 
				
				
					Terrain Shortest Path Distance
					[Download]
				
 
            
			Point-to-Point Reachability
            
				
					Format of a query:    source_vertexID    target_vertexID
				
 
				
				
					Level Computation
					[Download]
				
 
				
					No-Label (Basic)
					[Download]
				
 
				
					No-Label (Level-Aligned)
					[Download]
				
 
				
					Yes-Label (Basic)
					[Download]
				
 
				
					Yes-Label (Level-Aligned)
					[Download]
				
 
				
            
			RDF Keyword Search
			
				
					Format of a query: a list of keywords separated by space
				
 
				
				
				
					Graph Keyword Search (N-Quads)
					[Download]
				
 
				
					Graph Keyword Search (N-Triples)
					[Download]