Open all XML objects of one project
tasks:
list all xml objects of the digitale bibliothek.
try to also read its edition/work metadata.
open xml (text/plain via aggregator
1. get all text/xml and find the edition
note, this may not always be there / see goethes briefe -> the first 3100 objects
from tgclients import TextgridSearch
tgsearch = TextgridSearch()
i = 3200
l = 1
# first the filter
results = tgsearch.search(filters=['project.id:TGPR-372fe6dc-57f2-6cd4-01b5-2c4bbefcfd3c', 'format:text/xml'], start=i, limit=l, path=True)
print(results.hits)
for result in results.result:
tguri = result.object_value.generic.generated.textgrid_uri.value
#print( tguri + ' - ' + result.object_value.generic.provided.title[0])
# get edition work metadata for this xml
ewmd = tgsearch.edition_work_metadata_for(tguri)
print( '\n---' + str(i) + '---' + tguri)
i += 1
if len(ewmd.result) >= 3:
for md in ewmd.result:
mduri = md.object_value.generic.generated.textgrid_uri.value
title = md.object_value.generic.provided.title[0]
mime = md.object_value.generic.provided.format
if md.object_value.edition != None:
print( mduri + ' - ' + md.object_value.edition.agent[0].value + ' : ' + title + ' - ' + mime )
else:
print( mduri + ' - ' + title + ' - ' + mime )
print("\n---path:")
for pg in result.path_response.path_group:
for p in pg.path:
for entry in p.entry:
print(entry.textgrid_uri + ": " + entry.title + " - " + entry.format)
106832
---3200---textgrid:mb11.0
textgrid:mb0z.0 - Natur und Sehnsucht - text/tg.work+xml
textgrid:mb10.0 - Dehmel, Richard Fedor Leopold : Natur und Sehnsucht - text/tg.edition+tg.aggregation+xml
textgrid:mb11.0 - Natur und Sehnsucht - text/xml
textgrid:mbvr.0 - Dehmel, Richard Fedor Leopold : Erlösungen - text/tg.edition+tg.aggregation+xml
textgrid:mbvs.0 - Erlösungen - text/tg.work+xml
---path:
textgrid:m9w0.0: Dehmel, Richard Fedor Leopold - text/tg.collection+tg.aggregation+xml
textgrid:mbwv.0: Gedichte - text/tg.aggregation+xml
textgrid:mbvr.0: Erlösungen - text/tg.edition+tg.aggregation+xml
textgrid:mbnp.0: Zweite Stufe: Liebe - text/tg.aggregation+xml
textgrid:mb10.0: Natur und Sehnsucht - text/tg.edition+tg.aggregation+xml
2. get all editions and find text/xml child objects
get plain text for text/xml objects with aggregator
from tgclients import TextgridSearch, Aggregator
tgsearch = TextgridSearch()
aggregator = Aggregator()
# TODO: we need constants for mimetypes
l = 5
# first find all editions
results = tgsearch.search(
filters=[
'project.id:TGPR-372fe6dc-57f2-6cd4-01b5-2c4bbefcfd3c',
'format:text/tg.edition+tg.aggregation+xml'],
limit=l)
print(results.hits)
# loop through the results
for result in results.result:
edition_uri = result.object_value.generic.generated.textgrid_uri.value
edition_agent = result.object_value.edition.agent[0].value
# get children of each edition
for child in tgsearch.children(edition_uri).textgrid_uri:
cg = tgsearch.info(textgrid_uri=child).result[0].object_value.generic
child_uri = cg.generated.textgrid_uri.value
# only list text/xml
if cg.provided.format == 'text/xml':
print(edition_agent + ' - ' + cg.provided.title[0])
print(aggregator.text(child_uri).text[0:100])
print("---")
93462
Hunold, Christian Friedrich - Oratorium aus dem 37. Psalm
Oratorium aus dem 37. Psalm
Erzürne dich nicht über die Bösen/ sey nicht neidisch über die Ubelthäte
---
Hunold, Christian Friedrich - Uber Sr. Königl. Majestät von Preußen Wahlspruch
Uber Sr. Königl. Majestät von Preußen Wahlspruch: Suum cuique
Der Himmel gab uns Dich/ die Tugend di
---
Hunold, Christian Friedrich - Auf Se. Durchl. den Printzen Eugenium
Auf Se. Durchl. den Printzen Eugenium
Schweigt/ die ihr lebet still/ bemercket nur die Leichen/
Die
---
Hunold, Christian Friedrich - Auf Se. Durchl. den Printzen Eugenium Gespräch
Auf Se. Durchl. den Printzen Eugenium Gespräch
Warum that
Cæsar
doch so viel in kurtzen Zeiten?
Kein
---
Hunold, Christian Friedrich - Uber eine alte Courtisanin, die Schach-matt
Uber eine alte Courtisanin, die Schach-matt
Dein Ruhm ist nicht darnach/ daß ich davon was melde/
Al
---
3. get all editions and plain text for all contained xml with aggregator
from tgclients import TextgridSearch, Aggregator
tgsearch = TextgridSearch()
aggregator = Aggregator()
l = 5
results = tgsearch.search(
filters=[
'project.id:TGPR-372fe6dc-57f2-6cd4-01b5-2c4bbefcfd3c',
'format:text/tg.edition+tg.aggregation+xml'],
limit=l)
print(results.hits)
for result in results.result:
edition_uri = result.object_value.generic.generated.textgrid_uri.value
edition_agent = result.object_value.edition.agent[0].value
edition_title = result.object_value.generic.provided.title[0]
print(edition_agent + ' - ' + edition_title)
print(aggregator.text(edition_uri).text[0:100])
print("---")
93462
Hunold, Christian Friedrich - Oratorium aus dem 37. Psalm
Oratorium aus dem 37. Psalm
Erzürne dich nicht über die Bösen/ sey nicht neidisch über die Ubelthäte
---
Hunold, Christian Friedrich - Uber Sr. Königl. Majestät von Preußen Wahlspruch
Uber Sr. Königl. Majestät von Preußen Wahlspruch: Suum cuique
Der Himmel gab uns Dich/ die Tugend di
---
Hunold, Christian Friedrich - Auf Se. Durchl. den Printzen Eugenium
Auf Se. Durchl. den Printzen Eugenium
Schweigt/ die ihr lebet still/ bemercket nur die Leichen/
Die
---
Hunold, Christian Friedrich - Auf Se. Durchl. den Printzen Eugenium Gespräch
Auf Se. Durchl. den Printzen Eugenium Gespräch
Warum that
Cæsar
doch so viel in kurtzen Zeiten?
Kein
---
Hunold, Christian Friedrich - Uber eine alte Courtisanin, die Schach-matt
Uber eine alte Courtisanin, die Schach-matt
Dein Ruhm ist nicht darnach/ daß ich davon was melde/
Al
---