def add_vcard(self, position, name):
"""
:param position: number in author order
:param name: name as string - last, first, middle
:return: rdflib.Graph
"""
g = Graph()
# vcard individual
vci_uri = D['vcard-individual-' + position + '-' + self.localid]
g.add((vci_uri, RDF.type, VCARD.Individual))
# vcard name
vcn_uri = D['vcard-name-' + position + '-' + self.localid]
g.add((vcn_uri, RDF.type, VCARD.Name))
g.add((vcn_uri, RDFS.label, Literal(name)))
# Parse name into first, last, middle
name = HumanName(name)
g.add((vcn_uri, VCARD.givenName, Literal(name.first)))
g.add((vcn_uri, VCARD.familyName, Literal(name.last)))
if name.middle != "":
g.add((vcn_uri, VIVO.middleName, Literal(name.middle)))
# Relate vcard individual to vcard name
g.add((vci_uri, VCARD.hasName, vcn_uri))
return vci_uri, g
评论列表
文章目录