Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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?

share|improve this question
1  
That "Nested Set Model", where you use lft and rgt columns to form a tree, is pretty cool. That is, until it's used in a real application, and said application doesn't provide routines for manipulating the tree and leaves users to fend for themselves. –  Joey Adams Apr 2 '11 at 20:50
    
@Joey Adams funny! The selling point of the preorder traversal tree is that the queries for updating are easier than for adjacency lists! :D –  user1936 Apr 3 '11 at 1:03
add comment

2 Answers

up vote 1 down vote accepted

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:

share|improve this answer
add comment

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

share|improve this answer
    
I'm not really designing a shoe-selling website. It was just a practical and familiar example of the points I'm trying to illustrate. –  user1936 Apr 3 '11 at 1:48
    
@user1936: Predicate calculus would seem appropriate as a domain of study, but please please please do not design real-world systems this way; this will not yield a "really good search function", it will yield a search function that no one but you understands :-) –  Steven A. Lowe Apr 3 '11 at 2:17
    
what exactly is the difference between tags and properties that you mention in your answer? If you have a promiscuous tagging system, what's to prevent a back-end user (the warehouse person) from marking a shoe as both sandal and boot? These seem like reasonable concerns to me. Most of the shoe selling sites I've seen (zappos, etc) seem to operate on principles similar to these. –  user1936 Apr 3 '11 at 17:21
1  
@user1936 i would consider properties to be formally-defined named values such as Size, Style, Manufacturer, and so on, while tags would be any keywords you care to associate with an item. There is nothing to prevent a back-end user from marking a shoe as both sandal and boot, nor in general is it necessary to do so. Current stylistic conventions are not natural laws, i.e. they can change. Today's nonsense is tomorrow's bold fashion statement and hot trend. Zappos, for example, does in fact sell sandal boots. zappos.com/sandal-boot –  Steven A. Lowe Apr 3 '11 at 17:40
    
@user1936: if you really really really want to control the tagging, put tags into categories and make rules based on category collisions. But I suspect - especially in a non-technical domain - any rule one might come up with can have an exception (c.f. sandal boots)! –  Steven A. Lowe Apr 3 '11 at 17:44
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.