I'm so confused about sets and relations

So i made a new object in the graph, made it a set, and set the type to Humans. i added a few people to this set, people that matter to me.
i then went to my homepage, and added that set to the end of the homepage.
i then, separately, created a book. i gave the book an author. what i did not expect was the list of people to suddenly get a new entry.
the author was now in the list of people, somehow.
this makes no sense to me.
does a set always get all entries of that type added to it? the book also got added to the list of books in the default book set, but only as an entry in the book. it did not get a relation to the book list, and the book still sits on its own in the graph.
how do i make a set/list of specific things?
i dont want all things of that type added to the set.
also, when making a thing that does get added to a set, how do i link it to that set?
my book is in the list of books, but isnt linked to it.
my list of people gets all people added to it.
i am very confused. help??

also, how do i get a list/ set to appear as the whole list when adding it to a page? adding my list of people to the homepage doesnt show the whole list, only the name of the list. how do i get it to appear like the list of books, from the default homepage? that list is a set the same as mine, but mine appears only as the name of the list, while the list of books appears as the whole list. i am very lost.

I am now trying to link the book manually to the list of books, but the list doesnt seem to exist??? picture for reference:

I tried linking it the other way around, and it wouldnt let me add it directly to the book listing in the list of books:

But it would let me link it to the list itself:

Im just confused because if it wont let me link it to the list item, it must know the list item is the book im trying to link, but if it knows that, why doesnt it link it itself?

is this a bug/ list of bugs? or is this a feature? because if its a feature, i dont understand it

Welcome to the community. Hope you don’t find it too complicated to start using Anytype.
Check out the Anytype’s terminology and concepts.

In short, set is like a query. If you have books as object type, it is possible to ask the program to get you a list of all books. It won’t show on graph view though…

If you use collection instead of set, what you couldn’t do in your demonstration will be achievable.

1 Like

is that a bug then? if its a list that automatically filled with objects of that type, why doesnt it link to them? it seems counter-intuitive to me. a list that fills itself based on things should link to those things. why would you want a list of things that doesnt link to those things?

and doesnt a collection not have limits on duplicates? surely a set makes sense when listing people, since a list of people shouldnt contain the same person twice. ditto for books…?

The author is an object of type Human, so will automatically get added to a Set of Humans (like the one you created)

Yes. A Set of a Type includes all objects of that type. The way you restrict what entries appear in your view of the set is by creating a filter for that set. For example, you could create a Tag “Author” (or make Author a Relation), add it to each author you create and then filter the Human set on that.

So, you have a Set of Humans, some of which are authors. You can filter that view for people who aren’t authors, and create another view filtered for people who are authors. And so on for other types of people you know (colleagues, family, friends, people you never want to see again (!) - whatever).

To make a set of specific things, without using filters, you create a Collection and add whatever objects you want to it (Collections can have objects of any type - sets only have objects of one type)

Which book list? Did you create one. If it’s a Set, then any Book object will automatically be added. If it’s a Page, you need to link the book to that page.

If you want a page with a list of books, at the Books set as an inline set. Ten you can filter on kinds of book if you want

By definition, a Set is a Set of All objects of that type

1 Like

Add it as an inline set

so a set always contains all objects of that type, but never a relation to those objects,? i dont understand. if a set always contains all objects of that type, why does it not also relate to all objects of that type? am i missing something?

You are not alone on this. People have contradictory views on this, e.g. workflow with collection and set, set in graph and why set as orphan.

I personally like it not linked because I don’t organise by types. My graph stays strong with contents and concepts. If sets are linked to subject, it will be a mess for me.

Collection depends on “links to”, and you basically can link two things together once (even if you added it as relation a second time, they are the same link connecting between the same two points).

P.S. There is also a feature for convert set into collection (but that’s a one time thing

The set is just a set - it’s not a relation it’s (as someone has said) a saved search.

Think of relations as attributes. An object has a Type (Human, Book, Page …) which defines its basic character. It can also have attributes such as Name, Date Created, Status, Title, Year of publication and son on.

A Set is just the set of all objects of a specified type. It simply lists them. Think of it as a saved search. You restrict which objects you see by filtering using the attributes (relations in Anytype-speak) you are interested in.

Your confusion arises partly because you expect to create (for example) a Set of All Books by Neil Gaiman). You can’t do that in Anytype. You create a Set of Books containing all the objects of Type Book. Then you create a filter using the Author Relation (“Is” or “Contains” Neil Gaiman). That goes you a View of the Set that only has books written by Neil Gaiman in it. Not anew set - only a restricted View pod the set of all the books.

You can create a link from Book to Set. You could automate that by creating a new Book Template that includes the link to your set of Books (or your Book List Page, if that’s what you have).

1 Like

that kind of inconsistency is a killer for me. i cant deal with inconsistency. sorry. good luck with all of this.

It doesn’t work for everyone - you want to get things done, not spend your time racking your brains to figure the app out.

1 Like

There is a way to display Sets as related in the Graph view here: Set elements in graph view? - #2 by lynxlove

You can even add that relation as default in the Object Type’s template, so that it is linked to your chosen Set on creation.

I quite like that I can choose which Set to link to, or none at all. I hope it helped you :slight_smile:

1 Like

Also, it is not inconsistent. A set is a way to query the objects. It’s a view, a window on the data, not a way to modify the data, like linking two objects together.

It seems like the software just not behave the way you expect to and you have not taken the time to understand the underlying concepts. Maybe give it another chance after experimenting a bit?

I had the same reaction in the alpha test, I quit as well. Now that I have taken more time to understand and experiment with it, I’ve grown fond of it. I sure hope we’ll see you again soon! :wave:


if you have a group of objects that you will not update frequently, say, important people, I suggest that you put them into a collection, not a set. Because of the nature of set, it collects all objects that fit your query.
In your case, if you want to have a list of important people, other than type “human”, you should add some relationship to describe more specifically, like a relation called “type”, then you can have a filtered view in your “human” set called “family”. And you can have another view called “writer”.
After all, set is more like a dataview query in obsidian, collection is more like a database in notion.

1 Like