Semantic Site Building
The usability of a CMS for its administrators and editors is closely tied to the semantic sense of the site build. Likewise, the maintainability (including ease of upgrade and feature addition) is greatly enhanced by intelligent semantics. By semantic site building in Drupal, I mean that all content types should be labeled and represent types of content, that user roles should be labeled and represent permissioned roles of users, and so on.
Drupal has always let site builders make creative use of its features to create functionality far outside the semantic meaning of those features. Often we mashup Drupal concepts in new ways (e.g. 'Taxonomy Menu', 'Content Profile', 'Views Field View') to varying results. It's very common to build complex scenarios that in turn have complex problems. For example, if your site navigation is created with taxonomy, fields, or some other creative solution, you soon have to add other solutions to handle your breadcrumbs. After an organic site building period riddled with concessions to the small voice that says "this can't really be the best way to approach this", a Drupal site easily becomes a mess.
A semantic site will require minimal documentation for its administrators. It can be readily worked on by any Drupal site builder. It leverages, rather than working around, the functionality of core Drupal and its other building blocks.
I will give examples of semantically harmonious and dissonant choices in many of the major site building interfaces (content, fields, users, views, panels, features, menus, taxonomy etc) and explain how to improve an existing site and future builds both technically and culturally in a team.
Questions Answered by this Session:
- Why is the concept of semantics so important to Drupal site building?
- How does Drupal 7 and the new entity system empower site builders and developers toward better semantic choices?
- What are some strategies for cleaning up a site that has a confused architecture?
- How should we weigh common site building choices: (e.g. taxonomy term vs nodereference, new menu vs sub-navigation)?
- How can we verbalize and explain our advocacy for a site's long-term quality over the immediate feature demands of the site owner?
Previously presented at Capital Camp and Drupaldelphia
This presentation features Druplippy. The Druplippy module will be released in conjunction or prior to this talk and let us share semantic site building tips (as well as jokes) virally across sites.