1 According to [[:Media:Layer0.pdf|Layer0]] semantics, relations <em>can</em> have inverse relations. For the database and client this means that when claiming new statements <code>(s, p, o)</code> using
\r
2 WriteGraph.claim(Resource subject, Resource predicate, Resource object)
\r
3 an inverse statement <code>(o, inv(p), s)</code> will be automatically claimed into the database. Some statements are such that they tend to raise the degree of the resource (amount of incoming/outgoing relations) to very large numbers. The database is not built to efficiently handle such resources. One such relation is ''InstanceOf'' which is a statement that pretty much each and every resource in the database has. It does not have an inverse relation, but considering it had one like ''HasInstance'', here's what would happen. For example, for each ''L0.String'' instance created an inverse statement would be added <code>(L0.String, L0.HasInstance, :L0.String)</code> statement into the database, thereby enlarging the degree of ''L0.String''. When working with larger databases this would most likely become a problem.
\r
5 To make it possible to optimize this situation we provide the possibility to skip adding of inverse relations when claiming statements into the database by using
\r
6 WriteGraph.claim(Resource subject, Resource predicate, Resource inverse, Resource object)
\r
7 with a <code>null</code> inverse relation argument to create the sensitive statements such as ''InstanceOf''-relations.
\r