You can try using tags, and allow users to filter based on one or more tags. The filters (queries) can be saved as searches and collections that are dynamic.
I'm not clear on the use case, but it sounds like some objects will share multiple attributes that could be searched or filtered together.
You can still use rules, but perhaps have rules that apply tags, rather than assign hard categories.
The limits of categories
With a category, you are making a clear distinction of 'what goes where'. This is helpful in a physical (analog) context, such as a store or file folder, where items are placed in distinct locations for access or retrieval.
Tags, scalability & flexibility
In the digital world, tags can allow you to build a looser taxonomy. It can scale as items may need to be identified by more than one attribute, or if different user groups find a specific attribute more relevant to their mental model when classifying an object.
Need to group items? Try saved searches, or 'smart collections'
You'll find a mix of tags and folders (smart collections) in many applications. For example, in Adobe Lightroom, you can use 'keywords' which are really tags on a photo:
Photographers often end up with a large database of photos (100k) to manage and edit. Then, you can build a smart collection (represented by a folder or 'box') by a series of attributes, including keywords, as seen here:
Give the user control
Rather than engage in the difficult task in controlling a category taxonomy and hierarchy, the saved searches can be tailored at the user level, and correspond to the way they perceive how several attributes come together for a grouping.