hi guys - I only just registered - then logged on - never done a blog in my life - but my job is Charity/ helping out et al.
I was looking for a quality fuzzy search for .net/c# SOA architecture. (used j-bean in previous life). Then I saw your you guys blogging - someone talking about setting the right weights. I'm doing ETI now (SOA is old hat). Being open, like you guys, I'll say my thoughts but forgive my impertinence if you're way ahead of me.
You have to build components that evolve (improve over time). That way, you don't have to get it right first time (reason why SOA Atemporal/Top down doesn't breed well (i.e. become the dominant methodology) in the real world. My architecture is far smarter (I think) and mimics the real world (temporal components (temporal on human species time scale - not on Mayfly's) like living organisms, species, companies, countries, et. al)
You guys (“guys/girls” meant in a good way, I assure you) try to design components and species and architectures (all the same) as though they were atemporal (without time like quantum mechanics). Yet --- you are trying to mimic things that have to live (objective longevity) in a temporal world.
So- I'll get to the point - my run-time thinking on fuzzy searches:
1. In my application people often use capital letters (Airline AF not af -- LHR not lhr )
but they could make a mistake and put lhr - come to than later.
2. They might also use Keywords like -- via or VIA or from or September or USD or US$ or London or even LONDRES (French - just in case you didn't know
3. Then maybe strings on numbers
etc. etc.
OK - we have 3 factors - how are we going to “weight” them?
Let's make them even, you've got to start somewhere.
Now think of building a temporal algorithm that evolves such that the weightings are adjusted (over time - with repeated use) to become closer to getting the right answer (which is going to be different for an Frenchman than a marsupial-like Australian – different nature and nurture)
So build your fuzzy component – implant it into your application and watch it weight watching on its own (whilst you enjoy a nice glass of low-calorie wine)
It learns like Nural networks (see UCLA
http://www.bio.net/m...97-March/001265.html) The middle cells alter the connections between the input and output cells with the help of simple feedback (could give you maths, but getting late for me)
So - the user (say) puts at street address into Google maps (say). You detect his ipaddr as marsupial. He enters his town as Nucastle (honest mistake - blame the English teacher) You suspect Newcastle, NSW, not Tyneside, UK. But you make sure by asking user potitely ("I think you mean Newcastle, NSW, Australia?) . He says Yes, then you make a cross reference file between Nucastle and Newcastle, NSW, under the Logon-user's profile (or even against all user profile in Australia). In reality, the street or zip-code would be a givaway anyway - but then again, a simple X-ref lookup (or cookie) might avoid central disk access & latency delays.
hope this help you. (this is my ETI logic rather than SOA)
- please let me have contact with someone with enough mipp-power (aka honesty) so we could help with some big problems (like African children, climate change)
kind regards, etiman