Here's an example where we can create a report that lists all Report Definition rules which are not referenced by a Shortcut rule:
Create a Report Definition which applies to the main class, in this case "Rule-Obj-Report-Definition"
Under the Data access tab, add a Class join for the joined class, in this case "Rule-Shortcut"
For the Type of class join, select "Include all rows in this class"
Click Edit conditions next to the class join and configure the matching row condition for the two classes. In this case we'll check if ".pxInsName" on the main class is equal to "Shortcut.pyRuleInsName" on the joined class (assuming "Shortcut" is the chosen Prefix of the class join)
Submit the join conditions modal and return to the Query tab
Add a filter that compares a column on the joined class using the is null relationship. In this case, we will check if "Shortcut.pyRuleInsName" is null.
There are two important components to this example:
We use a filter on the report that asserts that any row which satisfies the join condition will be filtered out
We set the class join to "Include all rows in this class" so that unjoined rows from the main class still appear in the report