被リンク数の分布
https://gyazo.com/a12caa30e403fa0d31c326f7c42c5c71
リンクだけ存在する、内容がまだ書かれていないページも含む https://gyazo.com/72f8b59a6b5d433909ef465676083af1
リンク数が凄そうと思って勝手にプロットしました
これ横軸はなんですか?
数字を出してみた
なるほど。
無理やり付けるとしたら、ページタイトルを目盛り毎に付ける?
takker.icon
横軸:被リンク数
rangeは適当に設定する
縦軸を:そのrangeに含まれるページ数
graphの形で色々わかる
予想
階層構造的に作ると、被リンク数が極端に少なくなる
ハッシュタグをたくさん使うと、右端に山ができる
縦横が対数軸になってるhistogramを作って直線が引ければべき乗分布らしい
横軸は?
以下のグラフは手抜きで、対数っぽく範囲を切って度数分布を描いただけです……
https://gyazo.com/b54dd799aa18c6bd8a9129057f33a35e
まだ全体で400ページ程度しかないのに多いような
リンクだけあって内容がまだ書かれていないページも計上しています
https://gyazo.com/4aa7616d855347b6082542772d1e76f6
適当なグラフだけど、どちらもべき乗分布になっている
ちゃんとしたヒストグラムをプロッターで書いたらきれいな直線になりそう
できた
仮説
単語リンクが多いとスケールフリーネットワークになる
よく話される話題に登場する単語へのリンクが集中する
Scrapboxだと関連ページリストで話題が繋がって便利なので単語リンクが頻繁に行われる ページ間リンクが主体だと密結合のネットワークになる
本質的に関連するページの間だけつながっている状態
密結合のままネットワークが成長していく?
検証
被リンク数の計算方法
JSONをゴニョゴニョすればできると思う
後で書く
これオモシロイ
自分のプロジェクトにも出してみたい
各ページの被リンク数をCSVで出力するやつ
code:csv.js
(async () => {
const pages = [];
let followingId = null;
do {
const param = followingId === null ? '' : ?followingId=${followingId};
const res = await fetch(
https://scrapbox.io/api/pages/${scrapbox.Project.name}/search/titles${param}
);
followingId = res.headers.get('X-Following-Id');
pages.push(...(await res.json()));
} while (followingId);
const counter = {};
for (const p of pages) {
for (const l of p.links) {
if (counterl === undefined) { }
}
}
const numLinks = Object.entries(counter);
numLinks.sort((a, b) => b1 - a1); console.log(numLinks.map((p) => ${p[0]},${p[1]}).join('\n'));
})();
増井俊之.icon
あらゆる複雑なものは両対数グラフにプロットすると直線になるものです Scrapboxだからどうこう、ということは関係ないと思います