This is a simple piece of code to introduce students to Prolog.
Will Curran completed this assignment for CSCE 420 with Dr. Dylan Shell at 
Texas A&M University. This is posted publicly as a showcase, and is not intended to 
be a reference for current students taking the course.

Objective: Find the shortest path between two vertices in a graph G, given that 
G is a graph consisting of statements of fact in arc-clausal form.

Description:
- To run the code, type "[graph_definition]" in the query prompt of swipl.
  This will load the facts and predicates which are defined in the file.
- Next, the user may use these formats to assert the truth of the predicates and/or find values for which the predicates are true.  
	any_path(Src, Dest, Path, VisitedAlready, Cost) -- if starting from just a node, Visited = []
	path(Src, Dest, ShortestPath)
- To demonstrate my understanding of Prolog, I have included comments in graph_definitions.pl

Sources consulted:
https://www.cse.unsw.edu.au/~billw/cs9414/notes/prolog/path-trace.html
https://cs.ccsu.edu/~markov/ccsu_courses/prolog.txt
https://www.cpp.edu/~jrfisher/www/prolog_tutorial/1.html
https://www.cpp.edu/~jrfisher/www/prolog_tutorial/2_15.html
https://stackoverflow.com/questions/47778959/how-to-find-the-unique-shortest-path-for-a-weighted-directed-graph-with-swi-prol
https://stackoverflow.com/questions/3901250/traversing-a-graph-with-possible-loops-and-returning-the-path-in-prolog

Aggie Code of Honor:
"An Aggie does not lie, cheat, or steal, or tolerate those who do."