mirror of
https://github.com/docling-project/docling-core.git
synced 2026-05-17 13:10:44 +00:00
* refactor: move WebVTT data model from docling Signed-off-by: Cesar Berrospi Ramis <ceb@zurich.ibm.com> * fix(webvtt): deal with HTML entities in cue text spans Signed-off-by: Cesar Berrospi Ramis <ceb@zurich.ibm.com> * refactor(webvtt): support more WebVTT models Signed-off-by: Cesar Berrospi Ramis <ceb@zurich.ibm.com> * refactor(DoclingDocument): create a new provenance model for media file types Signed-off-by: Cesar Berrospi Ramis <ceb@zurich.ibm.com> * refactor(webvtt): make WebVTTTimestamp public Since WebVTTTimestamp is used in DoclingDocument, the class should be public. Strengthen validation of cue language start tag annotation. Signed-off-by: Cesar Berrospi Ramis <ceb@zurich.ibm.com> * refactor(webvtt): set languages to a list of strings in ProvenanceTrack Signed-off-by: Cesar Berrospi Ramis <ceb@zurich.ibm.com> * tests(webvtt): add test for ProvenanceTrack Signed-off-by: Cesar Berrospi Ramis <ceb@zurich.ibm.com> * refactor(webvtt): make all WebVTT classes public for reuse Signed-off-by: Cesar Berrospi Ramis <ceb@zurich.ibm.com> * chore(webvtt): preserve newlines as WebVTTLineTerminator Signed-off-by: Cesar Berrospi Ramis <ceb@zurich.ibm.com> * refactor(webvtt): set ProvenanceTrack time fields as float Signed-off-by: Cesar Berrospi Ramis <ceb@zurich.ibm.com> * chore(webvtt): ensure start time offsets are in sequence Signed-off-by: Cesar Berrospi Ramis <ceb@zurich.ibm.com> * chore(webvtt): improve regex to remove note,region,style blocks Signed-off-by: Cesar Berrospi Ramis <ceb@zurich.ibm.com> * chore(webvtt): parse the WebVTT file title Signed-off-by: Cesar Berrospi Ramis <ceb@zurich.ibm.com> * chore(webvtt): rebase to latest changes in idoctags Signed-off-by: Cesar Berrospi Ramis <ceb@zurich.ibm.com> * feat(webvtt): add WebVTT serializer Add a DoclingDocument serializer to WebVTT format. Improve WebVTT data model. Signed-off-by: Cesar Berrospi Ramis <ceb@zurich.ibm.com> * fix(webvtt): add 'text/vtt' as extra mimetype Add 'text/vtt' as extra MIME type to support WebVTT serialization, since it is not supported by 'mimetypes' with python < 3.11 Signed-off-by: Cesar Berrospi Ramis <ceb@zurich.ibm.com> * refactor(webvtt): roll back DocItem.prov as list of ProvenanceItem Signed-off-by: Cesar Berrospi Ramis <ceb@zurich.ibm.com> * tests(webvtt): fix test with STYLE and NOTE blocks Signed-off-by: Cesar Berrospi Ramis <ceb@zurich.ibm.com> * style(webvtt): apply X | Y annotation instead of Optional, Union Signed-off-by: Cesar Berrospi Ramis <ceb@zurich.ibm.com> * refactor(webvtt): simplify TrackProvenance model with tags Signed-off-by: Cesar Berrospi Ramis <ceb@zurich.ibm.com> * refactor(webvtt): align class and field names to new 'source' type Classes and fields that are related to the new source type should aign with their names. The term 'provenance' will identify the legacy implementation. Signed-off-by: Cesar Berrospi Ramis <ceb@zurich.ibm.com> * chore(DoclingDocument): drop the validation on field assignment Drop the validation on field assignment in NodeItem objects. Add the 'source' argument in the convenient function 'add_text' to create TextItem with track source data. Signed-off-by: Cesar Berrospi Ramis <ceb@zurich.ibm.com> refactor(webvtt): drop cue span classes, 'lang' and 'c' tags Drop WebVTT formatting features not covered by Docling across formats. Only 'u', 'b', 'i', and 'v' are supported and without classes. Make 'v' tag explicit as 'voice' feature in SourceTrack class. Signed-off-by: Cesar Berrospi Ramis <ceb@zurich.ibm.com> --------- Signed-off-by: Cesar Berrospi Ramis <ceb@zurich.ibm.com>
326 lines
7.1 KiB
JSON
Vendored
326 lines
7.1 KiB
JSON
Vendored
{
|
||
"schema_name": "DoclingDocument",
|
||
"version": "1.8.0",
|
||
"name": "webvtt_example_01",
|
||
"origin": {
|
||
"mimetype": "text/vtt",
|
||
"binary_hash": 16887312431371817791,
|
||
"filename": "webvtt_example_01.vtt"
|
||
},
|
||
"furniture": {
|
||
"self_ref": "#/furniture",
|
||
"children": [],
|
||
"content_layer": "furniture",
|
||
"name": "_root_",
|
||
"label": "unspecified"
|
||
},
|
||
"body": {
|
||
"self_ref": "#/body",
|
||
"children": [
|
||
{
|
||
"$ref": "#/texts/0"
|
||
},
|
||
{
|
||
"$ref": "#/texts/1"
|
||
},
|
||
{
|
||
"$ref": "#/texts/2"
|
||
},
|
||
{
|
||
"$ref": "#/texts/3"
|
||
},
|
||
{
|
||
"$ref": "#/texts/4"
|
||
},
|
||
{
|
||
"$ref": "#/texts/5"
|
||
},
|
||
{
|
||
"$ref": "#/texts/6"
|
||
},
|
||
{
|
||
"$ref": "#/texts/7"
|
||
},
|
||
{
|
||
"$ref": "#/texts/8"
|
||
},
|
||
{
|
||
"$ref": "#/texts/9"
|
||
},
|
||
{
|
||
"$ref": "#/texts/10"
|
||
},
|
||
{
|
||
"$ref": "#/texts/11"
|
||
},
|
||
{
|
||
"$ref": "#/texts/12"
|
||
}
|
||
],
|
||
"content_layer": "body",
|
||
"name": "_root_",
|
||
"label": "unspecified"
|
||
},
|
||
"groups": [],
|
||
"texts": [
|
||
{
|
||
"self_ref": "#/texts/0",
|
||
"parent": {
|
||
"$ref": "#/body"
|
||
},
|
||
"children": [],
|
||
"content_layer": "body",
|
||
"label": "text",
|
||
"source": [
|
||
{
|
||
"kind": "track",
|
||
"start_time": 11.0,
|
||
"end_time": 13.0,
|
||
"voice": "Roger Bingham"
|
||
}
|
||
],
|
||
"orig": "We are in New York City",
|
||
"text": "We are in New York City"
|
||
},
|
||
{
|
||
"self_ref": "#/texts/1",
|
||
"parent": {
|
||
"$ref": "#/body"
|
||
},
|
||
"children": [],
|
||
"content_layer": "body",
|
||
"label": "text",
|
||
"source": [
|
||
{
|
||
"kind": "track",
|
||
"start_time": 13.0,
|
||
"end_time": 16.0,
|
||
"voice": "Roger Bingham"
|
||
}
|
||
],
|
||
"orig": "We’re actually at the Lucern Hotel, just down the street",
|
||
"text": "We’re actually at the Lucern Hotel, just down the street"
|
||
},
|
||
{
|
||
"self_ref": "#/texts/2",
|
||
"parent": {
|
||
"$ref": "#/body"
|
||
},
|
||
"children": [],
|
||
"content_layer": "body",
|
||
"label": "text",
|
||
"source": [
|
||
{
|
||
"kind": "track",
|
||
"start_time": 16.0,
|
||
"end_time": 18.0,
|
||
"voice": "Roger Bingham"
|
||
}
|
||
],
|
||
"orig": "from the American Museum of Natural History",
|
||
"text": "from the American Museum of Natural History"
|
||
},
|
||
{
|
||
"self_ref": "#/texts/3",
|
||
"parent": {
|
||
"$ref": "#/body"
|
||
},
|
||
"children": [],
|
||
"content_layer": "body",
|
||
"label": "text",
|
||
"source": [
|
||
{
|
||
"kind": "track",
|
||
"start_time": 18.0,
|
||
"end_time": 20.0,
|
||
"voice": "Roger Bingham"
|
||
}
|
||
],
|
||
"orig": "And with me is Neil deGrasse Tyson",
|
||
"text": "And with me is Neil deGrasse Tyson"
|
||
},
|
||
{
|
||
"self_ref": "#/texts/4",
|
||
"parent": {
|
||
"$ref": "#/body"
|
||
},
|
||
"children": [],
|
||
"content_layer": "body",
|
||
"label": "text",
|
||
"source": [
|
||
{
|
||
"kind": "track",
|
||
"start_time": 20.0,
|
||
"end_time": 22.0,
|
||
"voice": "Roger Bingham"
|
||
}
|
||
],
|
||
"orig": "Astrophysicist, Director of the Hayden Planetarium",
|
||
"text": "Astrophysicist, Director of the Hayden Planetarium"
|
||
},
|
||
{
|
||
"self_ref": "#/texts/5",
|
||
"parent": {
|
||
"$ref": "#/body"
|
||
},
|
||
"children": [],
|
||
"content_layer": "body",
|
||
"label": "text",
|
||
"source": [
|
||
{
|
||
"kind": "track",
|
||
"start_time": 22.0,
|
||
"end_time": 24.0,
|
||
"voice": "Roger Bingham"
|
||
}
|
||
],
|
||
"orig": "at the AMNH.",
|
||
"text": "at the AMNH."
|
||
},
|
||
{
|
||
"self_ref": "#/texts/6",
|
||
"parent": {
|
||
"$ref": "#/body"
|
||
},
|
||
"children": [],
|
||
"content_layer": "body",
|
||
"label": "text",
|
||
"source": [
|
||
{
|
||
"kind": "track",
|
||
"start_time": 24.0,
|
||
"end_time": 26.0,
|
||
"voice": "Roger Bingham"
|
||
}
|
||
],
|
||
"orig": "Thank you for walking down here.",
|
||
"text": "Thank you for walking down here."
|
||
},
|
||
{
|
||
"self_ref": "#/texts/7",
|
||
"parent": {
|
||
"$ref": "#/body"
|
||
},
|
||
"children": [],
|
||
"content_layer": "body",
|
||
"label": "text",
|
||
"source": [
|
||
{
|
||
"kind": "track",
|
||
"start_time": 27.0,
|
||
"end_time": 30.0,
|
||
"voice": "Roger Bingham"
|
||
}
|
||
],
|
||
"orig": "And I want to do a follow-up on the last conversation we did.",
|
||
"text": "And I want to do a follow-up on the last conversation we did."
|
||
},
|
||
{
|
||
"self_ref": "#/texts/8",
|
||
"parent": {
|
||
"$ref": "#/body"
|
||
},
|
||
"children": [],
|
||
"content_layer": "body",
|
||
"label": "text",
|
||
"source": [
|
||
{
|
||
"kind": "track",
|
||
"start_time": 30.0,
|
||
"end_time": 31.5,
|
||
"voice": "Roger Bingham"
|
||
}
|
||
],
|
||
"orig": "When we e-mailed—",
|
||
"text": "When we e-mailed—"
|
||
},
|
||
{
|
||
"self_ref": "#/texts/9",
|
||
"parent": {
|
||
"$ref": "#/body"
|
||
},
|
||
"children": [],
|
||
"content_layer": "body",
|
||
"label": "text",
|
||
"source": [
|
||
{
|
||
"kind": "track",
|
||
"start_time": 30.5,
|
||
"end_time": 32.5,
|
||
"voice": "Neil deGrasse Tyson"
|
||
}
|
||
],
|
||
"orig": "Didn’t we talk about enough in that conversation?",
|
||
"text": "Didn’t we talk about enough in that conversation?"
|
||
},
|
||
{
|
||
"self_ref": "#/texts/10",
|
||
"parent": {
|
||
"$ref": "#/body"
|
||
},
|
||
"children": [],
|
||
"content_layer": "body",
|
||
"label": "text",
|
||
"source": [
|
||
{
|
||
"kind": "track",
|
||
"start_time": 32.0,
|
||
"end_time": 35.5,
|
||
"voice": "Roger Bingham"
|
||
}
|
||
],
|
||
"orig": "No! No no no no; 'cos 'cos obviously 'cos",
|
||
"text": "No! No no no no; 'cos 'cos obviously 'cos"
|
||
},
|
||
{
|
||
"self_ref": "#/texts/11",
|
||
"parent": {
|
||
"$ref": "#/body"
|
||
},
|
||
"children": [],
|
||
"content_layer": "body",
|
||
"label": "text",
|
||
"source": [
|
||
{
|
||
"kind": "track",
|
||
"start_time": 32.5,
|
||
"end_time": 33.5,
|
||
"voice": "Neil deGrasse Tyson"
|
||
}
|
||
],
|
||
"orig": "Laughs",
|
||
"text": "Laughs",
|
||
"formatting": {
|
||
"bold": false,
|
||
"italic": true,
|
||
"underline": false,
|
||
"strikethrough": false,
|
||
"script": "baseline"
|
||
}
|
||
},
|
||
{
|
||
"self_ref": "#/texts/12",
|
||
"parent": {
|
||
"$ref": "#/body"
|
||
},
|
||
"children": [],
|
||
"content_layer": "body",
|
||
"label": "text",
|
||
"source": [
|
||
{
|
||
"kind": "track",
|
||
"start_time": 35.5,
|
||
"end_time": 38.0,
|
||
"voice": "Roger Bingham"
|
||
}
|
||
],
|
||
"orig": "You know I’m so excited my glasses are falling off here.",
|
||
"text": "You know I’m so excited my glasses are falling off here."
|
||
}
|
||
],
|
||
"pictures": [],
|
||
"tables": [],
|
||
"key_value_items": [],
|
||
"form_items": [],
|
||
"pages": {}
|
||
} |