PageRanking in gulpfile and hasCredential instead of attendee
This commit is contained in:
parent
4045f05121
commit
88ab656328
13 changed files with 1624 additions and 1462 deletions
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));
|
||||||
|
|
2
assets/js/portfolio.min.js
vendored
2
assets/js/portfolio.min.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
assets/js/ranking.json
Normal file
1
assets/js/ranking.json
Normal file
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)
|
||||||
|
|
2930
rubenvandeven.jsonld
2930
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 a new issue