January 24, 2012

UMBS Publication search summary

2011 Update: Finding a lot more pubs (which is nice) but realized you can omit sites from your search results (e.g., DeepBlue) by using "-site:umich.edu". This is useful because DeepBlue pubs are student papers and not entered into the research bibliograpy.

----------------------
Running Tally of Years
2003 - Google searched, turned up 4 pubs
2004 - PMW working on
2008-2010 - Google searcherd, 50+ pubs added
2011 - Finished
2012 - Not started

------------------------


Summary of the great 2008-present UMBS Research Bibliography dig:


1) This is everything (~ decreasing order of prevalence): Peer-reviewed papers, theses/dissertations, books, book chapters, conference publications, others

2) Using only Google Scholar, I turned up 50+ pubs (2008-present) that contained UMBS and/or BART acknowledgments that we were unaware of.

- There are surely more publications for 2008-2010 but the amount of effort it takes to find a new 2008-2010 publication online is now very high.

- My Google methodology is here

3) Basically, very few researchers are telling us about their publications.

- Offending authors and/or advisors: Curtis, Helmig, Vogel, Shepson, Bump, Moore, BART papers
- Cooperative authors: Gough, Nave, Roche, Cuthbert, Snow, Fincke, Campbell

4) I have no idea how many papers are out there that failed to acknowledge UMBS.

5) Nadelhoffer, Hogg and Hazlett 2010 is included but I have yet to add individual chapters (which Bob and I agree should be done) - this will add 21 publications to 2010.

Posted by kkwaiser at 12:52 PM | Comments (0)

October 28, 2011

Bibliography Criteria

I asked Bob to elaborate on how decisions to include a publication in our bibliography are made . Here is what he said:

The historical criteria for adding a publication is: 1) whether it resulted from research while that person was at the station and 2) whether it is from the Station area.

But as I was looking through all the publications there were quite a few that were about different areas of the world. So basically the criterion became whether that person worked on the publication here (wrote it, or did the statistics, etc.). So a publication wouldn't be part of our bibliography if it was just from our area (as Scott Herron's probably are). That is why I created the nmich bibliography (there were, for example, huge numbers of archaeological publications done by other people but in our area). A publication would be part of our bibl if someone was on sabbatical here (like Jordan Price) but wrote about research that they had done in other parts of the world.

Here is an additional criteria dealing with grey-literature:

Articles like the Gough and Nave 2011 (a FluxNet Newsletter article) should be included in the UMBS Research Bibliography if they meet the following criteria:

- They add unique value to the Bibliography. In this case, a full accounting of a signature UMBS research project qualifies.

- The bibliographic entry can be distinguished from peer-reviewed entries within the bibliography. Although not ideal, I've categorized this entry as a Magazine Article as the grey literature implication is clear.

Here is the publication:
http://umbs.lsa.umich.edu/research/node/10408/

Posted by kkwaiser at 09:02 AM | Comments (0)

March 31, 2011

Adding stable file download links to the Research Bibliography - Part 2

So, Jim Ottaviani, who puts the DeepBlue into DeepBlue, got back to me with questions on how much overlap exists between our collections. Yes, this is the question I tried to head-off but it failed, obviously. To get a rough idea, I compared the publication lists of UMBS and DeepBlue for two authors BT Hazlett and BA Hazlett. I came up with these statistics:

23 - number of publications listed with UMBS
31 - number of publications listed with DeepBlue
35% - percent of UMBS Pubs found in the entire DeepBlue collection (i.e., pubs in common)
38% - percent of pubs in common found in UMBS' DeepBlue Collection
25% - percent of pubs in common that had minor differences in the title

This is not a random sample but the take home messages appear to be:
1) There is significant - but hardly complete - overlap between the collections
2) Title is an easy but incomplete way to match.
3) Incidentally, the differences in the titles occurred in the last few words
4) We'll need to search the entire DeepBlue collection, not just UMBS' portion.

Questions:
1) Do we know perl regular expressions? I don't.
2) How many items pubs/papers are in the entire DeepBlue collection?

Raw data below the fold.

ID, In DBlue?, In UMBS DBlue Collection?,Notes
1, No, No,
2, No, No,
3, No, No,
4, No, No,
5, Yes, No,
6, No, No,
7, No, No,
8, No, No,
9, No, No,
10, No, No,
11, No, No,
12, Yes, No,
13, No, No,
14, No, No,
15, No, No,
16, Yes, No,
17, Yes, No, Title differs slightly
18, Yes, Yes,
19, No, No,
20, No, No,
21, Yes, Yes,
22, Yes, No,
23, Yes, Yes, Titles differ slightly

Posted by kkwaiser at 03:52 PM | Comments (0) | TrackBack

March 30, 2011

Adding stable file download links to the Research Bibliography - Part 1

I would like to add a stable link from our bibliographic entries to pdf downloads that DeepBlue has available. The first step in this process is to determine how many of our publications they actually have record of. I am sending them the title, year, journal and first author information for our publications so that they can run a quick-n-dirty match.

Here's the SQL statement I used to pull the information from the database:


SELECT drupal_node.nid,drupal_biblio.biblio_citekey, drupal_biblio.biblio_year, drupal_biblio_contributor_data.lastname, drupal_biblio_contributor_data.firstname, drupal_node.title, drupal_biblio.biblio_secondary_title
FROM `drupal_node`
LEFT JOIN drupal_biblio ON drupal_biblio.nid = drupal_node.nid
LEFT JOIN drupal_biblio_contributor ON drupal_biblio_contributor.nid = drupal_biblio.nid
LEFT JOIN drupal_biblio_contributor_data ON drupal_biblio_contributor_data.cid = drupal_biblio_contributor.cid
WHERE drupal_node.type = 'biblio'
AND drupal_biblio_contributor.rank = '0'
ORDER BY drupal_biblio.biblio_year DESC

OK, for whatever d@mn reason, the above query breaks when I run it on ITS servers (but not on my dev machine). The strangest part is that the query runs but when I go to export query through PHPMyAdmin it breaks and I end up exporting the FROM table. The problem, apparently, is the WHERE statement because the export works as expected without it. The following is what I used on ITS servers:


SELECT drupal_biblio.nid,drupal_biblio.biblio_citekey, drupal_biblio.biblio_year, drupal_node.title, drupal_biblio_contributor_data.lastname, drupal_biblio_contributor.rank

FROM drupal_biblio

LEFT JOIN drupal_node ON drupal_node.nid = drupal_biblio.nid
LEFT JOIN drupal_biblio_contributor ON drupal_biblio_contributor.nid = drupal_biblio.nid
LEFT JOIN drupal_biblio_contributor_data ON drupal_biblio_contributor_data.cid = drupal_biblio_contributor.cid

ORDER BY drupal_biblio.biblio_year DESC

I've tweaked the above query a bit:


SELECT drupal_biblio.nid, drupal_biblio.biblio_year, drupal_node.title, drupal_biblio_contributor_data.lastname,drupal_biblio_contributor_data.firstname, drupal_biblio_contributor_data.initials, drupal_biblio.biblio_secondary_title, drupal_biblio_contributor.rank

FROM drupal_biblio

LEFT JOIN drupal_node ON drupal_node.nid = drupal_biblio.nid
LEFT JOIN drupal_biblio_contributor ON drupal_biblio_contributor.nid = drupal_biblio.nid
LEFT JOIN drupal_biblio_contributor_data ON drupal_biblio_contributor_data.cid = drupal_biblio_contributor.cid

ORDER BY drupal_biblio.biblio_year DESC

Posted by kkwaiser at 10:40 AM | Comments (0) | TrackBack

March 21, 2011

Pulling author and publication per year counts

Just a bit of sql documentation for now:

Pull all authors along with NID of their publications:

SELECT drupal_biblio.nid, drupal_biblio_contributor_data.cid, drupal_biblio_contributor_data.name FROM drupal_biblio LEFT JOIN drupal_biblio_contributor ON drupal_biblio_contributor.nid = drupal_biblio.nid LEFT JOIN drupal_biblio_contributor_data ON drupal_biblio_contributor_data.cid = drupal_biblio_contributor.cid
SELECT drupal_biblio_contributor_data.name, count(drupal_biblio_contributor_data.name) FROM drupal_biblio LEFT JOIN drupal_biblio_contributor ON drupal_biblio_contributor.nid = drupal_biblio.nid LEFT JOIN drupal_biblio_contributor_data ON drupal_biblio_contributor_data.cid = drupal_biblio_contributor.cid GROUP BY drupal_biblio_contributor_data.name ORDER BY count(drupal_biblio_contributor_data.name) DESC

Pull Pubs per Year:


SELECT drupal_biblio.biblio_year, count(drupal_biblio.biblio_year)
FROM drupal_biblio
GROUP BY drupal_biblio.biblio_year
ORDER BY count(drupal_biblio.biblio_year) DESC

Pull Keywords used by Publications per year (remove group by year for variant):


SELECT drupal_biblio.biblio_year, drupal_term_data.name, COUNT(drupal_term_data.name)
FROM drupal_biblio
LEFT JOIN drupal_term_node ON drupal_term_node.nid = drupal_biblio.nid
LEFT JOIN drupal_term_data ON drupal_term_data.tid = drupal_term_node.tid
GROUP BY drupal_biblio.biblio_year, drupal_term_data.name
ORDER BY COUNT(drupal_term_data.name) DESC

- Bonus: Put results of this query (OK, modify a bit first) into a tag cloud. This website recognizes phrases.

Posted by kkwaiser at 05:13 PM | Comments (0)

March 11, 2011

Finding UMBS Pubs

The Research Bibliography is the single most important resource we have in documenting the history of research at the University of Michigan Biological Station. I've spent the last week or so updating it and was surprised by the number of publications I found via Google Scholar that we did not have record of. In fact I was so surprised I have decided to document my procedure so that it can be reproduced for earlier years:

Visit Google Scholar

- Advanced Search
- Constrain the Date - I have exhausted the 2008-present timeline but have not touched 2007 or earlier. I recommend doing this one-year-at-a-time
- Suggested searches
"University of Michigan Biological Station"
"Biosphere-Atmosphere Research Training"
"Biosphere-Atmosphere Research"
"Biosphere-Atmosphere Research and Training"
BART +IGERT
Pellston, MI -"University of Michigan Biological Station"
"university of michigan biological field station"
"university of michigan field biological station"
"university of michigan field station"
prophet atmosphere -"university of michigan biological station" -peptide -god -religion -Mohammad -Muhammad -Mohamed -Muhammed

Tips:

Ignore links to conference websites - we typically do not enter abstracts
Ignore links to deepblue.lib.umich
-

Posted by kkwaiser at 09:59 AM | Comments (0)

April 27, 2010

Customize Biblio endnote export to include citekey (hack)

The Biblio module auto-increments a citation key but this key is not included in the Endote Tagged export by default. Here is a hack to include the citation key. In this case, I export the citation key into the Accession Number field.

1) Open the file containing the biblio_endnote_tagged_export() function: ~sites/all/modules/biblio/biblio.import.export.inc (Line 864)

2) Go to line 923 and change this:


if (!empty($node->biblio_accession_number))
$tagged .= "%M ". trim($node->biblio_accession_number) ."\r\n";

to this:


if (!empty($node->biblio_citekey))
$tagged .= "%M ". trim($node->biblio_citekey) ."\r\n";

Explanation: As mentioned, Biblio can be setup up to auto-increment the citation key (admin/settings/biblio > citekey). These values are stored in the "biblio" table as the field "biblio_citekey". All you are doing is substituting one database field for another.

3) Save the file and test the export.

Posted by kkwaiser at 10:31 AM | Comments (0)

April 02, 2010

How to enter publications into Drupal's Biblio via DOI

This entry is a guide to entering a publication into Drupal's Biblio module. Note that most Administrative information for the bibliography can be found here at Administer > Site Configuration > Biblio Settings (URL: admin/settings/biblio)

1) Login:
- go to http://blah.umich.edu/alpha/login
- You can change your password and find other information at the "My Account" link

2) Set up DOI import for the bibliography:
- Create Content > Biblio > DOI Lookup
- Click on "You need to register with CrossRef" and complete following page

3) Synchronize your CrossRef information
- Go to My Account > Edit > Biblio Settings > CrossRef Login Information
- Add your email (e.g., kkwaiser@umich.edu) to the Account ID box
- Save

3) Import an publication via a DOI:
- Create Content > Biblio > DOI Lookup
- Enter this DOI: 10.1672/08-41.1 > Click Populate using DOI

4) QA/QC the new publication:
- Authors: Make sure the pre-existing authors have correct name (via auto-complete)
- Person References: These should be the same as the authors. If the name doesn't autocomplete, enter the name and a "person" of that name will be created
- Abstract: Did it import?
- Notes: Anything important to add?
- Custom 1: If UMBS has a hardcopy on file enter the following: Archived copy available at the University of Michigan Biological Station
- Custom 2: Field for research sites associated with this publication. For example: Lake Michigan/Lake Huron/Lake Superior
- Research Site Reference: Should be the same information as Custom 2. If the site doesn't exist it will be created and you may want to go edit the site characteristics (such as location!)
- Custom 3: A list of associated habitats. For example: Northern Hardwoods/Swamp-Hardwood-Conifer
- Keywords: This is an auto-complete field. Please use existing terms wherever possible although it is possible to create new terms if needed.

5) Save or Preview the entry.

Posted by kkwaiser at 12:01 PM | Comments (0)

March 05, 2010

Create biblio to research site node references

1) Query for biblio NIDs and associated research sites.

SELECT nid, biblio_custom3
FROM `alpha_biblio`
WHERE biblio_custom3 IS NOT NULL


2) Query for research site NIDs and names:

SELECT nid, title
FROM `alpha_node`
WHERE `type` LIKE 'research_site'

Currently going back to the bib and fixing names. problem with (), don't know why.

3) I used a python script to match the biblio NIDs and the research site NIDs based upon the name. In the process, I found and corrected a number of errors. It would have been more efficient to build the sql into the pyton script but I didn't want to take the time to figure that out.


#! /usr/bin/python
# execfile("/blah/scripts/combineNIDS.py")
import sys, tempfile, string, re, csv, os
try:
fi1 = csv.reader( open('blah/biblioNID_withResearchSites.csv', 'r') , delimiter=',', quotechar='"') #biblio NIDs
fi2 = csv.reader( open('blah/researchSites_with_NID.csv', 'r'), delimiter=',', quotechar='"') # research site NIDs
fo = csv.writer( open('blah/io/matchedNIDs.csv', 'w')) # output Document
bibNID = list()
pairedNID = [["bibNID", "siteName", "siteNID"]]
siteList = list()
pairedNIDCounter= 0

# this loop pairs each research site with the NID of the respective bibliography entry
for row in fi1: #each row is a bib entry
a = row[1].split('/') #separate research sites for a given bib entry
for site in a:
bibNID.append([ row[0], site.strip() ]) # this list is each site in the bib with the biblio NID
for row in fi2: # create a reserach site list we can work with
siteList.append(row)

for bibSite in bibNID: # grab a site from a publication
pairedNIDCounterBeforeTest = pairedNIDCounter # see below
for aSite in siteList: # grab a research site
#print aSite
if bibSite[1].strip() == aSite[1].strip(): # do the two sites match
pairedNID.append([bibSite[0] , aSite[1] , aSite[0]])
pairedNIDCounter += 1
#print pairedNIDCounter
if pairedNIDCounter == pairedNIDCounterBeforeTest: # if this test is TRUE, then a site from the biblio did not have a matching research which means something is wrong
print bibSite #print the biblio site that doesn't match a research site
fo.writerows(pairedNID) # this is the matched NIDs

except IOError:
print 'Can\'t open file for reading.'
sys.exit(0)

4) I then used the following sql files to load the data into the database:
insert_into_bib_person_ref.sql
insert_into_search_node_lines.sql

Posted by kkwaiser at 02:35 PM | Comments (0)

February 22, 2010

Mapping EndNote to RIS

I exported the same bibliographic entrees from EndNote into the Endnote tagged format and the RIS tagged format. I then mapped them 1:1 and noted inconsistencies as they arose.

Part of the reason I did this is because when you import one these tagged documents into different bibliographic software (e.g., EndNote, Refworks, ProCite) the outcome is different. Some fields are smashed together and others seem to be lost!

It's worth noting that this is how EndNote maps to RIS and not how ProCite or Refworks would map to RIS.


Endnote to RIS
%0 to TY -> Indicates Reference Type
%A to AU -> Indicates Author
%E to A2 -> Indicates Editor
%D to PY -> Indicates Year
%T to TI -> Indicates Title
%! to ST -> Indicates Short Title
%J to T2 -> Indicates Journal
%B to T2 -> Indicates Book Title
%V to VL -> Indicates Volume, Degree
%N to M1 -> Indicates Issue (should be IS in RIS)
%P to SP -> Indicates page number
%8 to DA -> Indicates Date
%@ to SN -> Indicates ISSN
%R to DO -> Indicates DOI
%M to AN -> Indicates Accession Number
%F to LB -> Indicates Lable
%K to KW -> Indicates Keyword
%X to AB -> Indicates Abstract (note: may also be N2 in RIS specs)
%Z to N1 -> Indicates Notes
%< to RN -> Indicates Research Notes (doesn't appear to be defined in RIS specifications?)
%U to UR -> Indicates URL
NaN to ID -> Indicates an ID number, not included in Endnote format
%I to PB -> Indicates Publisher
%C to CI -> Indicates City
%& to SE -> Indicates Chapter

References:
http://www.refman.com/support/docs/ReferenceManager12.pdf
http://www.refman.com/support/risformat_tags_01.asp

This website is a good resource. It lists and defines the EndNote tagging scheme:

http://www.cardiff.ac.uk/insrv/educationandtraining/guides/endnote/endnote_codes.html

Posted by kkwaiser at 08:08 AM | Comments (0)

February 12, 2010

Create Node References via database insertions

The goal here is to create a lot of node references that point from publications held within biblio to a CCK content type, Person. Here are some steps:


1) Upload the bibliography to Drupal. Add a node reference field to the biblio content type. I called this field "bib_person_reference".

2) Go to the database (I'm using phpMyAdmin) and run this query to pull out the author names. These will be used (with Node Import) to create the Person instances:

SELECT biblio_contributor_data.cid, biblio_contributor_data.name, biblio_contributor_data.lastname, biblio_contributor_data.firstname, biblio_contributor_data.initials

FROM biblio_contributor_data

3) Export the previous query to a csv file. Here are the first rows:


Table A.
"cid","name","lastname","firstname","initials"
"1","Anonymous","Anonymous",,
"2","Abdel-Malek, Emile Tadros","Abdel-Malek","Emile Tadros",
"3","Ackert, James E.","Ackert","James","E"
"4","Wadley, F. M.","Wadley",,"F M"

Note: I saved this file as "biblio_author_dump.csv"

4) Prep the author information for Node Import. The Node Import module has a CSV formatting requirement for inputs. Here's what an example of my formatting looks like in a spreadsheet. I then save this with comma delimiters and quotes all around.

Table B.
uid type Full name Last Name First Name Middle Name Comment settings Published Promoted to front page Sticky at top of lists Authored on
1 Person Anonymous Anonymous 0 1 0 0 2010-02-25 14:00:00
1 Person Abdel-Malek, Emile Tadros Abdel-Malek Emile Tadros 0 1 0 0 2010-02-25 14:00:00
1 Person Ackert, James E. Ackert James E 0 1 0 0 2010-02-25 14:00:00
1 Person Wadley, F. M. Wadley F M 0 1 0 0 2010-02-25 14:00:00

Note: I called this file person_create_import.csv. Also note that I tangled with the names a *bit* because the biblio module uses a different name schema than I do.

5) Import and create the Person nodes. A trick here is that I kept each person's full name (aka Node Title) exactly the same as the biblio contributor (author) full name. See the next step for why this matters.

6) Now, match the Person NID's with the Author NID's. I am able to use LEFT JOIN because the Person Title (i.e., full name) is identical to the contributor name (i.e., author name). I was extremely happy when I figured this out.


SELECT biblio_contributor.nid, biblio_contributor.vid, biblio_contributor_data.cid, biblio_contributor_data.name, node.nid, node.title

FROM biblio_contributor_data

LEFT JOIN node ON node.title = biblio_contributor_data.name
LEFT JOIN biblio_contributor ON biblio_contributor.cid = biblio_contributor_data.cid

7) I put the results from the last query in OpenOffice calc. Notice that I sorted this data by the biblioNID (it was sorted by the author name before.)

Table C.
nid vid cid name nid title
2824 2824 1 Anonymous 5643 Anonymous
2825 2825 2 Abdel-Malek, Emile 5644 Abdel-Malek, Emile
2826 2826 3 Ackert, James E. 5645 Ackert, James E.
2826 2826 4 Wadley, F. M. 5646 Wadley, F. M.

8) Next, format the data in Table C so that they can go into an SQL statment. In OO Calc, I created two additional sheets that match the tables I will insert data into:

 Table D.
Name:  alpha_search_node_links
       (biblioNID)              (personNID)   (Full Name)
            sid        type         nid        caption
            2824       node	   5643	      Anonymous
            2825       node        5644	      Abdel-Malek, Emile Tadros
            2826       node	   5645	      Ackert, James E.
Name: alpha_content_field_bib_person_reference
            (biblioNID)          	(personNID)
	vid	nid	delta	field_bib_person_reference_nid
	2824	2824	  0		5643
	2825	2825	  0 		5644
	2826	2826	  0		5646
	2826	2826	  1		5645
The delta denotes the number of authors a publication has. Delta = 0 denotes the first author, Delta = 1 denotes the second author. In this example, publication 2826 has two authors whose node ID numbers are 5646 and 5645.


9) Format the contents of Table D to create the SQL query and then run it (I used phpMyAdmin for this.) Here are two snippets of what the queries looked like in the end:

Insert data into the table content_field_bib_person_reference. This table was created when I added a node reference field to the biblio content type:


INSERT INTO `database`.`content_field_bib_person_reference` (
`vid` ,
`nid` ,
`delta` ,
`field_bib_person_reference_nid`
)

VALUES (

'2824' , '2824' , '0' , '5643' ),
( '2825' , '2825' , '0' , '5644' ),
( '2826' , '2826' , '1' , '5645' ),
( '2826' , '2826' , '0' , '5646' )

;


Insert data into the table search_node_links:

INSERT INTO `database`.`search_node_links` (
`sid` ,
`type` ,
`nid` ,
`caption`
)
VALUES (

'2824' , 'node' , '5643' , 'Anonymous' ),
( '2825' , 'node' , '5644' , 'Abdel-Malek, Emile Tadros' ),
( '2826' , 'node' , '5645' , 'Ackert, James E.' ),
( '2826' , 'node' , '5646' , 'Wadley, F. M.' )

;


Note: Some of the names have apostrophes (e.g. 0'Neill). To keep this from interfering with the SQL syntax I added an escape character (e.g., O\'Neill)

10) Finally, clear the memory cache (admin/settings/performance > Clear Cached Data)

11) View a couple of bibliography entries to make sure everything went smoothly.


Note:  The text below is scrap.  It's being saved just in case it comes in handy later.




I ran this query to pull out the person's name and NID (referred to as personNID below):

SELECT node.nid, node.title
FROM node
WHERE node.type = "person"

7) Run the following query to get the author names, their id's (CID) and the id (NID or biblioNID, below) of the publications they are associated with.

This query extracts data from two biblio tables: biblio_contributor_data and biblio_contributor.

SELECT biblio_contributor.nid, biblio_contributor_data.cid, biblio_contributor_data.name, biblio_contributor_data.lastname, biblio_contributor_data.firstname, biblio_contributor_data.initials

FROM biblio_contributor, biblio_contributor_data

WHERE biblio_contributor.cid = biblio_contributor_data.cid

8) Export the previous query to a csv file. Here are the first rows:

 
Table A.
"nid","cid","name","lastname","firstname","initials"
"2824","1","Anonymous","Anonymous",,
"2825","2","Abdel-Malek, Emile Tadros","Abdel-Malek","Emile Tadros",
"2826","3","Ackert, James E.","Ackert","James","E"


7) I also ran this query to get the NID's of the biblio entries (biblioNID) and their associated contributor (author) ID's, or CID's.

SELECT nid, vid, cid
FROM biblio_contributor
ORDER BY nid

This produced the following:

Table B.

nid vid cid
25 25 1
26 26 1
27 27 1
28 28 1
29 29 1
30 30 3
30 30 2
31 31 1
32 32 1
33 33 4
34 34 5

Notice below that I have associated the CID's (i.e., the author identifier used by biblio, with the personNID (i.e., the identifier for each person I created.) I got the personNID when I queried the test_person content type. Because the list of persons and the list of contributors are identical, all I did to associate the two was an alphabetical sort and then a paste!

Table C.

cid name lastname firstname initials personNID
1 Gates, Frank C. Gates Frank C 2982
3 Nichols, G. E. Nichols G E 2984
4 Barnes, B. V. Barnes B. V. 2985

For a quick summary, a unique personNID is associated with each cid (personNID -> cid) and the cid is associated with every publication for a given author (cid -> biblioNID). This tutorial was helpful in associating each personNID with the appropriate biblioNID's.

Using OpenOffice Calc, I put Tables B and C on the same worksheet. I added a column to the right of Table A labeled personNID. I filled that column with this equation:

=INDEX($F$2:$K$1746;MATCH(C2;$F$2:$F$1746;0);MATCH($D$1;$F$1:$K$1;0))

$F$2:$K$1746 -> This references the dimensions of Table C.

MATCH(C2;$F$2:$F$1746;0) -> This matches the CID from Table B to the CID from Table C and returns the spreadsheet row number

MATCH($D$1;$F$1:$K$1;0) -> This returns the column number from Table C that holds the personNID.

When the row number and column number are put together, INDEX returns the value of the given cell, the personNID. This matches the biblioNID with the correct personNID(s).

2) Run the following query to get the author names, their id's (CID) and the id (NID or biblioNID, below) of the publications they are associated with. I did this through PHPMyAdmin.

This query extracts data from two biblio tables: biblio_contributor_data and biblio_contributor.

SELECT biblio_contributor.nid, biblio_contributor_data.cid, biblio_contributor_data.name, biblio_contributor_data.lastname, biblio_contributor_data.firstname, biblio_contributor_data.initials

FROM biblio_contributor, biblio_contributor_data

WHERE biblio_contributor.cid = biblio_contributor_data.cid

3) Export the previous query to a csv file. Here are the first rows:

 
Table A.
"nid","cid","name","lastname","firstname","initials"
"2824","1","Anonymous","Anonymous",,
"2825","2","Abdel-Malek, Emile Tadros","Abdel-Malek","Emile Tadros",
"2826","3","Ackert, James E.","Ackert","James","E"

Posted by kkwaiser at 09:01 AM | Comments (0)

February 09, 2010

Feed Biblio fields into Node Reference Create

At the risk of becoming yet another duplicate in the great Biblio, CCK, D7 debate...

I have a bibliography containing ~3000 entries which contain author names (obviously) and references to research sites. Both of these are properly delimited and in separate fields (Endnote tagged %A and %1, respectively.) I also have the following CCK content types: Person and Research Site.

My goal is the following:

Use the Biblio module and Node Reference Create, to automatically feed the Author and Research Site data from the bibliography into Node Reference Create, thereby creating the respective content types and establishing the node references.

This website is still underdevelopment meaning that this could happen either during the Biblio import or after.

Assuming a proficiency in Drupal and PHP, any comments on the feasibility of this? Approximate hours needed? Potential pathways? I realize I may have to contract for this but comments from the community would be helpful prior to that step.

Posted by kkwaiser at 12:58 PM | Comments (0)

February 03, 2010

Multiple Bibliographies (Biblio Collections)

Sooner or later, we are going to want the capability to host several distinct bibliographies. For example:
1) Main research papers
2) Papers related to Northern Michigan
3) Student research papers

Here are links on drupal.org that are related to this topic. The concept is called biblio collections and it has been talked about for year but not yet implemented.
Here are posts related to this subject:

The most recent Coding discussion on Biblio Collections.

This post: multiple biblios. Comments by Masood, here and Masood, here, are potential work arounds.

separate bibliographies for Biblio 5.x

More discussion on Biblio collections

Another post on multiple bibliographies for Biblio 5.x.

Posted by kkwaiser at 09:25 AM | Comments (0)