MediaWiki:Gadget-GlobalGlossaryGraph.js: Difference between revisions

Jump to navigation Jump to search
AdminIsidore (talk | contribs)
Created page with "$(function() { 'use strict'; mw.loader.using(['ext.gadget.d3', 'mediawiki.api'], function() { $('.global-glossary-graph').each(function() { var $container = $(this); new mw.Api().get({ action: 'askargs', conditions: 'Category:Glossary Entries', printouts: 'Glossary-Term|Glossary-Definition', parameters: 'limit=100', // Increased limit for global graph f..."
 
AdminIsidore (talk | contribs)
No edit summary
 
Line 121: Line 121:
     });
     });
});
});
```
- **Details**:
  - Uses `askargs` to fetch all glossary entries (`Category:Glossary Entries`) with `Glossary-Term` and `Glossary-Definition`.
  - Creates nodes for each term (using `Glossary-Term` or page title without namespace).
  - Creates edges when a term’s `Glossary-Definition` mentions another term.
  - Larger canvas (800x600) for the global graph.
  - Maintains IBM aesthetic (green `#00FF00` lines, `#00CC00` nodes, black background, green labels in `IBMPlexMono` or `Courier New`).
  - Labels show short term names (e.g., “Dictum”); tooltips show full titles (e.g., “Lingua:Dictum”).
  - Nodes are draggable for interactivity.
- Save and purge: https://www.ooda.wiki/wiki/MediaWiki:Gadget-GlobalGlossaryGraph.js?action=purge.
#### Step 3: Enable the Gadget
1. **Add to Gadgets Definition**:
  Edit https://www.ooda.wiki/wiki/MediaWiki:Gadgets-definition:
  ```
  * GlossaryGraph[ResourceLoader|dependencies=ext.gadget.d3,mediawiki.api]|GlossaryGraph.js
  * GlobalGlossaryGraph[ResourceLoader|dependencies=ext.gadget.d3,mediawiki.api]|GlobalGlossaryGraph.js
  ```
  - Save and purge: https://www.ooda.wiki/wiki/MediaWiki:Gadgets-definition?action=purge.
  - Enable the `GlobalGlossaryGraph` gadget in your user preferences (https://www.ooda.wiki/wiki/Special:Preferences#mw-prefsection-gadgets).
2. **Verify Styling**:
  Ensure https://www.ooda.wiki/wiki/MediaWiki:Common.css includes:
  ```css
  @font-face {
      font-family: "IBMPlexMono";
      src: url("https://www.ooda.wiki/resources/assets/fonts/IBMPlexMono-Regular.woff2") format("woff2");
      font-weight: normal;
      font-style: normal;
  }
  .global-glossary-graph,
  .glossary-graph,
  .documentation,
  .documentation-metadata,
  .documentation-heading,
  .documentation-toolbar,
  .documentation h2,
  .documentation h3,
  .documentation h4 {
      font-family: "IBMPlexMono", "Courier New", monospace;
  }
  ```
  - Save and purge: https://www.ooda.wiki/wiki/MediaWiki:Common.css?action=purge.
#### Step 4: Test the Global Graph
1. **Visit https://www.ooda.wiki/wiki/Lingua:Global_Glossary_Graph**:
  - Should show a graph with nodes for all 26 glossary terms (e.g., “Dictum”, “TestTerm”, “Scriptum”, “Artifex”), connected by edges where one term’s `Glossary-Definition` mentions another.
  - Nodes should have green labels (`#00FF00`), green circles (`#00CC00`), green lines (`#00FF00`), black background, and be draggable with tooltips.
2. **Identify Gaps**:
  - Isolated nodes (no edges) indicate terms not mentioned in any `Glossary-Definition` (e.g., “TestTerm”).
  - Add mentions to definitions (e.g., add “TestTerm” to `Lingua:Dictum`’s `Glossary-Definition`) to create connections.
3. **Browser Console**:
  - Open DevTools (F12) > Console on the page.
  - Confirm “SMW API response” shows data (similar to previous `curl` output).
  - Check for errors.
4. **Debug Log**:
  ```bash
  cat /var/www/mediawiki/debug.log | tail -n 50
  ```
#### Step 5: Clear Cache (If Needed)
Only run if the graph doesn’t render:
```bash
php maintenance/run.php runJobs
php maintenance/run.php refreshLinks
```
Purge:
- https://www.ooda.wiki/wiki/Lingua:Global_Glossary_Graph?action=purge
- https://www.ooda.wiki/wiki/MediaWiki:Gadget-GlobalGlossaryGraph.js?action=purge
- https://www.ooda.wiki/wiki/Template:GlossaryEntry?action=purge
#### Step 6: Analyze Gaps
- **Isolated Nodes**: Terms like “TestTerm” with no incoming edges (no terms mention it) indicate missing definitions or connections.
- **Sparse Connections**: If few edges appear, review `Glossary-Definition` content in https://www.ooda.wiki/wiki/Category:Glossary_Entries to add more term mentions.
- Example: To connect `TestTerm`, edit https://www.ooda.wiki/wiki/Lingua:Dictum:
  ```wikitext
  {{GlossaryEntry
  |Term=Dictum
  |Definition=Dictum is the smallest unit of Actus within a Scriptum, enabling Fabricatio by an Artifex in AetherOS’s flux. Mentions TestTerm.
  }}
  ```
  - Purge and retest the global graph.
### Next Steps
- Create https://www.ooda.wiki/wiki/Lingua:Global_Glossary_Graph.
- Create and enable `MediaWiki:Gadget-GlobalGlossaryGraph.js`.
- Test the global graph.
- Share:
  - Console output (“SMW API response” or errors).
  - Debug log: `cat /var/www/mediawiki/debug.log | tail -n 50`.
  - Screenshot of the global graph, noting any isolated nodes or missing connections.
  - List of terms you want to prioritize for adding definitions.
This should provide a global graph to visualize all glossary connections and identify gaps. Let me know the results or any tweaks (e.g., larger canvas, different styling)!