)]}'
{
  "log": [
    {
      "commit": "565274ef29a94438e63dffac72ac74c24a534c40",
      "tree": "bab44688a0ecfbc487dc94cf7e3f85d65604e5fa",
      "parents": [
        "5b8aaf7556e4c5f677d51601c3f1c15e90557516"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Sep 06 13:17:17 2026 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Sep 06 13:17:17 2026 +0200"
      },
      "message": "Search the embedding space with vector expressions\n\n\"König - Mann + Frau\" now looks for the neighbours of\nvec(König) - vec(Mann) + vec(Frau) instead of the neighbours of a single\nword. A \u0027+\u0027 or \u0027-\u0027 is an operator only at the beginning of a token, so\nhyphenated words like \"Nord-Süd-Dialog\" stay searchable, and blank\nseparated words keep entering the query with a \u0027+\u0027, as before.\n\n_get_neighbours() already had the branch for it, but nothing ever filled\nwl-\u003esep: the wordlist came from malloc() and the signs were read out of\nuninitialised memory, so a multi word query subtracted operands at\nrandom. It is filled now, and its indexing corrected - sep[b] is the sign\nof operand b, not sep[b-1].\n\nThe predictive collocators answer for the whole query as well.\ngetCollocators() read the input weights of wl-\u003ewordi[0], the first\noperand, and nothing said so: \"Haus Auto\" answered with the collocators\nof Haus, \"Auto Haus\" with those of Auto. The score of a candidate is\nsigmoid(q . syn1neg[collocate, position]), linear in q before the\nsigmoid, so q can be the signed combination the paradigmatic side\nsearches around rather than the vector of one word.\n\nThe terms are averaged rather than summed. The sigmoid is informative\nover a narrow range only - the strongest collocates of a single word\nreach 0.994 to 0.997 on dereko-2026-ii, against the 0.9975 that MAX_EXP\nallows - so a plain sum would push them into saturation. Dividing by the\nnumber of terms keeps every query in the range MIN_RESP and the auto\nfocus are calibrated for, and leaves one word exactly as it was, divisor\none. A balanced analogy is one term as well, +1 -1 +1.\n\nThose tails now saturate instead of being dropped. Activations outside\n±MAX_EXP used to skip the collocate entirely, removing the strongest ones\nfrom the list and from the position and target sums.\n\nThe count based collocators cannot follow: they are looked up per node in\nthe co-occurrence database. They used to be fetched for the first\nparadigmatic neighbour, i.e. for the word nearest to the query vector,\nwhich for an expression is not what was asked for. The interface says so\nin place of that table now, and get_neighbours() reports the number of\noperands so it can tell the two cases apart.\n\nOperands outside the vocabulary are named above the result instead of\nbeing dropped in silence. The vocabulary lookup only recognised a miss at\nthe very end of the vocabulary, so in a merged model a missing word\nresolved to whatever sits at the boundary between the two vocabularies;\nit returns -1 in both halves now.\n\nTwo more things the tokeniser uncovered. The best array was sized for\n10 * max(N, 200) entries but sorted over N * para_threads, which fits\nonly as long as the syntagmatic threads take half of them - it is sized\nfor num_threads slices now. And its unfilled slots kept wordi \u003d\u003d 0 from\nthe memset, which the result loop emitted as vocab[-1 * max_w] once a\nthread found fewer candidates than were asked for; slots start at -1 and\nthe loop stops there.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: Ia91727eb669d73fc055adf652500464b8a743795\n"
    },
    {
      "commit": "5b8aaf7556e4c5f677d51601c3f1c15e90557516",
      "tree": "5f0af7ab733f9d250efe610938078a4bda8d6ea3",
      "parents": [
        "f5abdcd3a5ad1e1ca9361fa1989d2f7cc9430c57"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Sep 04 19:21:22 2026 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Sep 04 19:21:22 2026 +0200"
      },
      "message": "Info tab: show the changes, age out old downtimes, link GitHub\n\nThree things in the info tab.\n\nThe note about the changed scores sat inside the downtime list, where\nnobody could read it: insertCalendarEvents() calls replaceChildren() on\nthat list and fills it from the iCal feed, so any static content there is\nonly a placeholder until the calendar loads. It is now a section of its\nown, above the downtimes, and the thanks to Tim Feldmüller is dropped\nfrom it again - he belongs in the Readme and the changelog, not in a\nnotice to users.\n\nDowntimes older than a week are no longer listed. The maxAgeDays\nparameter of insertCalendarEvents() defaulted to 100, which kept\nmaintenance windows from months ago on the page.\n\nThe dd elements of that list had no indent of their own and fell back to\nthe browser default of 40px, which is inside the 21ex that the floated dt\noccupies, so their text wrapped around the float instead of starting\nafter it.\n\nThe source code links point to the published GitHub repositories now,\nand collocatordb is listed alongside dereko2vec. derekovecs itself has no\nGitHub repository yet, so its link still goes to gitiles.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I178cad2586db0ef07f6e76671c3c35e050b1bf60\n"
    },
    {
      "commit": "f5abdcd3a5ad1e1ca9361fa1989d2f7cc9430c57",
      "tree": "d426d60afa9a64765eb219eec672fdda2873e9a0",
      "parents": [
        "92507656d27d6413f59c0d784a117f907ec2d7eb"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Sep 04 18:44:21 2026 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Sep 04 18:44:21 2026 +0200"
      },
      "message": "Use tabular figures for the numbers in the result tables\n\nThe scores are compared column by column, which only works when the\ndigits line up. Fira Sans and Fira Sans Condensed set their digits\nproportionally by default, where the widths differ by almost a third,\nfrom 433 to 558 units for Fira Sans, so the columns came out ragged.\n\nBoth fonts carry tabular figures in their tnum feature, also in the\nsubsets Google Fonts serves, so no other font is needed:\nfont-variant-numeric: tabular-nums is enough, with font-feature-settings\nas the fallback for browsers that do not know it.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I13ddaa2a2d5ea7282fc53112441249f83f3bc18f\n"
    },
    {
      "commit": "5c0b0e1f8a6e6290d5f5719d6a32335c4f49720e",
      "tree": "4cb23facd6335ccb832f987add2d6def09a97c7b",
      "parents": [
        "b37bd84fef2e5f0a6786144a7d36ee8c0cd3b580"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Apr 12 14:42:17 2024 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Apr 12 14:42:17 2024 +0200"
      },
      "message": "CSS: align dt and dd style with p\n\nChange-Id: Ieb2a9e5036bb6944e305ab0adda4bfaf14d758cd\n"
    },
    {
      "commit": "dd8cfbeffdd66a5e8651ecc2bb79ef5c5c8007ca",
      "tree": "45549053fa4c756b7b965684d09922edf495a6df",
      "parents": [
        "6c4f1372c68b6bc2ea0f04016b785fdb8e708438"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Apr 05 11:00:12 2024 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Apr 05 11:00:12 2024 +0200"
      },
      "message": "Improve announcement indention\n\nChange-Id: I752c009cde1a19168cc65d00569446f2ad02f270\n"
    },
    {
      "commit": "898e548588d11c2e2142eb8c02c8b80a4a97417e",
      "tree": "b55aa8bd178e7f28b23d8e907aa89e6a610652d2",
      "parents": [
        "03e1bdc40e99bf96b3b22fae81b3c6e1014f6e55"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Feb 20 15:03:07 2024 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Feb 20 15:12:06 2024 +0100"
      },
      "message": "Add export buttons to data tables\n\nChange-Id: Ie05c400b0e19107148474a8f8735e83d92235107\n"
    },
    {
      "commit": "a546b1e3fbf25ec59f77b2d46c4146d183c4cd53",
      "tree": "029e2a9cfc6c56e0fc1f9945e2bcaaf1832a2db1",
      "parents": [
        "3576c62c5b5ef6998bf0799f70b3e419bfded41b"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Nov 05 08:52:37 2023 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Nov 05 08:52:37 2023 +0100"
      },
      "message": "Use tabular nums in dd/dt\n\nChange-Id: I3a6d820e4d43ca2baf26d61dec23c49f27fc2ebf\n"
    },
    {
      "commit": "9ae184ce2b3ad55d7465add6fdf030b56e64acd6",
      "tree": "fb7a263f080097d06fd180150a760dac85f00fa2",
      "parents": [
        "ac4640204014bfe5684a24260127935408ad99bf"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sat Nov 04 18:21:54 2023 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sat Nov 04 18:23:03 2023 +0100"
      },
      "message": "Insert scheduled downtime infos from cloud calendar\n\nChange-Id: I8e4524126c08c4b89298e29b4c17588ef3997b71\n"
    },
    {
      "commit": "4e561c753a8d2b55ca85c2cbecb20d415a1ce856",
      "tree": "31f956515abc8ddaa2136a9be38020e6e12adf8a",
      "parents": [
        "e8e3ded355138cce0688352dac17162300418bc9"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Wed Feb 10 16:53:07 2021 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Wed Feb 10 16:53:07 2021 +0100"
      },
      "message": "derekovecs: update to to new corporate design\n"
    },
    {
      "commit": "7b0e0b2a50867feea664eab3b29d2dd7d223108a",
      "tree": "3ec7d7ea7b886dc61abfd33002b66886bb4fc0ce",
      "parents": [
        "bb0f3fc3886063dab1b5439f51e84c2cbcf259a9"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Dec 06 15:27:20 2019 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Dec 06 15:27:20 2019 +0100"
      },
      "message": "derekovecs: usa smaller bread fonts and more line height\n"
    },
    {
      "commit": "d6dfdf080f576d170092530aabc1afa6f5927c85",
      "tree": "1d78f0ebd3aabbe36dae25419433eb34a90b0b4c",
      "parents": [
        "6d7462c4903e4b44086c83eaf273dba8f6e2cebf"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Dec 06 09:53:34 2019 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Dec 06 09:53:34 2019 +0100"
      },
      "message": "derekovecs: replace former footer with about tab including references\n"
    },
    {
      "commit": "6d7462c4903e4b44086c83eaf273dba8f6e2cebf",
      "tree": "3b44939f18ddab4b4a033e2510604db44a4e62f6",
      "parents": [
        "9510451f272a1cacd176932b8b8baea40aee26a9"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Dec 05 10:16:38 2019 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Dec 05 10:16:38 2019 +0100"
      },
      "message": "derekovecs: add IDS-logo\n"
    },
    {
      "commit": "9510451f272a1cacd176932b8b8baea40aee26a9",
      "tree": "3c481e3f6c5148c1ba1f5b81d0a1e7084760c35e",
      "parents": [
        "cddc8488ba9641bdc12101e2e9065fb89848eb83"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Dec 05 10:13:05 2019 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Dec 05 10:13:05 2019 +0100"
      },
      "message": "derekovecs: add obvious parts of German localization\n"
    },
    {
      "commit": "223fd28a4a9950601767e31db4d9bc8a9f471659",
      "tree": "3c338e1ec1d479d1ae47aa138e9686215ee9793d",
      "parents": [
        "d7760b4d53069026fcb99397a096795a9490c6aa"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Feb 21 09:02:31 2019 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Feb 21 09:02:31 2019 +0100"
      },
      "message": "derekovecs: words from merged/special corpus are now blue\n"
    },
    {
      "commit": "4750d87924557e3a152bc5db0f00a55969ce6b38",
      "tree": "5428b05fce85fb44f3cb6b612c184f756a61c372",
      "parents": [
        "1d96a08a75f4708377787a5cc544878132c43aca"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Wed Feb 20 09:43:53 2019 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Wed Feb 20 09:43:53 2019 +0100"
      },
      "message": "derekovecs: som: make special and reference corpus distictions visible\n"
    },
    {
      "commit": "4df4e107a6a23d5b61c3aaf4971f5f620bdf45b0",
      "tree": "edf2f89e3b4bb295e92813d93929bab8a7b38dde",
      "parents": [
        "c053d9710ff95b44b50e76d3a72aeef1b2a8afc5"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Jan 10 10:43:46 2019 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Jan 10 10:43:46 2019 +0100"
      },
      "message": "derekovecs: make the target words more easily visible: let them blink\n"
    },
    {
      "commit": "c053d9710ff95b44b50e76d3a72aeef1b2a8afc5",
      "tree": "a9d894242a89cc0f2dc0ff404a30f80cc79dfb7f",
      "parents": [
        "ee894d599ffb19e4fe6adf16f530400fbd94d3cb"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Jan 10 10:41:51 2019 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Jan 10 10:42:39 2019 +0100"
      },
      "message": "derekovecs: add corpus name(s) to heading and page title\n"
    },
    {
      "commit": "2e2e4db35f1450cfca05509e85ee7884405440a8",
      "tree": "c9ebe2e2e534022d24b6ef8962fdbf6ad2c19090",
      "parents": [
        "e5568a0056f12f232b7a27e31fec98f0f34fc165"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Dec 21 15:07:37 2018 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Dec 21 15:07:37 2018 +0100"
      },
      "message": "w2v-server: show merged vocabulary in with class \"merged\" (green)\n"
    },
    {
      "commit": "b347c9ae0ad423d015b88f48362ca739af617d69",
      "tree": "914b63cedddd7f139d32f96b35984241e7c97da2",
      "parents": [
        "384c913503f0ceeece4d85ecb754cdfc1b9ddc2f"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Mar 19 16:47:10 2018 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Mar 19 16:47:10 2018 +0100"
      },
      "message": "derekovecs: middle click on related words launches KoRAP\n"
    },
    {
      "commit": "a927057bf466f35afe102ce7ec992884cd401dd9",
      "tree": "680422206ac38162bfea249004550bbc6e5c3aa1",
      "parents": [
        "6c8b59a648f4529985e011f48c988209d7ac2d26"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sat Mar 17 15:17:07 2018 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sat Mar 17 15:17:07 2018 +0100"
      },
      "message": "w2v-server: put css in a separate file\n"
    }
  ]
}
