Given a raw URI for a VIVO person RDF page, call get.vivo.person to get basic attributes regarding the person.

Code

 get.vivo.person<-function(raw.uri){
 #
 #   Given a raw.uri (without the rdf filetype) of a VIVO person page, return basic facts about the
 #   the person.  Dereference as needed.  Missing attributes are returned as NA.
 #
     uri <- make.vivo.uri(raw.uri)
     x <- xmlParse(uri)   

     name.path <- paste("//rdf:Description[@rdf:about='",raw.uri,"']/rdfs:label",sep="",collapse="")
     xns<-getNodeSet(x,name.path) 

     name <- xmlValue(xns[[1]])
     era.commons.id <- get.vivo.attribute(x,"eraCommonsID","http://vivo.ufl.edu/ontology/vivo-ufl/")
     email <- get.vivo.attribute(x,"email")
     phone.number <- get.vivo.attribute(x,"phoneNumber")

     pubs <- length(getNodeSet(x,"//d:authorInAuthorship",c(d="http://vivoweb.org/ontology/core#")))
     grants <- length(getNodeSet(x,"//d:hasPrincipalInvestigatorRole",c(d="http://vivoweb.org/ontology/core#")))
 #
 #   deref first (!) personInPosition to get department name
 #
     xns<-getNodeSet(x,"//d:personInPosition",c(d="http://vivoweb.org/ontology/core#"))
     pip.uri <- make.vivo.uri(xmlGetAttr(xns[[1]],"rdf:resource"))
     xpip<-xmlParse(pip.uri)

     xns<-getNodeSet(xpip,"//d:positionInOrganization",c(d="http://vivoweb.org/ontology/core#"))
     pio.uri <- make.vivo.uri(xmlGetAttr(xns[[1]],"rdf:resource"))
     xpio <- xmlParse(pio.uri)

     department <- get.vivo.name(xpio)

     list(name=name,pubs=pubs,grants=grants,department=department,
         era.commons.id=era.commons.id,email=email,phone.number=phone.number)
 }

Sample Run

 > person.raw
 [1] "http://vivo.ufl.edu/individual/n25562"
 > get.vivo.person(person.raw)
 $name
 [1] "Conlon, Mike"

 $pubs
 [1] 77

 $grants
 [1] 1

 $department
 [1] "Health Outcomes and Policy"

 $era.commons.id
 [1] "MCONLON"

 $email
 [1] "mconlon@ufl.edu"

 $phone.number
 [1] "3522738872"

Notes