PageRanking in gulpfile and hasCredential instead of attendee
This commit is contained in:
parent
4045f05121
commit
88ab656328
12
.htaccess
12
.htaccess
|
@ -2,11 +2,18 @@
|
||||||
RewriteEngine On
|
RewriteEngine On
|
||||||
RewriteRule "^2018/data-flaneur$" "index.html"
|
RewriteRule "^2018/data-flaneur$" "index.html"
|
||||||
RewriteRule "^2018/digital-cultures$" "index.html"
|
RewriteRule "^2018/digital-cultures$" "index.html"
|
||||||
|
RewriteRule "^2020/acts-of-collection-and-omission$" "index.html"
|
||||||
RewriteRule "^article/choose-how-you-feel-you-have-seven-options$" "index.html"
|
RewriteRule "^article/choose-how-you-feel-you-have-seven-options$" "index.html"
|
||||||
RewriteRule "^assets/video/guerilla_project.mp4$" "index.html"
|
RewriteRule "^assets/video/guerilla_project.mp4$" "index.html"
|
||||||
|
RewriteRule "^choose-how-you-feel-you-have-seven-options$" "index.html"
|
||||||
|
RewriteRule "^degree/avm$" "index.html"
|
||||||
|
RewriteRule "^degree/cddc$" "index.html"
|
||||||
|
RewriteRule "^degree/mechanical-engineering$" "index.html"
|
||||||
|
RewriteRule "^degree/media-design$" "index.html"
|
||||||
RewriteRule "^emotionhero$" "index.html"
|
RewriteRule "^emotionhero$" "index.html"
|
||||||
RewriteRule "^event/2018/yama-ichi$" "index.html"
|
RewriteRule "^event/2018/yama-ichi$" "index.html"
|
||||||
RewriteRule "^event/2019/ccu-presentation$" "index.html"
|
RewriteRule "^event/2019/ccu-presentation$" "index.html"
|
||||||
|
RewriteRule "^event/cqrrelations$" "index.html"
|
||||||
RewriteRule "^event/creativity-and-cognition$" "index.html"
|
RewriteRule "^event/creativity-and-cognition$" "index.html"
|
||||||
RewriteRule "^exercises-in-overfitting$" "index.html"
|
RewriteRule "^exercises-in-overfitting$" "index.html"
|
||||||
RewriteRule "^exercises-in-overfitting/image/1$" "index.html"
|
RewriteRule "^exercises-in-overfitting/image/1$" "index.html"
|
||||||
|
@ -43,6 +50,7 @@ RewriteRule "^mvp3$" "index.html"
|
||||||
RewriteRule "^mvp3/image/1$" "index.html"
|
RewriteRule "^mvp3/image/1$" "index.html"
|
||||||
RewriteRule "^mvps$" "index.html"
|
RewriteRule "^mvps$" "index.html"
|
||||||
RewriteRule "^organisation/ccu$" "index.html"
|
RewriteRule "^organisation/ccu$" "index.html"
|
||||||
|
RewriteRule "^organisation/constant$" "index.html"
|
||||||
RewriteRule "^organisation/nsvp$" "index.html"
|
RewriteRule "^organisation/nsvp$" "index.html"
|
||||||
RewriteRule "^organisation/setup$" "index.html"
|
RewriteRule "^organisation/setup$" "index.html"
|
||||||
RewriteRule "^organisation/v2_$" "index.html"
|
RewriteRule "^organisation/v2_$" "index.html"
|
||||||
|
@ -53,9 +61,11 @@ RewriteRule "^person/joseph-huot$" "index.html"
|
||||||
RewriteRule "^person/merijn-van-moll$" "index.html"
|
RewriteRule "^person/merijn-van-moll$" "index.html"
|
||||||
RewriteRule "^person/mikel-folgerts$" "index.html"
|
RewriteRule "^person/mikel-folgerts$" "index.html"
|
||||||
RewriteRule "^person/ward-goes$" "index.html"
|
RewriteRule "^person/ward-goes$" "index.html"
|
||||||
|
RewriteRule "^pillow-talk$" "index.html"
|
||||||
RewriteRule "^place/in4art$" "index.html"
|
RewriteRule "^place/in4art$" "index.html"
|
||||||
RewriteRule "^place/q21$" "index.html"
|
RewriteRule "^place/q21$" "index.html"
|
||||||
RewriteRule "^plottingdata$" "index.html"
|
RewriteRule "^plottingdata$" "index.html"
|
||||||
|
RewriteRule "^residency/q21$" "index.html"
|
||||||
RewriteRule "^residency/summer-sessions$" "index.html"
|
RewriteRule "^residency/summer-sessions$" "index.html"
|
||||||
RewriteRule "^samawati/video$" "index.html"
|
RewriteRule "^samawati/video$" "index.html"
|
||||||
RewriteRule "^spectacular-spectator-mood-meter$" "index.html"
|
RewriteRule "^spectacular-spectator-mood-meter$" "index.html"
|
||||||
|
@ -73,6 +83,7 @@ RewriteRule "^@type/Event$" "index.html"
|
||||||
RewriteRule "^@type/Report$" "index.html"
|
RewriteRule "^@type/Report$" "index.html"
|
||||||
RewriteRule "^@type/VideoObject$" "index.html"
|
RewriteRule "^@type/VideoObject$" "index.html"
|
||||||
RewriteRule "^@type/MediaObject$" "index.html"
|
RewriteRule "^@type/MediaObject$" "index.html"
|
||||||
|
RewriteRule "^@type/EducationalOccupationalCredential$" "index.html"
|
||||||
RewriteRule "^@type/ExhibitionEvent$" "index.html"
|
RewriteRule "^@type/ExhibitionEvent$" "index.html"
|
||||||
RewriteRule "^@type/ImageObject$" "index.html"
|
RewriteRule "^@type/ImageObject$" "index.html"
|
||||||
RewriteRule "^@type/Festival$" "index.html"
|
RewriteRule "^@type/Festival$" "index.html"
|
||||||
|
@ -83,5 +94,6 @@ RewriteRule "^@type/Person$" "index.html"
|
||||||
RewriteRule "^@type/EventVenue$" "index.html"
|
RewriteRule "^@type/EventVenue$" "index.html"
|
||||||
RewriteRule "^@type/Museum$" "index.html"
|
RewriteRule "^@type/Museum$" "index.html"
|
||||||
RewriteRule "^@type/PerformingGroup$" "index.html"
|
RewriteRule "^@type/PerformingGroup$" "index.html"
|
||||||
|
RewriteRule "^@type/VisualArtsEvent$" "index.html"
|
||||||
RewriteRule "^@type/CollegeOrUniversity$" "index.html"
|
RewriteRule "^@type/CollegeOrUniversity$" "index.html"
|
||||||
RewriteRule "^@type/WebSite$" "index.html"
|
RewriteRule "^@type/WebSite$" "index.html"
|
||||||
|
|
|
@ -6,7 +6,7 @@ body {
|
||||||
font-family: "DDINRegular", helvetica, sans-serif;
|
font-family: "DDINRegular", helvetica, sans-serif;
|
||||||
font-weight: light;
|
font-weight: light;
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
background: black;
|
background: #222;
|
||||||
font-size: 12pt; }
|
font-size: 12pt; }
|
||||||
|
|
||||||
a, a:link, a:visited {
|
a, a:link, a:visited {
|
||||||
|
@ -162,7 +162,7 @@ text {
|
||||||
width: 0; }
|
width: 0; }
|
||||||
#nodeDetails .nodeType {
|
#nodeDetails .nodeType {
|
||||||
font-size: 80%;
|
font-size: 80%;
|
||||||
text-transform: uppercase;
|
font-variant-caps: small-caps;
|
||||||
color: #999;
|
color: #999;
|
||||||
margin-left: 10px; }
|
margin-left: 10px; }
|
||||||
#nodeDetails .nodeType:hover {
|
#nodeDetails .nodeType:hover {
|
||||||
|
@ -201,7 +201,8 @@ text {
|
||||||
width: 170px;
|
width: 170px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
min-height: 25px;
|
min-height: 25px;
|
||||||
clear: both; }
|
clear: both;
|
||||||
|
word-wrap: anywhere; }
|
||||||
#nodeDetails dd {
|
#nodeDetails dd {
|
||||||
min-height: 30px;
|
min-height: 30px;
|
||||||
margin-top: 5px; }
|
margin-top: 5px; }
|
||||||
|
|
|
@ -45,7 +45,7 @@ function getNodeYear(n) {
|
||||||
return n['https://schema.org/datePublished'].substr(0, 4);
|
return n['https://schema.org/datePublished'].substr(0, 4);
|
||||||
}
|
}
|
||||||
if (typeof n['https://schema.org/startDate'] !== 'undefined') {
|
if (typeof n['https://schema.org/startDate'] !== 'undefined') {
|
||||||
console.log(n['https://schema.org/startDate']);
|
// console.log(n['https://schema.org/startDate']);
|
||||||
return n['https://schema.org/startDate'].substr(0, 4);
|
return n['https://schema.org/startDate'].substr(0, 4);
|
||||||
}
|
}
|
||||||
if (typeof n['https://schema.org/endDate'] !== 'undefined') {
|
if (typeof n['https://schema.org/endDate'] !== 'undefined') {
|
||||||
|
@ -125,10 +125,24 @@ var graph;
|
||||||
var nodeMap = {};
|
var nodeMap = {};
|
||||||
var linkMap = {};
|
var linkMap = {};
|
||||||
var breadcrumbs = {};
|
var breadcrumbs = {};
|
||||||
|
var weights = {};
|
||||||
|
|
||||||
// load the flattened jsonld file
|
// load the flattened jsonld file
|
||||||
var requestPromise = fetch('/assets/js/rubenvandeven.jsonld').then(function (r) {
|
var requestPromise = fetch('/assets/js/rubenvandeven.jsonld').then(function (r) {
|
||||||
return r.json();
|
return r.json();
|
||||||
}).then(function (data) {
|
});
|
||||||
|
var rankingPromise = fetch('/assets/js/ranking.json').then(function (r) {
|
||||||
|
return r.json();
|
||||||
|
});
|
||||||
|
|
||||||
|
Promise.all([requestPromise, rankingPromise]).then(function (values) {
|
||||||
|
if (values[0].hasOwnProperty('@graph')) {
|
||||||
|
data = values[0];
|
||||||
|
weights = values[1];
|
||||||
|
} else {
|
||||||
|
data = values[1];
|
||||||
|
weights = values[0];
|
||||||
|
}
|
||||||
graph = jsonLdToGraph(data['@graph']);
|
graph = jsonLdToGraph(data['@graph']);
|
||||||
// create a map of nodes by id.
|
// create a map of nodes by id.
|
||||||
for (var i in graph.nodes) {
|
for (var i in graph.nodes) {
|
||||||
|
@ -199,8 +213,7 @@ var firstNodeId = "https://rubenvandeven.com/";
|
||||||
|
|
||||||
function getSizeForNode(node) {
|
function getSizeForNode(node) {
|
||||||
if (node.hasOwnProperty('https://schema.org/thumbnailUrl')) return nodeSize;
|
if (node.hasOwnProperty('https://schema.org/thumbnailUrl')) return nodeSize;
|
||||||
//if(weights[node['@id']])
|
if (weights[node['@id']]) return nodeSize * weights[node['@id']];
|
||||||
// return nodeSize * weights[node['@id']];
|
|
||||||
if (node['@id'] == firstNodeId) return nodeSize * 1.2;
|
if (node['@id'] == firstNodeId) return nodeSize * 1.2;
|
||||||
// everynode has at least one link. these should equal 1
|
// everynode has at least one link. these should equal 1
|
||||||
return nodeSize * (.7 + Math.min(20, linkMap[node['@id']].length) / 40);
|
return nodeSize * (.7 + Math.min(20, linkMap[node['@id']].length) / 40);
|
||||||
|
@ -534,7 +547,7 @@ function startGraph(graph) {
|
||||||
deselectNode();
|
deselectNode();
|
||||||
if (updateHistory) {
|
if (updateHistory) {
|
||||||
// TODO: working
|
// TODO: working
|
||||||
console.log(types[0], getDisplayAttr(types[0]), types.map(getDisplayAttr));
|
// console.log(types[0], getDisplayAttr(types[0]),types.map(getDisplayAttr));
|
||||||
history.pushState({ types: types }, "", "/@type/" + types.map(getDisplayAttr).join("+"));
|
history.pushState({ types: types }, "", "/@type/" + types.map(getDisplayAttr).join("+"));
|
||||||
} else {
|
} else {
|
||||||
history.replaceState({ types: types }, "", "/@type/" + types.map(getDisplayAttr).join("+"));
|
history.replaceState({ types: types }, "", "/@type/" + types.map(getDisplayAttr).join("+"));
|
||||||
|
@ -729,11 +742,17 @@ function startGraph(graph) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// relationships / links in <dl>
|
// relationships / links incomming <dl>
|
||||||
for (var _attr in relDown) {
|
for (var _attr in relDown) {
|
||||||
var attrEl = document.createElement("dt");
|
var attrEl = document.createElement("dt");
|
||||||
attrEl.innerHTML = getDisplayAttr(_attr);
|
attrEl.innerHTML = getDisplayAttr(_attr);
|
||||||
relsEl.appendChild(attrEl);
|
relsEl.appendChild(attrEl);
|
||||||
|
|
||||||
|
// highest pagerank first:
|
||||||
|
relDown[_attr].sort(function (a, b) {
|
||||||
|
return weights[b['@id']] - weights[a['@id']];
|
||||||
|
});
|
||||||
|
|
||||||
for (var _i2 in relDown[_attr]) {
|
for (var _i2 in relDown[_attr]) {
|
||||||
var rel = relDown[_attr][_i2];
|
var rel = relDown[_attr][_i2];
|
||||||
relsEl.appendChild(createRelationshipEl(rel));
|
relsEl.appendChild(createRelationshipEl(rel));
|
||||||
|
@ -752,10 +771,17 @@ function startGraph(graph) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// relationships / links outgoing <dl>
|
||||||
for (var _attr2 in relUp) {
|
for (var _attr2 in relUp) {
|
||||||
var _attrEl = document.createElement("dt");
|
var _attrEl = document.createElement("dt");
|
||||||
_attrEl.innerHTML = getDisplayAttr(_attr2);
|
_attrEl.innerHTML = getDisplayAttr(_attr2);
|
||||||
relsEl.appendChild(_attrEl);
|
relsEl.appendChild(_attrEl);
|
||||||
|
|
||||||
|
// highest pagerank first:
|
||||||
|
relUp[_attr2].sort(function (a, b) {
|
||||||
|
return weights[b['@id']] - weights[a['@id']];
|
||||||
|
});
|
||||||
|
|
||||||
for (var _i3 in relUp[_attr2]) {
|
for (var _i3 in relUp[_attr2]) {
|
||||||
var _rel = relUp[_attr2][_i3];
|
var _rel = relUp[_attr2][_i3];
|
||||||
relsEl.appendChild(createRelationshipEl(_rel, _i3));
|
relsEl.appendChild(createRelationshipEl(_rel, _i3));
|
||||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
23
gulpfile.js
23
gulpfile.js
|
@ -10,6 +10,7 @@ var browserSync = require('browser-sync');
|
||||||
var jsonld = require('jsonld');
|
var jsonld = require('jsonld');
|
||||||
var source = require('vinyl-source-stream');
|
var source = require('vinyl-source-stream');
|
||||||
var buffer = require('vinyl-buffer');
|
var buffer = require('vinyl-buffer');
|
||||||
|
var exec = require('child_process').exec;
|
||||||
|
|
||||||
|
|
||||||
var through = require('through2')
|
var through = require('through2')
|
||||||
|
@ -106,21 +107,39 @@ function createHtaccessFromFlattenedJsonld(flattened) {
|
||||||
require('fs').writeFileSync('.htaccess', contentLines.join("\n")+"\n"+Object.values(typeLines).join("\n") + "\n");
|
require('fs').writeFileSync('.htaccess', contentLines.join("\n")+"\n"+Object.values(typeLines).join("\n") + "\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
gulp.task('jsonld', function(){
|
function createPagerankFromFlattenedJsonld(done){
|
||||||
|
exec('ranking/venv/bin/python ranking/jsonld_ranking.py -i assets/js/rubenvandeven.jsonld -o assets/js/ranking.json', function (err, stdout, stderr) {
|
||||||
|
if(stdout)
|
||||||
|
console.log(stdout);
|
||||||
|
if(stderr)
|
||||||
|
console.error(stderr);
|
||||||
|
done(err);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
gulp.task('flattenJsonld', function() {
|
||||||
return gulp.src(paths.data.src)
|
return gulp.src(paths.data.src)
|
||||||
.pipe(through.obj(function (file, enc, callback) {
|
.pipe(through.obj(function (file, enc, callback) {
|
||||||
let data = JSON.parse(file.contents.toString(enc));
|
let data = JSON.parse(file.contents.toString(enc));
|
||||||
var transformedFile = file.clone();
|
var transformedFile = file.clone();
|
||||||
// console.log(data);
|
// console.log(data);
|
||||||
jsonld.flatten(data, {}, (err, flattened)=> {
|
jsonld.flatten(data, {}, (err, flattened)=> {
|
||||||
|
if(err) {
|
||||||
|
console.error(err);
|
||||||
|
}
|
||||||
transformedFile.contents = Buffer.from(JSON.stringify(flattened), enc);
|
transformedFile.contents = Buffer.from(JSON.stringify(flattened), enc);
|
||||||
createHtaccessFromFlattenedJsonld(flattened);
|
createHtaccessFromFlattenedJsonld(flattened);
|
||||||
callback(null, transformedFile)
|
callback(null, transformedFile)
|
||||||
});
|
});
|
||||||
}))
|
}))
|
||||||
.pipe(gulp.dest(paths.data.dest));
|
.pipe(gulp.dest(paths.data.dest))
|
||||||
});
|
});
|
||||||
|
|
||||||
|
gulp.task('jsonld', gulp.series(
|
||||||
|
'flattenJsonld',
|
||||||
|
createPagerankFromFlattenedJsonld
|
||||||
|
));
|
||||||
|
|
||||||
var watchStylesAndScripts = function() {
|
var watchStylesAndScripts = function() {
|
||||||
gulp.watch(paths.styles.src, gulp.series('styles'));
|
gulp.watch(paths.styles.src, gulp.series('styles'));
|
||||||
gulp.watch(paths.scripts.src,gulp.series('scripts', reload));
|
gulp.watch(paths.scripts.src,gulp.series('scripts', reload));
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,10 +1,20 @@
|
||||||
from pyld import jsonld
|
from pyld import jsonld
|
||||||
import json
|
import json
|
||||||
|
|
||||||
import PageRank.pagerank as pagerank
|
import PageRank.pagerank as pagerank
|
||||||
|
import argparse
|
||||||
|
|
||||||
|
parser = argparse.ArgumentParser(description='Apply pagerank to the (flattened) JSONLD file')
|
||||||
|
parser.add_argument('--jsonld', '-i', metavar='FILENAME.JSONLD', type=str,
|
||||||
|
required=True,
|
||||||
|
help='Input filename, make sure to use the flattened JSONLD (in our case from the \'assets\' folder)')
|
||||||
|
parser.add_argument('--output', '-o', type=str,
|
||||||
|
default=None, metavar='FILENAME.JSON',
|
||||||
|
help='Optional output filename for the resulting JSON')
|
||||||
|
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
# use flattened jsonld
|
# use flattened jsonld
|
||||||
with open('../assets/js/rubenvandeven.jsonld', 'r') as fp:
|
with open(args.jsonld, 'r') as fp:
|
||||||
contents = json.load(fp)['@graph']
|
contents = json.load(fp)['@graph']
|
||||||
|
|
||||||
linksPerItem = {}
|
linksPerItem = {}
|
||||||
|
@ -17,6 +27,7 @@ def addCount(fromId, toId, weight):
|
||||||
linksPerItem[fromId][toId] += weight
|
linksPerItem[fromId][toId] += weight
|
||||||
|
|
||||||
def addLink(fromId, toId, weight = 1):
|
def addLink(fromId, toId, weight = 1):
|
||||||
|
# Add link both ways: from + to.
|
||||||
addCount(fromId, toId, weight)
|
addCount(fromId, toId, weight)
|
||||||
addCount(toId, fromId, weight)
|
addCount(toId, fromId, weight)
|
||||||
|
|
||||||
|
@ -49,7 +60,13 @@ targetMax = 1.5
|
||||||
values = pagerank.powerIteration(linksPerItem)
|
values = pagerank.powerIteration(linksPerItem)
|
||||||
|
|
||||||
normalised = targetMin + (values - min(values)) * (targetMax-targetMin)/max(values)
|
normalised = targetMin + (values - min(values)) * (targetMax-targetMin)/max(values)
|
||||||
print(json.dumps(dict(normalised)))
|
|
||||||
|
if args.output is None:
|
||||||
|
print(json.dumps(dict(normalised)))
|
||||||
|
else:
|
||||||
|
with open(args.output, 'w') as fp:
|
||||||
|
json.dump(dict(normalised), fp)
|
||||||
|
|
||||||
#
|
#
|
||||||
# factor = 1 / min(values)
|
# factor = 1 / min(values)
|
||||||
# print(factor)
|
# print(factor)
|
||||||
|
|
2932
rubenvandeven.jsonld
2932
rubenvandeven.jsonld
File diff suppressed because it is too large
Load Diff
|
@ -33,7 +33,7 @@ function getNodeYear(n){
|
||||||
return n['https://schema.org/datePublished'].substr(0,4);
|
return n['https://schema.org/datePublished'].substr(0,4);
|
||||||
}
|
}
|
||||||
if(typeof n['https://schema.org/startDate'] !== 'undefined') {
|
if(typeof n['https://schema.org/startDate'] !== 'undefined') {
|
||||||
console.log(n['https://schema.org/startDate']);
|
// console.log(n['https://schema.org/startDate']);
|
||||||
return n['https://schema.org/startDate'].substr(0,4);
|
return n['https://schema.org/startDate'].substr(0,4);
|
||||||
}
|
}
|
||||||
if(typeof n['https://schema.org/endDate'] !== 'undefined') {
|
if(typeof n['https://schema.org/endDate'] !== 'undefined') {
|
||||||
|
@ -114,10 +114,21 @@ var graph;
|
||||||
var nodeMap = {};
|
var nodeMap = {};
|
||||||
var linkMap = {};
|
var linkMap = {};
|
||||||
var breadcrumbs = {};
|
var breadcrumbs = {};
|
||||||
|
var weights = {};
|
||||||
|
|
||||||
// load the flattened jsonld file
|
// load the flattened jsonld file
|
||||||
const requestPromise = fetch('/assets/js/rubenvandeven.jsonld')
|
const requestPromise = fetch('/assets/js/rubenvandeven.jsonld').then(r => r.json());
|
||||||
.then(r => r.json())
|
const rankingPromise = fetch('/assets/js/ranking.json').then(r => r.json());
|
||||||
.then(data => {
|
|
||||||
|
Promise.all([requestPromise, rankingPromise])
|
||||||
|
.then(values => {
|
||||||
|
if(values[0].hasOwnProperty('@graph')) {
|
||||||
|
data = values[0];
|
||||||
|
weights = values[1];
|
||||||
|
} else {
|
||||||
|
data = values[1];
|
||||||
|
weights = values[0];
|
||||||
|
}
|
||||||
graph = jsonLdToGraph(data['@graph']);
|
graph = jsonLdToGraph(data['@graph']);
|
||||||
// create a map of nodes by id.
|
// create a map of nodes by id.
|
||||||
for(let i in graph.nodes) {
|
for(let i in graph.nodes) {
|
||||||
|
@ -169,8 +180,8 @@ var firstNodeId = "https://rubenvandeven.com/";
|
||||||
function getSizeForNode(node) {
|
function getSizeForNode(node) {
|
||||||
if(node.hasOwnProperty('https://schema.org/thumbnailUrl'))
|
if(node.hasOwnProperty('https://schema.org/thumbnailUrl'))
|
||||||
return nodeSize;
|
return nodeSize;
|
||||||
//if(weights[node['@id']])
|
if(weights[node['@id']])
|
||||||
// return nodeSize * weights[node['@id']];
|
return nodeSize * weights[node['@id']];
|
||||||
if(node['@id'] == firstNodeId)
|
if(node['@id'] == firstNodeId)
|
||||||
return nodeSize*1.2;
|
return nodeSize*1.2;
|
||||||
// everynode has at least one link. these should equal 1
|
// everynode has at least one link. these should equal 1
|
||||||
|
@ -442,7 +453,7 @@ var centerByType = function(types, updateHistory) {
|
||||||
deselectNode();
|
deselectNode();
|
||||||
if(updateHistory) {
|
if(updateHistory) {
|
||||||
// TODO: working
|
// TODO: working
|
||||||
console.log(types[0], getDisplayAttr(types[0]),types.map(getDisplayAttr));
|
// console.log(types[0], getDisplayAttr(types[0]),types.map(getDisplayAttr));
|
||||||
history.pushState({types: types}, "", "/@type/"+(types.map(getDisplayAttr).join("+")));
|
history.pushState({types: types}, "", "/@type/"+(types.map(getDisplayAttr).join("+")));
|
||||||
} else {
|
} else {
|
||||||
history.replaceState({types: types}, "", "/@type/"+(types.map(getDisplayAttr).join("+")));
|
history.replaceState({types: types}, "", "/@type/"+(types.map(getDisplayAttr).join("+")));
|
||||||
|
@ -614,11 +625,15 @@ var setDetails = function(nodeDatum, nodeIdx) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// relationships / links in <dl>
|
// relationships / links incomming <dl>
|
||||||
for(let attr in relDown) {
|
for(let attr in relDown) {
|
||||||
let attrEl = document.createElement("dt");
|
let attrEl = document.createElement("dt");
|
||||||
attrEl.innerHTML = getDisplayAttr(attr);
|
attrEl.innerHTML = getDisplayAttr(attr);
|
||||||
relsEl.appendChild(attrEl);
|
relsEl.appendChild(attrEl);
|
||||||
|
|
||||||
|
// highest pagerank first:
|
||||||
|
relDown[attr].sort((a,b) => weights[b['@id']] - weights[a['@id']]);
|
||||||
|
|
||||||
for(let i in relDown[attr]) {
|
for(let i in relDown[attr]) {
|
||||||
let rel = relDown[attr][i];
|
let rel = relDown[attr][i];
|
||||||
relsEl.appendChild(createRelationshipEl(rel));
|
relsEl.appendChild(createRelationshipEl(rel));
|
||||||
|
@ -637,10 +652,15 @@ var setDetails = function(nodeDatum, nodeIdx) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// relationships / links outgoing <dl>
|
||||||
for(let attr in relUp) {
|
for(let attr in relUp) {
|
||||||
let attrEl = document.createElement("dt");
|
let attrEl = document.createElement("dt");
|
||||||
attrEl.innerHTML = getDisplayAttr(attr);
|
attrEl.innerHTML = getDisplayAttr(attr);
|
||||||
relsEl.appendChild(attrEl);
|
relsEl.appendChild(attrEl);
|
||||||
|
|
||||||
|
// highest pagerank first:
|
||||||
|
relUp[attr].sort((a,b) => weights[b['@id']] - weights[a['@id']]);
|
||||||
|
|
||||||
for(let i in relUp[attr]) {
|
for(let i in relUp[attr]) {
|
||||||
let rel = relUp[attr][i];
|
let rel = relUp[attr][i];
|
||||||
relsEl.appendChild(createRelationshipEl(rel, i));
|
relsEl.appendChild(createRelationshipEl(rel, i));
|
||||||
|
|
|
@ -20,7 +20,8 @@ body{
|
||||||
// - NunitoSansRegular
|
// - NunitoSansRegular
|
||||||
font-weight: light;
|
font-weight: light;
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
background: black;
|
background:#222;
|
||||||
|
// background: radial-gradient(purple, darken(purple, 10%));
|
||||||
font-size: 12pt;
|
font-size: 12pt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -271,7 +272,8 @@ text{
|
||||||
|
|
||||||
.nodeType{
|
.nodeType{
|
||||||
font-size:80%;
|
font-size:80%;
|
||||||
text-transform: uppercase;
|
// text-transform: uppercase;
|
||||||
|
font-variant-caps: small-caps;
|
||||||
color: #999;
|
color: #999;
|
||||||
margin-left:10px;
|
margin-left:10px;
|
||||||
|
|
||||||
|
@ -329,6 +331,7 @@ text{
|
||||||
font-weight:bold;
|
font-weight:bold;
|
||||||
min-height:25px;
|
min-height:25px;
|
||||||
clear:both;
|
clear:both;
|
||||||
|
word-wrap: anywhere; // relations like "educationalCredentialAward" are crazily long..
|
||||||
}
|
}
|
||||||
dd{
|
dd{
|
||||||
min-height:30px;
|
min-height:30px;
|
||||||
|
|
Loading…
Reference in New Issue