I'm probably way in left field here, but let me start by saying I am thinking primarily in fallthrough terms, which I realize now are not necessarily part of the picture yet. If our goal is finding a single row to supply all the circ attribute values, then you are right, my comment doesn't make much sense. Instead, for a given circ, I am thinking along the lines of:
1) select all the rules which do not exclude the item in question
2) process the rules in a given order, filling in the circ attributes as you go
I am bringing this up now because I think this simplified setup might render the column weighting moot (the only evaluation is pass/fail), and also that it would translate pretty directly into an understandable interface. It probably doesn't meet a 'least possible number of rules' design goal, but it would certainly allow one to reduce some of the redundancy in the current matrix.
I'm probably way in left field here, but let me start by saying I am thinking primarily in fallthrough terms, which I realize now are not necessarily part of the picture yet. If our goal is finding a single row to supply all the circ attribute values, then you are right, my comment doesn't make much sense. Instead, for a given circ, I am thinking along the lines of:
1) select all the rules which do not exclude the item in question
2) process the rules in a given order, filling in the circ attributes as you go
I am bringing this up now because I think this simplified setup might render the column weighting moot (the only evaluation is pass/fail), and also that it would translate pretty directly into an understandable interface. It probably doesn't meet a 'least possible number of rules' design goal, but it would certainly allow one to reduce some of the redundancy in the current matrix.