Automatic Bi-directional linking + Rollups

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.

    1. 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.
    1. 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.

47 Likes

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?)).

Additional context

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)

8 Likes

@qualquertipo are you saying something like this https://www.notion.vip/notion-explained-synced-blocks/.

There is already a discussion regarding that https://community.anytype.io/t/-/1600. You can upvote that.

1 Like

@div3xi I saw that, but I’m not sure I understand. It seems to be specific to links/references?

I added an image to my post to further clarify the concept of Transclusion.

@div3xi I’m happy to have them merged if they are the same! Just good to have the word “transclusion” in the title.

To be honest, this request contains two different feature requests:

  • Transclusion
  • One / Two way relation between objects to perform roll up, drill down operations.

It would be better if the one / two way relation is made as a separate feature request. There’s this request:

https://community.anytype.io/t/-/1623

mayhe we could use that as a FR for 1-2-way relations and this one for transclusion?

@lynxlove Can you explain the second item? I’m not sure I understand what it means!

Edit: if it’s accessing the value of some property to be used somewhere, yes I agree it’s not transclusion (though it’s definitely related and important!).

Feel free to unmerge/remerge/move as needed! Let me know if I should do something.

@qualquertipo The second one is similar to the Notion’s rollup feature:

@lynxlove Thanks! Yes, that is somewhat different from Transclusion, though still related.

Is your feature request related to a problem? Please describe.

When I link two objects of the same type (e.g. “Person”) through a relation (e.g. “Is sibling of”), I have to fill the relation in both sides: A is sibling of B, B is sibling of A.

Describe the solution you’d like

When a relation link two objects of the same type, this relation should be automatically made bidirectional.

Describe alternatives you’ve considered

Filling the relation in both objects.

3 Likes

The second point in this request talks about bi-directional linking: https://community.anytype.io/d/875-transclusion-aka-portals-to-other-objects-blocks-etc

1 Like

Hello! — sorry if this is a duplicate!

The Problem
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).

The Solution
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:
beXCEdl0zT

Ideally, this would work the same way in Anytype.

Alternatives
Manually linking the objects together:
6FjH5D2jIu

Additional Context
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!

7 Likes
  • Backlinks are listed in the roadmap

There are also few topics requesting the same

Thank you, sorry for the duplicate!

@Oshyan, can you please merge this topic with one the ones mentioned above?

1 Like

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. :wink: Flagging it will bring it to the attention of all mods and get it handled sooner. :slight_smile:

1 Like

Oh sorry, thank you for letting me know!

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.

Symbiotic sets.

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.

1 Like

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.

Is your feature request related to a problem? Please describe.

I want a link between 2 sets and columns which “extract” some informations in a set from another set

Describe the solution you’d like

A relation which link to another set and relations which can extract informations from the another set

Describe alternatives you’ve considered

:woman_shrugging:

Additional context

12 Likes