Skip to content

Instantly share code, notes, and snippets.

@JaimieMurdock
Forked from d3noob/.block
Last active March 24, 2017 18:11
Show Gist options
  • Save JaimieMurdock/c839ce570036ffca1de2 to your computer and use it in GitHub Desktop.
Save JaimieMurdock/c839ce570036ffca1de2 to your computer and use it in GitHub Desktop.
Sankey diagram with horizontal and vertical node movement

This is an example of a Sankey diagram made using d3.js and the sankey plugin.

It has a point of differenc from other Sankey diagrams I have seen in that the nodes can be moved horizontally and vertically.

A description of how it was put together and techniques for implimenting Sankey diagrams in general with d3.js can be found at d3noob.org or you can download the full text in the D3 Tips and Tricks book (for free) from Leanpub.

The data is sourced from the World Resources Institute (http://www.wri.org/chart/world-greenhouse-gas-emissions-2005). Open in full window for full effect.

<!DOCTYPE html>
<meta charset="utf-8">
<title>SANKEY Experiment</title>
<style>
.node rect {
cursor: move;
fill-opacity: .9;
shape-rendering: crispEdges;
}
.node text {
pointer-events: none;
text-shadow: 0 1px 0 #fff;
}
.node.hobered text {
pointer-events: none;
font-weight: bold;
text-shadow: 0 1px 0 #fff;
}
.link {
fill: none;
stroke: #000;
stroke-opacity: .3;
}
.link:hover, .link.hovered {
stroke-opacity: .9;
}
</style>
<body>
<p id="chart">
<script src="http://d3js.org/d3.v3.js"></script>
<script src="sankey.js"></script>
<script>
var units = "words";
var margin = {top: 10, right: 40, bottom: 40, left: 10},
width = document.documentElement.clientWidth - margin.left - margin.right,
height = document.documentElement.clientHeight - margin.top - margin.bottom;
var formatNumber = d3.format(",.0f"), // zero decimal places
format = function(d) { return formatNumber(d) + " " + units; },
color = d3.scale.category20();
// append the svg canvas to the page
var svg = d3.select("#chart").append("svg")
.attr("width", width)
.attr("height", height + margin.top)
.append("g")
.attr("transform",
"translate(0,0)");
// Set the sankey diagram properties
var sankey = d3.sankey()
.nodeWidth(36)
.nodePadding(10)
.size([width, height]);
var path = sankey.link();
var process = function(error, graph) {
var nodeMap = {};
graph.nodes.forEach(function(x) { nodeMap[x.name] = x; });
graph.links = graph.links.map(function(x) {
return {
source: nodeMap[x.source],
target: nodeMap[x.target],
value: x.value,
color: x.color,
topic: x.topic
};
});
sankey
.nodes(graph.nodes)
.links(graph.links)
.layout(32);
// add in the links
var link = svg.append("g").selectAll(".link")
.data(graph.links)
.enter().append("path")
.attr("class", function(d) { return "link link_" + d.topic; })
.attr("d", path)
.style("stroke", function(d) {
if ("color" in d)
return d.color; })
.style("stroke-width", function(d) { return Math.max(1, d.dy); })
.sort(function(a, b) { return b.dy - a.dy; });
// add the link titles
link.append("title")
.text(function(d) {
return d.topic + " — " + d.source.name + " → " +
d.target.name + "\n" +
nodeMap[d.topic].words + "\n" + format(d.value); });
// add in the nodes
var node = svg.append("g").selectAll(".node")
.data(graph.nodes)
.enter().append("g")
.attr("class", "node")
.attr("transform", function(d) {
return "translate(" + d.x + "," + d.y + ")"; })
.on('mouseover', function(d) {
d3.selectAll('.link').classed("hovered", function (link) { return d.name.startsWith('T') ? link.topic == d.name : (link.source.name == d.name || link.target.name == d.name) })
})
.on('mouseout', function(d) {
d3.selectAll('.link').classed("hovered", false)
})
.call(d3.behavior.drag()
.origin(function(d) { return d; })
.on("dragstart", function() {
this.parentNode.appendChild(this); })
.on("drag", dragmove));
// add the rectangles for the nodes
node.append("a")
.attr("xlink:href", (d) => d.name.startsWith('T') ? 'http://inphodata.cogs.indiana.edu:16120/?topic=' + d.name.slice(1) : 'http://inphodata.cogs.indiana.edu:8083/entity/' + d.inpho_id)
.append("rect")
.attr("height", function(d) { return d.dy; })
.attr("width", sankey.nodeWidth())
.style("fill", function(d) {
if ("color" in d)
return d.color;
else if (d.targetLinks.length > 0) {
var bigLink = d.targetLinks.reduce( (prev, curr, idx, a) => (a[idx].value > a[prev].value) ? idx : prev, 0);
return d.color = d.targetLinks[bigLink].color;
} else
return d.color = color(d.name.replace(/ .*/, "")); })
.style("stroke", function(d) {
return d3.rgb(d.color).darker(2); })
.append("title")
.text(function(d) {
if (d.words) return d.name+ "\n" +d.words + "\n" + format(d.value);
else if (d.targetLinks.length > 0) {
var t = d.name + "\n" + "Topics → ";
t += d.targetLinks.map((x) => x.topic).join(', ');
t += "\n" + format(d.value);
return t;
} else return d.name + "\n" + format(d.value); });
// add in the title for the nodes
node.append("text")
.attr("x", -6)
.attr("y", function(d) { return d.dy / 2; })
.attr("dy", ".35em")
.attr("text-anchor", "end")
.attr("transform", null)
.text(function(d) { return d.name; })
.filter(function(d) { return d.x < width / 2; })
.attr("x", 6 + sankey.nodeWidth())
.attr("text-anchor", "start");
// the function for moving the nodes
function dragmove(d) {
d3.select(this).attr("transform",
"translate(" + (
d.x = Math.max(0, Math.min(width - d.dx, d3.event.x))
) + "," + (
d.y = Math.max(0, Math.min(height - d.dy, d3.event.y))
) + ")");
sankey.relayout();
link.attr("d", path);
}
};
// load the data
d3.json("multilayer.json", process);
</script>
</body>
</html>
{"nodes": [{"color": "#ff8000", "depth": 0, "name": "T12", "words": "punishment, harm, criminal, forgiveness, wrong, torture, civil, justice, crime, morally"}, {"color": "#fffe33", "depth": 0, "name": "T29", "words": "sets, numbers, axioms, axiom, cardinal, zfc, large, dedekind, cantor, paradox"}, {"color": "#e41a1c", "depth": 0, "name": "T40", "words": "rights, property, children, child, individuals, nozick, free, private, duties, legal"}, {"color": "#4daf4a", "depth": 0, "name": "T42", "words": "propositions, proposition, sentences, sentence, context, false, worlds, propositional, semantic, content"}, {"color": "#974fa2", "depth": 0, "name": "T43", "words": "justice, equality, equal, society, opportunity, health, economic, distributive, distribution, resources"}, {"color": "#f781bf", "depth": 0, "name": "T47", "words": "selection, evolutionary, species, biology, biological, genetic, genes, evolution, organisms, gene"}, {"color": "#4daf4a", "depth": 0, "name": "T50", "words": "approach, model, process, used, e.g, structure, analysis, relevant, systems, often"}, {"color": "#a7572a", "depth": 0, "name": "T54", "words": "proof, gdel, mathematics, intuitionistic, theorem, brouwer, arithmetic, hilbert, constructive, classical"}, {"color": "#e41a1c", "depth": 0, "name": "T56", "words": "spacetime, relativity, einstein, field, weyl, structure, physics, hole, energy, mass"}, {"color": "#f781bf", "depth": 0, "name": "T63", "words": "meaning, linguistic, semantic, words, word, meanings, languages, sentences, sentence, grammar"}, {"color": "#e41a1c", "depth": 0, "name": "T64", "words": "models, model, systems, chaos, behavior, biodiversity, conservation, simulation, species, target"}, {"color": "#397db6", "depth": 0, "name": "T65", "words": "model, x, formula, first-order, every, sentence, theorem, free, algebra, 0"}, {"color": "#4daf4a", "depth": 0, "name": "T66", "words": "art, aesthetic, beauty, aesthetics, works, beautiful, music, taste, artistic, arts"}, {"color": "#fffe33", "depth": 0, "name": "T69", "words": "divine, universe, power, perfect, necessary, exists, creation, theism, hartshorne, created"}, {"color": "#e41a1c", "depth": 0, "name": "T72", "words": "probability, evidence, hypothesis, h, hypotheses, probabilities, e, bayesian, data, inductive"}, {"color": "#a7572a", "depth": 0, "name": "T78", "words": "ways, values, often, cultural, issues, within, forms, practices, among, traditional"}, {"color": "#397db6", "depth": 0, "name": "T81", "words": "quantum, measurement, mechanics, classical, bohr, interpretation, wave, systems, particle, probability"}, {"color": "#a7572a", "depth": 0, "name": "T86", "words": "government, international, power, democratic, citizens, democracy, war, global, civil, politics"}, {"color": "#f781bf", "depth": 0, "name": "T87", "words": "makes, clear, think, understanding, indeed, simply, argues, understand, take, need"}, {"color": "#4daf4a", "depth": 0, "name": "T90", "words": "preferences, preference, choice, alternatives, economics, welfare, aggregation, voting, arrow, majority"}, {"color": "#974fa2", "depth": 0, "name": "T91", "words": "b, i.e, following, 3, consider, c, section, f, 4, either"}, {"color": "#fffe33", "depth": 0, "name": "T93", "words": "legal, authority, obligation, contract, consent, rule, rules, coercion, obligations, duty"}, {"color": "#f781bf", "depth": 0, "name": "T95", "words": "causal, cause, explanation, causation, causes, explanations, events, effect, explanatory, processes"}, {"color": "#e41a1c", "depth": 0, "name": "T96", "words": "scientific, empirical, sciences, epistemology, epistemic, method, evidence, methods, inquiry, naturalism"}, {"color": "#974fa2", "depth": 0, "name": "T99", "words": "strategies, evolutionary, empathy, altruism, rational, population, cooperation, strategy, behavior, payoff"}, {"color": "#a7572a", "depth": 0, "name": "T102", "words": "need, cases, better, best, think, less, still, take, making, perhaps"}, {"color": "#f781bf", "depth": 0, "name": "T103", "words": "e.g, notion, distinction, discussion, often, understood, views, accounts, although, respect"}, {"color": "#974fa2", "depth": 0, "name": "T107", "words": "justification, beliefs, justified, epistemic, evidence, know, believing, proposition, epistemology, believe"}, {"color": "#a7572a", "depth": 0, "name": "T110", "words": "game, player, players, games, strategy, agents, common, equilibrium, strategies, play"}, {"color": "#f781bf", "depth": 0, "name": "T111", "words": "women, feminist, men, feminists, sexual, gender, sex, pornography, marriage, male"}, {"color": "#e41a1c", "depth": 0, "name": "T112", "words": "gender, identity, body, sex, butler, lacan, sexual, difference, trans, bodies"}, {"color": "#fffe33", "depth": 0, "name": "T117", "words": "practical, principles, reasoning, action, values, capacity, understanding, basis, judgment, interpretation"}, {"inpho_id": 20112, "depth": 1, "name": "aesthetics and philosophy of art"}, {"inpho_id": 20190, "depth": 2, "name": "philosophy of art"}, {"inpho_id": 20230, "depth": 3, "name": "artistic form"}, {"inpho_id": 20236, "depth": 3, "name": "reception"}, {"inpho_id": 20340, "depth": 2, "name": "aesthetics"}, {"inpho_id": 20259, "depth": 3, "name": "aesthetic properties"}, {"inpho_id": 20120, "depth": 1, "name": "social and political philosophy"}, {"inpho_id": 20143, "depth": 2, "name": "social justice"}, {"inpho_id": 20262, "depth": 3, "name": "liberalism"}, {"inpho_id": 20263, "depth": 3, "name": "human rights"}, {"inpho_id": 20354, "depth": 3, "name": "distributive and economic justice"}, {"inpho_id": 20152, "depth": 2, "name": "political morality"}, {"inpho_id": 20282, "depth": 3, "name": "political authority"}, {"inpho_id": 20155, "depth": 2, "name": "forms of government"}, {"inpho_id": 20352, "depth": 2, "name": "international ethics"}, {"inpho_id": 20351, "depth": 3, "name": "war and pacifism"}, {"inpho_id": 20353, "depth": 2, "name": "global justice"}, {"inpho_id": 20137, "depth": 1, "name": "probability and statistics"}, {"inpho_id": 20146, "depth": 1, "name": "philosophy of physics"}, {"inpho_id": 20128, "depth": 2, "name": "cosmology"}, {"inpho_id": 20145, "depth": 2, "name": "quantum mechanics"}, {"inpho_id": 20207, "depth": 2, "name": "time travel"}, {"inpho_id": 20279, "depth": 2, "name": "statistical mechanics and thermodynamics"}, {"inpho_id": 20294, "depth": 2, "name": "philosophy of space and time"}, {"inpho_id": 20148, "depth": 1, "name": "logic"}, {"inpho_id": 20151, "depth": 2, "name": "inductive logic and decision theory"}, {"inpho_id": 20214, "depth": 3, "name": "decision theory"}, {"inpho_id": 20217, "depth": 3, "name": "game theory"}, {"inpho_id": 20208, "depth": 2, "name": "philosophical logic"}, {"inpho_id": 20301, "depth": 3, "name": "modal logic"}, {"inpho_id": 20324, "depth": 3, "name": "non-classical logic"}, {"inpho_id": 20325, "depth": 3, "name": "deontic logic"}, {"inpho_id": 20209, "depth": 2, "name": "mathematical logic"}, {"inpho_id": 20220, "depth": 3, "name": "boolean algebra"}, {"inpho_id": 20251, "depth": 3, "name": "proof theory"}, {"inpho_id": 20270, "depth": 3, "name": "set theory"}, {"inpho_id": 20366, "depth": 3, "name": "type theory"}, {"inpho_id": 20210, "depth": 2, "name": "history of logic"}, {"inpho_id": 20328, "depth": 2, "name": "philosophy of logic"}, {"inpho_id": 20272, "depth": 3, "name": "paradox"}, {"inpho_id": 20361, "depth": 2, "name": "logic and computation"}, {"inpho_id": 20150, "depth": 1, "name": "philosophy of mind"}, {"inpho_id": 20178, "depth": 2, "name": "consciousness"}, {"inpho_id": 20119, "depth": 3, "name": "aspects of consciousness"}, {"inpho_id": 20265, "depth": 3, "name": "qualia"}, {"inpho_id": 20180, "depth": 2, "name": "mental content"}, {"inpho_id": 20182, "depth": 3, "name": "theories of mental content"}, {"inpho_id": 20297, "depth": 3, "name": "propositional attitude"}, {"inpho_id": 20205, "depth": 2, "name": "perception"}, {"inpho_id": 20357, "depth": 3, "name": "perceptual experience"}, {"inpho_id": 20295, "depth": 2, "name": "philosophy of psychology"}, {"inpho_id": 20118, "depth": 3, "name": "aspects of mind"}, {"inpho_id": 20330, "depth": 3, "name": "folk psychology"}, {"inpho_id": 20331, "depth": 3, "name": "cognitive science"}, {"inpho_id": 20329, "depth": 2, "name": "artificial intelligence"}, {"inpho_id": 20333, "depth": 3, "name": "thinking machine"}, {"inpho_id": 20363, "depth": 3, "name": "computationalism"}, {"inpho_id": 20336, "depth": 2, "name": "metaphysics of mind"}, {"inpho_id": 20136, "depth": 3, "name": "mind-body problem"}, {"inpho_id": 20290, "depth": 4, "name": "physicalism"}, {"inpho_id": 20147, "depth": 3, "name": "free will"}, {"inpho_id": 20305, "depth": 3, "name": "personal identity"}, {"inpho_id": 20153, "depth": 1, "name": "philosophy of language"}, {"inpho_id": 20167, "depth": 2, "name": "compositionality and logical form"}, {"inpho_id": 20141, "depth": 3, "name": "logical form"}, {"inpho_id": 20232, "depth": 2, "name": "semantics"}, {"inpho_id": 20168, "depth": 3, "name": "truth"}, {"inpho_id": 20200, "depth": 3, "name": "reference and denotation"}, {"inpho_id": 20201, "depth": 3, "name": "semantic puzzle"}, {"inpho_id": 20202, "depth": 3, "name": "expression and idiom"}, {"inpho_id": 20370, "depth": 2, "name": "pragmatics"}, {"inpho_id": 20177, "depth": 1, "name": "feminist philosophy"}, {"inpho_id": 20341, "depth": 2, "name": "methods in feminism"}, {"inpho_id": 20185, "depth": 1, "name": "philosophy of biology"}, {"inpho_id": 20125, "depth": 2, "name": "developmental biology"}, {"inpho_id": 20129, "depth": 2, "name": "ecology and conservation"}, {"inpho_id": 20131, "depth": 2, "name": "function and teleology"}, {"inpho_id": 20132, "depth": 2, "name": "molecular biology and genetics"}, {"inpho_id": 20189, "depth": 2, "name": "evolution"}, {"inpho_id": 20193, "depth": 1, "name": "philosophy of mathematics"}, {"inpho_id": 20203, "depth": 1, "name": "philosophy of law"}, {"inpho_id": 20359, "depth": 2, "name": "legal reasoning"}, {"inpho_id": 20228, "depth": 1, "name": "philosophy of computer science"}, {"inpho_id": 20238, "depth": 1, "name": "ethics"}, {"inpho_id": 20212, "depth": 2, "name": "normative ethics"}, {"inpho_id": 20332, "depth": 2, "name": "applied ethics"}, {"inpho_id": 20243, "depth": 3, "name": "bioethics"}, {"inpho_id": 20335, "depth": 3, "name": "ethics and information technology"}, {"inpho_id": 20369, "depth": 2, "name": "metaethics"}, {"inpho_id": 20116, "depth": 3, "name": "internalism"}, {"inpho_id": 20288, "depth": 3, "name": "moral reasoning"}, {"inpho_id": 20289, "depth": 3, "name": "moral epistemology"}, {"inpho_id": 20303, "depth": 3, "name": "externalism"}, {"inpho_id": 20239, "depth": 1, "name": "epistemology"}, {"inpho_id": 20114, "depth": 2, "name": "social epistemology"}, {"inpho_id": 20115, "depth": 2, "name": "naturalized epistemology"}, {"inpho_id": 20163, "depth": 2, "name": "knowledge sources"}, {"inpho_id": 20172, "depth": 2, "name": "justification"}, {"inpho_id": 20215, "depth": 3, "name": "bayesianism"}, {"inpho_id": 20241, "depth": 3, "name": "internalism and externalism"}, {"inpho_id": 20277, "depth": 3, "name": "foundationalism"}, {"inpho_id": 20278, "depth": 3, "name": "coherentism"}, {"inpho_id": 20344, "depth": 2, "name": "knowledge and skepticism"}, {"inpho_id": 20123, "depth": 3, "name": "skepticism"}, {"inpho_id": 20267, "depth": 3, "name": "knowledge"}, {"inpho_id": 20273, "depth": 1, "name": "philosophy of sociology"}, {"inpho_id": 20291, "depth": 1, "name": "philosophy of religion"}, {"inpho_id": 20176, "depth": 2, "name": "religion and politics"}, {"inpho_id": 20245, "depth": 2, "name": "god"}, {"inpho_id": 20199, "depth": 3, "name": "existence of god"}, {"inpho_id": 20246, "depth": 3, "name": "divine attributes"}, {"inpho_id": 20248, "depth": 2, "name": "epistemology of religion"}, {"inpho_id": 20266, "depth": 3, "name": "faith and reason"}, {"inpho_id": 20275, "depth": 3, "name": "revelation"}, {"inpho_id": 20257, "depth": 2, "name": "afterlife"}, {"inpho_id": 20293, "depth": 1, "name": "philosophy of science"}, {"inpho_id": 20164, "depth": 2, "name": "epistemology of science"}, {"inpho_id": 20130, "depth": 3, "name": "models and idealization"}, {"inpho_id": 20188, "depth": 3, "name": "scientific theory"}, {"inpho_id": 20198, "depth": 4, "name": "probability"}, {"inpho_id": 20252, "depth": 3, "name": "explanation"}, {"inpho_id": 20165, "depth": 2, "name": "metaphysics of science"}, {"inpho_id": 20287, "depth": 3, "name": "causation"}, {"inpho_id": 20285, "depth": 4, "name": "cause and effect"}, {"inpho_id": 20260, "depth": 2, "name": "science and religion"}, {"inpho_id": 20356, "depth": 1, "name": "metaphysics"}, {"inpho_id": 20158, "depth": 2, "name": "facts"}, {"inpho_id": 20160, "depth": 2, "name": "object"}, {"inpho_id": 20166, "depth": 2, "name": "property"}, {"inpho_id": 20196, "depth": 2, "name": "relations"}, {"inpho_id": 20298, "depth": 2, "name": "change"}, {"inpho_id": 20323, "depth": 2, "name": "space and time"}, {"inpho_id": 20117, "depth": 3, "name": "matter"}, {"inpho_id": 20197, "depth": 3, "name": "time"}, {"inpho_id": 20271, "depth": 3, "name": "supertasks"}, {"inpho_id": 20292, "depth": 3, "name": "spacetime"}, {"inpho_id": 20345, "depth": 2, "name": "existence"}, {"inpho_id": 20173, "depth": 3, "name": "arguments for the existence of god"}, {"inpho_id": 20367, "depth": 1, "name": "philosophy of economics"}], "links": [{"color": "#4daf4a", "source": "T66", "topic": "T66", "target": "aesthetics and philosophy of art", "value": 11348.150000000001}, {"color": "#f781bf", "source": "T87", "topic": "T87", "target": "aesthetics and philosophy of art", "value": 4575.1500000000005}, {"color": "#f781bf", "source": "T103", "topic": "T103", "target": "aesthetics and philosophy of art", "value": 4171.1500000000015}, {"color": "#4daf4a", "source": "aesthetics and philosophy of art", "topic": "T66", "target": "philosophy of art", "value": 1966.03}, {"color": "#f781bf", "source": "aesthetics and philosophy of art", "topic": "T87", "target": "philosophy of art", "value": 942.02999999999997}, {"color": "#f781bf", "source": "aesthetics and philosophy of art", "topic": "T103", "target": "philosophy of art", "value": 1583.03}, {"color": "#4daf4a", "source": "philosophy of art", "topic": "T66", "target": "artistic form", "value": 1816.01}, {"color": "#f781bf", "source": "philosophy of art", "topic": "T87", "target": "artistic form", "value": 685.00999999999999}, {"color": "#f781bf", "source": "philosophy of art", "topic": "T103", "target": "artistic form", "value": 421.00999999999999}, {"color": "#4daf4a", "source": "philosophy of art", "topic": "T66", "target": "reception", "value": 150.00999999999999}, {"color": "#f781bf", "source": "philosophy of art", "topic": "T87", "target": "reception", "value": 257.00999999999999}, {"color": "#f781bf", "source": "philosophy of art", "topic": "T103", "target": "reception", "value": 1162.01}, {"color": "#4daf4a", "source": "aesthetics and philosophy of art", "topic": "T66", "target": "aesthetics", "value": 7093.0800000000008}, {"color": "#f781bf", "source": "aesthetics and philosophy of art", "topic": "T87", "target": "aesthetics", "value": 2417.0799999999999}, {"color": "#f781bf", "source": "aesthetics and philosophy of art", "topic": "T103", "target": "aesthetics", "value": 1967.0799999999999}, {"color": "#4daf4a", "source": "aesthetics", "topic": "T66", "target": "aesthetic properties", "value": 718.00999999999999}, {"color": "#f781bf", "source": "aesthetics", "topic": "T87", "target": "aesthetic properties", "value": 469.00999999999999}, {"color": "#e41a1c", "source": "T40", "topic": "T40", "target": "social and political philosophy", "value": 14774.320000000005}, {"color": "#a7572a", "source": "T86", "topic": "T86", "target": "social and political philosophy", "value": 14725.320000000005}, {"color": "#a7572a", "source": "T102", "topic": "T102", "target": "social and political philosophy", "value": 11933.320000000005}, {"color": "#e41a1c", "source": "social and political philosophy", "topic": "T40", "target": "social justice", "value": 10496.090000000002}, {"color": "#a7572a", "source": "social and political philosophy", "topic": "T86", "target": "social justice", "value": 2396.0900000000001}, {"color": "#a7572a", "source": "social and political philosophy", "topic": "T102", "target": "social justice", "value": 3735.0900000000001}, {"color": "#e41a1c", "source": "social justice", "topic": "T40", "target": "liberalism", "value": 1317.02}, {"color": "#a7572a", "source": "social justice", "topic": "T86", "target": "liberalism", "value": 190.01999999999998}, {"color": "#a7572a", "source": "social justice", "topic": "T102", "target": "liberalism", "value": 855.01999999999998}, {"color": "#e41a1c", "source": "social justice", "topic": "T40", "target": "human rights", "value": 3736.0200000000004}, {"color": "#a7572a", "source": "social justice", "topic": "T86", "target": "human rights", "value": 105.01999999999998}, {"color": "#a7572a", "source": "social justice", "topic": "T102", "target": "human rights", "value": 792.01999999999998}, {"color": "#e41a1c", "source": "social justice", "topic": "T40", "target": "distributive and economic justice", "value": 636.01000000000022}, {"color": "#a7572a", "source": "social justice", "topic": "T86", "target": "distributive and economic justice", "value": 96.009999999999991}, {"color": "#a7572a", "source": "social justice", "topic": "T102", "target": "distributive and economic justice", "value": 905.00999999999999}, {"color": "#e41a1c", "source": "social and political philosophy", "topic": "T40", "target": "political morality", "value": 2261.1000000000004}, {"color": "#a7572a", "source": "social and political philosophy", "topic": "T86", "target": "political morality", "value": 2826.1000000000004}, {"color": "#a7572a", "source": "social and political philosophy", "topic": "T102", "target": "political morality", "value": 5175.1000000000013}, {"color": "#a7572a", "source": "political morality", "topic": "T86", "target": "political authority", "value": 967.00999999999999}, {"color": "#e41a1c", "source": "social and political philosophy", "topic": "T40", "target": "forms of government", "value": 144.01999999999998}, {"color": "#a7572a", "source": "social and political philosophy", "topic": "T86", "target": "forms of government", "value": 2600.02}, {"color": "#a7572a", "source": "social and political philosophy", "topic": "T102", "target": "forms of government", "value": 987.01999999999998}, {"color": "#e41a1c", "source": "social and political philosophy", "topic": "T40", "target": "international ethics", "value": 1139.05}, {"color": "#a7572a", "source": "social and political philosophy", "topic": "T86", "target": "international ethics", "value": 3937.0500000000002}, {"color": "#a7572a", "source": "social and political philosophy", "topic": "T102", "target": "international ethics", "value": 1198.05}, {"color": "#e41a1c", "source": "international ethics", "topic": "T40", "target": "war and pacifism", "value": 195.01999999999998}, {"color": "#a7572a", "source": "international ethics", "topic": "T86", "target": "war and pacifism", "value": 1521.02}, {"color": "#a7572a", "source": "international ethics", "topic": "T102", "target": "war and pacifism", "value": 450.01999999999998}, {"color": "#e41a1c", "source": "social and political philosophy", "topic": "T40", "target": "global justice", "value": 80.009999999999991}, {"color": "#a7572a", "source": "social and political philosophy", "topic": "T86", "target": "global justice", "value": 935.00999999999999}, {"color": "#a7572a", "source": "social and political philosophy", "topic": "T102", "target": "global justice", "value": 205.00999999999999}, {"color": "#974fa2", "source": "T99", "topic": "T99", "target": "probability and statistics", "value": 5504.0400000000009}, {"color": "#e41a1c", "source": "T72", "topic": "T72", "target": "probability and statistics", "value": 3611.0400000000009}, {"color": "#974fa2", "source": "T91", "topic": "T91", "target": "probability and statistics", "value": 2919.04}, {"color": "#a7572a", "source": "T110", "topic": "T110", "target": "probability and statistics", "value": 1470.0400000000002}, {"color": "#397db6", "source": "T81", "topic": "T81", "target": "philosophy of physics", "value": 26069.289999999972}, {"color": "#e41a1c", "source": "T56", "topic": "T56", "target": "philosophy of physics", "value": 13341.290000000006}, {"color": "#974fa2", "source": "T91", "topic": "T91", "target": "philosophy of physics", "value": 10390.290000000005}, {"color": "#f781bf", "source": "T87", "topic": "T87", "target": "philosophy of physics", "value": 8650.2900000000045}, {"color": "#e41a1c", "source": "philosophy of physics", "topic": "T56", "target": "cosmology", "value": 941.00999999999999}, {"color": "#f781bf", "source": "philosophy of physics", "topic": "T87", "target": "cosmology", "value": 423.00999999999999}, {"color": "#397db6", "source": "philosophy of physics", "topic": "T81", "target": "quantum mechanics", "value": 23597.149999999987}, {"color": "#e41a1c", "source": "philosophy of physics", "topic": "T56", "target": "quantum mechanics", "value": 2304.1499999999996}, {"color": "#974fa2", "source": "philosophy of physics", "topic": "T91", "target": "quantum mechanics", "value": 5364.1500000000024}, {"color": "#f781bf", "source": "philosophy of physics", "topic": "T87", "target": "quantum mechanics", "value": 4434.1500000000015}, {"color": "#397db6", "source": "philosophy of physics", "topic": "T81", "target": "time travel", "value": 80.019999999999982}, {"color": "#e41a1c", "source": "philosophy of physics", "topic": "T56", "target": "time travel", "value": 3114.0200000000004}, {"color": "#974fa2", "source": "philosophy of physics", "topic": "T91", "target": "time travel", "value": 1634.02}, {"color": "#f781bf", "source": "philosophy of physics", "topic": "T87", "target": "time travel", "value": 345.01999999999998}, {"color": "#397db6", "source": "philosophy of physics", "topic": "T81", "target": "statistical mechanics and thermodynamics", "value": 96.019999999999982}, {"color": "#e41a1c", "source": "philosophy of physics", "topic": "T56", "target": "statistical mechanics and thermodynamics", "value": 282.01999999999998}, {"color": "#974fa2", "source": "philosophy of physics", "topic": "T91", "target": "statistical mechanics and thermodynamics", "value": 253.01999999999998}, {"color": "#f781bf", "source": "philosophy of physics", "topic": "T87", "target": "statistical mechanics and thermodynamics", "value": 954.01999999999998}, {"color": "#397db6", "source": "philosophy of physics", "topic": "T81", "target": "philosophy of space and time", "value": 23.009999999999991}, {"color": "#e41a1c", "source": "philosophy of physics", "topic": "T56", "target": "philosophy of space and time", "value": 1343.01}, {"color": "#974fa2", "source": "philosophy of physics", "topic": "T91", "target": "philosophy of space and time", "value": 406.00999999999999}, {"color": "#f781bf", "source": "philosophy of physics", "topic": "T87", "target": "philosophy of space and time", "value": 342.00999999999999}, {"color": "#974fa2", "source": "T91", "topic": "T91", "target": "logic", "value": 20205.569999999985}, {"color": "#397db6", "source": "T65", "topic": "T65", "target": "logic", "value": 17829.569999999996}, {"color": "#974fa2", "source": "logic", "topic": "T91", "target": "inductive logic and decision theory", "value": 4434.0800000000008}, {"color": "#397db6", "source": "logic", "topic": "T65", "target": "inductive logic and decision theory", "value": 738.07999999999993}, {"color": "#974fa2", "source": "inductive logic and decision theory", "topic": "T91", "target": "decision theory", "value": 374.01999999999998}, {"color": "#974fa2", "source": "inductive logic and decision theory", "topic": "T91", "target": "game theory", "value": 541.01999999999998}, {"color": "#397db6", "source": "inductive logic and decision theory", "topic": "T65", "target": "game theory", "value": 540.01999999999998}, {"color": "#974fa2", "source": "logic", "topic": "T91", "target": "philosophical logic", "value": 3978.0900000000011}, {"color": "#397db6", "source": "logic", "topic": "T65", "target": "philosophical logic", "value": 1560.0899999999999}, {"color": "#974fa2", "source": "philosophical logic", "topic": "T91", "target": "modal logic", "value": 580.01999999999998}, {"color": "#397db6", "source": "philosophical logic", "topic": "T65", "target": "modal logic", "value": 618.01999999999998}, {"color": "#974fa2", "source": "philosophical logic", "topic": "T91", "target": "non-classical logic", "value": 519.02999999999997}, {"color": "#397db6", "source": "philosophical logic", "topic": "T65", "target": "non-classical logic", "value": 371.02999999999997}, {"color": "#974fa2", "source": "philosophical logic", "topic": "T91", "target": "deontic logic", "value": 834.00999999999999}, {"color": "#397db6", "source": "philosophical logic", "topic": "T65", "target": "deontic logic", "value": 56.009999999999991}, {"color": "#974fa2", "source": "logic", "topic": "T91", "target": "mathematical logic", "value": 4741.1400000000021}, {"color": "#397db6", "source": "logic", "topic": "T65", "target": "mathematical logic", "value": 6913.1400000000021}, {"color": "#974fa2", "source": "mathematical logic", "topic": "T91", "target": "boolean algebra", "value": 916.01999999999998}, {"color": "#397db6", "source": "mathematical logic", "topic": "T65", "target": "boolean algebra", "value": 2453.02}, {"color": "#974fa2", "source": "mathematical logic", "topic": "T91", "target": "proof theory", "value": 43.009999999999991}, {"color": "#974fa2", "source": "mathematical logic", "topic": "T91", "target": "set theory", "value": 1825.0599999999999}, {"color": "#397db6", "source": "mathematical logic", "topic": "T65", "target": "set theory", "value": 3596.0600000000004}, {"color": "#974fa2", "source": "mathematical logic", "topic": "T91", "target": "type theory", "value": 351.00999999999999}, {"color": "#397db6", "source": "mathematical logic", "topic": "T65", "target": "type theory", "value": 323.00999999999999}, {"color": "#974fa2", "source": "logic", "topic": "T91", "target": "history of logic", "value": 907.07999999999993}, {"color": "#397db6", "source": "logic", "topic": "T65", "target": "history of logic", "value": 1100.0799999999999}, {"color": "#974fa2", "source": "logic", "topic": "T91", "target": "philosophy of logic", "value": 499.03999999999996}, {"color": "#397db6", "source": "logic", "topic": "T65", "target": "philosophy of logic", "value": 171.03999999999996}, {"color": "#974fa2", "source": "philosophy of logic", "topic": "T91", "target": "paradox", "value": 499.00999999999999}, {"color": "#397db6", "source": "philosophy of logic", "topic": "T65", "target": "paradox", "value": 38.009999999999991}, {"color": "#397db6", "source": "logic", "topic": "T65", "target": "logic and computation", "value": 63.009999999999991}, {"color": "#f781bf", "source": "T87", "topic": "T87", "target": "philosophy of mind", "value": 24080.629999999986}, {"color": "#f781bf", "source": "philosophy of mind", "topic": "T87", "target": "consciousness", "value": 2906.0600000000004}, {"color": "#f781bf", "source": "consciousness", "topic": "T87", "target": "aspects of consciousness", "value": 907.00999999999999}, {"color": "#f781bf", "source": "consciousness", "topic": "T87", "target": "qualia", "value": 313.00999999999999}, {"color": "#f781bf", "source": "philosophy of mind", "topic": "T87", "target": "mental content", "value": 1089.04}, {"color": "#f781bf", "source": "mental content", "topic": "T87", "target": "theories of mental content", "value": 270.00999999999999}, {"color": "#f781bf", "source": "mental content", "topic": "T87", "target": "propositional attitude", "value": 480.01999999999998}, {"color": "#f781bf", "source": "philosophy of mind", "topic": "T87", "target": "perception", "value": 7111.1400000000012}, {"color": "#f781bf", "source": "perception", "topic": "T87", "target": "perceptual experience", "value": 727.01999999999998}, {"color": "#f781bf", "source": "philosophy of mind", "topic": "T87", "target": "philosophy of psychology", "value": 3923.130000000001}, {"color": "#f781bf", "source": "philosophy of psychology", "topic": "T87", "target": "aspects of mind", "value": 1861.04}, {"color": "#f781bf", "source": "philosophy of psychology", "topic": "T87", "target": "folk psychology", "value": 242.01999999999998}, {"color": "#f781bf", "source": "philosophy of psychology", "topic": "T87", "target": "cognitive science", "value": 1457.05}, {"color": "#f781bf", "source": "philosophy of mind", "topic": "T87", "target": "artificial intelligence", "value": 2821.0799999999999}, {"color": "#f781bf", "source": "artificial intelligence", "topic": "T87", "target": "thinking machine", "value": 1021.01}, {"color": "#f781bf", "source": "artificial intelligence", "topic": "T87", "target": "computationalism", "value": 780.00999999999999}, {"color": "#f781bf", "source": "philosophy of mind", "topic": "T87", "target": "metaphysics of mind", "value": 5565.1599999999999}, {"color": "#f781bf", "source": "metaphysics of mind", "topic": "T87", "target": "mind-body problem", "value": 3164.0799999999999}, {"color": "#f781bf", "source": "mind-body problem", "topic": "T87", "target": "physicalism", "value": 1760.04}, {"color": "#f781bf", "source": "metaphysics of mind", "topic": "T87", "target": "free will", "value": 709.01999999999998}, {"color": "#f781bf", "source": "metaphysics of mind", "topic": "T87", "target": "personal identity", "value": 272.00999999999999}, {"color": "#4daf4a", "source": "T42", "topic": "T42", "target": "philosophy of language", "value": 15852.360000000002}, {"color": "#4daf4a", "source": "philosophy of language", "topic": "T42", "target": "compositionality and logical form", "value": 3292.04}, {"color": "#4daf4a", "source": "compositionality and logical form", "topic": "T42", "target": "logical form", "value": 2229.0200000000004}, {"color": "#4daf4a", "source": "philosophy of language", "topic": "T42", "target": "semantics", "value": 7221.1900000000014}, {"color": "#4daf4a", "source": "semantics", "topic": "T42", "target": "truth", "value": 1939.0999999999999}, {"color": "#4daf4a", "source": "semantics", "topic": "T42", "target": "reference and denotation", "value": 456.02999999999997}, {"color": "#4daf4a", "source": "semantics", "topic": "T42", "target": "semantic puzzle", "value": 4380.0300000000007}, {"color": "#4daf4a", "source": "semantics", "topic": "T42", "target": "expression and idiom", "value": 182.01999999999998}, {"color": "#4daf4a", "source": "philosophy of language", "topic": "T42", "target": "pragmatics", "value": 4505.0600000000004}, {"color": "#f781bf", "source": "T111", "topic": "T111", "target": "feminist philosophy", "value": 7586.1000000000004}, {"color": "#a7572a", "source": "T78", "topic": "T78", "target": "feminist philosophy", "value": 5579.1000000000013}, {"color": "#e41a1c", "source": "T112", "topic": "T112", "target": "feminist philosophy", "value": 3687.1000000000013}, {"color": "#f781bf", "source": "feminist philosophy", "topic": "T111", "target": "methods in feminism", "value": 3155.0699999999997}, {"color": "#a7572a", "source": "feminist philosophy", "topic": "T78", "target": "methods in feminism", "value": 4360.0700000000006}, {"color": "#e41a1c", "source": "feminist philosophy", "topic": "T112", "target": "methods in feminism", "value": 2960.0700000000006}, {"color": "#f781bf", "source": "T47", "topic": "T47", "target": "philosophy of biology", "value": 18974.200000000001}, {"color": "#4daf4a", "source": "T50", "topic": "T50", "target": "philosophy of biology", "value": 6259.2000000000035}, {"color": "#e41a1c", "source": "T64", "topic": "T64", "target": "philosophy of biology", "value": 6181.2000000000035}, {"color": "#f781bf", "source": "philosophy of biology", "topic": "T47", "target": "developmental biology", "value": 634.00999999999999}, {"color": "#4daf4a", "source": "philosophy of biology", "topic": "T50", "target": "developmental biology", "value": 83.009999999999991}, {"color": "#f781bf", "source": "philosophy of biology", "topic": "T47", "target": "ecology and conservation", "value": 289.00999999999999}, {"color": "#4daf4a", "source": "philosophy of biology", "topic": "T50", "target": "ecology and conservation", "value": 674.00999999999999}, {"color": "#e41a1c", "source": "philosophy of biology", "topic": "T64", "target": "ecology and conservation", "value": 1752.01}, {"color": "#f781bf", "source": "philosophy of biology", "topic": "T47", "target": "function and teleology", "value": 222.00999999999999}, {"color": "#4daf4a", "source": "philosophy of biology", "topic": "T50", "target": "function and teleology", "value": 34.009999999999991}, {"color": "#f781bf", "source": "philosophy of biology", "topic": "T47", "target": "molecular biology and genetics", "value": 1237.01}, {"color": "#f781bf", "source": "philosophy of biology", "topic": "T47", "target": "evolution", "value": 11319.08}, {"color": "#4daf4a", "source": "philosophy of biology", "topic": "T50", "target": "evolution", "value": 1365.0799999999999}, {"color": "#e41a1c", "source": "philosophy of biology", "topic": "T64", "target": "evolution", "value": 145.07999999999993}, {"color": "#fffe33", "source": "T29", "topic": "T29", "target": "philosophy of mathematics", "value": 2217.0699999999997}, {"color": "#a7572a", "source": "T54", "topic": "T54", "target": "philosophy of mathematics", "value": 1956.0700000000002}, {"color": "#974fa2", "source": "T91", "topic": "T91", "target": "philosophy of mathematics", "value": 1816.0699999999999}, {"color": "#fffe33", "source": "T93", "topic": "T93", "target": "philosophy of law", "value": 12000.130000000001}, {"color": "#ff8000", "source": "T12", "topic": "T12", "target": "philosophy of law", "value": 6622.1300000000028}, {"color": "#fffe33", "source": "T117", "topic": "T117", "target": "philosophy of law", "value": 4944.130000000001}, {"color": "#f781bf", "source": "T87", "topic": "T87", "target": "philosophy of law", "value": 4561.130000000001}, {"color": "#fffe33", "source": "philosophy of law", "topic": "T93", "target": "legal reasoning", "value": 3926.0200000000004}, {"color": "#ff8000", "source": "philosophy of law", "topic": "T12", "target": "legal reasoning", "value": 47.019999999999982}, {"color": "#fffe33", "source": "philosophy of law", "topic": "T117", "target": "legal reasoning", "value": 1508.02}, {"color": "#f781bf", "source": "philosophy of law", "topic": "T87", "target": "legal reasoning", "value": 781.01999999999998}, {"color": "#4daf4a", "source": "T50", "topic": "T50", "target": "philosophy of computer science", "value": 5767.0600000000013}, {"color": "#f781bf", "source": "T63", "topic": "T63", "target": "philosophy of computer science", "value": 4620.0600000000013}, {"color": "#f781bf", "source": "T87", "topic": "T87", "target": "ethics", "value": 13296.430000000008}, {"color": "#a7572a", "source": "T102", "topic": "T102", "target": "ethics", "value": 12080.430000000008}, {"color": "#f781bf", "source": "ethics", "topic": "T87", "target": "normative ethics", "value": 172.01999999999998}, {"color": "#a7572a", "source": "ethics", "topic": "T102", "target": "normative ethics", "value": 1103.02}, {"color": "#f781bf", "source": "ethics", "topic": "T87", "target": "applied ethics", "value": 2153.1700000000001}, {"color": "#a7572a", "source": "ethics", "topic": "T102", "target": "applied ethics", "value": 5165.1700000000019}, {"color": "#f781bf", "source": "applied ethics", "topic": "T87", "target": "bioethics", "value": 843.08999999999992}, {"color": "#a7572a", "source": "applied ethics", "topic": "T102", "target": "bioethics", "value": 3149.0900000000001}, {"color": "#f781bf", "source": "applied ethics", "topic": "T87", "target": "ethics and information technology", "value": 858.04999999999995}, {"color": "#a7572a", "source": "applied ethics", "topic": "T102", "target": "ethics and information technology", "value": 1260.05}, {"color": "#f781bf", "source": "ethics", "topic": "T87", "target": "metaethics", "value": 5122.130000000001}, {"color": "#a7572a", "source": "ethics", "topic": "T102", "target": "metaethics", "value": 2916.130000000001}, {"color": "#f781bf", "source": "metaethics", "topic": "T87", "target": "internalism", "value": 385.00999999999999}, {"color": "#a7572a", "source": "metaethics", "topic": "T102", "target": "internalism", "value": 207.00999999999999}, {"color": "#f781bf", "source": "metaethics", "topic": "T87", "target": "moral reasoning", "value": 440.02999999999997}, {"color": "#a7572a", "source": "metaethics", "topic": "T102", "target": "moral reasoning", "value": 930.02999999999997}, {"color": "#f781bf", "source": "metaethics", "topic": "T87", "target": "moral epistemology", "value": 1846.03}, {"color": "#a7572a", "source": "metaethics", "topic": "T102", "target": "moral epistemology", "value": 624.02999999999997}, {"color": "#f781bf", "source": "metaethics", "topic": "T87", "target": "externalism", "value": 378.01999999999998}, {"color": "#a7572a", "source": "metaethics", "topic": "T102", "target": "externalism", "value": 83.019999999999982}, {"color": "#974fa2", "source": "T107", "topic": "T107", "target": "epistemology", "value": 17093.240000000002}, {"color": "#f781bf", "source": "T87", "topic": "T87", "target": "epistemology", "value": 9259.2400000000034}, {"color": "#974fa2", "source": "epistemology", "topic": "T107", "target": "social epistemology", "value": 482.00999999999999}, {"color": "#f781bf", "source": "epistemology", "topic": "T87", "target": "social epistemology", "value": 332.00999999999999}, {"color": "#974fa2", "source": "epistemology", "topic": "T107", "target": "naturalized epistemology", "value": 34.019999999999982}, {"color": "#f781bf", "source": "epistemology", "topic": "T87", "target": "naturalized epistemology", "value": 188.01999999999998}, {"color": "#974fa2", "source": "epistemology", "topic": "T107", "target": "knowledge sources", "value": 97.029999999999973}, {"color": "#f781bf", "source": "epistemology", "topic": "T87", "target": "knowledge sources", "value": 1181.03}, {"color": "#974fa2", "source": "epistemology", "topic": "T107", "target": "justification", "value": 9683.0800000000017}, {"color": "#f781bf", "source": "epistemology", "topic": "T87", "target": "justification", "value": 2138.0799999999999}, {"color": "#974fa2", "source": "justification", "topic": "T107", "target": "bayesianism", "value": 28.009999999999991}, {"color": "#f781bf", "source": "justification", "topic": "T87", "target": "bayesianism", "value": 27.009999999999991}, {"color": "#974fa2", "source": "justification", "topic": "T107", "target": "internalism and externalism", "value": 117.00999999999999}, {"color": "#f781bf", "source": "justification", "topic": "T87", "target": "internalism and externalism", "value": 223.00999999999999}, {"color": "#974fa2", "source": "justification", "topic": "T107", "target": "foundationalism", "value": 1188.01}, {"color": "#f781bf", "source": "justification", "topic": "T87", "target": "foundationalism", "value": 398.00999999999999}, {"color": "#974fa2", "source": "justification", "topic": "T107", "target": "coherentism", "value": 3805.0200000000004}, {"color": "#f781bf", "source": "justification", "topic": "T87", "target": "coherentism", "value": 839.01999999999998}, {"color": "#974fa2", "source": "epistemology", "topic": "T107", "target": "knowledge and skepticism", "value": 3593.04}, {"color": "#f781bf", "source": "epistemology", "topic": "T87", "target": "knowledge and skepticism", "value": 3466.04}, {"color": "#974fa2", "source": "knowledge and skepticism", "topic": "T107", "target": "skepticism", "value": 61.009999999999991}, {"color": "#f781bf", "source": "knowledge and skepticism", "topic": "T87", "target": "skepticism", "value": 1517.01}, {"color": "#974fa2", "source": "knowledge and skepticism", "topic": "T107", "target": "knowledge", "value": 1648.02}, {"color": "#f781bf", "source": "knowledge and skepticism", "topic": "T87", "target": "knowledge", "value": 1449.02}, {"color": "#e41a1c", "source": "T96", "topic": "T96", "target": "philosophy of sociology", "value": 1397.01}, {"color": "#a7572a", "source": "T78", "topic": "T78", "target": "philosophy of sociology", "value": 1352.01}, {"color": "#fffe33", "source": "T117", "topic": "T117", "target": "philosophy of sociology", "value": 391.00999999999999}, {"color": "#fffe33", "source": "T69", "topic": "T69", "target": "philosophy of religion", "value": 11602.360000000006}, {"color": "#f781bf", "source": "T87", "topic": "T87", "target": "philosophy of religion", "value": 10132.360000000006}, {"color": "#fffe33", "source": "philosophy of religion", "topic": "T69", "target": "religion and politics", "value": 984.05999999999995}, {"color": "#f781bf", "source": "philosophy of religion", "topic": "T87", "target": "religion and politics", "value": 2581.0600000000004}, {"color": "#fffe33", "source": "philosophy of religion", "topic": "T69", "target": "god", "value": 5446.0600000000013}, {"color": "#f781bf", "source": "philosophy of religion", "topic": "T87", "target": "god", "value": 1263.0599999999999}, {"color": "#fffe33", "source": "god", "topic": "T69", "target": "existence of god", "value": 1764.0100000000002}, {"color": "#f781bf", "source": "god", "topic": "T87", "target": "existence of god", "value": 567.00999999999999}, {"color": "#fffe33", "source": "god", "topic": "T69", "target": "divine attributes", "value": 3682.0500000000002}, {"color": "#f781bf", "source": "god", "topic": "T87", "target": "divine attributes", "value": 696.04999999999995}, {"color": "#fffe33", "source": "philosophy of religion", "topic": "T69", "target": "epistemology of religion", "value": 609.04999999999995}, {"color": "#f781bf", "source": "philosophy of religion", "topic": "T87", "target": "epistemology of religion", "value": 1301.05}, {"color": "#fffe33", "source": "epistemology of religion", "topic": "T69", "target": "faith and reason", "value": 21.029999999999973}, {"color": "#f781bf", "source": "epistemology of religion", "topic": "T87", "target": "faith and reason", "value": 1133.03}, {"color": "#fffe33", "source": "epistemology of religion", "topic": "T69", "target": "revelation", "value": 138.00999999999999}, {"color": "#f781bf", "source": "epistemology of religion", "topic": "T87", "target": "revelation", "value": 168.00999999999999}, {"color": "#fffe33", "source": "philosophy of religion", "topic": "T69", "target": "afterlife", "value": 722.01999999999998}, {"color": "#f781bf", "source": "T95", "topic": "T95", "target": "philosophy of science", "value": 11422.150000000003}, {"color": "#f781bf", "source": "T87", "topic": "T87", "target": "philosophy of science", "value": 5285.1500000000015}, {"color": "#f781bf", "source": "philosophy of science", "topic": "T95", "target": "epistemology of science", "value": 4218.0400000000009}, {"color": "#f781bf", "source": "philosophy of science", "topic": "T87", "target": "epistemology of science", "value": 1536.04}, {"color": "#f781bf", "source": "epistemology of science", "topic": "T87", "target": "models and idealization", "value": 355.00999999999999}, {"color": "#f781bf", "source": "epistemology of science", "topic": "T87", "target": "scientific theory", "value": 265.01999999999998}, {"color": "#f781bf", "source": "scientific theory", "topic": "T87", "target": "probability", "value": 9.0099999999999909}, {"color": "#f781bf", "source": "epistemology of science", "topic": "T95", "target": "explanation", "value": 4218.0100000000002}, {"color": "#f781bf", "source": "epistemology of science", "topic": "T87", "target": "explanation", "value": 916.00999999999999}, {"color": "#f781bf", "source": "philosophy of science", "topic": "T95", "target": "metaphysics of science", "value": 7046.0800000000008}, {"color": "#f781bf", "source": "philosophy of science", "topic": "T87", "target": "metaphysics of science", "value": 2601.0799999999999}, {"color": "#f781bf", "source": "metaphysics of science", "topic": "T95", "target": "causation", "value": 6809.0600000000004}, {"color": "#f781bf", "source": "metaphysics of science", "topic": "T87", "target": "causation", "value": 2347.0599999999999}, {"color": "#f781bf", "source": "causation", "topic": "T95", "target": "cause and effect", "value": 4207.04}, {"color": "#f781bf", "source": "causation", "topic": "T87", "target": "cause and effect", "value": 1682.04}, {"color": "#f781bf", "source": "philosophy of science", "topic": "T95", "target": "science and religion", "value": 158.00999999999999}, {"color": "#f781bf", "source": "philosophy of science", "topic": "T87", "target": "science and religion", "value": 138.00999999999999}, {"color": "#f781bf", "source": "T87", "topic": "T87", "target": "metaphysics", "value": 15543.470000000003}, {"color": "#f781bf", "source": "metaphysics", "topic": "T87", "target": "facts", "value": 1015.02}, {"color": "#f781bf", "source": "metaphysics", "topic": "T87", "target": "object", "value": 284.00999999999999}, {"color": "#f781bf", "source": "metaphysics", "topic": "T87", "target": "property", "value": 678.02999999999997}, {"color": "#f781bf", "source": "metaphysics", "topic": "T87", "target": "relations", "value": 2040.04}, {"color": "#f781bf", "source": "metaphysics", "topic": "T87", "target": "change", "value": 877.01999999999998}, {"color": "#f781bf", "source": "metaphysics", "topic": "T87", "target": "space and time", "value": 3879.1100000000006}, {"color": "#f781bf", "source": "space and time", "topic": "T87", "target": "matter", "value": 247.00999999999999}, {"color": "#f781bf", "source": "space and time", "topic": "T87", "target": "time", "value": 723.03999999999996}, {"color": "#f781bf", "source": "space and time", "topic": "T87", "target": "supertasks", "value": 1542.02}, {"color": "#f781bf", "source": "space and time", "topic": "T87", "target": "spacetime", "value": 1015.02}, {"color": "#f781bf", "source": "metaphysics", "topic": "T87", "target": "existence", "value": 1818.0699999999999}, {"color": "#f781bf", "source": "existence", "topic": "T87", "target": "arguments for the existence of god", "value": 1501.05}, {"color": "#4daf4a", "source": "T90", "topic": "T90", "target": "philosophy of economics", "value": 1928.02}, {"color": "#974fa2", "source": "T43", "topic": "T43", "target": "philosophy of economics", "value": 1646.02}, {"color": "#fffe33", "source": "T93", "topic": "T93", "target": "philosophy of economics", "value": 1238.02}, {"color": "#4daf4a", "source": "T50", "topic": "T50", "target": "philosophy of economics", "value": 886.01999999999998}, {"color": "#a7572a", "source": "T78", "topic": "T78", "target": "philosophy of economics", "value": 705.01999999999998}]}
d3.sankey = function() {
var sankey = {},
nodeWidth = 24,
nodePadding = 8,
size = [1, 1],
nodes = [],
links = [];
sankey.nodeWidth = function(_) {
if (!arguments.length) return nodeWidth;
nodeWidth = +_;
return sankey;
};
sankey.nodePadding = function(_) {
if (!arguments.length) return nodePadding;
nodePadding = +_;
return sankey;
};
sankey.nodes = function(_) {
if (!arguments.length) return nodes;
nodes = _;
return sankey;
};
sankey.links = function(_) {
if (!arguments.length) return links;
links = _;
return sankey;
};
sankey.size = function(_) {
if (!arguments.length) return size;
size = _;
return sankey;
};
sankey.layout = function(iterations) {
computeNodeLinks();
computeNodeValues();
computeNodeBreadths();
computeNodeDepths(iterations);
computeLinkDepths();
return sankey;
};
sankey.relayout = function() {
computeLinkDepths();
return sankey;
};
sankey.link = function() {
var curvature = .5;
function link(d) {
var x0 = d.source.x + d.source.dx,
x1 = d.target.x,
xi = d3.interpolateNumber(x0, x1),
x2 = xi(curvature),
x3 = xi(1 - curvature),
y0 = d.source.y + d.sy + d.dy / 2,
y1 = d.target.y + d.ty + d.dy / 2;
return "M" + x0 + "," + y0
+ "C" + x2 + "," + y0
+ " " + x3 + "," + y1
+ " " + x1 + "," + y1;
}
link.curvature = function(_) {
if (!arguments.length) return curvature;
curvature = +_;
return link;
};
return link;
};
// Populate the sourceLinks and targetLinks for each node.
// Also, if the source and target are not objects, assume they are indices.
function computeNodeLinks() {
nodes.forEach(function(node) {
node.sourceLinks = [];
node.targetLinks = [];
});
links.forEach(function(link) {
var source = link.source,
target = link.target;
if (typeof source === "number") source = link.source = nodes[link.source];
if (typeof target === "number") target = link.target = nodes[link.target];
source.sourceLinks.push(link);
target.targetLinks.push(link);
});
}
// Compute the value (size) of each node by summing the associated links.
function computeNodeValues() {
nodes.forEach(function(node) {
node.value = Math.max(
d3.sum(node.sourceLinks, value),
d3.sum(node.targetLinks, value)
);
});
}
// Iteratively assign the breadth (x-position) for each node.
// Nodes are assigned the maximum breadth of incoming neighbors plus one;
// nodes with no incoming links are assigned breadth zero, while
// nodes with no outgoing links are assigned the maximum breadth.
function computeNodeBreadths() {
var remainingNodes = nodes,
nextNodes,
x = 0;
while (remainingNodes.length) {
nextNodes = [];
remainingNodes.forEach(function(node) {
node.x = x;
node.dx = nodeWidth;
node.sourceLinks.forEach(function(link) {
nextNodes.push(link.target);
});
});
remainingNodes = nextNodes;
++x;
}
//
//moveSinksRight(x);
scaleNodeBreadths((size[0] - nodeWidth) / (x - 1));
}
function moveSourcesRight() {
nodes.forEach(function(node) {
if (!node.targetLinks.length) {
node.x = d3.min(node.sourceLinks, function(d) { return d.target.x; }) - 1;
}
});
}
function moveSinksRight(x) {
nodes.forEach(function(node) {
if (!node.sourceLinks.length) {
// node.x = x - 1;
}
});
}
function scaleNodeBreadths(kx) {
nodes.forEach(function(node) {
node.x *= kx;
});
}
function computeNodeDepths(iterations) {
var nodesByBreadth = d3.nest()
.key(function(d) { return d.depth; })
.sortKeys(d3.ascending)
.entries(nodes)
.map(function(d) { return d.values; });
//
initializeNodeDepth();
resolveCollisions();
for (var alpha = 1; iterations > 0; --iterations) {
relaxRightToLeft(alpha *= .99);
resolveCollisions();
relaxLeftToRight(alpha);
resolveCollisions();
}
function initializeNodeDepth() {
var ky = d3.min(nodesByBreadth, function(nodes) {
return (size[1] - (nodes.length - 1) * nodePadding) / d3.sum(nodes, value);
});
nodesByBreadth.forEach(function(nodes) {
nodes.forEach(function(node, i) {
node.y = i;
node.dy = node.value * ky;
});
});
links.forEach(function(link) {
link.dy = link.value * ky;
});
}
function relaxLeftToRight(alpha) {
nodesByBreadth.forEach(function(nodes, breadth) {
nodes.forEach(function(node) {
if (node.targetLinks.length) {
var y = d3.sum(node.targetLinks, weightedSource) / d3.sum(node.targetLinks, value);
node.y += (y - center(node)) * alpha;
}
});
});
function weightedSource(link) {
return center(link.source) * link.value;
}
}
function relaxRightToLeft(alpha) {
nodesByBreadth.slice().reverse().forEach(function(nodes) {
nodes.forEach(function(node) {
if (node.sourceLinks.length) {
var y = d3.sum(node.sourceLinks, weightedTarget) / d3.sum(node.sourceLinks, value);
node.y += (y - center(node)) * alpha;
}
});
});
function weightedTarget(link) {
return center(link.target) * link.value;
}
}
function resolveCollisions() {
nodesByBreadth.forEach(function(nodes) {
var node,
dy,
y0 = 0,
n = nodes.length,
i;
// Push any overlapping nodes down.
nodes.sort(ascendingDepth);
for (i = 0; i < n; ++i) {
node = nodes[i];
dy = y0 - node.y;
if (dy > 0) node.y += dy;
y0 = node.y + node.dy + nodePadding;
}
// If the bottommost node goes outside the bounds, push it back up.
dy = y0 - nodePadding - size[1];
if (dy > 0) {
y0 = node.y -= dy;
// Push any overlapping nodes back up.
for (i = n - 2; i >= 0; --i) {
node = nodes[i];
dy = node.y + node.dy + nodePadding - y0;
if (dy > 0) node.y -= dy;
y0 = node.y;
}
}
});
}
function ascendingDepth(a, b) {
return a.y - b.y;
}
}
function computeLinkDepths() {
nodes.forEach(function(node) {
node.sourceLinks.sort(ascendingTargetDepth);
node.targetLinks.sort(ascendingSourceDepth);
});
nodes.forEach(function(node) {
var sy = 0, ty = 0;
node.sourceLinks.forEach(function(link) {
link.sy = sy;
sy += link.dy;
});
node.targetLinks.forEach(function(link) {
link.ty = ty;
ty += link.dy;
});
});
function ascendingSourceDepth(a, b) {
return a.source.y - b.source.y;
}
function ascendingTargetDepth(a, b) {
return a.target.y - b.target.y;
}
}
function center(node) {
return node.y + node.dy / 2;
}
function value(link) {
return link.value;
}
return sankey;
};
{"nodes": [{"color": "#974fa2", "name": "T3", "words": "selection, species, evolutionary, biological, biology, genetic, evolution, genes, organisms, population"}, {"color": "#ff8000", "name": "T4", "words": "quantum, mechanics, measurement, space, systems, field, spacetime, classical, physics, relativity"}, {"color": "#fffe33", "name": "T5", "words": "understanding, within, role, often, approach, various, central, specific, ways, indeed"}, {"color": "#a7572a", "name": "T6", "words": "legal, justice, principles, rawls, public, authority, rules, reasons, obligation, obligations"}, {"color": "#e41a1c", "name": "T8", "words": "art, aesthetic, beauty, aesthetics, works, music, beautiful, poetry, taste, nietzsche"}, {"color": "#4daf4a", "name": "T10", "words": "women, feminist, gender, men, feminists, sexual, sex, woman, male, race"}, {"color": "#974fa2", "name": "T11", "words": "rights, liberal, government, citizens, group, power, international, freedom, democratic, institutions"}, {"color": "#ff8000", "name": "T12", "words": "change, space, 3, three, present, points, line, infinite, following, b"}, {"color": "#fffe33", "name": "T13", "words": "pleasure, virtue, morality, hume, happiness, mill, love, ethical, ethics, desire"}, {"color": "#a7572a", "name": "T14", "words": "worlds, modal, identity, exist, ontological, lewis, property, affairs, entities, facts"}, {"color": "#e41a1c", "name": "T16", "words": "information, computer, turing, al, cognitive, behavior, data, systems, machine, computational"}, {"color": "#397db6", "name": "T17", "words": "game, utility, preferences, player, choice, strategy, preference, decision, agents, expected"}, {"color": "#4daf4a", "name": "T18", "words": "beliefs, justification, justified, epistemic, know, evidence, proposition, believe, propositions, believing"}, {"color": "#974fa2", "name": "T19", "words": "substance, relations, parts, real, categories, thing, kinds, entities, substances, material"}, {"color": "#fffe33", "name": "T21", "words": "mental, consciousness, content, experiences, perception, conscious, perceptual, phenomenal, memory, contents"}, {"color": "#a7572a", "name": "T22", "words": "mathematical, mathematics, numbers, x, proof, sets, theorem, axioms, arithmetic, type"}, {"color": "#f781bf", "name": "T23", "words": "aristotle, medieval, ockham, proposition, term, scotus, propositions, socrates, subject, man"}, {"color": "#e41a1c", "name": "T24", "words": "probability, evidence, h, probabilities, hypothesis, hypotheses, probabilistic, e, chance, inductive"}, {"color": "#397db6", "name": "T25", "words": "causal, cause, events, explanation, causation, laws, mental, causes, event, explanations"}, {"color": "#4daf4a", "name": "T26", "words": "divine, religious, evil, religion, faith, power, christian, free, universe, theological"}, {"color": "#a7572a", "name": "T30", "words": "scientific, empirical, theoretical, sciences, logical, method, peirce, carnap, kuhn, physics"}, {"color": "#f781bf", "name": "T31", "words": "meaning, sentence, sentences, semantic, proposition, propositions, speaker, expressions, content, linguistic"}, {"color": "#e41a1c", "name": "T32", "words": "kant, transcendental, idealism, judgment, space, pure, concepts, empirical, ideas, representations"}, {"color": "#397db6", "name": "T33", "words": "child, death, persons, respect, children, status, morally, harm, interests, future"}, {"color": "#4daf4a", "name": "T34", "words": "think, arguments, seem, claims, sort, perhaps, version, need, n't, e.g"}, {"color": "#974fa2", "name": "T35", "words": "x, logical, b, semantics, rules, logics, formula, y, classical, f"}, {"color": "#ff8000", "name": "T36", "words": "health, equality, research, disability, justice, individuals, care, opportunity, medical, society"}, {"color": "#fffe33", "name": "T37", "words": "punishment, harm, war, criminal, privacy, wrong, pornography, morally, civil, violence"}, {"color": "#f781bf", "name": "T39", "words": "beliefs, evidence, judgments, reasoning, epistemic, judgment, normative, claims, arguments, values"}, {"name": "aesthetics and philosophy of art"}, {"name": "history of philosophy"}, {"name": "social and political philosophy"}, {"name": "probability and statistics"}, {"name": "philosophy of physics"}, {"name": "logic"}, {"name": "philosophy of mind"}, {"name": "philosophy of language"}, {"name": "feminist philosophy"}, {"name": "philosophy of biology"}, {"name": "philosophy of mathematics"}, {"name": "philosophy of law"}, {"name": "philosophy of computer science"}, {"name": "ethics"}, {"name": "epistemology"}, {"name": "philosophy of sociology"}, {"name": "philosophy of religion"}, {"name": "philosophy of science"}, {"name": "metaphysics"}, {"name": "philosophy of economics"}], "links": [{"color": "#e41a1c", "source": "T8", "topic": "T8", "target": "aesthetics and philosophy of art", "value": 15093.150000000001}, {"color": "#fffe33", "source": "T5", "topic": "T5", "target": "aesthetics and philosophy of art", "value": 11996.150000000001}, {"color": "#4daf4a", "source": "T34", "topic": "T34", "target": "aesthetics and philosophy of art", "value": 4250.1500000000015}, {"color": "#e41a1c", "source": "T32", "topic": "T32", "target": "aesthetics and philosophy of art", "value": 3575.1500000000005}, {"color": "#f781bf", "source": "T23", "topic": "T23", "target": "history of philosophy", "value": 12648.200000000003}, {"color": "#fffe33", "source": "T5", "topic": "T5", "target": "history of philosophy", "value": 11110.200000000004}, {"color": "#4daf4a", "source": "T34", "topic": "T34", "target": "history of philosophy", "value": 8420.2000000000025}, {"color": "#f781bf", "source": "T39", "topic": "T39", "target": "history of philosophy", "value": 7896.2000000000035}, {"color": "#974fa2", "source": "T11", "topic": "T11", "target": "social and political philosophy", "value": 32101.319999999989}, {"color": "#fffe33", "source": "T5", "topic": "T5", "target": "social and political philosophy", "value": 21985.319999999989}, {"color": "#a7572a", "source": "T6", "topic": "T6", "target": "social and political philosophy", "value": 21751.319999999996}, {"color": "#fffe33", "source": "T37", "topic": "T37", "target": "social and political philosophy", "value": 10894.320000000005}, {"color": "#397db6", "source": "T33", "topic": "T33", "target": "social and political philosophy", "value": 9798.3200000000033}, {"color": "#ff8000", "source": "T36", "topic": "T36", "target": "social and political philosophy", "value": 9425.3200000000033}, {"color": "#4daf4a", "source": "T34", "topic": "T34", "target": "social and political philosophy", "value": 8394.3200000000033}, {"color": "#397db6", "source": "T17", "topic": "T17", "target": "probability and statistics", "value": 6888.0400000000009}, {"color": "#e41a1c", "source": "T24", "topic": "T24", "target": "probability and statistics", "value": 6248.0400000000009}, {"color": "#ff8000", "source": "T12", "topic": "T12", "target": "probability and statistics", "value": 1987.04}, {"color": "#ff8000", "source": "T4", "topic": "T4", "target": "philosophy of physics", "value": 56465.290000000015}, {"color": "#fffe33", "source": "T5", "topic": "T5", "target": "philosophy of physics", "value": 15804.290000000005}, {"color": "#ff8000", "source": "T12", "topic": "T12", "target": "philosophy of physics", "value": 13551.290000000005}, {"color": "#974fa2", "source": "T35", "topic": "T35", "target": "logic", "value": 59732.570000000051}, {"color": "#a7572a", "source": "T22", "topic": "T22", "target": "logic", "value": 32211.57}, {"color": "#397db6", "source": "T17", "topic": "T17", "target": "logic", "value": 17902.569999999952}, {"color": "#4daf4a", "source": "T34", "topic": "T34", "target": "logic", "value": 14612.570000000009}, {"color": "#fffe33", "source": "T21", "topic": "T21", "target": "philosophy of mind", "value": 55979.630000000019}, {"color": "#4daf4a", "source": "T34", "topic": "T34", "target": "philosophy of mind", "value": 47382.629999999997}, {"color": "#fffe33", "source": "T5", "topic": "T5", "target": "philosophy of mind", "value": 39257.629999999983}, {"color": "#e41a1c", "source": "T16", "topic": "T16", "target": "philosophy of mind", "value": 27553.629999999932}, {"color": "#f781bf", "source": "T31", "topic": "T31", "target": "philosophy of language", "value": 49315.36000000003}, {"color": "#4daf4a", "source": "T34", "topic": "T34", "target": "philosophy of language", "value": 24408.35999999999}, {"color": "#fffe33", "source": "T5", "topic": "T5", "target": "philosophy of language", "value": 18290.359999999997}, {"color": "#974fa2", "source": "T35", "topic": "T35", "target": "philosophy of language", "value": 10184.360000000006}, {"color": "#4daf4a", "source": "T10", "topic": "T10", "target": "feminist philosophy", "value": 12751.100000000002}, {"color": "#fffe33", "source": "T5", "topic": "T5", "target": "feminist philosophy", "value": 6968.1000000000013}, {"color": "#ff8000", "source": "T36", "topic": "T36", "target": "feminist philosophy", "value": 3042.1000000000004}, {"color": "#974fa2", "source": "T3", "topic": "T3", "target": "philosophy of biology", "value": 31543.199999999993}, {"color": "#fffe33", "source": "T5", "topic": "T5", "target": "philosophy of biology", "value": 13959.200000000003}, {"color": "#a7572a", "source": "T22", "topic": "T22", "target": "philosophy of mathematics", "value": 8081.0700000000015}, {"color": "#ff8000", "source": "T12", "topic": "T12", "target": "philosophy of mathematics", "value": 6536.0700000000006}, {"color": "#fffe33", "source": "T5", "topic": "T5", "target": "philosophy of mathematics", "value": 2798.0700000000006}, {"color": "#974fa2", "source": "T35", "topic": "T35", "target": "philosophy of mathematics", "value": 1389.0700000000002}, {"color": "#a7572a", "source": "T6", "topic": "T6", "target": "philosophy of law", "value": 16825.130000000001}, {"color": "#fffe33", "source": "T5", "topic": "T5", "target": "philosophy of law", "value": 8632.130000000001}, {"color": "#fffe33", "source": "T37", "topic": "T37", "target": "philosophy of law", "value": 7471.1300000000028}, {"color": "#4daf4a", "source": "T34", "topic": "T34", "target": "philosophy of law", "value": 6634.1300000000019}, {"color": "#974fa2", "source": "T35", "topic": "T35", "target": "philosophy of computer science", "value": 7398.0600000000004}, {"color": "#e41a1c", "source": "T16", "topic": "T16", "target": "philosophy of computer science", "value": 7251.0600000000013}, {"color": "#fffe33", "source": "T5", "topic": "T5", "target": "philosophy of computer science", "value": 5384.0600000000013}, {"color": "#a7572a", "source": "T22", "topic": "T22", "target": "philosophy of computer science", "value": 4871.0600000000004}, {"color": "#ff8000", "source": "T12", "topic": "T12", "target": "philosophy of computer science", "value": 4224.0600000000004}, {"color": "#f781bf", "source": "T31", "topic": "T31", "target": "philosophy of computer science", "value": 3136.0600000000004}, {"color": "#fffe33", "source": "T5", "topic": "T5", "target": "ethics", "value": 25755.429999999982}, {"color": "#4daf4a", "source": "T34", "topic": "T34", "target": "ethics", "value": 23448.429999999982}, {"color": "#397db6", "source": "T33", "topic": "T33", "target": "ethics", "value": 16228.430000000008}, {"color": "#fffe33", "source": "T13", "topic": "T13", "target": "ethics", "value": 13843.430000000009}, {"color": "#ff8000", "source": "T36", "topic": "T36", "target": "ethics", "value": 11774.430000000008}, {"color": "#f781bf", "source": "T39", "topic": "T39", "target": "ethics", "value": 8768.4300000000039}, {"color": "#4daf4a", "source": "T18", "topic": "T18", "target": "epistemology", "value": 20825.239999999998}, {"color": "#fffe33", "source": "T5", "topic": "T5", "target": "epistemology", "value": 16383.240000000003}, {"color": "#4daf4a", "source": "T34", "topic": "T34", "target": "epistemology", "value": 13663.240000000003}, {"color": "#fffe33", "source": "T21", "topic": "T21", "target": "epistemology", "value": 8324.2400000000016}, {"color": "#f781bf", "source": "T39", "topic": "T39", "target": "epistemology", "value": 6993.2400000000034}, {"color": "#f781bf", "source": "T39", "topic": "T39", "target": "philosophy of sociology", "value": 1259.01}, {"color": "#fffe33", "source": "T5", "topic": "T5", "target": "philosophy of sociology", "value": 1230.01}, {"color": "#a7572a", "source": "T30", "topic": "T30", "target": "philosophy of sociology", "value": 1127.01}, {"color": "#ff8000", "source": "T36", "topic": "T36", "target": "philosophy of sociology", "value": 365.00999999999999}, {"color": "#4daf4a", "source": "T26", "topic": "T26", "target": "philosophy of religion", "value": 28182.359999999979}, {"color": "#fffe33", "source": "T5", "topic": "T5", "target": "philosophy of religion", "value": 18978.359999999993}, {"color": "#4daf4a", "source": "T34", "topic": "T34", "target": "philosophy of religion", "value": 10538.360000000006}, {"color": "#397db6", "source": "T25", "topic": "T25", "target": "philosophy of science", "value": 17293.149999999998}, {"color": "#fffe33", "source": "T5", "topic": "T5", "target": "philosophy of science", "value": 10183.150000000001}, {"color": "#4daf4a", "source": "T34", "topic": "T34", "target": "philosophy of science", "value": 8077.1500000000024}, {"color": "#a7572a", "source": "T30", "topic": "T30", "target": "philosophy of science", "value": 6801.1500000000005}, {"color": "#4daf4a", "source": "T34", "topic": "T34", "target": "metaphysics", "value": 30163.469999999976}, {"color": "#a7572a", "source": "T14", "topic": "T14", "target": "metaphysics", "value": 23960.469999999979}, {"color": "#ff8000", "source": "T12", "topic": "T12", "target": "metaphysics", "value": 15481.470000000008}, {"color": "#974fa2", "source": "T19", "topic": "T19", "target": "metaphysics", "value": 14790.470000000007}, {"color": "#397db6", "source": "T17", "topic": "T17", "target": "philosophy of economics", "value": 2651.02}, {"color": "#fffe33", "source": "T5", "topic": "T5", "target": "philosophy of economics", "value": 2016.02}, {"color": "#a7572a", "source": "T6", "topic": "T6", "target": "philosophy of economics", "value": 1956.0200000000002}, {"color": "#ff8000", "source": "T36", "topic": "T36", "target": "philosophy of economics", "value": 1745.02}]}
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# SEP Topic-Taxonomy Integration\n",
"\n",
"This notebook loads taxonomy categories from the InPhO database and builds up a JSON structure of the tree heirarchy of the items and the links between them. The tree is based on [https://inpho.cogs.indiana.edu/taxonomy]\n",
"\n",
"In order to do this with another type of data (for example, dynasty mapping), you will need to generate a similar link-topic strucutre for the documents. Rather than using the depth as levels in the tree, I would use just the start year for the dynasty. If this is working, then the topics on the left should sort so there's little overlapping and you might be able to read the topic ordering from top to bototom as earliest to latest."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING: pylab import has clobbered these variables: ['Text', 'random', 'datetime']\n",
"`%matplotlib` prevents importing * from pylab and numpy\n"
]
}
],
"source": [
"%pylab inline\n",
"from sepcurrent import *"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from inpho.model import *"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"sep_ideas = Session.query(Idea).filter(Idea.sep_dir!='')"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"from collections import defaultdict\n",
"parent = dict()\n",
"node_entries = defaultdict(list)\n",
"\n",
"def get_descendants(node):\n",
" node_entries[node]"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"idea = Session.query(Idea).get(646)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[<Node 20239: epistemology>]"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"idea.nodes"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"'epistemology'"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"idea.sep_dir"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<Node 20239: epistemology>"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"node = idea.nodes[0]\n",
"node"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['biology-philosophy', 'philosophy-mathematics', 'computer-science', 'epistemology', 'psychiatry', 'chemistry', 'philosophy-religion', 'metaphysics', 'economics']\n"
]
}
],
"source": [
"root_nodes = Session.query(Node).filter(Node.parent_id==None).all()\n",
"\n",
"node_entries = defaultdict(list)\n",
"node_entries[0] = [c.idea.sep_dir for c in root_nodes if c.idea.sep_dir]\n",
"print node_entries[0]\n",
"\n",
"def populate_descendants(nodes):\n",
" for node in nodes:\n",
" concepts = [node]\n",
" concepts.extend(node.idea.instances)\n",
" concepts.extend(child.idea for child in node.children)\n",
" concepts = [c.sep_dir for c in concepts if c.sep_dir]\n",
" # add entries to list\n",
" if concepts:\n",
" node_entries[node].extend(concepts)\n",
" \n",
" # recur\n",
" if node.children:\n",
" populate_descendants(node.children)\n",
"\n",
"populate_descendants(root_nodes)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def get_descendants(node):\n",
" descendants = node_entries[node]\n",
" for child in node.children:\n",
" descendants.extend(get_descendants(child))\n",
" return set(descendants)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"aesthetics and philosophy of art 15\n",
"history of philosophy 20\n",
"social and political philosophy 32\n",
"probability and statistics 4\n",
"philosophy of physics 29\n",
"logic 57\n",
"philosophy of mind 64\n",
"philosophy of language 37\n",
"feminist philosophy 10\n",
"philosophy of biology 21\n",
"philosophy of action 0\n",
"philosophy of mathematics 7\n",
"philosophy of law 13\n",
"philosophy of computer science 6\n",
"ethics 43\n",
"epistemology 24\n",
"psychology and psychiatry 0\n",
"philosophy of sociology 1\n",
"philosophy of chemistry 0\n",
"philosophy of medicine 0\n",
"philosophy of religion 36\n",
"philosophy of science 15\n",
"metaphysics 48\n",
"philosophy of economics 2\n"
]
}
],
"source": [
"for node in root_nodes:\n",
" print node.idea.label, len(get_descendants(node))"
]
},
{
"cell_type": "code",
"execution_count": 100,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"defaultdict(<type 'list'>, {<Node 20177: feminist philosophy>: [111, 78, 112], <Node 20185: philosophy of biology>: [47, 50, 64], <Node 20356: metaphysics>: [87], <Node 20191: philosophy of action>: [], <Node 20193: philosophy of mathematics>: [29, 54, 91], <Node 20112: aesthetics and philosophy of art>: [66, 87, 103], <Node 20203: philosophy of law>: [93, 12, 117, 87], <Node 20228: philosophy of computer science>: [50, 63], <Node 20137: probability and statistics>: [99, 72, 91, 110], <Node 20238: ethics>: [87, 102], <Node 20239: epistemology>: [107, 87], <Node 20268: psychology and psychiatry>: [], <Node 20367: philosophy of economics>: [90, 43, 93, 50, 78], <Node 20273: philosophy of sociology>: [96, 78, 117], <Node 20113: history of philosophy>: [], <Node 20283: philosophy of chemistry>: [], <Node 20284: philosophy of medicine>: [], <Node 20291: philosophy of religion>: [69, 87], <Node 20146: philosophy of physics>: [81, 56, 91, 87], <Node 20293: philosophy of science>: [95, 87], <Node 20148: logic>: [91, 65], <Node 20150: philosophy of mind>: [87], <Node 20153: philosophy of language>: [42], <Node 20120: social and political philosophy>: [40, 86, 102]})\n"
]
},
{
"data": {
"text/plain": [
"{12,\n",
" 29,\n",
" 40,\n",
" 42,\n",
" 43,\n",
" 47,\n",
" 50,\n",
" 54,\n",
" 56,\n",
" 63,\n",
" 64,\n",
" 65,\n",
" 66,\n",
" 69,\n",
" 72,\n",
" 78,\n",
" 81,\n",
" 86,\n",
" 87,\n",
" 90,\n",
" 91,\n",
" 93,\n",
" 95,\n",
" 96,\n",
" 99,\n",
" 102,\n",
" 103,\n",
" 107,\n",
" 110,\n",
" 111,\n",
" 112,\n",
" 117}"
]
},
"execution_count": 100,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"v = lda_v[120]\n",
"overall_topics = v.aggregate_doc_topics(v.labels)\n",
"\n",
"def get_topics(node):\n",
" entries = [entry for entry in get_descendants(node) if entry in v.labels]\n",
" if entries:\n",
" area_topics = v.aggregate_doc_topics(entries)\n",
" significant_topics = area_topics['value'] > (overall_topics[area_topics['i']]['value'] ** 0.5)\n",
" area_topics = area_topics[significant_topics]\n",
" if np.array(significant_topics).any():\n",
" tops = list(np.array(area_topics)['i'])\n",
" return tops\n",
"\n",
" return []\n",
"\n",
"def get_raw_topic_proportion(tops, node):\n",
" entries = [entry for entry in get_descendants(node) if entry in v.labels]\n",
" if entries:\n",
" entry_idxs = np.in1d(v.labels, entries)\n",
" topics = v.model.top_doc[tops][:,entry_idxs].sum(axis=1)\n",
" insignificant_topics = topics < (overall_topics[tops]['value'] ** 0.5)\n",
" topics[insignificant_topics] = 0.\n",
" return topics\n",
" \n",
"\n",
"from itertools import chain\n",
"node_topics = defaultdict(list)\n",
"for node in root_nodes:\n",
" node_topics[node] = get_topics(node)\n",
"print node_topics\n",
"\n",
"set(chain(*node_topics.values()))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## The big functions\n",
"This is what generates the \"nodes\" and \"links\" JSON structure expected by the D3 Sankey visualization. Note that at the top is a list of every item, and after that is every link between taxonomy levels. The basic schema is:\n",
"\n",
"```\n",
"{\n",
" // The nodes list\n",
" 'nodes' : [\n",
" {\n",
" 'name' : \"node name\", \n",
" 'color' : \"#ff0000', \n",
" 'depth' : 2\n",
" }, ... ]\n",
" // the links list\n",
" 'links' : [\n",
" {\n",
" \"color\": \"#f781bf\", \n",
" \"source\": \"philosophy of art\", \n",
" \"target\": \"artistic form\", \n",
" \"topic\": \"T103\", \n",
" \"value\": 421.00999999999999\n",
" }, ... ]\n",
"}\n",
"```\n",
"\n",
"Notice that `\"topic\"` refers to the topic number with 'T' before it - you'll need to set this up to make the code work since JavaScript will recast `'103'` to an integer `103` which causes all kinds of issues with indexing."
]
},
{
"cell_type": "code",
"execution_count": 110,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"267 171\n",
"{\"nodes\": [{\"color\": \"#ff8000\", \"depth\": 0, \"name\": \"T12\", \"words\": \"punishment, harm, criminal, forgiveness, wrong, torture, civil, justice, crime, morally\"}, {\"color\": \"#fffe33\", \"depth\": 0, \"name\": \"T29\", \"words\": \"sets, numbers, axioms, axiom, cardinal, zfc, large, dedekind, cantor, paradox\"}, {\"color\": \"#e41a1c\", \"depth\": 0, \"name\": \"T40\", \"words\": \"rights, property, children, child, individuals, nozick, free, private, duties, legal\"}, {\"color\": \"#4daf4a\", \"depth\": 0, \"name\": \"T42\", \"words\": \"propositions, proposition, sentences, sentence, context, false, worlds, propositional, semantic, content\"}, {\"color\": \"#974fa2\", \"depth\": 0, \"name\": \"T43\", \"words\": \"justice, equality, equal, society, opportunity, health, economic, distributive, distribution, resources\"}, {\"color\": \"#f781bf\", \"depth\": 0, \"name\": \"T47\", \"words\": \"selection, evolutionary, species, biology, biological, genetic, genes, evolution, organisms, gene\"}, {\"color\": \"#4daf4a\", \"depth\": 0, \"name\": \"T50\", \"words\": \"approach, model, process, used, e.g, structure, analysis, relevant, systems, often\"}, {\"color\": \"#a7572a\", \"depth\": 0, \"name\": \"T54\", \"words\": \"proof, gdel, mathematics, intuitionistic, theorem, brouwer, arithmetic, hilbert, constructive, classical\"}, {\"color\": \"#e41a1c\", \"depth\": 0, \"name\": \"T56\", \"words\": \"spacetime, relativity, einstein, field, weyl, structure, physics, hole, energy, mass\"}, {\"color\": \"#f781bf\", \"depth\": 0, \"name\": \"T63\", \"words\": \"meaning, linguistic, semantic, words, word, meanings, languages, sentences, sentence, grammar\"}, {\"color\": \"#e41a1c\", \"depth\": 0, \"name\": \"T64\", \"words\": \"models, model, systems, chaos, behavior, biodiversity, conservation, simulation, species, target\"}, {\"color\": \"#397db6\", \"depth\": 0, \"name\": \"T65\", \"words\": \"model, x, formula, first-order, every, sentence, theorem, free, algebra, 0\"}, {\"color\": \"#4daf4a\", \"depth\": 0, \"name\": \"T66\", \"words\": \"art, aesthetic, beauty, aesthetics, works, beautiful, music, taste, artistic, arts\"}, {\"color\": \"#fffe33\", \"depth\": 0, \"name\": \"T69\", \"words\": \"divine, universe, power, perfect, necessary, exists, creation, theism, hartshorne, created\"}, {\"color\": \"#e41a1c\", \"depth\": 0, \"name\": \"T72\", \"words\": \"probability, evidence, hypothesis, h, hypotheses, probabilities, e, bayesian, data, inductive\"}, {\"color\": \"#a7572a\", \"depth\": 0, \"name\": \"T78\", \"words\": \"ways, values, often, cultural, issues, within, forms, practices, among, traditional\"}, {\"color\": \"#397db6\", \"depth\": 0, \"name\": \"T81\", \"words\": \"quantum, measurement, mechanics, classical, bohr, interpretation, wave, systems, particle, probability\"}, {\"color\": \"#a7572a\", \"depth\": 0, \"name\": \"T86\", \"words\": \"government, international, power, democratic, citizens, democracy, war, global, civil, politics\"}, {\"color\": \"#f781bf\", \"depth\": 0, \"name\": \"T87\", \"words\": \"makes, clear, think, understanding, indeed, simply, argues, understand, take, need\"}, {\"color\": \"#4daf4a\", \"depth\": 0, \"name\": \"T90\", \"words\": \"preferences, preference, choice, alternatives, economics, welfare, aggregation, voting, arrow, majority\"}, {\"color\": \"#974fa2\", \"depth\": 0, \"name\": \"T91\", \"words\": \"b, i.e, following, 3, consider, c, section, f, 4, either\"}, {\"color\": \"#fffe33\", \"depth\": 0, \"name\": \"T93\", \"words\": \"legal, authority, obligation, contract, consent, rule, rules, coercion, obligations, duty\"}, {\"color\": \"#f781bf\", \"depth\": 0, \"name\": \"T95\", \"words\": \"causal, cause, explanation, causation, causes, explanations, events, effect, explanatory, processes\"}, {\"color\": \"#e41a1c\", \"depth\": 0, \"name\": \"T96\", \"words\": \"scientific, empirical, sciences, epistemology, epistemic, method, evidence, methods, inquiry, naturalism\"}, {\"color\": \"#974fa2\", \"depth\": 0, \"name\": \"T99\", \"words\": \"strategies, evolutionary, empathy, altruism, rational, population, cooperation, strategy, behavior, payoff\"}, {\"color\": \"#a7572a\", \"depth\": 0, \"name\": \"T102\", \"words\": \"need, cases, better, best, think, less, still, take, making, perhaps\"}, {\"color\": \"#f781bf\", \"depth\": 0, \"name\": \"T103\", \"words\": \"e.g, notion, distinction, discussion, often, understood, views, accounts, although, respect\"}, {\"color\": \"#974fa2\", \"depth\": 0, \"name\": \"T107\", \"words\": \"justification, beliefs, justified, epistemic, evidence, know, believing, proposition, epistemology, believe\"}, {\"color\": \"#a7572a\", \"depth\": 0, \"name\": \"T110\", \"words\": \"game, player, players, games, strategy, agents, common, equilibrium, strategies, play\"}, {\"color\": \"#f781bf\", \"depth\": 0, \"name\": \"T111\", \"words\": \"women, feminist, men, feminists, sexual, gender, sex, pornography, marriage, male\"}, {\"color\": \"#e41a1c\", \"depth\": 0, \"name\": \"T112\", \"words\": \"gender, identity, body, sex, butler, lacan, sexual, difference, trans, bodies\"}, {\"color\": \"#fffe33\", \"depth\": 0, \"name\": \"T117\", \"words\": \"practical, principles, reasoning, action, values, capacity, understanding, basis, judgment, interpretation\"}, {\"inpho_id\": 20112, \"depth\": 1, \"name\": \"aesthetics and philosophy of art\"}, {\"inpho_id\": 20190, \"depth\": 2, \"name\": \"philosophy of art\"}, {\"inpho_id\": 20230, \"depth\": 3, \"name\": \"artistic form\"}, {\"inpho_id\": 20236, \"depth\": 3, \"name\": \"reception\"}, {\"inpho_id\": 20340, \"depth\": 2, \"name\": \"aesthetics\"}, {\"inpho_id\": 20259, \"depth\": 3, \"name\": \"aesthetic properties\"}, {\"inpho_id\": 20120, \"depth\": 1, \"name\": \"social and political philosophy\"}, {\"inpho_id\": 20143, \"depth\": 2, \"name\": \"social justice\"}, {\"inpho_id\": 20262, \"depth\": 3, \"name\": \"liberalism\"}, {\"inpho_id\": 20263, \"depth\": 3, \"name\": \"human rights\"}, {\"inpho_id\": 20354, \"depth\": 3, \"name\": \"distributive and economic justice\"}, {\"inpho_id\": 20152, \"depth\": 2, \"name\": \"political morality\"}, {\"inpho_id\": 20282, \"depth\": 3, \"name\": \"political authority\"}, {\"inpho_id\": 20155, \"depth\": 2, \"name\": \"forms of government\"}, {\"inpho_id\": 20352, \"depth\": 2, \"name\": \"international ethics\"}, {\"inpho_id\": 20351, \"depth\": 3, \"name\": \"war and pacifism\"}, {\"inpho_id\": 20353, \"depth\": 2, \"name\": \"global justice\"}, {\"inpho_id\": 20137, \"depth\": 1, \"name\": \"probability and statistics\"}, {\"inpho_id\": 20146, \"depth\": 1, \"name\": \"philosophy of physics\"}, {\"inpho_id\": 20128, \"depth\": 2, \"name\": \"cosmology\"}, {\"inpho_id\": 20145, \"depth\": 2, \"name\": \"quantum mechanics\"}, {\"inpho_id\": 20207, \"depth\": 2, \"name\": \"time travel\"}, {\"inpho_id\": 20279, \"depth\": 2, \"name\": \"statistical mechanics and thermodynamics\"}, {\"inpho_id\": 20294, \"depth\": 2, \"name\": \"philosophy of space and time\"}, {\"inpho_id\": 20148, \"depth\": 1, \"name\": \"logic\"}, {\"inpho_id\": 20151, \"depth\": 2, \"name\": \"inductive logic and decision theory\"}, {\"inpho_id\": 20214, \"depth\": 3, \"name\": \"decision theory\"}, {\"inpho_id\": 20217, \"depth\": 3, \"name\": \"game theory\"}, {\"inpho_id\": 20208, \"depth\": 2, \"name\": \"philosophical logic\"}, {\"inpho_id\": 20301, \"depth\": 3, \"name\": \"modal logic\"}, {\"inpho_id\": 20324, \"depth\": 3, \"name\": \"non-classical logic\"}, {\"inpho_id\": 20325, \"depth\": 3, \"name\": \"deontic logic\"}, {\"inpho_id\": 20209, \"depth\": 2, \"name\": \"mathematical logic\"}, {\"inpho_id\": 20220, \"depth\": 3, \"name\": \"boolean algebra\"}, {\"inpho_id\": 20251, \"depth\": 3, \"name\": \"proof theory\"}, {\"inpho_id\": 20270, \"depth\": 3, \"name\": \"set theory\"}, {\"inpho_id\": 20366, \"depth\": 3, \"name\": \"type theory\"}, {\"inpho_id\": 20210, \"depth\": 2, \"name\": \"history of logic\"}, {\"inpho_id\": 20328, \"depth\": 2, \"name\": \"philosophy of logic\"}, {\"inpho_id\": 20272, \"depth\": 3, \"name\": \"paradox\"}, {\"inpho_id\": 20361, \"depth\": 2, \"name\": \"logic and computation\"}, {\"inpho_id\": 20150, \"depth\": 1, \"name\": \"philosophy of mind\"}, {\"inpho_id\": 20178, \"depth\": 2, \"name\": \"consciousness\"}, {\"inpho_id\": 20119, \"depth\": 3, \"name\": \"aspects of consciousness\"}, {\"inpho_id\": 20265, \"depth\": 3, \"name\": \"qualia\"}, {\"inpho_id\": 20180, \"depth\": 2, \"name\": \"mental content\"}, {\"inpho_id\": 20182, \"depth\": 3, \"name\": \"theories of mental content\"}, {\"inpho_id\": 20297, \"depth\": 3, \"name\": \"propositional attitude\"}, {\"inpho_id\": 20205, \"depth\": 2, \"name\": \"perception\"}, {\"inpho_id\": 20357, \"depth\": 3, \"name\": \"perceptual experience\"}, {\"inpho_id\": 20295, \"depth\": 2, \"name\": \"philosophy of psychology\"}, {\"inpho_id\": 20118, \"depth\": 3, \"name\": \"aspects of mind\"}, {\"inpho_id\": 20330, \"depth\": 3, \"name\": \"folk psychology\"}, {\"inpho_id\": 20331, \"depth\": 3, \"name\": \"cognitive science\"}, {\"inpho_id\": 20329, \"depth\": 2, \"name\": \"artificial intelligence\"}, {\"inpho_id\": 20333, \"depth\": 3, \"name\": \"thinking machine\"}, {\"inpho_id\": 20363, \"depth\": 3, \"name\": \"computationalism\"}, {\"inpho_id\": 20336, \"depth\": 2, \"name\": \"metaphysics of mind\"}, {\"inpho_id\": 20136, \"depth\": 3, \"name\": \"mind-body problem\"}, {\"inpho_id\": 20290, \"depth\": 4, \"name\": \"physicalism\"}, {\"inpho_id\": 20147, \"depth\": 3, \"name\": \"free will\"}, {\"inpho_id\": 20305, \"depth\": 3, \"name\": \"personal identity\"}, {\"inpho_id\": 20153, \"depth\": 1, \"name\": \"philosophy of language\"}, {\"inpho_id\": 20167, \"depth\": 2, \"name\": \"compositionality and logical form\"}, {\"inpho_id\": 20141, \"depth\": 3, \"name\": \"logical form\"}, {\"inpho_id\": 20232, \"depth\": 2, \"name\": \"semantics\"}, {\"inpho_id\": 20168, \"depth\": 3, \"name\": \"truth\"}, {\"inpho_id\": 20200, \"depth\": 3, \"name\": \"reference and denotation\"}, {\"inpho_id\": 20201, \"depth\": 3, \"name\": \"semantic puzzle\"}, {\"inpho_id\": 20202, \"depth\": 3, \"name\": \"expression and idiom\"}, {\"inpho_id\": 20370, \"depth\": 2, \"name\": \"pragmatics\"}, {\"inpho_id\": 20177, \"depth\": 1, \"name\": \"feminist philosophy\"}, {\"inpho_id\": 20341, \"depth\": 2, \"name\": \"methods in feminism\"}, {\"inpho_id\": 20185, \"depth\": 1, \"name\": \"philosophy of biology\"}, {\"inpho_id\": 20125, \"depth\": 2, \"name\": \"developmental biology\"}, {\"inpho_id\": 20129, \"depth\": 2, \"name\": \"ecology and conservation\"}, {\"inpho_id\": 20131, \"depth\": 2, \"name\": \"function and teleology\"}, {\"inpho_id\": 20132, \"depth\": 2, \"name\": \"molecular biology and genetics\"}, {\"inpho_id\": 20189, \"depth\": 2, \"name\": \"evolution\"}, {\"inpho_id\": 20193, \"depth\": 1, \"name\": \"philosophy of mathematics\"}, {\"inpho_id\": 20203, \"depth\": 1, \"name\": \"philosophy of law\"}, {\"inpho_id\": 20359, \"depth\": 2, \"name\": \"legal reasoning\"}, {\"inpho_id\": 20228, \"depth\": 1, \"name\": \"philosophy of computer science\"}, {\"inpho_id\": 20238, \"depth\": 1, \"name\": \"ethics\"}, {\"inpho_id\": 20212, \"depth\": 2, \"name\": \"normative ethics\"}, {\"inpho_id\": 20332, \"depth\": 2, \"name\": \"applied ethics\"}, {\"inpho_id\": 20243, \"depth\": 3, \"name\": \"bioethics\"}, {\"inpho_id\": 20335, \"depth\": 3, \"name\": \"ethics and information technology\"}, {\"inpho_id\": 20369, \"depth\": 2, \"name\": \"metaethics\"}, {\"inpho_id\": 20116, \"depth\": 3, \"name\": \"internalism\"}, {\"inpho_id\": 20288, \"depth\": 3, \"name\": \"moral reasoning\"}, {\"inpho_id\": 20289, \"depth\": 3, \"name\": \"moral epistemology\"}, {\"inpho_id\": 20303, \"depth\": 3, \"name\": \"externalism\"}, {\"inpho_id\": 20239, \"depth\": 1, \"name\": \"epistemology\"}, {\"inpho_id\": 20114, \"depth\": 2, \"name\": \"social epistemology\"}, {\"inpho_id\": 20115, \"depth\": 2, \"name\": \"naturalized epistemology\"}, {\"inpho_id\": 20163, \"depth\": 2, \"name\": \"knowledge sources\"}, {\"inpho_id\": 20172, \"depth\": 2, \"name\": \"justification\"}, {\"inpho_id\": 20215, \"depth\": 3, \"name\": \"bayesianism\"}, {\"inpho_id\": 20241, \"depth\": 3, \"name\": \"internalism and externalism\"}, {\"inpho_id\": 20277, \"depth\": 3, \"name\": \"foundationalism\"}, {\"inpho_id\": 20278, \"depth\": 3, \"name\": \"coherentism\"}, {\"inpho_id\": 20344, \"depth\": 2, \"name\": \"knowledge and skepticism\"}, {\"inpho_id\": 20123, \"depth\": 3, \"name\": \"skepticism\"}, {\"inpho_id\": 20267, \"depth\": 3, \"name\": \"knowledge\"}, {\"inpho_id\": 20273, \"depth\": 1, \"name\": \"philosophy of sociology\"}, {\"inpho_id\": 20291, \"depth\": 1, \"name\": \"philosophy of religion\"}, {\"inpho_id\": 20176, \"depth\": 2, \"name\": \"religion and politics\"}, {\"inpho_id\": 20245, \"depth\": 2, \"name\": \"god\"}, {\"inpho_id\": 20199, \"depth\": 3, \"name\": \"existence of god\"}, {\"inpho_id\": 20246, \"depth\": 3, \"name\": \"divine attributes\"}, {\"inpho_id\": 20248, \"depth\": 2, \"name\": \"epistemology of religion\"}, {\"inpho_id\": 20266, \"depth\": 3, \"name\": \"faith and reason\"}, {\"inpho_id\": 20275, \"depth\": 3, \"name\": \"revelation\"}, {\"inpho_id\": 20257, \"depth\": 2, \"name\": \"afterlife\"}, {\"inpho_id\": 20293, \"depth\": 1, \"name\": \"philosophy of science\"}, {\"inpho_id\": 20164, \"depth\": 2, \"name\": \"epistemology of science\"}, {\"inpho_id\": 20130, \"depth\": 3, \"name\": \"models and idealization\"}, {\"inpho_id\": 20188, \"depth\": 3, \"name\": \"scientific theory\"}, {\"inpho_id\": 20198, \"depth\": 4, \"name\": \"probability\"}, {\"inpho_id\": 20252, \"depth\": 3, \"name\": \"explanation\"}, {\"inpho_id\": 20165, \"depth\": 2, \"name\": \"metaphysics of science\"}, {\"inpho_id\": 20287, \"depth\": 3, \"name\": \"causation\"}, {\"inpho_id\": 20285, \"depth\": 4, \"name\": \"cause and effect\"}, {\"inpho_id\": 20260, \"depth\": 2, \"name\": \"science and religion\"}, {\"inpho_id\": 20356, \"depth\": 1, \"name\": \"metaphysics\"}, {\"inpho_id\": 20158, \"depth\": 2, \"name\": \"facts\"}, {\"inpho_id\": 20160, \"depth\": 2, \"name\": \"object\"}, {\"inpho_id\": 20166, \"depth\": 2, \"name\": \"property\"}, {\"inpho_id\": 20196, \"depth\": 2, \"name\": \"relations\"}, {\"inpho_id\": 20298, \"depth\": 2, \"name\": \"change\"}, {\"inpho_id\": 20323, \"depth\": 2, \"name\": \"space and time\"}, {\"inpho_id\": 20117, \"depth\": 3, \"name\": \"matter\"}, {\"inpho_id\": 20197, \"depth\": 3, \"name\": \"time\"}, {\"inpho_id\": 20271, \"depth\": 3, \"name\": \"supertasks\"}, {\"inpho_id\": 20292, \"depth\": 3, \"name\": \"spacetime\"}, {\"inpho_id\": 20345, \"depth\": 2, \"name\": \"existence\"}, {\"inpho_id\": 20173, \"depth\": 3, \"name\": \"arguments for the existence of god\"}, {\"inpho_id\": 20367, \"depth\": 1, \"name\": \"philosophy of economics\"}], \"links\": [{\"color\": \"#4daf4a\", \"source\": \"T66\", \"topic\": \"T66\", \"target\": \"aesthetics and philosophy of art\", \"value\": 11348.150000000001}, {\"color\": \"#f781bf\", \"source\": \"T87\", \"topic\": \"T87\", \"target\": \"aesthetics and philosophy of art\", \"value\": 4575.1500000000005}, {\"color\": \"#f781bf\", \"source\": \"T103\", \"topic\": \"T103\", \"target\": \"aesthetics and philosophy of art\", \"value\": 4171.1500000000015}, {\"color\": \"#4daf4a\", \"source\": \"aesthetics and philosophy of art\", \"topic\": \"T66\", \"target\": \"philosophy of art\", \"value\": 1966.03}, {\"color\": \"#f781bf\", \"source\": \"aesthetics and philosophy of art\", \"topic\": \"T87\", \"target\": \"philosophy of art\", \"value\": 942.02999999999997}, {\"color\": \"#f781bf\", \"source\": \"aesthetics and philosophy of art\", \"topic\": \"T103\", \"target\": \"philosophy of art\", \"value\": 1583.03}, {\"color\": \"#4daf4a\", \"source\": \"philosophy of art\", \"topic\": \"T66\", \"target\": \"artistic form\", \"value\": 1816.01}, {\"color\": \"#f781bf\", \"source\": \"philosophy of art\", \"topic\": \"T87\", \"target\": \"artistic form\", \"value\": 685.00999999999999}, {\"color\": \"#f781bf\", \"source\": \"philosophy of art\", \"topic\": \"T103\", \"target\": \"artistic form\", \"value\": 421.00999999999999}, {\"color\": \"#4daf4a\", \"source\": \"philosophy of art\", \"topic\": \"T66\", \"target\": \"reception\", \"value\": 150.00999999999999}, {\"color\": \"#f781bf\", \"source\": \"philosophy of art\", \"topic\": \"T87\", \"target\": \"reception\", \"value\": 257.00999999999999}, {\"color\": \"#f781bf\", \"source\": \"philosophy of art\", \"topic\": \"T103\", \"target\": \"reception\", \"value\": 1162.01}, {\"color\": \"#4daf4a\", \"source\": \"aesthetics and philosophy of art\", \"topic\": \"T66\", \"target\": \"aesthetics\", \"value\": 7093.0800000000008}, {\"color\": \"#f781bf\", \"source\": \"aesthetics and philosophy of art\", \"topic\": \"T87\", \"target\": \"aesthetics\", \"value\": 2417.0799999999999}, {\"color\": \"#f781bf\", \"source\": \"aesthetics and philosophy of art\", \"topic\": \"T103\", \"target\": \"aesthetics\", \"value\": 1967.0799999999999}, {\"color\": \"#4daf4a\", \"source\": \"aesthetics\", \"topic\": \"T66\", \"target\": \"aesthetic properties\", \"value\": 718.00999999999999}, {\"color\": \"#f781bf\", \"source\": \"aesthetics\", \"topic\": \"T87\", \"target\": \"aesthetic properties\", \"value\": 469.00999999999999}, {\"color\": \"#e41a1c\", \"source\": \"T40\", \"topic\": \"T40\", \"target\": \"social and political philosophy\", \"value\": 14774.320000000005}, {\"color\": \"#a7572a\", \"source\": \"T86\", \"topic\": \"T86\", \"target\": \"social and political philosophy\", \"value\": 14725.320000000005}, {\"color\": \"#a7572a\", \"source\": \"T102\", \"topic\": \"T102\", \"target\": \"social and political philosophy\", \"value\": 11933.320000000005}, {\"color\": \"#e41a1c\", \"source\": \"social and political philosophy\", \"topic\": \"T40\", \"target\": \"social justice\", \"value\": 10496.090000000002}, {\"color\": \"#a7572a\", \"source\": \"social and political philosophy\", \"topic\": \"T86\", \"target\": \"social justice\", \"value\": 2396.0900000000001}, {\"color\": \"#a7572a\", \"source\": \"social and political philosophy\", \"topic\": \"T102\", \"target\": \"social justice\", \"value\": 3735.0900000000001}, {\"color\": \"#e41a1c\", \"source\": \"social justice\", \"topic\": \"T40\", \"target\": \"liberalism\", \"value\": 1317.02}, {\"color\": \"#a7572a\", \"source\": \"social justice\", \"topic\": \"T86\", \"target\": \"liberalism\", \"value\": 190.01999999999998}, {\"color\": \"#a7572a\", \"source\": \"social justice\", \"topic\": \"T102\", \"target\": \"liberalism\", \"value\": 855.01999999999998}, {\"color\": \"#e41a1c\", \"source\": \"social justice\", \"topic\": \"T40\", \"target\": \"human rights\", \"value\": 3736.0200000000004}, {\"color\": \"#a7572a\", \"source\": \"social justice\", \"topic\": \"T86\", \"target\": \"human rights\", \"value\": 105.01999999999998}, {\"color\": \"#a7572a\", \"source\": \"social justice\", \"topic\": \"T102\", \"target\": \"human rights\", \"value\": 792.01999999999998}, {\"color\": \"#e41a1c\", \"source\": \"social justice\", \"topic\": \"T40\", \"target\": \"distributive and economic justice\", \"value\": 636.01000000000022}, {\"color\": \"#a7572a\", \"source\": \"social justice\", \"topic\": \"T86\", \"target\": \"distributive and economic justice\", \"value\": 96.009999999999991}, {\"color\": \"#a7572a\", \"source\": \"social justice\", \"topic\": \"T102\", \"target\": \"distributive and economic justice\", \"value\": 905.00999999999999}, {\"color\": \"#e41a1c\", \"source\": \"social and political philosophy\", \"topic\": \"T40\", \"target\": \"political morality\", \"value\": 2261.1000000000004}, {\"color\": \"#a7572a\", \"source\": \"social and political philosophy\", \"topic\": \"T86\", \"target\": \"political morality\", \"value\": 2826.1000000000004}, {\"color\": \"#a7572a\", \"source\": \"social and political philosophy\", \"topic\": \"T102\", \"target\": \"political morality\", \"value\": 5175.1000000000013}, {\"color\": \"#a7572a\", \"source\": \"political morality\", \"topic\": \"T86\", \"target\": \"political authority\", \"value\": 967.00999999999999}, {\"color\": \"#e41a1c\", \"source\": \"social and political philosophy\", \"topic\": \"T40\", \"target\": \"forms of government\", \"value\": 144.01999999999998}, {\"color\": \"#a7572a\", \"source\": \"social and political philosophy\", \"topic\": \"T86\", \"target\": \"forms of government\", \"value\": 2600.02}, {\"color\": \"#a7572a\", \"source\": \"social and political philosophy\", \"topic\": \"T102\", \"target\": \"forms of government\", \"value\": 987.01999999999998}, {\"color\": \"#e41a1c\", \"source\": \"social and political philosophy\", \"topic\": \"T40\", \"target\": \"international ethics\", \"value\": 1139.05}, {\"color\": \"#a7572a\", \"source\": \"social and political philosophy\", \"topic\": \"T86\", \"target\": \"international ethics\", \"value\": 3937.0500000000002}, {\"color\": \"#a7572a\", \"source\": \"social and political philosophy\", \"topic\": \"T102\", \"target\": \"international ethics\", \"value\": 1198.05}, {\"color\": \"#e41a1c\", \"source\": \"international ethics\", \"topic\": \"T40\", \"target\": \"war and pacifism\", \"value\": 195.01999999999998}, {\"color\": \"#a7572a\", \"source\": \"international ethics\", \"topic\": \"T86\", \"target\": \"war and pacifism\", \"value\": 1521.02}, {\"color\": \"#a7572a\", \"source\": \"international ethics\", \"topic\": \"T102\", \"target\": \"war and pacifism\", \"value\": 450.01999999999998}, {\"color\": \"#e41a1c\", \"source\": \"social and political philosophy\", \"topic\": \"T40\", \"target\": \"global justice\", \"value\": 80.009999999999991}, {\"color\": \"#a7572a\", \"source\": \"social and political philosophy\", \"topic\": \"T86\", \"target\": \"global justice\", \"value\": 935.00999999999999}, {\"color\": \"#a7572a\", \"source\": \"social and political philosophy\", \"topic\": \"T102\", \"target\": \"global justice\", \"value\": 205.00999999999999}, {\"color\": \"#974fa2\", \"source\": \"T99\", \"topic\": \"T99\", \"target\": \"probability and statistics\", \"value\": 5504.0400000000009}, {\"color\": \"#e41a1c\", \"source\": \"T72\", \"topic\": \"T72\", \"target\": \"probability and statistics\", \"value\": 3611.0400000000009}, {\"color\": \"#974fa2\", \"source\": \"T91\", \"topic\": \"T91\", \"target\": \"probability and statistics\", \"value\": 2919.04}, {\"color\": \"#a7572a\", \"source\": \"T110\", \"topic\": \"T110\", \"target\": \"probability and statistics\", \"value\": 1470.0400000000002}, {\"color\": \"#397db6\", \"source\": \"T81\", \"topic\": \"T81\", \"target\": \"philosophy of physics\", \"value\": 26069.289999999972}, {\"color\": \"#e41a1c\", \"source\": \"T56\", \"topic\": \"T56\", \"target\": \"philosophy of physics\", \"value\": 13341.290000000006}, {\"color\": \"#974fa2\", \"source\": \"T91\", \"topic\": \"T91\", \"target\": \"philosophy of physics\", \"value\": 10390.290000000005}, {\"color\": \"#f781bf\", \"source\": \"T87\", \"topic\": \"T87\", \"target\": \"philosophy of physics\", \"value\": 8650.2900000000045}, {\"color\": \"#e41a1c\", \"source\": \"philosophy of physics\", \"topic\": \"T56\", \"target\": \"cosmology\", \"value\": 941.00999999999999}, {\"color\": \"#f781bf\", \"source\": \"philosophy of physics\", \"topic\": \"T87\", \"target\": \"cosmology\", \"value\": 423.00999999999999}, {\"color\": \"#397db6\", \"source\": \"philosophy of physics\", \"topic\": \"T81\", \"target\": \"quantum mechanics\", \"value\": 23597.149999999987}, {\"color\": \"#e41a1c\", \"source\": \"philosophy of physics\", \"topic\": \"T56\", \"target\": \"quantum mechanics\", \"value\": 2304.1499999999996}, {\"color\": \"#974fa2\", \"source\": \"philosophy of physics\", \"topic\": \"T91\", \"target\": \"quantum mechanics\", \"value\": 5364.1500000000024}, {\"color\": \"#f781bf\", \"source\": \"philosophy of physics\", \"topic\": \"T87\", \"target\": \"quantum mechanics\", \"value\": 4434.1500000000015}, {\"color\": \"#397db6\", \"source\": \"philosophy of physics\", \"topic\": \"T81\", \"target\": \"time travel\", \"value\": 80.019999999999982}, {\"color\": \"#e41a1c\", \"source\": \"philosophy of physics\", \"topic\": \"T56\", \"target\": \"time travel\", \"value\": 3114.0200000000004}, {\"color\": \"#974fa2\", \"source\": \"philosophy of physics\", \"topic\": \"T91\", \"target\": \"time travel\", \"value\": 1634.02}, {\"color\": \"#f781bf\", \"source\": \"philosophy of physics\", \"topic\": \"T87\", \"target\": \"time travel\", \"value\": 345.01999999999998}, {\"color\": \"#397db6\", \"source\": \"philosophy of physics\", \"topic\": \"T81\", \"target\": \"statistical mechanics and thermodynamics\", \"value\": 96.019999999999982}, {\"color\": \"#e41a1c\", \"source\": \"philosophy of physics\", \"topic\": \"T56\", \"target\": \"statistical mechanics and thermodynamics\", \"value\": 282.01999999999998}, {\"color\": \"#974fa2\", \"source\": \"philosophy of physics\", \"topic\": \"T91\", \"target\": \"statistical mechanics and thermodynamics\", \"value\": 253.01999999999998}, {\"color\": \"#f781bf\", \"source\": \"philosophy of physics\", \"topic\": \"T87\", \"target\": \"statistical mechanics and thermodynamics\", \"value\": 954.01999999999998}, {\"color\": \"#397db6\", \"source\": \"philosophy of physics\", \"topic\": \"T81\", \"target\": \"philosophy of space and time\", \"value\": 23.009999999999991}, {\"color\": \"#e41a1c\", \"source\": \"philosophy of physics\", \"topic\": \"T56\", \"target\": \"philosophy of space and time\", \"value\": 1343.01}, {\"color\": \"#974fa2\", \"source\": \"philosophy of physics\", \"topic\": \"T91\", \"target\": \"philosophy of space and time\", \"value\": 406.00999999999999}, {\"color\": \"#f781bf\", \"source\": \"philosophy of physics\", \"topic\": \"T87\", \"target\": \"philosophy of space and time\", \"value\": 342.00999999999999}, {\"color\": \"#974fa2\", \"source\": \"T91\", \"topic\": \"T91\", \"target\": \"logic\", \"value\": 20205.569999999985}, {\"color\": \"#397db6\", \"source\": \"T65\", \"topic\": \"T65\", \"target\": \"logic\", \"value\": 17829.569999999996}, {\"color\": \"#974fa2\", \"source\": \"logic\", \"topic\": \"T91\", \"target\": \"inductive logic and decision theory\", \"value\": 4434.0800000000008}, {\"color\": \"#397db6\", \"source\": \"logic\", \"topic\": \"T65\", \"target\": \"inductive logic and decision theory\", \"value\": 738.07999999999993}, {\"color\": \"#974fa2\", \"source\": \"inductive logic and decision theory\", \"topic\": \"T91\", \"target\": \"decision theory\", \"value\": 374.01999999999998}, {\"color\": \"#974fa2\", \"source\": \"inductive logic and decision theory\", \"topic\": \"T91\", \"target\": \"game theory\", \"value\": 541.01999999999998}, {\"color\": \"#397db6\", \"source\": \"inductive logic and decision theory\", \"topic\": \"T65\", \"target\": \"game theory\", \"value\": 540.01999999999998}, {\"color\": \"#974fa2\", \"source\": \"logic\", \"topic\": \"T91\", \"target\": \"philosophical logic\", \"value\": 3978.0900000000011}, {\"color\": \"#397db6\", \"source\": \"logic\", \"topic\": \"T65\", \"target\": \"philosophical logic\", \"value\": 1560.0899999999999}, {\"color\": \"#974fa2\", \"source\": \"philosophical logic\", \"topic\": \"T91\", \"target\": \"modal logic\", \"value\": 580.01999999999998}, {\"color\": \"#397db6\", \"source\": \"philosophical logic\", \"topic\": \"T65\", \"target\": \"modal logic\", \"value\": 618.01999999999998}, {\"color\": \"#974fa2\", \"source\": \"philosophical logic\", \"topic\": \"T91\", \"target\": \"non-classical logic\", \"value\": 519.02999999999997}, {\"color\": \"#397db6\", \"source\": \"philosophical logic\", \"topic\": \"T65\", \"target\": \"non-classical logic\", \"value\": 371.02999999999997}, {\"color\": \"#974fa2\", \"source\": \"philosophical logic\", \"topic\": \"T91\", \"target\": \"deontic logic\", \"value\": 834.00999999999999}, {\"color\": \"#397db6\", \"source\": \"philosophical logic\", \"topic\": \"T65\", \"target\": \"deontic logic\", \"value\": 56.009999999999991}, {\"color\": \"#974fa2\", \"source\": \"logic\", \"topic\": \"T91\", \"target\": \"mathematical logic\", \"value\": 4741.1400000000021}, {\"color\": \"#397db6\", \"source\": \"logic\", \"topic\": \"T65\", \"target\": \"mathematical logic\", \"value\": 6913.1400000000021}, {\"color\": \"#974fa2\", \"source\": \"mathematical logic\", \"topic\": \"T91\", \"target\": \"boolean algebra\", \"value\": 916.01999999999998}, {\"color\": \"#397db6\", \"source\": \"mathematical logic\", \"topic\": \"T65\", \"target\": \"boolean algebra\", \"value\": 2453.02}, {\"color\": \"#974fa2\", \"source\": \"mathematical logic\", \"topic\": \"T91\", \"target\": \"proof theory\", \"value\": 43.009999999999991}, {\"color\": \"#974fa2\", \"source\": \"mathematical logic\", \"topic\": \"T91\", \"target\": \"set theory\", \"value\": 1825.0599999999999}, {\"color\": \"#397db6\", \"source\": \"mathematical logic\", \"topic\": \"T65\", \"target\": \"set theory\", \"value\": 3596.0600000000004}, {\"color\": \"#974fa2\", \"source\": \"mathematical logic\", \"topic\": \"T91\", \"target\": \"type theory\", \"value\": 351.00999999999999}, {\"color\": \"#397db6\", \"source\": \"mathematical logic\", \"topic\": \"T65\", \"target\": \"type theory\", \"value\": 323.00999999999999}, {\"color\": \"#974fa2\", \"source\": \"logic\", \"topic\": \"T91\", \"target\": \"history of logic\", \"value\": 907.07999999999993}, {\"color\": \"#397db6\", \"source\": \"logic\", \"topic\": \"T65\", \"target\": \"history of logic\", \"value\": 1100.0799999999999}, {\"color\": \"#974fa2\", \"source\": \"logic\", \"topic\": \"T91\", \"target\": \"philosophy of logic\", \"value\": 499.03999999999996}, {\"color\": \"#397db6\", \"source\": \"logic\", \"topic\": \"T65\", \"target\": \"philosophy of logic\", \"value\": 171.03999999999996}, {\"color\": \"#974fa2\", \"source\": \"philosophy of logic\", \"topic\": \"T91\", \"target\": \"paradox\", \"value\": 499.00999999999999}, {\"color\": \"#397db6\", \"source\": \"philosophy of logic\", \"topic\": \"T65\", \"target\": \"paradox\", \"value\": 38.009999999999991}, {\"color\": \"#397db6\", \"source\": \"logic\", \"topic\": \"T65\", \"target\": \"logic and computation\", \"value\": 63.009999999999991}, {\"color\": \"#f781bf\", \"source\": \"T87\", \"topic\": \"T87\", \"target\": \"philosophy of mind\", \"value\": 24080.629999999986}, {\"color\": \"#f781bf\", \"source\": \"philosophy of mind\", \"topic\": \"T87\", \"target\": \"consciousness\", \"value\": 2906.0600000000004}, {\"color\": \"#f781bf\", \"source\": \"consciousness\", \"topic\": \"T87\", \"target\": \"aspects of consciousness\", \"value\": 907.00999999999999}, {\"color\": \"#f781bf\", \"source\": \"consciousness\", \"topic\": \"T87\", \"target\": \"qualia\", \"value\": 313.00999999999999}, {\"color\": \"#f781bf\", \"source\": \"philosophy of mind\", \"topic\": \"T87\", \"target\": \"mental content\", \"value\": 1089.04}, {\"color\": \"#f781bf\", \"source\": \"mental content\", \"topic\": \"T87\", \"target\": \"theories of mental content\", \"value\": 270.00999999999999}, {\"color\": \"#f781bf\", \"source\": \"mental content\", \"topic\": \"T87\", \"target\": \"propositional attitude\", \"value\": 480.01999999999998}, {\"color\": \"#f781bf\", \"source\": \"philosophy of mind\", \"topic\": \"T87\", \"target\": \"perception\", \"value\": 7111.1400000000012}, {\"color\": \"#f781bf\", \"source\": \"perception\", \"topic\": \"T87\", \"target\": \"perceptual experience\", \"value\": 727.01999999999998}, {\"color\": \"#f781bf\", \"source\": \"philosophy of mind\", \"topic\": \"T87\", \"target\": \"philosophy of psychology\", \"value\": 3923.130000000001}, {\"color\": \"#f781bf\", \"source\": \"philosophy of psychology\", \"topic\": \"T87\", \"target\": \"aspects of mind\", \"value\": 1861.04}, {\"color\": \"#f781bf\", \"source\": \"philosophy of psychology\", \"topic\": \"T87\", \"target\": \"folk psychology\", \"value\": 242.01999999999998}, {\"color\": \"#f781bf\", \"source\": \"philosophy of psychology\", \"topic\": \"T87\", \"target\": \"cognitive science\", \"value\": 1457.05}, {\"color\": \"#f781bf\", \"source\": \"philosophy of mind\", \"topic\": \"T87\", \"target\": \"artificial intelligence\", \"value\": 2821.0799999999999}, {\"color\": \"#f781bf\", \"source\": \"artificial intelligence\", \"topic\": \"T87\", \"target\": \"thinking machine\", \"value\": 1021.01}, {\"color\": \"#f781bf\", \"source\": \"artificial intelligence\", \"topic\": \"T87\", \"target\": \"computationalism\", \"value\": 780.00999999999999}, {\"color\": \"#f781bf\", \"source\": \"philosophy of mind\", \"topic\": \"T87\", \"target\": \"metaphysics of mind\", \"value\": 5565.1599999999999}, {\"color\": \"#f781bf\", \"source\": \"metaphysics of mind\", \"topic\": \"T87\", \"target\": \"mind-body problem\", \"value\": 3164.0799999999999}, {\"color\": \"#f781bf\", \"source\": \"mind-body problem\", \"topic\": \"T87\", \"target\": \"physicalism\", \"value\": 1760.04}, {\"color\": \"#f781bf\", \"source\": \"metaphysics of mind\", \"topic\": \"T87\", \"target\": \"free will\", \"value\": 709.01999999999998}, {\"color\": \"#f781bf\", \"source\": \"metaphysics of mind\", \"topic\": \"T87\", \"target\": \"personal identity\", \"value\": 272.00999999999999}, {\"color\": \"#4daf4a\", \"source\": \"T42\", \"topic\": \"T42\", \"target\": \"philosophy of language\", \"value\": 15852.360000000002}, {\"color\": \"#4daf4a\", \"source\": \"philosophy of language\", \"topic\": \"T42\", \"target\": \"compositionality and logical form\", \"value\": 3292.04}, {\"color\": \"#4daf4a\", \"source\": \"compositionality and logical form\", \"topic\": \"T42\", \"target\": \"logical form\", \"value\": 2229.0200000000004}, {\"color\": \"#4daf4a\", \"source\": \"philosophy of language\", \"topic\": \"T42\", \"target\": \"semantics\", \"value\": 7221.1900000000014}, {\"color\": \"#4daf4a\", \"source\": \"semantics\", \"topic\": \"T42\", \"target\": \"truth\", \"value\": 1939.0999999999999}, {\"color\": \"#4daf4a\", \"source\": \"semantics\", \"topic\": \"T42\", \"target\": \"reference and denotation\", \"value\": 456.02999999999997}, {\"color\": \"#4daf4a\", \"source\": \"semantics\", \"topic\": \"T42\", \"target\": \"semantic puzzle\", \"value\": 4380.0300000000007}, {\"color\": \"#4daf4a\", \"source\": \"semantics\", \"topic\": \"T42\", \"target\": \"expression and idiom\", \"value\": 182.01999999999998}, {\"color\": \"#4daf4a\", \"source\": \"philosophy of language\", \"topic\": \"T42\", \"target\": \"pragmatics\", \"value\": 4505.0600000000004}, {\"color\": \"#f781bf\", \"source\": \"T111\", \"topic\": \"T111\", \"target\": \"feminist philosophy\", \"value\": 7586.1000000000004}, {\"color\": \"#a7572a\", \"source\": \"T78\", \"topic\": \"T78\", \"target\": \"feminist philosophy\", \"value\": 5579.1000000000013}, {\"color\": \"#e41a1c\", \"source\": \"T112\", \"topic\": \"T112\", \"target\": \"feminist philosophy\", \"value\": 3687.1000000000013}, {\"color\": \"#f781bf\", \"source\": \"feminist philosophy\", \"topic\": \"T111\", \"target\": \"methods in feminism\", \"value\": 3155.0699999999997}, {\"color\": \"#a7572a\", \"source\": \"feminist philosophy\", \"topic\": \"T78\", \"target\": \"methods in feminism\", \"value\": 4360.0700000000006}, {\"color\": \"#e41a1c\", \"source\": \"feminist philosophy\", \"topic\": \"T112\", \"target\": \"methods in feminism\", \"value\": 2960.0700000000006}, {\"color\": \"#f781bf\", \"source\": \"T47\", \"topic\": \"T47\", \"target\": \"philosophy of biology\", \"value\": 18974.200000000001}, {\"color\": \"#4daf4a\", \"source\": \"T50\", \"topic\": \"T50\", \"target\": \"philosophy of biology\", \"value\": 6259.2000000000035}, {\"color\": \"#e41a1c\", \"source\": \"T64\", \"topic\": \"T64\", \"target\": \"philosophy of biology\", \"value\": 6181.2000000000035}, {\"color\": \"#f781bf\", \"source\": \"philosophy of biology\", \"topic\": \"T47\", \"target\": \"developmental biology\", \"value\": 634.00999999999999}, {\"color\": \"#4daf4a\", \"source\": \"philosophy of biology\", \"topic\": \"T50\", \"target\": \"developmental biology\", \"value\": 83.009999999999991}, {\"color\": \"#f781bf\", \"source\": \"philosophy of biology\", \"topic\": \"T47\", \"target\": \"ecology and conservation\", \"value\": 289.00999999999999}, {\"color\": \"#4daf4a\", \"source\": \"philosophy of biology\", \"topic\": \"T50\", \"target\": \"ecology and conservation\", \"value\": 674.00999999999999}, {\"color\": \"#e41a1c\", \"source\": \"philosophy of biology\", \"topic\": \"T64\", \"target\": \"ecology and conservation\", \"value\": 1752.01}, {\"color\": \"#f781bf\", \"source\": \"philosophy of biology\", \"topic\": \"T47\", \"target\": \"function and teleology\", \"value\": 222.00999999999999}, {\"color\": \"#4daf4a\", \"source\": \"philosophy of biology\", \"topic\": \"T50\", \"target\": \"function and teleology\", \"value\": 34.009999999999991}, {\"color\": \"#f781bf\", \"source\": \"philosophy of biology\", \"topic\": \"T47\", \"target\": \"molecular biology and genetics\", \"value\": 1237.01}, {\"color\": \"#f781bf\", \"source\": \"philosophy of biology\", \"topic\": \"T47\", \"target\": \"evolution\", \"value\": 11319.08}, {\"color\": \"#4daf4a\", \"source\": \"philosophy of biology\", \"topic\": \"T50\", \"target\": \"evolution\", \"value\": 1365.0799999999999}, {\"color\": \"#e41a1c\", \"source\": \"philosophy of biology\", \"topic\": \"T64\", \"target\": \"evolution\", \"value\": 145.07999999999993}, {\"color\": \"#fffe33\", \"source\": \"T29\", \"topic\": \"T29\", \"target\": \"philosophy of mathematics\", \"value\": 2217.0699999999997}, {\"color\": \"#a7572a\", \"source\": \"T54\", \"topic\": \"T54\", \"target\": \"philosophy of mathematics\", \"value\": 1956.0700000000002}, {\"color\": \"#974fa2\", \"source\": \"T91\", \"topic\": \"T91\", \"target\": \"philosophy of mathematics\", \"value\": 1816.0699999999999}, {\"color\": \"#fffe33\", \"source\": \"T93\", \"topic\": \"T93\", \"target\": \"philosophy of law\", \"value\": 12000.130000000001}, {\"color\": \"#ff8000\", \"source\": \"T12\", \"topic\": \"T12\", \"target\": \"philosophy of law\", \"value\": 6622.1300000000028}, {\"color\": \"#fffe33\", \"source\": \"T117\", \"topic\": \"T117\", \"target\": \"philosophy of law\", \"value\": 4944.130000000001}, {\"color\": \"#f781bf\", \"source\": \"T87\", \"topic\": \"T87\", \"target\": \"philosophy of law\", \"value\": 4561.130000000001}, {\"color\": \"#fffe33\", \"source\": \"philosophy of law\", \"topic\": \"T93\", \"target\": \"legal reasoning\", \"value\": 3926.0200000000004}, {\"color\": \"#ff8000\", \"source\": \"philosophy of law\", \"topic\": \"T12\", \"target\": \"legal reasoning\", \"value\": 47.019999999999982}, {\"color\": \"#fffe33\", \"source\": \"philosophy of law\", \"topic\": \"T117\", \"target\": \"legal reasoning\", \"value\": 1508.02}, {\"color\": \"#f781bf\", \"source\": \"philosophy of law\", \"topic\": \"T87\", \"target\": \"legal reasoning\", \"value\": 781.01999999999998}, {\"color\": \"#4daf4a\", \"source\": \"T50\", \"topic\": \"T50\", \"target\": \"philosophy of computer science\", \"value\": 5767.0600000000013}, {\"color\": \"#f781bf\", \"source\": \"T63\", \"topic\": \"T63\", \"target\": \"philosophy of computer science\", \"value\": 4620.0600000000013}, {\"color\": \"#f781bf\", \"source\": \"T87\", \"topic\": \"T87\", \"target\": \"ethics\", \"value\": 13296.430000000008}, {\"color\": \"#a7572a\", \"source\": \"T102\", \"topic\": \"T102\", \"target\": \"ethics\", \"value\": 12080.430000000008}, {\"color\": \"#f781bf\", \"source\": \"ethics\", \"topic\": \"T87\", \"target\": \"normative ethics\", \"value\": 172.01999999999998}, {\"color\": \"#a7572a\", \"source\": \"ethics\", \"topic\": \"T102\", \"target\": \"normative ethics\", \"value\": 1103.02}, {\"color\": \"#f781bf\", \"source\": \"ethics\", \"topic\": \"T87\", \"target\": \"applied ethics\", \"value\": 2153.1700000000001}, {\"color\": \"#a7572a\", \"source\": \"ethics\", \"topic\": \"T102\", \"target\": \"applied ethics\", \"value\": 5165.1700000000019}, {\"color\": \"#f781bf\", \"source\": \"applied ethics\", \"topic\": \"T87\", \"target\": \"bioethics\", \"value\": 843.08999999999992}, {\"color\": \"#a7572a\", \"source\": \"applied ethics\", \"topic\": \"T102\", \"target\": \"bioethics\", \"value\": 3149.0900000000001}, {\"color\": \"#f781bf\", \"source\": \"applied ethics\", \"topic\": \"T87\", \"target\": \"ethics and information technology\", \"value\": 858.04999999999995}, {\"color\": \"#a7572a\", \"source\": \"applied ethics\", \"topic\": \"T102\", \"target\": \"ethics and information technology\", \"value\": 1260.05}, {\"color\": \"#f781bf\", \"source\": \"ethics\", \"topic\": \"T87\", \"target\": \"metaethics\", \"value\": 5122.130000000001}, {\"color\": \"#a7572a\", \"source\": \"ethics\", \"topic\": \"T102\", \"target\": \"metaethics\", \"value\": 2916.130000000001}, {\"color\": \"#f781bf\", \"source\": \"metaethics\", \"topic\": \"T87\", \"target\": \"internalism\", \"value\": 385.00999999999999}, {\"color\": \"#a7572a\", \"source\": \"metaethics\", \"topic\": \"T102\", \"target\": \"internalism\", \"value\": 207.00999999999999}, {\"color\": \"#f781bf\", \"source\": \"metaethics\", \"topic\": \"T87\", \"target\": \"moral reasoning\", \"value\": 440.02999999999997}, {\"color\": \"#a7572a\", \"source\": \"metaethics\", \"topic\": \"T102\", \"target\": \"moral reasoning\", \"value\": 930.02999999999997}, {\"color\": \"#f781bf\", \"source\": \"metaethics\", \"topic\": \"T87\", \"target\": \"moral epistemology\", \"value\": 1846.03}, {\"color\": \"#a7572a\", \"source\": \"metaethics\", \"topic\": \"T102\", \"target\": \"moral epistemology\", \"value\": 624.02999999999997}, {\"color\": \"#f781bf\", \"source\": \"metaethics\", \"topic\": \"T87\", \"target\": \"externalism\", \"value\": 378.01999999999998}, {\"color\": \"#a7572a\", \"source\": \"metaethics\", \"topic\": \"T102\", \"target\": \"externalism\", \"value\": 83.019999999999982}, {\"color\": \"#974fa2\", \"source\": \"T107\", \"topic\": \"T107\", \"target\": \"epistemology\", \"value\": 17093.240000000002}, {\"color\": \"#f781bf\", \"source\": \"T87\", \"topic\": \"T87\", \"target\": \"epistemology\", \"value\": 9259.2400000000034}, {\"color\": \"#974fa2\", \"source\": \"epistemology\", \"topic\": \"T107\", \"target\": \"social epistemology\", \"value\": 482.00999999999999}, {\"color\": \"#f781bf\", \"source\": \"epistemology\", \"topic\": \"T87\", \"target\": \"social epistemology\", \"value\": 332.00999999999999}, {\"color\": \"#974fa2\", \"source\": \"epistemology\", \"topic\": \"T107\", \"target\": \"naturalized epistemology\", \"value\": 34.019999999999982}, {\"color\": \"#f781bf\", \"source\": \"epistemology\", \"topic\": \"T87\", \"target\": \"naturalized epistemology\", \"value\": 188.01999999999998}, {\"color\": \"#974fa2\", \"source\": \"epistemology\", \"topic\": \"T107\", \"target\": \"knowledge sources\", \"value\": 97.029999999999973}, {\"color\": \"#f781bf\", \"source\": \"epistemology\", \"topic\": \"T87\", \"target\": \"knowledge sources\", \"value\": 1181.03}, {\"color\": \"#974fa2\", \"source\": \"epistemology\", \"topic\": \"T107\", \"target\": \"justification\", \"value\": 9683.0800000000017}, {\"color\": \"#f781bf\", \"source\": \"epistemology\", \"topic\": \"T87\", \"target\": \"justification\", \"value\": 2138.0799999999999}, {\"color\": \"#974fa2\", \"source\": \"justification\", \"topic\": \"T107\", \"target\": \"bayesianism\", \"value\": 28.009999999999991}, {\"color\": \"#f781bf\", \"source\": \"justification\", \"topic\": \"T87\", \"target\": \"bayesianism\", \"value\": 27.009999999999991}, {\"color\": \"#974fa2\", \"source\": \"justification\", \"topic\": \"T107\", \"target\": \"internalism and externalism\", \"value\": 117.00999999999999}, {\"color\": \"#f781bf\", \"source\": \"justification\", \"topic\": \"T87\", \"target\": \"internalism and externalism\", \"value\": 223.00999999999999}, {\"color\": \"#974fa2\", \"source\": \"justification\", \"topic\": \"T107\", \"target\": \"foundationalism\", \"value\": 1188.01}, {\"color\": \"#f781bf\", \"source\": \"justification\", \"topic\": \"T87\", \"target\": \"foundationalism\", \"value\": 398.00999999999999}, {\"color\": \"#974fa2\", \"source\": \"justification\", \"topic\": \"T107\", \"target\": \"coherentism\", \"value\": 3805.0200000000004}, {\"color\": \"#f781bf\", \"source\": \"justification\", \"topic\": \"T87\", \"target\": \"coherentism\", \"value\": 839.01999999999998}, {\"color\": \"#974fa2\", \"source\": \"epistemology\", \"topic\": \"T107\", \"target\": \"knowledge and skepticism\", \"value\": 3593.04}, {\"color\": \"#f781bf\", \"source\": \"epistemology\", \"topic\": \"T87\", \"target\": \"knowledge and skepticism\", \"value\": 3466.04}, {\"color\": \"#974fa2\", \"source\": \"knowledge and skepticism\", \"topic\": \"T107\", \"target\": \"skepticism\", \"value\": 61.009999999999991}, {\"color\": \"#f781bf\", \"source\": \"knowledge and skepticism\", \"topic\": \"T87\", \"target\": \"skepticism\", \"value\": 1517.01}, {\"color\": \"#974fa2\", \"source\": \"knowledge and skepticism\", \"topic\": \"T107\", \"target\": \"knowledge\", \"value\": 1648.02}, {\"color\": \"#f781bf\", \"source\": \"knowledge and skepticism\", \"topic\": \"T87\", \"target\": \"knowledge\", \"value\": 1449.02}, {\"color\": \"#e41a1c\", \"source\": \"T96\", \"topic\": \"T96\", \"target\": \"philosophy of sociology\", \"value\": 1397.01}, {\"color\": \"#a7572a\", \"source\": \"T78\", \"topic\": \"T78\", \"target\": \"philosophy of sociology\", \"value\": 1352.01}, {\"color\": \"#fffe33\", \"source\": \"T117\", \"topic\": \"T117\", \"target\": \"philosophy of sociology\", \"value\": 391.00999999999999}, {\"color\": \"#fffe33\", \"source\": \"T69\", \"topic\": \"T69\", \"target\": \"philosophy of religion\", \"value\": 11602.360000000006}, {\"color\": \"#f781bf\", \"source\": \"T87\", \"topic\": \"T87\", \"target\": \"philosophy of religion\", \"value\": 10132.360000000006}, {\"color\": \"#fffe33\", \"source\": \"philosophy of religion\", \"topic\": \"T69\", \"target\": \"religion and politics\", \"value\": 984.05999999999995}, {\"color\": \"#f781bf\", \"source\": \"philosophy of religion\", \"topic\": \"T87\", \"target\": \"religion and politics\", \"value\": 2581.0600000000004}, {\"color\": \"#fffe33\", \"source\": \"philosophy of religion\", \"topic\": \"T69\", \"target\": \"god\", \"value\": 5446.0600000000013}, {\"color\": \"#f781bf\", \"source\": \"philosophy of religion\", \"topic\": \"T87\", \"target\": \"god\", \"value\": 1263.0599999999999}, {\"color\": \"#fffe33\", \"source\": \"god\", \"topic\": \"T69\", \"target\": \"existence of god\", \"value\": 1764.0100000000002}, {\"color\": \"#f781bf\", \"source\": \"god\", \"topic\": \"T87\", \"target\": \"existence of god\", \"value\": 567.00999999999999}, {\"color\": \"#fffe33\", \"source\": \"god\", \"topic\": \"T69\", \"target\": \"divine attributes\", \"value\": 3682.0500000000002}, {\"color\": \"#f781bf\", \"source\": \"god\", \"topic\": \"T87\", \"target\": \"divine attributes\", \"value\": 696.04999999999995}, {\"color\": \"#fffe33\", \"source\": \"philosophy of religion\", \"topic\": \"T69\", \"target\": \"epistemology of religion\", \"value\": 609.04999999999995}, {\"color\": \"#f781bf\", \"source\": \"philosophy of religion\", \"topic\": \"T87\", \"target\": \"epistemology of religion\", \"value\": 1301.05}, {\"color\": \"#fffe33\", \"source\": \"epistemology of religion\", \"topic\": \"T69\", \"target\": \"faith and reason\", \"value\": 21.029999999999973}, {\"color\": \"#f781bf\", \"source\": \"epistemology of religion\", \"topic\": \"T87\", \"target\": \"faith and reason\", \"value\": 1133.03}, {\"color\": \"#fffe33\", \"source\": \"epistemology of religion\", \"topic\": \"T69\", \"target\": \"revelation\", \"value\": 138.00999999999999}, {\"color\": \"#f781bf\", \"source\": \"epistemology of religion\", \"topic\": \"T87\", \"target\": \"revelation\", \"value\": 168.00999999999999}, {\"color\": \"#fffe33\", \"source\": \"philosophy of religion\", \"topic\": \"T69\", \"target\": \"afterlife\", \"value\": 722.01999999999998}, {\"color\": \"#f781bf\", \"source\": \"T95\", \"topic\": \"T95\", \"target\": \"philosophy of science\", \"value\": 11422.150000000003}, {\"color\": \"#f781bf\", \"source\": \"T87\", \"topic\": \"T87\", \"target\": \"philosophy of science\", \"value\": 5285.1500000000015}, {\"color\": \"#f781bf\", \"source\": \"philosophy of science\", \"topic\": \"T95\", \"target\": \"epistemology of science\", \"value\": 4218.0400000000009}, {\"color\": \"#f781bf\", \"source\": \"philosophy of science\", \"topic\": \"T87\", \"target\": \"epistemology of science\", \"value\": 1536.04}, {\"color\": \"#f781bf\", \"source\": \"epistemology of science\", \"topic\": \"T87\", \"target\": \"models and idealization\", \"value\": 355.00999999999999}, {\"color\": \"#f781bf\", \"source\": \"epistemology of science\", \"topic\": \"T87\", \"target\": \"scientific theory\", \"value\": 265.01999999999998}, {\"color\": \"#f781bf\", \"source\": \"scientific theory\", \"topic\": \"T87\", \"target\": \"probability\", \"value\": 9.0099999999999909}, {\"color\": \"#f781bf\", \"source\": \"epistemology of science\", \"topic\": \"T95\", \"target\": \"explanation\", \"value\": 4218.0100000000002}, {\"color\": \"#f781bf\", \"source\": \"epistemology of science\", \"topic\": \"T87\", \"target\": \"explanation\", \"value\": 916.00999999999999}, {\"color\": \"#f781bf\", \"source\": \"philosophy of science\", \"topic\": \"T95\", \"target\": \"metaphysics of science\", \"value\": 7046.0800000000008}, {\"color\": \"#f781bf\", \"source\": \"philosophy of science\", \"topic\": \"T87\", \"target\": \"metaphysics of science\", \"value\": 2601.0799999999999}, {\"color\": \"#f781bf\", \"source\": \"metaphysics of science\", \"topic\": \"T95\", \"target\": \"causation\", \"value\": 6809.0600000000004}, {\"color\": \"#f781bf\", \"source\": \"metaphysics of science\", \"topic\": \"T87\", \"target\": \"causation\", \"value\": 2347.0599999999999}, {\"color\": \"#f781bf\", \"source\": \"causation\", \"topic\": \"T95\", \"target\": \"cause and effect\", \"value\": 4207.04}, {\"color\": \"#f781bf\", \"source\": \"causation\", \"topic\": \"T87\", \"target\": \"cause and effect\", \"value\": 1682.04}, {\"color\": \"#f781bf\", \"source\": \"philosophy of science\", \"topic\": \"T95\", \"target\": \"science and religion\", \"value\": 158.00999999999999}, {\"color\": \"#f781bf\", \"source\": \"philosophy of science\", \"topic\": \"T87\", \"target\": \"science and religion\", \"value\": 138.00999999999999}, {\"color\": \"#f781bf\", \"source\": \"T87\", \"topic\": \"T87\", \"target\": \"metaphysics\", \"value\": 15543.470000000003}, {\"color\": \"#f781bf\", \"source\": \"metaphysics\", \"topic\": \"T87\", \"target\": \"facts\", \"value\": 1015.02}, {\"color\": \"#f781bf\", \"source\": \"metaphysics\", \"topic\": \"T87\", \"target\": \"object\", \"value\": 284.00999999999999}, {\"color\": \"#f781bf\", \"source\": \"metaphysics\", \"topic\": \"T87\", \"target\": \"property\", \"value\": 678.02999999999997}, {\"color\": \"#f781bf\", \"source\": \"metaphysics\", \"topic\": \"T87\", \"target\": \"relations\", \"value\": 2040.04}, {\"color\": \"#f781bf\", \"source\": \"metaphysics\", \"topic\": \"T87\", \"target\": \"change\", \"value\": 877.01999999999998}, {\"color\": \"#f781bf\", \"source\": \"metaphysics\", \"topic\": \"T87\", \"target\": \"space and time\", \"value\": 3879.1100000000006}, {\"color\": \"#f781bf\", \"source\": \"space and time\", \"topic\": \"T87\", \"target\": \"matter\", \"value\": 247.00999999999999}, {\"color\": \"#f781bf\", \"source\": \"space and time\", \"topic\": \"T87\", \"target\": \"time\", \"value\": 723.03999999999996}, {\"color\": \"#f781bf\", \"source\": \"space and time\", \"topic\": \"T87\", \"target\": \"supertasks\", \"value\": 1542.02}, {\"color\": \"#f781bf\", \"source\": \"space and time\", \"topic\": \"T87\", \"target\": \"spacetime\", \"value\": 1015.02}, {\"color\": \"#f781bf\", \"source\": \"metaphysics\", \"topic\": \"T87\", \"target\": \"existence\", \"value\": 1818.0699999999999}, {\"color\": \"#f781bf\", \"source\": \"existence\", \"topic\": \"T87\", \"target\": \"arguments for the existence of god\", \"value\": 1501.05}, {\"color\": \"#4daf4a\", \"source\": \"T90\", \"topic\": \"T90\", \"target\": \"philosophy of economics\", \"value\": 1928.02}, {\"color\": \"#974fa2\", \"source\": \"T43\", \"topic\": \"T43\", \"target\": \"philosophy of economics\", \"value\": 1646.02}, {\"color\": \"#fffe33\", \"source\": \"T93\", \"topic\": \"T93\", \"target\": \"philosophy of economics\", \"value\": 1238.02}, {\"color\": \"#4daf4a\", \"source\": \"T50\", \"topic\": \"T50\", \"target\": \"philosophy of economics\", \"value\": 886.01999999999998}, {\"color\": \"#a7572a\", \"source\": \"T78\", \"topic\": \"T78\", \"target\": \"philosophy of economics\", \"value\": 705.01999999999998}]}\n"
]
}
],
"source": [
"import topicexplorer.lib.color as color\n",
"topic_color = dict(get_topic_colors(v))\n",
"\n",
"# create links\n",
"links = []\n",
"def add_child_links(node, root):\n",
" # add 1 level of children\n",
" for child in node.children:\n",
" if get_descendants(child):\n",
" for topic, prop in zip(node_topics[root], get_raw_topic_proportion(node_topics[root], child)):\n",
" if prop:\n",
" links.append({'source': node.label,\n",
" 'target': child.label,\n",
" 'value' : prop,\n",
" 'color' : color.rgb2hex(topic_color[topic]),\n",
" 'topic' : 'T{}'.format(topic)\n",
" })\n",
" add_child_links(child, root)\n",
"\n",
"for node in root_nodes:\n",
" if node_topics[node]:\n",
" for topic, prop in zip(node_topics[node], get_raw_topic_proportion(node_topics[node], node)):\n",
" if prop:\n",
" links.append({'source': 'T{}'.format(topic),\n",
" 'target': node.label,\n",
" 'value' : prop,\n",
" 'color' : color.rgb2hex(topic_color[topic]),\n",
" 'topic' : 'T{}'.format(topic)\n",
" })\n",
" add_child_links(node, node)\n",
"\n",
" \n",
"# create nodes\n",
"nodes = []\n",
"added_nodes = root_nodes[:]\n",
"topics = v.topics()\n",
"\n",
"def add_child_nodes(node, depth=2, root=None, first_page=True):\n",
" for child in node.children:\n",
" if get_descendants(child) and child not in added_nodes and np.any(get_raw_topic_proportion(node_topics[root], child) > 0):\n",
" nodes.append({'name' : child.label, 'depth' : depth, 'inpho_id' : child.ID})\n",
" add_child_nodes(child, depth + 1, root)\n",
"\n",
"for topic in set(chain(*node_topics.values())):\n",
" nodes.append({'name' : 'T{}'.format(topic),\n",
" 'color' : color.rgb2hex(topic_color[topic]),\n",
" 'words' : ', '.join(topics[topic][:10]['word']),\n",
" 'depth' : 0})\n",
"\n",
"\n",
"\n",
"for node in root_nodes:\n",
" if node_topics[node]:\n",
" nodes.append({'name' : node.label, 'depth' : 1, 'inpho_id' : node.ID})\n",
" add_child_nodes(node, 2, node)\n",
" \n",
"print len(links), len(nodes)\n",
"\n",
"import json\n",
"print json.dumps({'links' : links, 'nodes' : nodes})"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def wikiscraper(user):\n",
" \"\"\" This function manages user state. \"\"\"\n",
" user_url = 'http://...'\n",
" links = getedits(url)\n",
" return links\n",
" \n",
" \n",
"def getedits(url, follow=1):\n",
" \"\"\" This function manages page state. \"\"\"\n",
" \"\"\" url -> list of links \"\"\"\n",
" # init your skip state\n",
" skipped_older_500 = False\n",
" links = []\n",
" \n",
" # do your beautiful soup\n",
" \n",
" # this if works on each link\n",
" for link in page:\n",
" if text == 'older 500' and not skipped_older_500:\n",
" skipped_older_500 = True\n",
" elif text == 'older 500' and skipped_older_500 and follow:\n",
" links.extend(getedits(new_url, follow=follow-1))\n",
" else:\n",
" # add the link to the list\n",
" \n",
" return links\n",
" \n",
" \n",
" "
]
},
{
"cell_type": "code",
"execution_count": 102,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([ 0.310272 , 0.48184085, 0.45513919, 0.47858505, 0.60753701,\n",
" 0.61372684, 0.71403141, 0.69442363, 0.71759592, 0.65502096,\n",
" 0.88270853, 0.75983752, 1.0460637 , 0.81904679, 0.79499943,\n",
" 0.70368536, 0.79850875, 0.78913044, 0.69340608, 0.78039998,\n",
" 0.76607882, 0.7796588 , 0.81655627, 0.93597587, 0.99280379,\n",
" 1.37648754, 1.41123615, 1.09827117, 0.9942905 , 0.97138368,\n",
" 1.00145027, 1.17372277, 1.07846883, 0.99536113, 0.94743214,\n",
" 0.9638703 , 1.2770373 , 1.15346257, 1.3388641 , 1.28751205,\n",
" 1.08779091, 1.1909664 , 1.38669517, 1.09890238, 1.27834918,\n",
" 1.06514859, 0.97803753, 1.04669854, 1.19690388, 1.18520655,\n",
" 1.23681951, 1.16943073, 1.24969881, 1.1170645 , 1.33939471,\n",
" 1.20815952, 1.33149258, 1.29014342, 1.69636798, 1.80528124,\n",
" 1.29883466, 2.44691486, 1.27657855, 1.27744263, 1.20266154,\n",
" 1.51462656, 1.29605184, 1.27266093, 1.36980883, 1.4550232 ,\n",
" 1.29907951, 1.36491481, 1.54828984, 1.61037111, 1.44466579,\n",
" 1.41725784, 1.6616517 , 2.20633148, 1.55263294, 1.44723488,\n",
" 1.57840965, 1.65668431, 1.49451506, 1.64430657, 2.31398301,\n",
" 1.70710818, 1.76640897, 1.71974967, 2.31315183, 1.71079699,\n",
" 1.93592516, 2.67860654, 2.90276569, 2.06043562, 2.24775391,\n",
" 2.48083315, 2.24230481, 2.37580457, 2.36371543, 2.52376813,\n",
" 2.32265142, 3.58877033, 2.31680737, 2.70737444, 2.39460902,\n",
" 2.60496058, 2.59083378, 2.36319048, 2.63426773, 3.70531359,\n",
" 2.58168915, 2.69805555, 2.60500713, 2.6570592 , 2.38087927,\n",
" 2.46348829, 2.36416053, 3.02576534, 2.59619931, 2.62013494])"
]
},
"execution_count": 102,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"area_topics = np.array(v.aggregate_doc_topics(node_entries[root_nodes[0]]))\n",
"base = np.array(overall_topics[area_topics['i']]['value'])\n",
"np.log(area_topics['value']) / np.log(base)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.11"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment