skepticmystic / graph-analysis Goto Github PK
View Code? Open in Web Editor NEWAnalyse the structure of your Obsidian graph using various analysis techniques
License: GNU General Public License v3.0
Analyse the structure of your Obsidian graph using various analysis techniques
License: GNU General Public License v3.0
Pressing Cmd and hovering over a note does only show an empty popover.
Hello @SkepticMystic !!!!!
When using Graph Panel to open the Co-Citations Notes I missed a command to Open Vertically
and Open Horizontally
in the context menu (image below)
I know that mouse left click open the note and mouse right click open the note in a new pane but as I’m using Obsidian Tabs to stack notes in my screen, and would be great to have these new commands in the Graph Analysis Panel to integrate with Obsidian Tabs :)
Thanks for reading this :)
All connected nodes' neighbours should, by definition, have atleast 2 neighbours
Tried to search for NLP plugins in community library - have not found any.
I have created Index files with other plugin, but I want to exclude them from the analysis, so I want to exclude specific files or folders, is it possible?
One of the NLP options is a "Otsuka-Chiai" similarity between documents. What is this similarity? Is it the Ochiai coefficient (defined here) of the bags of words? I tried to find a reference to it in the NLP plugin code but I cant seem to find it.
Thanks
Like instead of seeing the most similar at the top of the table, it would be interesting to see ones that aren't that similar, or very low levels of link prediction?
Or another Non-EN language
Should probably filter out notes to co-cite with. Check code from @SkepticMystic to figure out how to implement this.
More details about his FR here #37
Hello @SkepticMystic !!!
I think I found a bug related to the feature Exclusion Tags
.
0.10.2
0.12.19
Assuming that you have the field with the tags #abc, #car
Step 1: open GA Settings
Step 2: delete the tags in the Exclusion Tags
field
-> the field is empty after deleting !!!!!
Step 3: close the GA Settings
Step 4: open GA settings again
You will see that the field is filled with #abc, #car
Have a great day!
I used the BoW algorithm together with the NLP plugin. Because it made switching notes slow, I disabled Graph Analysis. The lag only went away after a reload.
Currently, co-citations can only be other notes. Should linked attachments also be possible co-citations?
The plugin predicted a link. After actually putting the link in the note and pressing "refresh" the list gets expanded by several other notes, but the suggestions still include the note already linked.
In version 0.0.30 clicking on links in the plugin tab doesn't actually open the note.
The console says this:
utils.js:205 Uncaught (in promise) TypeError: event.getModifierState is not a function
at Object.openOrSwitch (eval at <anonymous> (app.js:1), <anonymous>:3066:45)
at Array.click_handler (eval at <anonymous> (app.js:1), <anonymous>:4320:44)
at HTMLTableCellElement.click_handler (eval at <anonymous> (app.js:1), <anonymous>:4010:35)
Table with "connections" is not showing after opening a sidebar with the plugin.
To make it visible I need everytime click on different tab "co-citationc, adamic adar etc" and then return back to an initial tab
I have watched your video on the basics of the graph analysis plugin. I have the plugin installed and activated. I have the NLP plug installed and activated. With the algorithm set to, e.g., “sentiment,” the results I saw displaying in the right sidebar do not show for me.
See https://en.wikipedia.org/wiki/Co-citation_Proximity_Analysis . This measure is particularly natural for documents that cite other documents, which is essentially what Obsidian does.
Use case: In my personal vault I mostly write in my daily notes. Then backlinks are not so useful: They are mostly daily notes! However, I would like to know for some concept, like a location or a person, with whom or what and in what context it was linked. CPA would give this.
I would propose to make the plugin look less cluttered by moving the algorithm setting and the "zero" and "infinity" checkboxes into the settings panel. One has to really make the sidebar big, in order not to spread the settings across several lines.
Also, in the link predictions panel the table header should not be shown when there's no note
.
Just an idea off the top of my head.
Rows in the result tables would have different colours based on their similarity score.
For example, rows with high similarities have a brighter, more saturated color -- but of course there's many possibilities) to map a number to a colour.
How could we nicely integrate this into the user's theme?
This will recur each time Obsidian is shut down and reopened as long as graph-analysis is reopened (eventually filling screen with bogus panes.
Obviously pretty minor in the overall scheme of things (one just has to close the bogus pane) but I thought I would document here in case it is trivial fix. (ie breadcrumb first !)
HI,
I am basing my query totally on the image that you have attached here. The backlinks panel allow shows the number of times a page has been mentioned in other pages. So, I don't see how the co-citation feature is any different.
Also, have you thought of integrating it with citations pulled from Zotero ?
Request as per discussion from the Discord channel:
While the regex exclusion is great, I think it would also be a good idea to be able to exclude specific notes by more simple ways like the usage of tags.
My concern would for example be when I want to exclude my structure notes/MoC from the lists in your plugin, since they tend to gather in the top of the lists and I don't want to see them as they are deliberately chosen links in the first place.
Great Plugin!
First of all, @SkepticMystic thank you for another amazing obsidian plugin. I accidentally discovered this when I plan to make my own NLP server. This saves me a lot of effort. Thanks for making my days.
Here I have a few suggestions for UI.
Hi Skeptic, thanks for the great plugin. Usability wise, it would be really helpful to able to export the co-citations table as a plain node/edge list or adjacency matrix (either for the local note or the global graph). This way, external graphing becomes possible im GraphViz, yEd, d3.force etc. using simple copy-paste.
(Or maybe even cooler, extracting hierarchies from flat notes by applying breadth first search or other spanning tree algorithms to the edge list)
Graph analysis version: 0.15.4
Obsidian version: 1.0.0
OS: Windows 10, fully updated
Case and issue:
I have a note open in Obsidian, containing several links. I run various algorithms in graph analysis. Whenever I click in the note (making the note the "active" window), the graph analysis results disappears, returning to the state it was before I ran the analysis.
Thanks for this POWERFUL plugins ! It's really helpful when I do my writing works.
I'm also interested in algorithms that this plugin uses (Jaccard Similarity, Jaccard Similarity... etc ). Is there any recommendation of book or video on this topic?
Thank you !
It would be useful to have the graph-analysis view refresh when the document focus changes.
Hello again @SkepticMystic !!!!!
I have been watching you guys about this plugin and I finally get a time to start using and WOW !!!!! This is amazing !!!!!! What a great ideia !!!!!!!
I’m just starting to understand all algorithms and reading all posts but I already know that this is a great plugin for me :)
I have two “tiny” FR + A discussion about a workflow that I will post to share with you.
This first FR is simple to explain: A new command in the Command Palette to Open/Close (toggle) the Graph Analysis Panel in Default Type using a hotkey !
It’s always a pleasure talking with you @SkepticMystic !!!!
I wish you a fantastic day!
So recently Live preview has enabled us to put by default, Linked mentions underneath the page. I was wondering whether it would be possible to put the graph analysis matches (limited by set number or pagination) to show under or above the Linked mentions area?
First off, thanks for the great plugin, it gets a lot of use here. Yesterday, I had a couple of panes open and one of them had an existing note titled "evergreen notes" open. In the other pane, I was reading a note and the Evergreen Notes note vanished without touching the keyboard or mouse. I found it in the trash and it had an added time-stamp "Evergreen Notes 10.38.38 AM.”
I checked the Obsidian Development Console and graph analysis was in there. It says "not found" for that note, but maybe GA checked it after it was deleted or somehow GA deleted it? The only other thing I can think of is Obsidian (native) sync deleted it. Might GA delete and add a time-stamp to the note title?
Here's the info from the console:
Uncaught (in promise) NotFoundGraphError: Graph.forEachInNeighbor: could not find the “Evergreen Notes.md” node in the graph.
at MyGraph.Wt.t. [as forEachInNeighbor] (graphology.umd.min.js:1:33933)
at MyGraph.eval (MyGraph.ts:187:12)
at Generator.next ()
at eval (tslib.es6.js:76:71)
at new Promise ()
at _awaiter (tslib.es6.js:72:12)
at Object.Co-Citations (MyGraph.ts:179:37)
at Object.$$self.$$.update (CoCitations.svelte:86:37)
at update (index.mjs:760:12)
at flush (index.mjs:732:13)
graphology.umd.min.js:1 Uncaught (in promise) NotFoundGraphError: Graph.forEachInNeighbor: could not find the " ⬜ Sort Now Roam Export/Evergreen Notes 10.38.38 AM.md" node in the graph.
at MyGraph.Wt.t. [as forEachInNeighbor] (graphology.umd.min.js:1:33933)
at MyGraph.eval (MyGraph.ts:187:12)
at Generator.next ()
at eval (tslib.es6.js:76:71)
at new Promise ()
at __awaiter (tslib.es6.js:72:12)
at Object.Co-Citations (MyGraph.ts:179:37)
at Object.$$self.$$.update (CoCitations.svelte:86:37)
at update (index.mjs:760:12)
at flush (index.mjs:732:13)
Also, this was listed under issues in console.
Audit usage of navigator.userAgent, navigator.appVersion, and navigator.platform
A page or script is accessing at least one of navigator.userAgent, navigator.appVersion, and navigator.platform. Starting in Chrome 101, the amount of information available in the User Agent string will be reduced.
To fix this issue, replace the usage of navigator.userAgent, navigator.appVersion, and navigator.platform with feature detection, progressive enhancement, or migrate to navigator.userAgentData.
Obsidian version: 0.12.19
graph-analysis version: 0.0.35
app.js:1 Plugin failure: graph-analysis Error: Cannot find module 'src/constants'
Require stack:
- electron/js2c/renderer_init
at Module._resolveFilename (internal/modules/cjs/loader.js:887)
at Function.o._resolveFilename (electron/js2c/renderer_init.js:33)
at Module._load (internal/modules/cjs/loader.js:732)
at Function.f._load (electron/js2c/asar_bundle.js:5)
at Function.o._load (electron/js2c/renderer_init.js:33)
at Module.require (internal/modules/cjs/loader.js:959)
at require (internal/modules/cjs/helpers.js:88)
at Be (app.js:1)
at a (app.js:1)
at anonymous (eval at <anonymous> (app.js:1), <anonymous>:9:17)
Hi, before I continue, I would just like to thank the amazing work that has gone into this plugin!
The issue I'm dealing with is whenever I create a new note; the index isn't updated. When I click the index refresh button, all notes listed have a value of '1' (It usually lists a different amount of notes depending on the note I'm on). When I close obsidian and open it again, then it seems to be working perfectly on that 'new' note. Then when I create a new note... Do you see where this is going?
Thanks in advance :)
If you enable graph analysis on minimal the scroll-bar is glitched.
Super awesome plug-in, my library has more than 10,000 notes, the new version of the plug-in no longer crashes, I am very happy!
Have a small suggestion, Would you consider adjusting the layout of the user panel? For example, like the longform plug-in, it is made into a tab instead of a drop-down menu. When switching the algorithm mode, the drop-down menu always needs a few extra points 1-2 times, and it is not intuitive
hi,
I very much like this plugin, which allow to see connections.
However, I rely heavily on dataview tables in my notes for certain tasks (e.g., grouping notes with specific tags)
As could be expected, the dynamic tables created by the dataview are not used for the graph analysis.
Is there a possibility/workaround to manage that, without freezing the dataview from the html ? (which I do, but when the note becomes "static")
thanks !
Thank you for your development work, I feel that this plugin is very helpful to me.
Unfortunately, the number of notes in my vault exceeds 10,000, and obsidian always crashes when using this plugin.
Hi,
I love the idea for this plugin. However, it's not working correctly for me. The majority of the time, no other notes show up in the different panes. I click refresh and nothing shows up. Even though I can see that there is either a tag or a page in the current page is also connected to other pages. But I don't see anything in co-citations. I have turned on the "include co-tags" option in the settings. Any suggestions?
Thanks!
Maybe shortcuts for each type of algo, or maybe a generic shortcut to cycle left and right, like if I click the shortcut it would switch from Overlap
to Clustering Coefficient
, in V 0.7.0 for example.
Similar to how we deal with headings, we can also take the structure of outlines into account. However, this conflicts with the weights given for sub-headings! How do we properly choose those weights?
Problem example:
# H11
[[A]]
## H12
[[B]]
# H12
- [[C]]
- [[D]]
# H13
[[E]]
[[F]]
What should the weights of the co-citations (A, B), (C, D) and (E, F) be?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.