Skip to content
Snippets Groups Projects
Commit 9123ba4d authored by Christian Boulanger's avatar Christian Boulanger
Browse files

Fix outdated links

parent 31776b9e
No related branches found
No related tags found
No related merge requests found
%% Cell type:markdown id:4c77ab592c98dfd tags:
# Conversion to TEI (`<bibl>`)
References:
- https://vault.tei-c.de/P5/3.0.0/doc/tei-p5-doc/en/html/CO.html#COBI (Overview)
- https://vault.tei-c.de/P5/3.0.0/doc/tei-p5-doc/en/html/CO.html#COBIOT (Mapping to other bibliographic formats)
- https://vault.tei-c.de/P5/3.0.0/doc/tei-p5-doc/en/html/ref-bibl.html (`<bibl>`)
- https://vault.tei-c.de/P5/3.0.0/doc/tei-p5-doc/en/html/ref-biblStruct.html (`biblStruct`)
- https://www.tei-c.org/release/doc/tei-p5-doc/en/html/CO.html#COBI (Overview)
- https://www.tei-c.org/release/doc/tei-p5-doc/en/html/CO.html#COBIOT (Mapping to other bibliographic formats)
- https://www.tei-c.org/release/doc/tei-p5-doc/en/html/ref-bibl.html (`<bibl>`)
- https://www.tei-c.org/release/doc/tei-p5-doc/en/html/ref-biblStruct.html (`biblStruct`)
- https://epidoc.stoa.org/gl/latest/supp-bibliography.html (Examples)
- https://quod.lib.umich.edu/cgi/t/tei/tei-idx?type=HTML&rgn=DIV2&byte=647051
- https://grobid.readthedocs.io/en/latest/training/Bibliographical-references/ (Grobid examples using `<bibl>`)
- http://www.jsonml.org/ (a JSON schema for lossless conversion from/to xml)
We use `<bibl>` here instead of `<biblStruct>` because it is more loosely-structured and allows for a more flat datastructure.
## Collect metadata on TEI `<bibl>` tags
%% Cell type:code id:ff140f40df428a8f tags:
``` python
import xmlschema
import os
# cache for local use
if not os.path.isdir("schema/tei"):
schema = xmlschema.XMLSchema("https://www.tei-c.org/release/xml/tei/custom/schema/xsd/tei_all.xsd")
schema.export(target='schema/tei', save_remote=True)
```
%% Cell type:code id:572f566fc9784238 tags:
``` python
import xml.etree.ElementTree as ET
import pandas as pd
import requests
from bs4 import BeautifulSoup
import re
from tqdm.notebook import tqdm
# written by GPT-4
def extract_headings_and_links(tag, doc_heading, doc_base_url):
# Extract heading numbers from the document
heading_numbers = re.findall(r'\d+(?:\.\d+)*', doc_heading)
# Download the HTML page
url = f"{doc_base_url}/ref-{tag}.html"
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
# Extract the links associated with each heading number
links = {}
for link in soup.find_all('a', class_='link_ptr'):
heading_value = link.find('span', class_='headingNumber').text.strip()
link_url = link.get('href')
links[heading_value] = f"{doc_base_url}/{link_url}"
return {heading: link_url for heading, link_url in zip(heading_numbers, links.values()) if
heading in heading_numbers}
def generate_tag_docs(xsd_path):
namespaces = {'xs': 'http://www.w3.org/2001/XMLSchema'}
doc_base_url = "https://vault.tei-c.de/P5/3.0.0/doc/tei-p5-doc/en/html"
doc_base_url = "https://www.tei-c.org/release/doc/tei-p5-doc/en/html"
tree = ET.parse('schema/tei/tei_all.xsd')
root = tree.getroot()
schema = xmlschema.XMLSchema(xsd_path)
bibl_schema = schema.find("tei:bibl")
data_list = []
#names = [child_element.local_name for child_element in bibl_schema.iterchildren()]
names = ['author', 'biblScope', 'citedRange', 'date', 'edition', 'editor', 'idno', 'location', 'note', 'orgName',
'publisher', 'pubPlace', 'ptr', 'series', 'title', 'volume', 'issue']
for name in tqdm(names, desc="Processing TEI tags"):
doc_node = root.find(f".//xs:element[@name='{name}']/xs:annotation/xs:documentation", namespaces=namespaces)
if doc_node is not None:
matches = re.search(r'^(.*)\[(.*)]$', doc_node.text)
if matches is None: continue
description = matches.group(1)
doc_heading = matches.group(2)
doc_urls = extract_headings_and_links(name, doc_heading, doc_base_url)
data_list.append({'name': name, 'description': description, 'documentation': doc_heading, 'urls': doc_urls})
return pd.DataFrame(data_list)
cache_file = "schema/tei/tei-tags-documentation.json"
if not os.path.isfile(cache_file):
df = generate_tag_docs("schema/tei/tei_all.xsd")
df.to_json(cache_file, index=False, orient='records')
json_str = df.to_json(index=False, orient='records', indent=4).replace(r"\/", "/")
with open(cache_file, "w", encoding='utf-8') as f:
f.write(json_str)
else:
df = pd.read_json(cache_file)
df
```
%% Output
name description \
0 author (author) in a bibliographic reference, contain...
1 biblScope (scope of bibliographic reference) defines the...
2 citedRange (cited range) defines the range of cited conte...
3 date (date) contains a date in any format.
4 edition (edition) describes the particularities of one...
5 editor contains a secondary statement of responsibili...
6 idno (identifier) supplies any form of identifier u...
7 location (location) defines the location of a place as ...
8 note (note) contains a note or annotation.
9 orgName (organization name) contains an organizational...
10 publisher (publisher) provides the name of the organizat...
11 pubPlace (publication place) contains the name of the p...
12 ptr (pointer) defines a pointer to another location.
13 series (series information) contains information abou...
14 title (title) contains a title for any kind of work.
documentation \
0 3.12.2.2. Titles, Authors, and Editors 2.2.1. ...
1 3.12.2.5. Scopes and Ranges in Bibliographic C...
2 3.12.2.5. Scopes and Ranges in Bibliographic C...
3 3.6.4. Dates and Times 2.2.4. Publication, Dis...
4 2.2.2. The Edition Statement
5 3.12.2.2. Titles, Authors, and Editors
6 14.3.1. Basic Principles 2.2.4. Publication, D...
7 14.3.4. Places
8 3.9.1. Notes and Simple Annotation 2.2.6. The ...
9 14.2.2. Organizational Names
10 3.12.2.4. Imprint, Size of a Document, and Rep...
11 3.12.2.4. Imprint, Size of a Document, and Rep...
12 3.7. Simple Links and Cross-References 17.1. L...
13 3.12.2.1. Analytic, Monographic, and Series Le...
14 3.12.2.2. Titles, Authors, and Editors 2.2.1. ...
urls
0 {'3.12.2.2': 'https://vault.tei-c.de/P5/3.0.0/...
1 {'3.12.2.5': 'https://vault.tei-c.de/P5/3.0.0/...
2 {'3.12.2.5': 'https://vault.tei-c.de/P5/3.0.0/...
3 {'3.6.4': 'https://vault.tei-c.de/P5/3.0.0/doc...
4 {'2.2.2': 'https://vault.tei-c.de/P5/3.0.0/doc...
5 {'3.12.2.2': 'https://vault.tei-c.de/P5/3.0.0/...
6 {'14.3.1': 'https://vault.tei-c.de/P5/3.0.0/do...
7 {'14.3.4': 'https://vault.tei-c.de/P5/3.0.0/do...
8 {'3.9.1': 'https://vault.tei-c.de/P5/3.0.0/doc...
9 {'14.2.2': 'https://vault.tei-c.de/P5/3.0.0/do...
10 {'3.12.2.4': 'https://vault.tei-c.de/P5/3.0.0/...
11 {'3.12.2.4': 'https://vault.tei-c.de/P5/3.0.0/...
12 {'3.7': 'https://vault.tei-c.de/P5/3.0.0/doc/t...
13 {'3.12.2.1': 'https://vault.tei-c.de/P5/3.0.0/...
14 {'3.12.2.2': 'https://vault.tei-c.de/P5/3.0.0/...
0 {'3.12.2.2': 'https://www.tei-c.org/release/do...
1 {'3.12.2.5': 'https://www.tei-c.org/release/do...
2 {'3.12.2.5': 'https://www.tei-c.org/release/do...
3 {'3.6.4': 'https://www.tei-c.org/release/doc/t...
4 {'2.2.2': 'https://www.tei-c.org/release/doc/t...
5 {'3.12.2.2': 'https://www.tei-c.org/release/do...
6 {'14.3.1': 'https://www.tei-c.org/release/doc/...
7 {'14.3.4': 'https://www.tei-c.org/release/doc/...
8 {'3.9.1': 'https://www.tei-c.org/release/doc/t...
9 {'14.2.2': 'https://www.tei-c.org/release/doc/...
10 {'3.12.2.4': 'https://www.tei-c.org/release/do...
11 {'3.12.2.4': 'https://www.tei-c.org/release/do...
12 {'3.7': 'https://www.tei-c.org/release/doc/tei...
13 {'3.12.2.1': 'https://www.tei-c.org/release/do...
14 {'3.12.2.2': 'https://www.tei-c.org/release/do...
%% Cell type:markdown id:aaf43ee43bb6d4d tags:
## Convert Groundd Truth to TEI
%% Cell type:code id:b3ee84984b88f24a tags:
``` python
import xml.etree.ElementTree as ET
import regex as re
import glob
import os
import xml.dom.minidom
import json
import xmlschema
def even_num_brackets(string: str):
"""
Simple heuristic to determine if string contains an even number of round and square brackets,
so that if not, trailing or leading brackets will be removed.
"""
return ((string.endswith(")") and string.count(")") == string.count("("))
or (string.endswith("]") and string.count("]") == string.count("[")))
def remove_punctuation(text):
"""This removes leading and trailing punctuation using very simple rules for German and English"""
start, end = 0, len(text)
while start < len(text) and re.match("\p{P}", text[start]) and text[end - 1]:
start += 1
while end > start and re.match("\p{P}", text[end - 1]) and not even_num_brackets(text[start:end]) and text[end - 1] not in "?!":
end -= 1
return text[start:end].strip()
def clean_editor(text):
text = re.sub(r'^in(:| )', '', remove_punctuation(text), flags=re.IGNORECASE)
text = re.sub(r'\(?(hrsg\. v\.|hg\. v|hrsg\.|ed\.|eds\.)\)?', '', text, flags=re.IGNORECASE)
return text.strip()
def clean_container(text):
return remove_punctuation(re.sub(r'^(in|aus|from)(:| )', '', text.strip(), flags=re.IGNORECASE))
def clean_pages(text):
return remove_punctuation(re.sub(r'^(S\.|p\.|pp\.|ff?\.||seqq?\.)', '', text.strip(), flags=re.IGNORECASE))
def extract_year(text):
m = re.search( r'[12][0-9]{3}', text)
return m.group(0) if m else None
def find_string(string, container):
start = container.find(string)
if start > -1:
end = start + len(string)
return start, end
raise ValueError(f"Could not find '{string}' in '{container}'")
def add_node(parent, tag, text="", attributes=None, clean_func=None, preserve=False):
"""
Adds a child node to the parent, optionally adding text and attributes.
If a clean_func is passed, the text is set after applying the function to it.
If the `preserve` flag is True, the removed preceding or trailing text is preserved in the xml,
outside of the node content
"""
node = ET.SubElement(parent, tag, (attributes or {}))
if clean_func:
cleaned_text = clean_func(text)
if preserve:
start, end = find_string(cleaned_text, text)
prefix, suffix = text[:start], text[end:]
if prefix !="" and len(parent) > 0:
parent[-1].tail = prefix
node.text = cleaned_text
if suffix != "":
node.tail = suffix
else:
node.text = text
return node
def create_tei_root():
return ET.Element('TEI', {
'xmlns': "http://www.tei-c.org/ns/1.0"
})
def create_tei_header(tei_root, title):
tei_header = add_node(tei_root, 'teiHeader')
file_desc = add_node(tei_header, 'fileDesc')
title_stmt = add_node(file_desc, 'titleStmt')
add_node(title_stmt, 'title', title)
publication_stmt = add_node(file_desc, 'publicationStmt')
add_node(publication_stmt, 'publisher', 'mpilhlt')
source_desc = add_node(file_desc, 'sourceDesc')
add_node(source_desc, 'p', title)
return tei_header
def create_body(text_root):
body = ET.SubElement(text_root, 'body')
add_node(body, 'p', 'The article text is not part of this document')
return body
def prettify(xml_string, indentation=" "):
"""Return a pretty-printed XML string"""
return xml.dom.minidom.parseString(xml_string).toprettyxml(indent=indentation)
def anystyle_to_tei(input_xml_path, id, preserve=False):
anystyle_root = ET.parse(input_xml_path).getroot()
tei_root = create_tei_root()
create_tei_header(tei_root, title=id)
text_root = add_node(tei_root, 'text')
body = create_body(text_root)
# <listBibl> element for <bibl> elements that are not in footnotes, such as a bibliography
listBibl = add_node(body, 'listBibl')
# iterate over all sequences (=footnotes) and translate into TEI equivalents
for sequence in anystyle_root.findall('sequence'):
# if the sequence contains a citation-number, create a new <note> to add <bibl> elements to
if (cn:= sequence.findall('citation-number')):
attributes = {
'n': cn[0].text,
'place': 'bottom'
}
node = add_node(text_root, 'note', attributes=attributes, clean_func=remove_punctuation, preserve=preserve)
else:
# otherwise add to <listBibl> element
node = listBibl
bibl = None
for child in sequence:
tag = child.tag
text = child.text
if tag == "citation-number": continue # this has already been taken care of
if (bibl is None # if we do not have a bibl element yet
or (bibl.find(tag) and tag != "note") # or tag already exists in the current element
or tag in ['signal', 'legal-ref'] # or tag belongs to a specific groups that signal a separate reference
or (tag in ["author", "editor", "authority"] and bibl.find('date'))): # or specific tags follow a date field
# then create a new bibl element
bibl = ET.SubElement(node, 'bibl')
match tag:
case 'author':
add_node(bibl, 'author', text, clean_func=remove_punctuation, preserve=preserve)
case 'backref':
add_node(bibl, 'ref', text, clean_func=remove_punctuation, preserve=preserve)
case 'container-title':
add_node(bibl, 'title', text, {'level': 'm'}, clean_func= clean_container, preserve=preserve)
case 'collection-title':
add_node(bibl, 'title', text, {'level': 's'}, clean_func= clean_container, preserve=preserve)
case 'date':
add_node(bibl, 'date', text, clean_func= extract_year, preserve=preserve)
case 'editor':
add_node(bibl, 'editor', text, clean_func=clean_editor, preserve=preserve)
case 'location':
add_node(bibl, 'pubPlace', text, clean_func=remove_punctuation, preserve=preserve)
case 'note':
add_node(bibl, 'note', text)
case 'journal':
add_node(bibl, 'title', text, {'level': 'j'}, clean_func= clean_container, preserve=preserve)
case 'legal-ref':
add_node(bibl, 'ref', text, {'type': 'legal'}, clean_func = remove_punctuation, preserve=preserve)
case 'pages':
add_node(bibl, 'biblScope', text, {'unit': 'pp'}, clean_func= clean_pages, preserve=preserve)
case 'signal':
add_node(bibl, 'note', text, {'type': 'signal'}, clean_func=remove_punctuation, preserve=preserve)
case 'title':
add_node(bibl, 'title', text, {'level': 'a'}, clean_func=remove_punctuation, preserve=preserve)
case 'url':
add_node(bibl, 'ptr', text, {'type':'web'}, clean_func=remove_punctuation, preserve=preserve)
case 'volume':
add_node(bibl, 'biblScope', text, {'unit': 'vol'}, clean_func = remove_punctuation, preserve=preserve)
if len(bibl) == 0:
node.remove(bibl)
if len(listBibl) == 0:
body.remove(listBibl)
return ET.tostring(tei_root, 'unicode')
def tei_to_json(tei_xml, schema):
dict_obj = xmlschema.to_dict(tei_xml, schema=schema, converter=xmlschema.JsonMLConverter)
return json.dumps(dict_obj, default=str)
# main
tei_xsd_path = "schema/tei/tei_all.xsd"
if 'schema' not in locals():
print("Parsing schema file, please wait...")
schema = xmlschema.XMLSchema(tei_xsd_path)
for input_path in glob.glob('anystyle/*.xml'):
base_name = os.path.basename(input_path)
id = os.path.splitext(base_name)[0]
print(f'Converting {base_name} into TEI-XML and JSON...')
output_xml = anystyle_to_tei(input_path, id, preserve=True)
output_json = tei_to_json(output_xml, schema)
with open(f'tei/{id}.xml', 'w', encoding='utf-8') as f:
f.write(prettify(output_xml))
with open(f'tei/{id}.json', 'w', encoding='utf-8') as f:
f.write(output_json)
```
%% Output
Converting 10.1111_1467-6478.00057.xml into TEI-XML and JSON...
Converting 10.1111_1467-6478.00080.xml into TEI-XML and JSON...
Converting 10.1515_zfrs-1980-0103.xml into TEI-XML and JSON...
Converting 10.1515_zfrs-1980-0104.xml into TEI-XML and JSON...
%% Cell type:markdown id:b0a231dc7bdd8b01 tags:
## Create LinkML schema from TEI XSD
%% Cell type:markdown id:aa86435960e61937 tags:
......
[
{
"name": "author",
"description": "(author) in a bibliographic reference, contains the name(s) of an author, personal or corporate, of a work; for example in the same form as that provided by a recognized bibliographic name authority. ",
"documentation": "3.12.2.2. Titles, Authors, and Editors 2.2.1. The Title Statement",
"urls": {
"3.12.2.2": "https:\/\/vault.tei-c.de\/P5\/3.0.0\/doc\/tei-p5-doc\/en\/html\/CO.html#COBICOR",
"2.2.1": "https:\/\/vault.tei-c.de\/P5\/3.0.0\/doc\/tei-p5-doc\/en\/html\/HD.html#HD21"
{
"name":"author",
"description":"(author) in a bibliographic reference, contains the name(s) of an author, personal or corporate, of a work; for example in the same form as that provided by a recognized bibliographic name authority. ",
"documentation":"3.12.2.2. Titles, Authors, and Editors 2.2.1. The Title Statement",
"urls":{
"3.12.2.2":"https://www.tei-c.org/release/doc/tei-p5-doc/en/html/CO.html#COBICOR",
"2.2.1":"https://www.tei-c.org/release/doc/tei-p5-doc/en/html/HD.html#HD21"
}
},
{
"name":"biblScope",
"description":"(scope of bibliographic reference) defines the scope of a bibliographic reference, for example as a list of page numbers, or a named subdivision of a larger work. ",
"documentation":"3.12.2.5. Scopes and Ranges in Bibliographic Citations",
"urls":{
"3.12.2.5":"https://www.tei-c.org/release/doc/tei-p5-doc/en/html/CO.html#COBICOB"
}
},
{
"name":"citedRange",
"description":"(cited range) defines the range of cited content, often represented by pages or other units ",
"documentation":"3.12.2.5. Scopes and Ranges in Bibliographic Citations",
"urls":{
"3.12.2.5":"https://www.tei-c.org/release/doc/tei-p5-doc/en/html/CO.html#COBICOB"
}
},
{
"name":"date",
"description":"(date) contains a date in any format. ",
"documentation":"3.6.4. Dates and Times 2.2.4. Publication, Distribution, Licensing, etc. 2.6. The Revision Description 3.12.2.4. Imprint, Size of a Document, and Reprint Information 16.2.3. The Setting Description 14.4. Dates",
"urls":{
"3.6.4":"https://www.tei-c.org/release/doc/tei-p5-doc/en/html/CO.html#CONADA",
"2.2.4":"https://www.tei-c.org/release/doc/tei-p5-doc/en/html/HD.html#HD24",
"2.6":"https://www.tei-c.org/release/doc/tei-p5-doc/en/html/HD.html#HD6",
"3.12.2.4":"https://www.tei-c.org/release/doc/tei-p5-doc/en/html/CO.html#COBICOI",
"16.2.3":"https://www.tei-c.org/release/doc/tei-p5-doc/en/html/CC.html#CCAHSE",
"14.4":"https://www.tei-c.org/release/doc/tei-p5-doc/en/html/ND.html#NDDATE"
}
},
{
"name":"edition",
"description":"(edition) describes the particularities of one edition of a text. ",
"documentation":"2.2.2. The Edition Statement",
"urls":{
"2.2.2":"https://www.tei-c.org/release/doc/tei-p5-doc/en/html/HD.html#HD22"
}
},
{
"name":"editor",
"description":"contains a secondary statement of responsibility for a bibliographic item, for example the name of an individual, institution or organization, (or of several such) acting as editor, compiler, translator, etc. ",
"documentation":"3.12.2.2. Titles, Authors, and Editors",
"urls":{
"3.12.2.2":"https://www.tei-c.org/release/doc/tei-p5-doc/en/html/CO.html#COBICOR"
}
},
{
"name":"idno",
"description":"(identifier) supplies any form of identifier used to identify some object, such as a bibliographic item, a person, a title, an organization, etc. in a standardized way. ",
"documentation":"14.3.1. Basic Principles 2.2.4. Publication, Distribution, Licensing, etc. 2.2.5. The Series Statement 3.12.2.4. Imprint, Size of a Document, and Reprint Information",
"urls":{
"14.3.1":"https://www.tei-c.org/release/doc/tei-p5-doc/en/html/ND.html#NDPERSbp",
"2.2.4":"https://www.tei-c.org/release/doc/tei-p5-doc/en/html/HD.html#HD24",
"2.2.5":"https://www.tei-c.org/release/doc/tei-p5-doc/en/html/HD.html#HD26",
"3.12.2.4":"https://www.tei-c.org/release/doc/tei-p5-doc/en/html/CO.html#COBICOI"
}
},
{
"name":"location",
"description":"(location) defines the location of a place as a set of geographical coordinates, in terms of other named geo-political entities, or as an address. ",
"documentation":"14.3.4. Places",
"urls":{
"14.3.4":"https://www.tei-c.org/release/doc/tei-p5-doc/en/html/ND.html#NDGEOG"
}
},
{
"name":"note",
"description":"(note) contains a note or annotation. ",
"documentation":"3.9.1. Notes and Simple Annotation 2.2.6. The Notes Statement 3.12.2.8. Notes and Statement of Language 10.3.5.4. Notes within Entries",
"urls":{
"3.9.1":"https://www.tei-c.org/release/doc/tei-p5-doc/en/html/CO.html#CONONO",
"2.2.6":"https://www.tei-c.org/release/doc/tei-p5-doc/en/html/HD.html#HD27",
"3.12.2.8":"https://www.tei-c.org/release/doc/tei-p5-doc/en/html/CO.html#COBICON",
"10.3.5.4":"https://www.tei-c.org/release/doc/tei-p5-doc/en/html/DI.html#DITPNO"
}
},
{
"name":"orgName",
"description":"(organization name) contains an organizational name. ",
"documentation":"14.2.2. Organizational Names",
"urls":{
"14.2.2":"https://www.tei-c.org/release/doc/tei-p5-doc/en/html/ND.html#NDORG"
}
},
{
"name":"publisher",
"description":"(publisher) provides the name of the organization responsible for the publication or distribution of a bibliographic item. ",
"documentation":"3.12.2.4. Imprint, Size of a Document, and Reprint Information 2.2.4. Publication, Distribution, Licensing, etc.",
"urls":{
"3.12.2.4":"https://www.tei-c.org/release/doc/tei-p5-doc/en/html/CO.html#COBICOI",
"2.2.4":"https://www.tei-c.org/release/doc/tei-p5-doc/en/html/HD.html#HD24"
}
},
{
"name":"pubPlace",
"description":"(publication place) contains the name of the place where a bibliographic item was published. ",
"documentation":"3.12.2.4. Imprint, Size of a Document, and Reprint Information",
"urls":{
"3.12.2.4":"https://www.tei-c.org/release/doc/tei-p5-doc/en/html/CO.html#COBICOI"
}
},
{
"name":"ptr",
"description":"(pointer) defines a pointer to another location. ",
"documentation":"3.7. Simple Links and Cross-References 17.1. Links",
"urls":{
"3.7":"https://www.tei-c.org/release/doc/tei-p5-doc/en/html/CO.html#COXR",
"17.1":"https://www.tei-c.org/release/doc/tei-p5-doc/en/html/SA.html#SAPT"
}
},
{
"name":"series",
"description":"(series information) contains information about the series in which a book or other bibliographic item has appeared. ",
"documentation":"3.12.2.1. Analytic, Monographic, and Series Levels",
"urls":{
"3.12.2.1":"https://www.tei-c.org/release/doc/tei-p5-doc/en/html/CO.html#COBICOL"
}
},
{
"name":"title",
"description":"(title) contains a title for any kind of work. ",
"documentation":"3.12.2.2. Titles, Authors, and Editors 2.2.1. The Title Statement 2.2.5. The Series Statement",
"urls":{
"3.12.2.2":"https://www.tei-c.org/release/doc/tei-p5-doc/en/html/CO.html#COBICOR",
"2.2.1":"https://www.tei-c.org/release/doc/tei-p5-doc/en/html/HD.html#HD21",
"2.2.5":"https://www.tei-c.org/release/doc/tei-p5-doc/en/html/HD.html#HD26"
}
}
},
{
"name": "biblScope",
"description": "(scope of bibliographic reference) defines the scope of a bibliographic reference, for example as a list of page numbers, or a named subdivision of a larger work. ",
"documentation": "3.12.2.5. Scopes and Ranges in Bibliographic Citations",
"urls": {
"3.12.2.5": "https:\/\/vault.tei-c.de\/P5\/3.0.0\/doc\/tei-p5-doc\/en\/html\/CO.html#COBICOB"
}
},
{
"name": "citedRange",
"description": "(cited range) defines the range of cited content, often represented by pages or other units ",
"documentation": "3.12.2.5. Scopes and Ranges in Bibliographic Citations",
"urls": {
"3.12.2.5": "https:\/\/vault.tei-c.de\/P5\/3.0.0\/doc\/tei-p5-doc\/en\/html\/CO.html#COBICOB"
}
},
{
"name": "date",
"description": "(date) contains a date in any format. ",
"documentation": "3.6.4. Dates and Times 2.2.4. Publication, Distribution, Licensing, etc. 2.6. The Revision Description 3.12.2.4. Imprint, Size of a Document, and Reprint Information 16.2.3. The Setting Description 14.4. Dates",
"urls": {
"3.6.4": "https:\/\/vault.tei-c.de\/P5\/3.0.0\/doc\/tei-p5-doc\/en\/html\/CO.html#CONADA",
"2.2.4": "https:\/\/vault.tei-c.de\/P5\/3.0.0\/doc\/tei-p5-doc\/en\/html\/HD.html#HD24",
"2.6": "https:\/\/vault.tei-c.de\/P5\/3.0.0\/doc\/tei-p5-doc\/en\/html\/HD.html#HD6",
"3.12.2.4": "https:\/\/vault.tei-c.de\/P5\/3.0.0\/doc\/tei-p5-doc\/en\/html\/CO.html#COBICOI",
"16.2.3": "https:\/\/vault.tei-c.de\/P5\/3.0.0\/doc\/tei-p5-doc\/en\/html\/CC.html#CCAHSE",
"14.4": "https:\/\/vault.tei-c.de\/P5\/3.0.0\/doc\/tei-p5-doc\/en\/html\/ND.html#NDDATE"
}
},
{
"name": "edition",
"description": "(edition) describes the particularities of one edition of a text. ",
"documentation": "2.2.2. The Edition Statement",
"urls": {
"2.2.2": "https:\/\/vault.tei-c.de\/P5\/3.0.0\/doc\/tei-p5-doc\/en\/html\/HD.html#HD22"
}
},
{
"name": "editor",
"description": "contains a secondary statement of responsibility for a bibliographic item, for example the name of an individual, institution or organization, (or of several such) acting as editor, compiler, translator, etc. ",
"documentation": "3.12.2.2. Titles, Authors, and Editors",
"urls": {
"3.12.2.2": "https:\/\/vault.tei-c.de\/P5\/3.0.0\/doc\/tei-p5-doc\/en\/html\/CO.html#COBICOR"
}
},
{
"name": "idno",
"description": "(identifier) supplies any form of identifier used to identify some object, such as a bibliographic item, a person, a title, an organization, etc. in a standardized way. ",
"documentation": "14.3.1. Basic Principles 2.2.4. Publication, Distribution, Licensing, etc. 2.2.5. The Series Statement 3.12.2.4. Imprint, Size of a Document, and Reprint Information",
"urls": {
"14.3.1": "https:\/\/vault.tei-c.de\/P5\/3.0.0\/doc\/tei-p5-doc\/en\/html\/HD.html#HD24",
"2.2.4": "https:\/\/vault.tei-c.de\/P5\/3.0.0\/doc\/tei-p5-doc\/en\/html\/HD.html#HD26",
"2.2.5": "https:\/\/vault.tei-c.de\/P5\/3.0.0\/doc\/tei-p5-doc\/en\/html\/CO.html#COBICOI"
}
},
{
"name": "location",
"description": "(location) defines the location of a place as a set of geographical coordinates, in terms of other named geo-political entities, or as an address. ",
"documentation": "14.3.4. Places",
"urls": {
"14.3.4": "https:\/\/vault.tei-c.de\/P5\/3.0.0\/doc\/tei-p5-doc\/en\/html\/ND.html#NDGEOG"
}
},
{
"name": "note",
"description": "(note) contains a note or annotation. ",
"documentation": "3.9.1. Notes and Simple Annotation 2.2.6. The Notes Statement 3.12.2.8. Notes and Statement of Language 10.3.5.4. Notes within Entries",
"urls": {
"3.9.1": "https:\/\/vault.tei-c.de\/P5\/3.0.0\/doc\/tei-p5-doc\/en\/html\/CO.html#CONONO",
"2.2.6": "https:\/\/vault.tei-c.de\/P5\/3.0.0\/doc\/tei-p5-doc\/en\/html\/HD.html#HD27",
"3.12.2.8": "https:\/\/vault.tei-c.de\/P5\/3.0.0\/doc\/tei-p5-doc\/en\/html\/CO.html#COBICON",
"10.3.5.4": "https:\/\/vault.tei-c.de\/P5\/3.0.0\/doc\/tei-p5-doc\/en\/html\/DI.html#DITPNO"
}
},
{
"name": "orgName",
"description": "(organization name) contains an organizational name. ",
"documentation": "14.2.2. Organizational Names",
"urls": {
"14.2.2": "https:\/\/vault.tei-c.de\/P5\/3.0.0\/doc\/tei-p5-doc\/en\/html\/ND.html#NDORG"
}
},
{
"name": "publisher",
"description": "(publisher) provides the name of the organization responsible for the publication or distribution of a bibliographic item. ",
"documentation": "3.12.2.4. Imprint, Size of a Document, and Reprint Information 2.2.4. Publication, Distribution, Licensing, etc.",
"urls": {
"3.12.2.4": "https:\/\/vault.tei-c.de\/P5\/3.0.0\/doc\/tei-p5-doc\/en\/html\/CO.html#COBICOI",
"2.2.4": "https:\/\/vault.tei-c.de\/P5\/3.0.0\/doc\/tei-p5-doc\/en\/html\/HD.html#HD24"
}
},
{
"name": "pubPlace",
"description": "(publication place) contains the name of the place where a bibliographic item was published. ",
"documentation": "3.12.2.4. Imprint, Size of a Document, and Reprint Information",
"urls": {
"3.12.2.4": "https:\/\/vault.tei-c.de\/P5\/3.0.0\/doc\/tei-p5-doc\/en\/html\/CO.html#COBICOI"
}
},
{
"name": "ptr",
"description": "(pointer) defines a pointer to another location. ",
"documentation": "3.7. Simple Links and Cross-References 17.1. Links",
"urls": {
"3.7": "https:\/\/vault.tei-c.de\/P5\/3.0.0\/doc\/tei-p5-doc\/en\/html\/CO.html#COXR",
"17.1": "https:\/\/vault.tei-c.de\/P5\/3.0.0\/doc\/tei-p5-doc\/en\/html\/SA.html#SAPT"
}
},
{
"name": "series",
"description": "(series information) contains information about the series in which a book or other bibliographic item has appeared. ",
"documentation": "3.12.2.1. Analytic, Monographic, and Series Levels",
"urls": {
"3.12.2.1": "https:\/\/vault.tei-c.de\/P5\/3.0.0\/doc\/tei-p5-doc\/en\/html\/CO.html#COBICOL"
}
},
{
"name": "title",
"description": "(title) contains a title for any kind of work. ",
"documentation": "3.12.2.2. Titles, Authors, and Editors 2.2.1. The Title Statement 2.2.5. The Series Statement",
"urls": {
"3.12.2.2": "https:\/\/vault.tei-c.de\/P5\/3.0.0\/doc\/tei-p5-doc\/en\/html\/CO.html#COBICOR",
"2.2.1": "https:\/\/vault.tei-c.de\/P5\/3.0.0\/doc\/tei-p5-doc\/en\/html\/HD.html#HD21",
"2.2.5": "https:\/\/vault.tei-c.de\/P5\/3.0.0\/doc\/tei-p5-doc\/en\/html\/HD.html#HD26"
}
}
]
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment