8

Suppose I have a situation where I'm designing a website for a shoe reseller. They have different brands and kinds of shoes and of course, they want a really good search function.

So there are different properties that shoes can have. They can have exclusive properties, such as size, width, gender, and children's/adults'. Or they can have non-exclusive properties such as color (there could be two or more colors on a shoe). Some categories might conflict with certain others, such as 'dress' and 'casual' (a shoe cannot be both a dress shoe and a sneaker (ignoring "comfort" dress shoes for this example)), whereas they don't conflict with yet others, such as 'dress' and 'boot' (a shoe can be a dress boot). The exclusive properties are easy to model, but how about potentially conflicting properties? Would this be a problem for set theory?

What would this kind of applied computer science be called, in general? Data modelling, or something more specific? I want to get into the more abstract philosophical principles, such as exclusive and non-exclusive properties, and see how those principles are implemented in code, data structures, and database schemas.

A good example of what I'm talking about would be the modified preorder tree traversal algorithm. It's a great way to make a nested hierarchical categorization system. So you have a real-life organizational problem: categories, and then you have a data structure that models that problem.

Where can I learn more about this type of stuff?

user1936
  • 672
  • 6
  • 17

2 Answers2

1

In general, the field of study would be considered data modeling or taxonomy. The shoe-selling website is specifically an example of faceted classification.

Some starting points for faceted classification research:

Ciaran
  • 756
  • 5
  • 11
0

if you're seriously designing a search feature for a shoe-selling web site, use tags instead of properties, implement a normal keyword -based search function, and forget the academic formality; users will not bother to navigate a search screen with 50 options on it