User:Ihm08/Semantic Schema

= People =
 * with name
 * with extension
 * contact email
 * username
 * with type (student, faculty, staff, alumni)
 * with image
 * with home page
 * facilitates event

Adademic

 * with type (student, faculty, staff, alumni)
 * with school

Students/Alumni

 * with type (student, alumni)
 * with concentration
 * with year

Students

 * with type::student
 * in student group
 * in class
 * in EPEC class
 * facilitates EPEC class
 * in independent study
 * with division
 * place

Alumni

 * with type::alumni
 * with graduation year

Faculty/Administrators (teaching)

 * with type (faculty, staff)
 * with position
 * teaches class
 * facilitates independent study
 * advises
 * div I advisor of
 * div II committee member of
 * div II committee chair of
 * div III committee member of
 * div III committee chair of
 * place

Faculty

 * with type::faculty

Administrators (teaching)

 * with type::staff

Non-Academic (Staff, non-teaching administrators)

 * with position
 * with type::staff

= Events =
 * meet date
 * with type::event
 * contact email
 * place

= Courses =
 * class time
 * place

= Places = So how this will work is that each "Place" will be a stub-ish article with tags for building and room; this way there aren't strange problems with pages referencing places in multiple buildings and how to represent rooms.

Other options, considered but not preferred:
 * Have subproperties of Property:room along the lines of "ASH room," "FPH room," so forth. This is undesirable because it makes it hard to do Special:Ask queries, including inline queries; also it makes for a bunch of properties and that's hard to manage.
 * Have each room have a marker; e.g., with both properties: Building: ASH; Room: ASH 221. Redundancy here is silly and should be avoided, especially because it limits the usefulness of the data for queries and makes templates like Template:ASH really hard to make.

The solution I mention above solves a lot of problems; queries are much easier and the data more malleable, and only one template (probably to be put at Template:Place) will be needed. I'm fairly sure, anyway. This is still beta.


 * place
 * building (including "Outside" to account for non-indoor places)
 * room (string rather than number to account for, say "J307," "Kiva," "Airport Lounge," and such. In mods, this is the room within the mod AS WELL AS the mod number; Enfield 41C would have "41C" for this.)
 * hall-mod (for dorms/mods -- e.g. "J3" or "41")

Examples:
 * Dakin J307 has building Dakin, room J307, hall-mod J3
 * Enfield 41C has building Enfield, room 41C, hall-mod 41