Objects, Indexes and Artificial Intelligence
Posted: Sat Jul 16, 2016 12:21 pm
So, I got into a conversation a few months ago with a former co-worker about some recent developments in AI, and I decided to watch some YouTube videos on the subject.
At the same time, I have been personally working out how to store a large number of objects and be able to find them and organize them quickly at run-time. And I'm starting to see some overlap between the two subjects, and I thought I'd see what you guys thought about the subject.
First, in our conversation, we discussed how modern AI approaches break down the problem into nanoscopic sized components that simply take an input and return an output based on a simple measurement or process. So one component would be responsible for returning how "green" a pixel is, and another would be responsible for returning how "straight" a line is. And these would be combined with tens or hundreds of other components to build complex logic that could tell you how similar a picture is to a car, or a house, or whatever.
In the video I just watched (https://www.youtube.com/watch?v=s716QXfApa0), the presenter talks about how her company has built a system to take images, and break them down into subsets, and apply the same sort of logic units to each zone, and then compile the results.
So, in my case, I was planning on storing objects (which have properties) on a storage device, and then adding additional indexes on things like object name, file type, song title, album title, artist name, etc. But, if you combine the two ideas, and make it generic for any object, you can start to see how it could be incredibly useful for an operating system or an application.
So, what I'm starting to picture is the concept of "internal" vs "external" properties on objects. Internal properties are what we normally think of as object properties, and are stored "inside" the object. (Things like name, age, birth date, color, etc.)
External properties would be generated and stored externally to the object. So things like relative song volume, overall picture color, how often an object is used by a specific user, etc. could be calculated by an external component, and stored in an index, just like you would normally store things like the object name.
And these external property generators could follow any references to other objects and use them as related objects (parent, child, sibling, etc.) for the purposes of finding, say, the green-ness of each pixel in an image, or the objects with the fewest references to it, for purposes of garbage collection.
I think it's pretty interesting, and I'm definitely thinking about adding it to my list of features that I want to implement.
At the same time, I have been personally working out how to store a large number of objects and be able to find them and organize them quickly at run-time. And I'm starting to see some overlap between the two subjects, and I thought I'd see what you guys thought about the subject.
First, in our conversation, we discussed how modern AI approaches break down the problem into nanoscopic sized components that simply take an input and return an output based on a simple measurement or process. So one component would be responsible for returning how "green" a pixel is, and another would be responsible for returning how "straight" a line is. And these would be combined with tens or hundreds of other components to build complex logic that could tell you how similar a picture is to a car, or a house, or whatever.
In the video I just watched (https://www.youtube.com/watch?v=s716QXfApa0), the presenter talks about how her company has built a system to take images, and break them down into subsets, and apply the same sort of logic units to each zone, and then compile the results.
So, in my case, I was planning on storing objects (which have properties) on a storage device, and then adding additional indexes on things like object name, file type, song title, album title, artist name, etc. But, if you combine the two ideas, and make it generic for any object, you can start to see how it could be incredibly useful for an operating system or an application.
So, what I'm starting to picture is the concept of "internal" vs "external" properties on objects. Internal properties are what we normally think of as object properties, and are stored "inside" the object. (Things like name, age, birth date, color, etc.)
External properties would be generated and stored externally to the object. So things like relative song volume, overall picture color, how often an object is used by a specific user, etc. could be calculated by an external component, and stored in an index, just like you would normally store things like the object name.
And these external property generators could follow any references to other objects and use them as related objects (parent, child, sibling, etc.) for the purposes of finding, say, the green-ness of each pixel in an image, or the objects with the fewest references to it, for purposes of garbage collection.
I think it's pretty interesting, and I'm definitely thinking about adding it to my list of features that I want to implement.