Jim -
dc.agent.creator
dc.agent.contributor
dc.agent.publisher
has huge advantages over
dc.creator
dc.contributor
dc.publisher
To begin with, the first syntax allows you to maintain all of the
functionality of the second, i.e., if you want to search for a specific
publisher, the query
find dc.agent.publisher = "Macmillan"
is exactly equivalent to
find dc.publisher = "Macmillan"
The first syntax has the added benefit of more easily finding records where
Macmillan has any role. For example, the query
find dc.agent.* = "Macmillan"
would require Boolean logic to reproduce using the second syntax:
find dc.creator = "Macmillan" OR dc.contributor = "Macmillan" OR
dc.publisher = "Macmillan"
Allison Smith's suggestion is probably an even better solution, because it
provides a bit more flexibility in the roles which may be assigned:
dc.agent.1 = "Macmillan"
dc.agent_role.1 = "creator, publisher"
This allows you to select role from an enumerated and easily expanded list
- probably easier for software to deal with than having to recognize a new
subelement for each new type of role.
Notice this still lets you find publishers:
find dc.agent = "Macmillan" where dc.agent_role INCLUDES "publisher"
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|