Is your feature request related to a problem? Please describe.
In Notion there is a way to make two-way/synced relations. In Anytype there is currently no way to reflect a two-way relation directly in sets expect for having a normal-relation and then looking into the navigation dialog of an object to find out which relation is linking to this object of the same type. But I think this can be a bit clunky if you want to use some sort of two-way relation.
Describe the solution you’d like
I can think of two solutions to implement this.
Make a new relation type “Filtered Object Aggregator” / “Rollup” or something simmilar. With this relation type it is possible to filter objects that link to this object (and maybe other objects to) in various ways. This way you could make a bunch of custom ways to filter objects that can then be displayed as relations.
Make a new relation type “Synced Object Relation” / “Two-way Object Relation” / “Bidirectional Object Relation” that works pretty much exactly the same as in Notion. When you create a Relation like that there are actually two relations created that are synced or linked. If you add Object B to relation C of Object A, object A shows up in relation D of object B. Relation C and D are linked. Objects A and B are the same type which has both relations. This should also work when you have the same setup but adding object A to relation D of object B. Then Object B is added to relation C ob object A. So it should basically work both ways.
Maybe both ways can be implemented. The advantage of having the second one is that you can edit either object to have it reflected in the other one.
I’d like to be able to transclude Objects, Sets and Blocks within each other.
Preferably the transcluded content should be editable (with changes affecting the original content and all other instances).
Ideally there would be no limits in terms of what can be transcluded where (in that case, Objects, Sets, Blocks and Relation would be one in the same, as I suggest [here](Everything is a... Block?)).
For those who don’t know, Transclusion is an important feature in a Personal Knowledge Base. This is when a certain content is shown elsewhere, via a sort of “portal”. One example of using transclusion is if you have some recurring content that you want to show in several places, without needing to maintain multiple copies. To achieve that, you would (1) create the desired content, (2) add/reference it as a transclusion in any places you’d like, then (3) whenever it needs to be updated, you can just edit it anywhere it’s displayed - all instances (as well as the original) should update immediately.
Edit: here’s how Remnote does it by default:
(though I personally use CSS to hide that breadcrumb, and make the blue border much thinner)
It does not make sense for an item (#1) to be related (linked) to another item (#2), without the other item (#2) being related to the first item (#1).
In all other applications I’ve used, item linking is bidirectional: when one item is linked to another, the other item is also automatically linked to the first.
This is what the process looks like in ClickUp:
Ideally, this would work the same way in Anytype.
Manually linking the objects together:
The ability to manually remove a linked object (meaning it would only be a one-way link) might also be preferable? — but I cannot think of a case where this would (personally) be used.
Manually removing a linked object would be more ideal than manually adding a linked object.
Thank you for reading, hope you have an amazing day!
Merged! In the future please just use the Flag function on a topic if you want to bring it to moderator attention. I’m not actually the most regular admin here, I just help out sometimes. Flagging it will bring it to the attention of all mods and get it handled sooner.
I also am looking for this feature and am posting to show support, but additionally. I believe there are further use-cases for bidirecitonal relations within sets. I, unfortunately, posted this in the discord before I discovered this, not quite doing my duty, but here’s is my explanation from there:
–does anyone know if there’s a way to make bidirectional relations?
What I mean is if I make a relation from Object 1 to Object 2, that Object 2 will be related to Object 1 as well without additional input.
At the moment I’ve been relating twice, once for each direction. Is this something that can be done automatically? And if not, is this on the roadmap? It would be especially useful in sets I would think.
To clarify with context, I’m looking at two sets, one for staff members, and one devices.
The staff list has a property for their current device, where I relate their specific device ID.
The device list has the device ID’s and a property for relating the current staff member.
My goal is to be able to change the device id in the staff set, and have that change show in the other device set. i.e. If John Smith was using laptop 1, and I change his device to laptop 2, I would see on the device list that laptop 1 is unassigned, and laptop 2’s current user is John.
The alternative to this is manually inputting changes on either set.
I believe this addition would be a natural extension to the Set function making it all the richer with little potential to over-encumber the system with too many features.
I’ve been thinking about this, and I’m wondering if backlinks would solve this entirely. We don’t exactly know the intended implementation of that feature yet, and with the trend of an out of the box look at data that Anytype has taken so far, maybe we could use a backlink within a relation to make that bridge between objects or objects organized in sets.
A backlink housed within a relation. If that would work, would this be a non-issue? Let me know what you all think.
Maybe If a backlink is created in a relation, it could that relation to the target object containing the source object.