version 1.164, 2004/08/17 15:24:38
|
version 1.165, 2004/08/27 22:57:57
|
Line 270 def getText(nodelist):
|
Line 270 def getText(nodelist):
|
rc = rc + node.data |
rc = rc + node.data |
return rc |
return rc |
|
|
|
def getTextFromNode(nodename): |
|
nodelist=nodename.childNodes |
|
rc = "" |
|
for node in nodelist: |
|
if node.nodeType == node.TEXT_NODE: |
|
rc = rc + node.data |
|
return rc |
|
|
def sendFile(self, filename, type): |
def sendFile(self, filename, type): |
"""sends an object or a local file (in the product) as response""" |
"""sends an object or a local file (in the product) as response""" |
Line 666 class ECHO_fullText(ZopePageTemplate):
|
Line 673 class ECHO_fullText(ZopePageTemplate):
|
# 3 handler functions |
# 3 handler functions |
def start_element(name, attrs): |
def start_element(name, attrs): |
global retLex |
global retLex |
print name |
|
retLex+=createTag(name,attrs) |
retLex+=createTag(name,attrs) |
def end_element(name): |
def end_element(name): |
global retLex |
global retLex |
Line 689 class ECHO_fullText(ZopePageTemplate):
|
Line 696 class ECHO_fullText(ZopePageTemplate):
|
p.CharacterDataHandler = char_data |
p.CharacterDataHandler = char_data |
|
|
p.Parse(lemmatized.encode('utf-8'),1) |
p.Parse(lemmatized.encode('utf-8'),1) |
print repr(lemmatized.encode('utf-8')) |
#print repr(lemmatized.encode('utf-8')) |
|
|
return retLex |
return retLex |
|
|
Line 797 class ECHO_resource(Folder,Persistent):
|
Line 804 class ECHO_resource(Folder,Persistent):
|
"""showrdf""" |
"""showrdf""" |
self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml') |
self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml') |
ret="""<?xml version="1.0" encoding="utf-8"?>\n<RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ECHONAVIGATION="http://www.echo.eu/rdf#">\n""" |
ret="""<?xml version="1.0" encoding="utf-8"?>\n<RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ECHONAVIGATION="http://www.echo.eu/rdf#">\n""" |
ret+=self.getRDF(urn="echo:collectionroot")+"\n" |
ret+=self.getRDF(urn="echo:colllectionroot")+"\n" |
|
|
ret+="""</RDF:RDF>""" |
ret+="""</RDF:RDF>""" |
return ret |
return ret |
Line 2934 def manage_addECHO_userFolderForm(self):
|
Line 2941 def manage_addECHO_userFolderForm(self):
|
"""add a user folder form""" |
"""add a user folder form""" |
return manage_addECHO_userFolder(self) |
return manage_addECHO_userFolder(self) |
|
|
|
def getEdges(seqs,urn): |
|
"""edges""" |
|
ret=[] |
|
#print urn,seqs |
|
for seqsList in seqs[urn]: |
|
|
|
try: |
|
for seq in seqsList: |
|
ret+=seq.getElementsByTagName("RDF:li") |
|
except: |
|
ret+=seqsList.getElementsByTagName("RDF:li") |
|
return ret |
|
|
|
def createSubs(self,seqs,descrs,urn): |
|
"""create subs""" |
|
for edge in getEdges(seqs,urn): |
|
cn=createNode(self,descrs[edge.getAttribute('RDF:resource')]) |
|
if cn[0]=="CDLI_group": |
|
#print "HHHHHH",cn[1],seqs,descrs,cn[2] |
|
createSubs(cn[1],seqs,descrs,cn[2]) |
|
def getEdges2(seqs,urn): |
|
"""edges""" |
|
ret=[] |
|
#print urn,seqs |
|
|
|
return seqs[urn] |
|
|
|
def createSubs2(self,seqs,descrs,urn,level=0): |
|
"""create subs""" |
|
|
|
for edge in getEdges2(seqs,urn): |
|
print "urnXX",urn.encode('utf-8'),level |
|
cn=createNode2(self,descrs,edge) |
|
if cn[0]=="CDLI_group": |
|
|
|
createSubs2(cn[1],seqs,descrs,cn[2],level+1) |
|
print "urnddonesubs",urn.encode('utf-8') |
|
print "urndonenode",urn.encode('utf-8') |
|
return |
|
|
|
def createNode2(self,descrs,node): |
|
name=descrs[node]['name'] |
|
type=descrs[node]['type'] |
|
urn=node |
|
print " will create",node.encode('utf-8') |
|
id=re.sub('[^a-zA-Z0-9]','',name).encode('ascii','ignore') |
|
#print "id",id |
|
#print type |
|
#self.REQUEST.RESPONSE.write("<p>%s<p>\n"%id) |
|
if type=="CDLI_group": |
|
|
|
try: |
|
manage_addECHO_collection(self,id,name,name,"","","","","") |
|
|
|
except: |
|
self.REQUEST.RESPONSE.write("<p>Error%s</p>\n"%id) |
|
|
|
self.REQUEST.RESPONSE.write("<p>Creates:%s</p>\n"%getattr(self,id).absolute_url()) |
|
|
|
return type,getattr(self,id),urn |
|
|
|
if type=="CDLI_item": |
|
try: |
|
manage_addECHO_resource(self,id,name,name,"","",urn,"","") |
|
except: |
|
self.REQUEST.RESPONSE.write("<p>Error%s</p>\n"%id) |
|
self.REQUEST.RESPONSE.write("<p>Creates:%s</p>\n"%getattr(self,id).absolute_url()) |
|
|
|
|
|
return "XX" |
|
|
|
def createNode(self,nodes): |
|
for node in nodes: |
|
name=getTextFromNode(node.getElementsByTagName("ECHONAVIGATION:name")[0]) |
|
type=getTextFromNode(node.getElementsByTagName("ECHONAVIGATION:type")[0]) |
|
urn=node.getAttribute("RDF:about") |
|
|
|
id=re.sub('[^a-zA-Z0-9]','',name).encode('ascii','ignore') |
|
#print "id",id |
|
#print type |
|
self.REQUEST.RESPONSE.write("<p>%s</p>\n"%id) |
|
if type=="CDLI_group": |
|
print self.getId() |
|
|
|
manage_addECHO_collection(self,id,name,name,"","","","","") |
|
print "done::::",getattr(self,id) |
|
return type,getattr(self,id),urn |
|
|
|
if type=="CDLI_item": |
|
manage_addECHO_resource(self,id,name,name,"","",urn,"","") |
|
return "XX" |
|
|
|
|
|
|
class ECHO_root(Folder,Persistent,Implicit): |
class ECHO_root(Folder,Persistent,Implicit): |
"""ECHO Root Folder""" |
"""ECHO Root Folder""" |
|
|
Line 2941 class ECHO_root(Folder,Persistent,Implic
|
Line 3042 class ECHO_root(Folder,Persistent,Implic
|
|
|
meta_type="ECHO_root" |
meta_type="ECHO_root" |
|
|
|
def getTablet(self,item): |
|
read=urllib.urlopen("http://enlil.museum.upenn.edu/cgi-bin/cdlget.plx?item=%s&project=ncdl"%item).read() |
|
|
|
read=re.sub("\[search\]","search",read) |
|
|
|
return read[read.find("<body>")+6:read.rfind("</body>")] |
|
|
|
def generateFromRDF2(self): |
|
"""generate from RDF2""" |
|
global seqs |
|
seqs={} |
|
global descrs |
|
descrs={} |
|
global key |
|
key="" |
|
global value |
|
value="" |
|
def start_element(name,attrs): |
|
|
|
global seqs |
|
global descrs |
|
global key |
|
global value |
|
seq="" |
|
if name=="RDF:Seq": |
|
key=attrs.get('RDF:about') |
|
try: # teste ob liste |
|
x=seqs[key][0] |
|
except: |
|
|
|
seqs[key]=[] |
|
|
|
|
|
elif name=="RDF:Description": |
|
key=attrs.get('RDF:about') |
|
|
|
|
|
elif name=="RDF:li": |
|
name=attrs.get('RDF:resource') |
|
seqs[key].append(name) |
|
|
|
elif name=="ECHONAVIGATION:type": |
|
value="type" |
|
|
|
elif name=="ECHONAVIGATION:name": |
|
value="name" |
|
elif name=="ECHONAVIGATION:linkClickable": |
|
value="linkClickable" |
|
|
|
def end_element(name): |
|
"""nothing""" |
|
key="" |
|
value="" |
|
|
|
def char_data(data): |
|
"""nothing""" |
|
|
|
data=re.sub("\n","",data) |
|
try: |
|
if descrs[key].has_key(value): |
|
descrs[key][value]+=data |
|
else: |
|
descrs[key][value]=data |
|
except: |
|
|
|
descrs[key]={} |
|
descrs[key][value]=data |
|
|
|
p = xml.parsers.expat.ParserCreate() |
|
|
|
p.StartElementHandler = start_element |
|
p.EndElementHandler = end_element |
|
p.CharacterDataHandler = char_data |
|
fileName="/Users/dwinter/Documents/Projekte/CDLI/test11.rdf" |
|
|
|
p.ParseFile(file(fileName)) |
|
self.REQUEST.RESPONSE.write("<html><body><h1>Start</h1>") |
|
createSubs2(self,seqs,descrs,"/Cuneiform Corpus") |
|
self.REQUEST.RESPONSE.write("<h1>done</h1></body></html>") |
|
print "done" |
|
|
|
|
|
return "done" |
|
|
|
def generateFromRDF(self): |
|
"""generate Structure from rdf""" |
|
dom=xml.dom.minidom.parse("/Users/dwinter/Documents/Projekte/CDLI/test10.rdf") |
|
seqs={} |
|
descrs={} |
|
for seq in dom.getElementsByTagName("RDF:Seq"): |
|
key=seq.getAttribute('RDF:about') |
|
try: |
|
seqs[key].append(seq) |
|
except: |
|
seqs[key]=[seq] |
|
|
|
|
|
for descr in dom.getElementsByTagName("RDF:Description"): |
|
key=descr.getAttribute('RDF:about') |
|
try: |
|
descrs[key].append(descr) |
|
except: |
|
descrs[key]=[descr] |
|
createSubs(self,seqs,descrs,"echo:collectionroot") |
|
|
|
|
|
|
def changeWeightsInCollection(self): |
def changeWeightsInCollection(self): |
"""change all lables of a collection""" |
"""change all lables of a collection""" |
ret="" |
ret="" |