Hi,
I remember in one of the past editions of Biblio 6.x there was a feature whereby the Author name could be set to automatcally be retrieved from Username. I've now upgraded from Drupal5 to D6, and I cannot find any such feature.

On my site people register with their Real names - so, in effect, username is their Author name (Name Surname). Before there was a way to automatically retrieve the Author name from Username, or to set it in the account settings with a text form. Now there's only the drop-down selection, which makes it very user-unfriendly (a nightmare) if you have biblio with 1000+ authors and a website with hundreds of users.

In effect, under a user's "Publications" tab I get a list of Items that she/he added to Biblio (including those that she did not author), but it should include only items that she authored.

1) Would you please bring back or create that option for admins "Retrieve Author name from username" ? (Surname would be the second word in the username, and Name would be the first word before the space)
2) Would you please allow for Author name in account settings to be optionally a textfield (his username by default) with Autocomplete instead of a dropdown selection?

Thank you!

CommentFileSizeAuthor
#15 biblio-realname_integration.patch42.25 KBliquidcms
Support from Acquia helps fund testing for Drupal Acquia logo

Comments

rjerome’s picture

I forgot that that functionality had changed from 5 -> 6.

OK, so what I've done is reinstate the "My Lastname" text box in the profile form, with a warning that this is a depreciated feature and the drop down list should be used.

In terms of functionality, there are a couple of changes... If the user does not edit their profile AND they have previously set a "My Lastname" value, that value will be used to populate their profile pages. If they do edit their profile, an attempt will be made to select their last name from the available authors in the database, if a suitable author is found then this will be used rather than the "Lastname" value, but be warned that if there are many authors with the same last name in the database, then these will need some human intervention.

Ron.

http://drupal.org/cvs?commit=426852

drupalina’s picture

Title: Retrieve Author name from username » Retrieve Author Last name AND First Name from *User Name*

Thanks, I will test the latest dev.

On my site the usernames are people's full names and they are structured like this: "Name [space] Surname" - e.g. "Albert Einstein" or "Adam Smith" or "Isaac Newton".

I wonder, would it be possible to tell Biblio module how the username is structured so that it maps the Author name correctly? - eg "Einstein, A." and "Newton, I."? In other words you could tell the computer "Everything that stands before the space that is before the last name, is the First Name". If I remember correctly there was some sort of admin option like that (or I might be confusing it with another module). That way, Biblio could minimize chances of error if lets say another user existed under the name "Brian Smith" - if we map it by last name only, then there is a likelihood of confusions that this is "Adam Smith" or "John Smith" (there are many Smiths around) and human interventions would be more frequent than if it was mapped by both the last name and first name.

Why am I suggesting this? I have built several websites for newspapers, campaign sites and academic communities. Almost always I've bumped into this very limitation in core Drupal structure - namely the HUGE difficulty to assign some CCK or Profile field or some small module as "Author name" in a way that functions well throughout the site, its data architecture and it's multi-modular nature... So almost always I've gone with the logic of "Username = Author Name", which puts a LOT less strain on the CPU, makes the site faster and generally saves the developer from complex data architecture and sleepless nights. With bibliographic data, of course, things are different and a lot more complex (lots of issue to consider: multiple authors, pseudonyms, volume editor vs contributor. node author etc etc) - so the way that Biblio is doing it is Awesome. It also recognises the fact that the Node Author might not always be the Biblio Author. But I just feel that there is this gap of automatically tracing the Author Name from User Name that is missing.

drupalina’s picture

UPDATE:
I've just tested the 6.1x-dev (from Sept 25) and the last names don't automatically appear for old users. Ran updates, ran cron - still nothing. Then I created a new user, and the last name box for new user is still empty.
Judging from more than 3 years of end-user-behavior, I really don't trust that the end users will go into their settings and figure out that they should fill in their last name manually. The last name (as well as first name) in this box should be retrieved automatically, IMHO.
Plus its confusing to have the 2 fields (My last name + dropdown box) - admins should have an option to display one or the other or both.

Imagine a scenario whereby username "Brian Smith" adds the following publications to Biblio database:
- Smith, Brian "Linguistic syntax and the legal systems"
- Marcus, Adrian "Language, Epistemes and Information"
- Chomsky, Noam "Manufacturing Consent"
(as well as importing 100s other bibliographic data entries from his EndNote or Zotero that he likes to share with this academic community)

Then, all these publications will appear on Brian Smith's profile page as his own. (very BAD)
Few weeks later, username "Adrian Marcus" is added to the website. What should happen is that his publication "Language, Epistemes and Information" (which was added by Brian Smith) should immediately appear on Adrian Marcus' profile page, and he should automatically have the permission to edit it. But it doesn't, so Adrian Marcus goes ahead and creates a new Biblio entry called "Language, Epistemes and Information" and now there are 2 entries with the same title within the system. (again Bad)

But all this wouldn't happen if Biblio module would automatically prepopulate the Author field (in user profile) with that user's User Name. That's all.

rjerome’s picture

OK, so can we go back a few steps and clarify for my how your 5.x installation was functioning. Are you saying that in your 5.x installation, your users DIDN'T supply a "Lastname" value on their user profile page, but biblio was able to correctly list only their publications on their profile pages anyway? If that is the case, I'm not sure how it was happening, since the only other way publications were selected for the profile page was using the Durupal UserID that was assigned to the biblio entry when it was created. The functionality I added to the latest -dev version was assuming that this "Lastname" value has been set for your users. I was not suggesting that this was the way to do it moving forward. In fact, once you select a corresponding author from the drop down list, the "Lastname" value (if it existed) is removed. The whole idea of the user selecting a corresponding "Biblio" author from that drop down list is to remove the ambiguity of using just a string search. What they are really doing is selecting a biblio contributor ID to use as the search criteria for their publications rather than just a string.

While it would be technically feasible to setup automatic Biblio -> Drupal userame mapping to match how you have setup your sites, I don't think that it would be universally useful since there is no standard for Drupal username creation.

While I agree it would be great if biblio could magically determine the correct "Biblio author name" -> "Drupal user name" mapping, it will never be 100 percent. Lets face it, there is no definitive way for Biblio to know whether the "Adrian Marcus" that just signed up on your web site is the same "Adrian Marcus" that contributed to the publication already listed there. The only people that really know this definitively are the people directly involved with the production of the publication or perhaps the maintainers of the web site. So if "Adrian Marcus" wants his publications automatically listed, there really needs to be a workflow in place which forces either the site administrator or new user to take the time to check this one setting in their account profile before they are allowed to upload any biblio items.

Given the (quite valid) points you have made in previous posts, I feel your pain, but I think you understand the can of worms that author name handling generates. Some of the other issues are... very frequently, the author list of a publication does not include full first names of authors (i.e. you are very likely to see "Smith, B. and Marcus, A." as the author string on a publication) so now you are also left with the ambiguity of whether this Marcus, A. is "Adrian Marcus" or "Andria Marcus"? Biblio 6.x and greater deal with this by allowing you to specify as much detail as required to uniquely identify each author, and it also gives you the ability to merge Biblio authors together to clean up your database. The merge feature is used in the situation where someone creates or imports publications where the same author is represented in different forms (as described above). So if you end up in a situation where you have authors in your biblio database named "A. Marcus" and "Adrian Marcus" and you know they refer to the same individual, then you can merge them together (keeping the one with the most detail) such that all the entries refer to the same author. This functionality did not exist prior to 6.x since all the authors from each paper were just stored as a single string then a literal string search was used to filter by author. Now (biblio) authors have a unique id which can be used to distinguish between similarly named authors.

There is also the issue that, while the concept of "First name" and "Last name" seems normal to us, it is not universal to all cultures.

On the upside, the newer versions of Biblio will have better duplicate detection so even if "Adrian Marcus" hasn't taken the time to setup his user profile, biblio won't allow him to upload a duplicate copy anyway, it will just point him to the existing entry and tell him it already exists in the database.

drupalina’s picture

Hi Rjerome,
thanks for the elaborate response! Let's talk and explore ideas that could bring practical solutions.

I think there are a number of issues here and we need to break them down and think them through. I speak as a maintainer of a 3.5 year old site and as a person who is reporting on many concerns that my end-users reported to me.

1) I've checked my 5.x installation and yes you are correct the "Last name" field was not being magically prepopulated. I forgot that 1-1.5 years ago for select accounts I painstakingly went and filled their own last names, because users didn't know what to do. My suggestion was that it should include their First name too, and what's more it should be prepopulated with a calculated First name and Last Name. - it's a feature request to make Biblio module better in coping with increasingly large database of Authors and a large database of Users.

1a) For old users, in case that the Biblio module was not able to map out an Author name, then it should be left empty, for human intervention.

2) Because I recognise that 2-string author names are not a universal format for all cultures (for instance many Afghan authors will use only one long name or many other authors in Occidental cultured will have 5 First names before the Last name), I went with a single "UserName" field which I called "Full Name". And given the PHP and MySQL magic I know that it is possible to map out the author name in a correct format from almost anything that people enter.

3) I'm not suggesting that no human intervention on behalf of Admins should take place, but that it should be minimal (or else it can become unmanageable). That's why an autocompleting "Full Author Name" filed is a must, IMHO. The drop-down list should appear only when a person has entered "Smith" and then the drop-down selection can list only the Smiths "Smith, Adam" "Smith, Henry" etc. Or when there are 2 "Adam Smith"s in the database, in which case their names would be listed along one of his publications (for disambiguation). In other words, the drop-down selection should exist only as an adjunct to the autocompleting field (Autocomplete already offers us a form of drop-down selection of its own, which could work nicely).

3a) we have to recognise that the current drop-down box is not an adequate solution for a database with hundreads if not thousands of authors. Therefore Admins should have a choice between an Autocompleting Author Name or the current drop-down selection, which (let's face it) beats its purpose once you've past 50 authors.

3b) Once the Author name field takes into account First Name and Last name, the degree of error will be minimal.

4) Another solution would be to expose the non-compulsory autocompleting Author Name field in the registration form. "If you have published in the past or intend to publish, please enter your Author name". If new name doesn't match any other existing name, then we move forward and at least we have the Full Author name for this individual.

5) Who should have node-editing permissions? First of all the person who added or imported the node. But then if Adrian Marcus signs up and discovers that his publications are already being listed on his profile, then he should be able to see a little [edit] button next to each item. For books where multiple authors were involved, they should all have permission to edit that particular biblio node. The more collaborative semi-wiki it is the more likely that each item will have a a more complete bibliographic data.

Conclusion: these are just ideas that I'm throwing on the table for making Biblio easier to manage and more user-friendly - ideas based on 3.5 years of managing a biblio database in an increasignly large academic community site, and based on feedback from the more active academics.

I think if you expose an Autocompleting Author's FULL Name (not just Last name) in the registration form, and if adequate node-edit permissions are given to matching authors (see no 5), then it would resolve 80% of the issues. The rest can be manually managed by the admins because Biblio will now become more manageable.

What do you think?

rjerome’s picture

I hope you didn't think I was trying to shoot down your ideas, I just like to make sure I understand the issues. Biblio is all about community involvement, and has evolved over the years thanks to suggestions I have received.

I see your point about the 1000 author long select list, so sure, I can make that an autocomplete, but my only concern there is that for this to work, there must already be a corresponding author in the database (to complete the Biblio author ID to Drupal user ID match) I suppose that if Drupal user didn't already exist as a Biblio author, then a new Biblio author could be created, but you would want to check the "Orphaned Author" setting, because by default if a Biblio author has no links to any publications, it is considered an orphan and is removed.

As for the permissions, that is also a good idea and should be doable, but I'll have to think on it a bit to determine the best way to implement it.

Ron.

drupalina’s picture

Hi Ron,
Great to see that you are taking my ideas on board! My user-base are mostly 30-55 year old academics, so you can imagine - I'm trying to make it all as user-friendly as possible for them.

1)

I see your point about the 1000 author long select list, so sure, I can make that an autocomplete, but my only concern there is that for this to work, there must already be a corresponding author in the database (to complete the Biblio author ID to Drupal user ID match) I suppose that if Drupal user didn't already exist as a Biblio author, then a new Biblio author could be created

Not necessarily! If the entered full author name doesn't match any existing author, then the entered name can still be stored, but not as Orphaned Author, but as the value that is entered currently in the "Last name" field. And in the future, if that user chooses to add something to biblio, which is one of his own publications, then it can immediately be matched, and at next cron (or upon the first node submission) be converted to Author Name. But, is that a dodgy data-architecture? If yes, then I guess, your proposed way of deliberately creating "Orphaned Authors" is better.

2) To make it extra user-friendly for people, above the publications list on profile or under tab, you could also put the Author name (visible only to that account holder) with 2 AJAXy buttons:
1) Are these publications yours? [Yes] [No] - if "Yes" is clicked then we know that this is the user we want, we lock that relationship (unless that account is later deleted), and this question will not appear ever again. If "No" then we ask them again to enter their correct Author Name and revert to the same procedure as during the registration (either create an orphaned author or a temporary dummy name until first publication is entered).
2) [edit my Publishing name] - the second button is for editing the Author name and is similar to the one above when user answers "No". I think users should be allowed to edit their own Author name. (I'm not sure if they can do that right now.) Example scenario: someone in the past has bulk-imported their own EndNote data whereby Author was listed as "Herman, V.", so in the database that is the name by which he exists. But when the real Vincent Herman signs up, he should be allowed to edit the name "Herman, V." And with an AJAXy button like this it should be quite user-friendly .

I've been working on upgrading this site to 6.x for the past 2 months, and I'm actively at it. If you need me to test the dev, I'm more than willing.

THANK YOU for taking these ideas and thanks for keeping Biblio open to improvements!

rjerome’s picture

Well I implemented the additional permissions idea, but it seems to open a HUGE security hole. The problem is that any user can link their account with any Biblio author, thereby giving them edit access to ANY biblio entry, probably not what you had in mind, and certainly not what I want to release into the wild.

The only way around this that I can see right now is to restrict the "Biblio author to Drupal User" functionality to admins only, which I assume is also not what you had in mind.

Ron.

drupalina’s picture

Is the permissions implemented in the latest dev? If yes, I can test it and get back to you. If no, please attach the tag.gz or .zip in this thread and i can review it and get back with better ideas.
Yes, I though about the security hole that it might potentially open up, but there are ways to guard against it.
First of all, people can Flag people for abusive behaviour.
Secondly, in Biblio settings we could set up some invisible/unknown_to_users checks before displaying "Edit your Author name" link above his publications list, like:
A) has the user uploaded a picture? (very often this is a relatively good check of user's commitment to the community and many networks check before allowing more privileges).
B) Does any part of the username match the author name?
C) If User_Relationships module exists, does this user have more than 5 Them_To_You types of relationships does this user have? (usually asking for a relationship by others is like other members confirming that this is the real McCoy)
D) has the user verified his e-mail address?
E) I have not used UserPoints module in a long while, but some additional check could also be implemented.
Thirdly, in biblio settings it could be specified how many times a user in a given role is allowed to edit his Author name. I would set it to 2 or 3 by default (so that they can't modify ANY biblio entry - and it's a relatively good shield for damage control) -- and once he begins to do the damage, others will notice and report him.

rjerome’s picture

No, I have not checked it in, but I have tested it and there is no doubt that without some sort of control a malicious user could wreak havoc.

I like this idea

Thirdly, in biblio settings it could be specified how many times a user in a given role is allowed to edit his Author name. I would set it to 2 or 3 by default (so that they can't modify ANY biblio entry - and it's a relatively good shield for damage control) -- and once he begins to do the damage, others will notice and report him.

But I don't think the others would be universally acceptable because then Biblio is effectively trying to dictate how the site is run.

drupalina’s picture

This is regarding the Autocomplete Author Full Name feature. I have noticed that when you ask people to enter the Author Name in biblio node creation form, it says:

Enter a single name per line using a format such as "Smith, John K" or "John K Smith" or "J.K. Smith"

But, if you are to map Author's Full Name (rather than just Last name) and match it with Username, plus, importantly, also for the purposes of maintaining a more complete bibliographic data, it would be a whole lot better to encourage people to enter Author's full name when creating a biblio node. Like this:
"John Kenneth Smith" or "Smith, John Kenneth".
When is this needed? In Chicago bibliographical listing style (and also some variations of Harvard), in bibliography people will normally list first name too. Like this:
Kourik, Robert. 1998. The lavender garden: beautiful varieties to grow and gather. San Francisco: Chronicle Books.
But if Biblio module holds data for "Kourik, R" and not "Robert Kourik" or "Kourik, Robert", then no such Chicago style will be possible. I think this gap is a remnant from the days when Author Names didn't exist as "entities" in the database.
(This is a minor issue of the format of Author names that should be encouraged, and can easily be overridden by String Override module, but I think it is also relevant to the feature request here for the Autocomplete Author Full Name as well as for maintaining a more complete bibliographic data -- and therefore should be adopted as a standard)

drupalina’s picture

Re #10

But I don't think the others would be universally acceptable because then Biblio is effectively trying to dictate how the site is run.

Then in Biblio settings we could have an additional Admin option: "Allow Usernames who are matched with Author names to edit their Author name" (Warning: use this with caution if you've permitted the matching usernames to edit their own matching biblio nodes). If checked "true", then another filed can ask "How many times?" (2 by default)

rjerome’s picture

Exactly what I was thinking. This would be a new "Optional" feature which would be turned off by default and admins would have to turn on knowing the risks.

liquidcms’s picture

Version: 6.x-1.14 » 7.x-1.x-dev

this thread is pretty old and i don't think it ever got sorted out quite right.. so bumping to D7 and commenting.

not entirely sure this is what is being discussed here; but it would seem like the autocomplete on the Author field should be allowed to be Drupal user's. Unfortunately the biblio module has its own user list but i think that is ok as long as the autocomplete on the author field automatically links the biblio uid to the drupal one (then there is not need for the very long select list to manually attach a drupal user to a biblio user.

as this is pretty old i will guess no one is working on this issue; so i will likely come up with a patch to provide this feature.

liquidcms’s picture

the following patch checks for use of realname and uses real user accounts for the node form's autocomplete (combined with the bibilio's user list) and if a real user's realname is used as the author it auto connects this user to the biblio user that gets created.