Hi, it's been a long time... Hope everything is ok.
Yes, I'm on it these days. I still have to finish and document the specification.
I don't understand what compression is there to make. Do you mean something like reusing duplicate elements?
However, I'm counting I'll get to a level where I would be able to make inferences by induction, like:
(
(1 . 2 . 3) &
(2 . 2 . 4) &
(1 . 4 . 5) &
(3 . 4 . 7) &
...
) => (a . b . (a + b))
Yes everything's ok
I hope you're fine.
Induction is nice. One expensive way to do it is calculate anything you could (any combination of operands and operators), and see where there's a match, but I bet you have a better idea in mind?
"Compression", so to speak, would encompass several things. I'll use the following syntax:
Say you have:
objectA = null, null
propA1 = objectA, has
whatA1 = propA1, wheels
howmanyA1 = whatA1, 4
propA2 = objectA, has
whatA2 = propA2, engine
objectB = null, null
propB1 = objectB, has
whatB1 = propB1, wheels
howmanyB1 = whatB1, 4
propB2 = objectB, has
whatB2 = propB2, engine
What it means is "objectA has 4 wheels and an engine". Well obviously, it can be compressed by introducing a new vocabulary "car", like this:
objectA = null, null
whatisA = objectA, car
objectB = null, null
whatisB = objectB, car
This one was easy because there's no variant part in the original message. Using "car" is enough to represent the whole network, with the 4 wheels and the engine.
Things get more interesting when we want to compress messages with variant parts.
objectA = null, null
propA1 = objectA, has
whatA1 = propA1, wheels
howmanyA1 = whatA1, 4
propA2 = objectA, has
whatA2 = propA2, engine
objectC = null, null
propC1 = objectC, has
whatC1 = propC1, wheels
howmanyC1 = whatC1, 2
propC2 = objectC, has
whatC2 = propC2, engine
Almost the same, objectC just have 2 wheels instead of 4. The global structure remains similar, so here we have two objects with a lot of things in common, and a little difference. It can be (lossless) compressed like this:
objectA = null, null
whatisA = objectA, vehicle
nwheelsA = objectA, 4
objectC = null, null
whatisC = objectC, vehicle
nwheelsC = objectC, 2
I think it's related to induction indeed.
I'd like not to bruteforce it.