Coder Social home page Coder Social logo

skepticmystic / graph-analysis Goto Github PK

View Code? Open in Web Editor NEW
374.0 374.0 18.0 31.46 MB

Analyse the structure of your Obsidian graph using various analysis techniques

License: GNU General Public License v3.0

TypeScript 1.58% JavaScript 97.04% CSS 0.06% Svelte 1.32%
graph-algorithms obsidian-plugin

graph-analysis's People

Contributors

hemile avatar ooker777 avatar skepticmystic avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

graph-analysis's Issues

[Feature Request] Open Vertically and Open Horizontally Commands in the Graph Analysis Panel

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)

0

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 :)

  • The real workflow can be read in #33 !

Thanks for reading this :)

Excluding specific files or folders

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?

Support for defining alias field (Feature request)

Similar to the implementation in your breadcrumbs plugin, the ability to define the alias field.

This will add improved compatibility with logseq graph opened inside obsidian. [Helpful for those who use both obsidian and logseq together on the same folder]
image

Define/cite Otsuka-Chiai similarity

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

Reverse the direction of the similarities?

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?

[Bug] Exclusion Tags: Cannot Delete

Hello @SkepticMystic !!!

I think I found a bug related to the feature Exclusion Tags.

  • Version 0.10.2
  • Obsidian 0.12.19

Steps

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!

Disabling not unloading properly?

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.

Suggested link doesn't disappear after linking

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.

Can't click on links in tab

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

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

Results do not display

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.

Feature request: Implement Co-citation Proximity Analysis

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.

Design improvements

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
Bildschirmfoto 2021-11-02 um 13 49 32
.

Colorcoding of similarity scores

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?

  • Can we acess the theme's CSS variables? Are there some standard variables (like accent color)? Or could we support commonly used themes?
  • Some agnostic method, e.g. setting only the opacity.

Bug: If graph-analysis is open when Obsidian shut down a blank paneis added when Obsidian reopened

Screenshot of Obsidian (2021-09-09, 7-01-28 PM)

after closing obsidian and reopening the blank pane is shown to the left of the graph-analysis pane

Screenshot of Obsidian (2021-09-09, 7-02-15 PM)

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 !)

Tags to exclude specific notes

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!

The current UI doesn't shows my current algorithm

BIG THANKS

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.

Suggestions

Here I have a few suggestions for UI.

CleanShot 2021-12-21 at 11 45 29

  1. There should be a badge right here showing my current algorithm.
  2. Some algo that I don't use so often, the setting page should have an option to let me disable it (hide the options).
  3. Some people might don't feel like pressing "shift" and scroll to see the whole list of options. I need some time to get used to it so I might expect some people might want the old drop-down list back.
  4. In breadcrumbs, the index can be autorefresh in some fixed time, this would be useful in graph-analysis too.

[FR] Graph export

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)

Index disappears when clicking in document

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.

Any recommendation of reading materials on the algorithms ?

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 !

[Feature Request] New Command Open Graph Analysis in Default Type (toggle)

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!

Displaying matches under Linked mentions?

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?

data loss from graph analysis possible?

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.

Plugin fails to load: Cannot find module 'src/constants'

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)

Index not refreshing on new notes

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 :)

Would you consider adjusting the layout of the user panel?

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

The design of the tab looks like this:
image

pull data from dataview

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 !

No recommendations are shown for most pages

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!

Possible Shortcuts for Different Algorithms?

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.

Make Co-Citations take outliner structure into account

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?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.