Tips & Tricks
Here you will find ideas and solutions to specific tasks that you might wish to accomplish with DOTE.
- What is a Project?
- What do I call my Projects and my Transcripts?
- How do I transcode a video or audio file if it does not import correctly or a waveform is not generated?
- How do I format my Transcripts?
- How do I save my Transcripts?
- How do I use DOTE to create a Transcript from scratch?
- How do I play media and transcribe efficiently with DOTE?
- How do I share a DOTE Project or Transcript with someone else?
- How do I realign overlaps and subtiers?
- How do I manually make short excerpts of a transcript with consistent line numbering?
- How do I manage a default set of alignment symbols for Mondadaian Transcripts?
- How do I see all underlinings in a Transcript that has errors or warnings?
- How do I reuse a Transcript with sync-codes to create a new Transcript?
- How do I use DOTE to comment and tag an audiovisual source before transcribing?
- How do I see hidden characters in the Editor?
- How to use proxy videos to share Projects with sensitive video clips?
- How do I report an error or problem using the log files?
- Why do I need more than one Timeline?
- Why would I use the secondary video view?
- Why can I not copy/paste underlined text?
- Why would I use Checkpoints?
- Why would I use Video-cues?
- What is the difference between saving and Autobackup?
- What is the difference between
Replace
andChange All Occurrences
? - What is the difference between zooming the UI and changing the font size?
- What is the
Command Palette
? - Can I use non-alphabetic scripts in my Transcripts?
- Can I add emojis 🗣 to my Transcripts?
- Can I create Transcripts using other conventions?
- Can I convert transcripts created with other software to use in DOTE?
- Can I use AI to automatically recognise speech in DOTE?
- Can I copy and paste transcripts from publications into DOTE?
- Be cautious when editing sync-codes, video-cues and underlinings
- Be patient with Waveform generation, Checkpoint peeking, Exporting and Importing Projects and transcript heuristics
- Keep your DOTE projects safe and secure
- How do I cite DOTE?
- How was DOTE developed?
What is a Project?
A DOTE Project is a container for one or more media clips and one or more Transcripts. In practical terms, it is a folder on your computer's file system. The guiding principle is that a Project represents a single event, which can be transcribed in different ways. The single event may have been recorded with one device or many (cameras and/or microphones), but all the recordings are synchronised to match the duration of the event. Note that a user can open the folder in which an existing Project resides by clicking the button in Transcript Options.
It is possible to add media clips of different durations, as well as clips that are recordings of different events, to a single Project, but then that defeats the principle built into DOTE. This practice will result in waveforms and timelines (as well as sync-codes and video-cues) that no longer align and match. Furthermore, there may be spurious and unpredictable behavior since it is not a practice that we support. We do not recommend stuffing a Project with lots of disparate media clips; instead make a new Project for each event and populate each Project with clips that are synchronised.
What do I call my Projects and my Transcripts?
Given that Projects are containers for one or more media clips of a single event (see above), then it is a good idea to name a Project after the event in question, perhaps including important meta-data. Given that one or more Transcripts can be created in a Project, then each could be named after the focus, phenomena and/or conventions of that specific Transcript.
How do I transcode a video or audio file if it does not import correctly or a waveform is not generated?
Sometimes a video or audio file cannot be opened by DOTE or the waveform cannot be generated, neither with the inbuilt waveform generator nor using FFmpeg (in Settings; see the installation instructions). There are a variety of reasons for this.
If you haven't installed FFmpeg on your computer, then we recommend that you do this first, and manually add the file path in Settings. FFmpeg is a powerful open source video processor, which we cannot include inside DOTE for licensing reasons. Restart DOTE and create a new Project and import the media again or open Media Manager and regenerate the waveform using the button on the far right for the relevant media.
Another solution is to transcode the video into a format that DOTE can understand and reimport it into the DOTE project.
- The free, open-source software HANDBRAKE does the job.
With this software installed on Windows or macOS, you can import the source video quickly and easily transcode and export it into another format by selecting a preset such as
Web/Video Vimeo YouTube HQ
with the appropriate resolution. Don't worry about all the other technical options. Select a destination and clickStart Encode
. The exported video will retain the same length and frame rate as the original. - An alternative for both Windows and macOS is the free Shutter Encoder video convertor tool. The user interface is not so clear, but it can do a number of operations, such as changing the output codec, exporting, merging and cutting the video source.
If your video is greater than 4K resolution, eg. more than 4096 x 2160
, then depending on the power of your computer, DOTE may have problems playing and scrubbing through the video.
If so, then transcode in the same manner as above, making sure to downscale from 8K or 5K, for example, to 4K or less.
You could use this reduced version as a proxy in DOTE for the purposes of transcription.
How do I format my Transcripts?
DOTE has some golden rules to make your life easier:
- Always use a consistent speaker-id followed by a colon : and then a TAB at the start of a primary or secondary speaker tier. Never use SPACEs after that colon. Use a colon even with the Mondadaian conventions; in DOTE you can export the transcript in the recommended Mondadaian format (eg. without a colon) later.
- Do the same if a speaker continues onto a new line. Add a TAB first.
- Do the same for lines with only a comment or a pause indictor. Add a TAB first.
- Do the same when using subtiers, eg. participant-id + named subtier type followed by a colon and then a TAB. DOTE can export the transcript in the recommended Mondadaian format (eg. with reduced lowercase participant names) later.
- Never use TABs in the transcript body. Always use SPACEs, eg. to align overlaps on multiple lines.
- Set the name column width in the Settings so that there is plenty of room for all variants of the name + subtier.
For instance,
speaker.eng:
orspeaker@gloss:
require a minimum name column width, otherwise these lines will disrupt the tidy alignment and layout. DOTE will give you a friendly warning if you fill up and exceed your name column width allowance.
These rules help DOTE give better assistance. They avoid problems with skewed layout and messy vertical alignment of elements, such as overlaps and alignment symbols. They also allow DOTE to export in a variety of layouts (eg. document) with line numbering.
You are, of course, allowed to format your transcripts as you wish. Just expect a lot of errors and warnings flagged by DOTE, as well as mashed up exported transcripts that are not word processor friendly. If you do, then at least turn off error and warning messages to avoid colouring your transcript red.
How do I save my Transcripts?
Transcripts are stored on your local computer's file system and are accessible when not online. They are not stored on the cloud, which would mean that they are only accessible while online. Furthermore, DOTE is not like GoogleDocs; it does not send your keystrokes to the cloud, leaving no trace on your local computer. Anything you type in your Transcript is not saved until you decide to save it. And when you save, the changes are stored on your local computer's file system. If you create a new Checkpoint, then that does save the recent changes, but this is also manually triggered by the user. However, Autobackup just creates a backup of the new changes since the last save. An autobackup does not save the current changes; it just creates a backup copy at fixed time intervals.
How do I use DOTE to create a Transcript from scratch?
We have created a practical guide with recommended steps to use DOTE to create a Jeffersonian or Mondadaian transcript from scratch.
How do I play media and transcribe efficiently with DOTE?
Everyone will develop their own way of working with DOTE. From our personal experience, it can be dead efficient to use shortcuts to initiate looping one chunk ahead while typing the transcript. When that chunk is completed, then move on to the next chunk.
- Position the playhead at the start of the next chunk that you wish to transcribe (eg. an utterance or overlapping speech of roughly 5-10 seconds).
- Use the shortcut CTRL+ALT+SPACE or ⌘+⌥+N to set an A point at the current position of the playhead on the timeline, then use again to set a B point (eg. at the end of the chunk you wish to transcribe) as the media plays, after which the loop between A and B will begin.
- Listen (and look) and type in your Transcript in the Editor. You can use the Editor while the media is playing.
- Pause if you need to using CTRL+SPACE or ⌘+N. Press CTRL+SPACE or ⌘+N to start the loop again.
- When the chunk is transcribed well enough, deselect the loop with the shortcut CTRL+ALT+SPACE or ⌘+⌥+N. You may have to use this shortcut twice: first to pause the loop; second to deselect.
- Play to the end of the deselected chunk and pause.
- Repeat from step 1.
- You may wish to add sync-codes regularly as you proceed.
In this fashion, you can work through the media source(s) incrementally without taking your hands off the keyboard. Try it. You might like it! 😻
How do I share a DOTE Project or Transcript with someone else?
It is easy to share a DOTE Project with someone using the export/import Project or Transcript functionality in DOTE.
How do I realign overlaps and subtiers?
DOTE supports automatic realignment of some elements of a transcript within what we call a neighbourhood, in which actions occuring during a single continuous stretch of time are transcribed. This is useful, for example, when editing a transcript and adding/deleting characters in a tier or subtier that results in misalignment of the vertical elements of overlaps or subtier alignment symbols.
- If one clicks inside the neighbourhood (but not on a whitespace character) that is misaligned, then a small lightbulb appears.
- Click it and select realign.
- Alternatively, use the shortcut CTRL+. or ⌘+. to open the realignment dialog box.
- All considering, DOTE does a pretty good job, but it may fail on very complex or non-standard cases.
How do I report an error or problem using the log files?
In order to give you better help, our developers may need to look at the associated log file. There are instructions to help you locate the relevant log file.
How do I manually make short excerpts of a Transcript with consistent line numbering?
Some researchers wish to make small excerpts from a long source Transcript with line numbers such that the shorter excerpts retain the line numbering of the long Transcript. We could implement this feature in DOTE, but as soon as a line is added to or deleted from the Transcript in the editor, then the line numbering would change through the rest of the source Transcript. Thus, the line numbers of the short excerpts would no longer match the source exported from the new Transcript. We feel that it is best to finalise a Transcript by exporting it in full, and then create excerpts manually from that hard-coded source.
- The best way to do this is to
Export to RTF
with the line numbering your prefer. - Then import the
.RTF
file into a word processor. - Copy and paste the relevant lines for each excerpt, including the hard-coded line numbers, into a new document.
How do I manage a default set of alignment symbols for Mondadaian Transcripts?
If you would like a specific ordered list of alignment symbols to be always available by default when you create your subtier names and symbol assignments in Transcript Options for a specific Transcript, then they can be added and edited in the Settings. The default list is ordered, so when adding an alignment symbol using the dropdown list in Transcript Options, all the available symbols will appear in a list in that order (if a symbol has already been used, it will not appear in that list).
How do I see all underlinings in a Transcript that has errors or warnings?
If there are errors or warnings in your Transcript, then the red or blue line markings may overshadow the underlinings on the same line(s). Using the buttons at the top right of the Transcript panel, you can temporarily toggle errors or warnings off in order to see the underlining underneath.
How do I reuse a Transcript with sync-codes to create a new Transcript?
When DOTE creates a new Transcript in a Project that already has a Transcript with Sync-codes, it starts afresh with a blank Transcript with no Sync-codes (nor video-cues) in the editor. This may be the desired result. Nevertheless, there are cases in which it would be useful to keep the already marked sync-codes on separate lines derived the existing Transcript, but work on a different focus, format or set of conventions, eg. Mondadaian and not Jeffersonian. This can be done quite easily:
- Open the Transcript that you wish to duplicate but without the body text.
- Select
Save As New Transcript
from theFile
menu. See Projects for more information. - Deselect
Copy Transcript text
, but keepCopy Sync-codes
. - The duplicated Transcript will have blank lines but retain the Sync-codes.
- You can now make a new Transcript without having to add Sync-codes all over again.
Note that you can also, at the same time, retain or remove the Video-cues using this function.
How do I use DOTE to comment and tag an audiovisual source before transcribing?
Because sync-codes connect lines in the Transcript panel to timecodes in the audiovisual media source that is open, they can be used to comment and tag that media source, for example to note interesting phenomena. There are different strategies to accomplish this:
-
Use comments
((...))
or technical comments//...
on new lines to add notes. Remember to add aTAB before the comment. Use Sync-codes to sync those comments to the waveform. -
Another way is to repurpose the speaker-id. Tags can be used instead of the speaker-id on each line. Then, in the body of the transcript, notes can be added. Autocompletion will suggest appropriate tags on a new line. Each tagged line can be anchored with a Sync-code to the timeline, so it is easy to jump to that position in the media and play.
Thus, a long audiovisual source can be marked up for possible further exploration without needing to transcribe everything. If a shorter clip looks interesting enough to transcribe, then a Duplicate Transcript with sync-codes can be created in the current Project and transcription can start at the timecode of interest marked by the tag/comment. The tag/comment Transcript can be reopened later to locate other interesting phenomena to be transcribed.
How do I see hidden characters in the Editor?
If you wish to see any hidden characters in the Editor (eg. SPACE
, TAB
, RETURN
), then select the text of interest.
The hidden characters will be highlighted in light grey over a light blue background.
This can be useful for spotting unnecessary or spurious characters that have infiltrated the body of the Transcript.
How to use proxy videos to share Projects with sensitive video clips?
Sometimes you may wish to share a DOTE Project with someone, but they should not have access to the original video clips because of privacy/consent issues, though the researcher doing the transcription does need access to the original data. There are several ways to deal with this, assuming that the Transcript does not include any revealing information.
- First, one can simply export the Project without any media (nor active media) included. In that case, those who receive and import the Project would only be able to see the Transcript(s). Any sync-codes or video-cues that are present simply won't work because there is no media.
- Second, one can use the Media Manager to add an extra proxy media clip that is audio only, if that is acceptably anonymised. Most video editing software allows the audio track to be stripped off and exported as a WAV or MP3 file. When the Project is ready to export, use the Media Manager to turn off all active media, except for the audio only clip. Then export the Project, including only active media. Those who receive and import the Project will only have access to the audio only proxy media, and any sync-codes present will work, but video-cues will not.
- Third, one can use the Media Manager to add an extra proxy media clip that is an anonymised version of the video. There are different solutions to anonymising video clips, which will not be elaborated on here. And if there are more than one active video clips, one or more can be anonymised When the Project is ready to export, use the Media Manager to turn off all active media, except for the anonymised video clip(s). Then export the Project, including only active media. Those who receive and import the Project will only have access to the anonymised proxy media, and any sync-codes and video-cues present will work.
Why would I use the secondary video view?
For many use cases, one video view is adequate for transcribing. However, there are other use cases in which it is very useful to have a second independent, but synced view on the same video clip.
- If the video clip is 2D, then it can be useful to open the
Secondary video
panel and zoom in on a rectangular portion of the video screen, while at the same time viewing the zoomed out view of the whole video screen. - If the video clip is 360, then it can be useful to set up a locked primary view using video-cues to zoom in (and pan) around the spherical video.
The unlocked
Secondary video
view can focus in on a different angle and zoom of the 360 to simultaneously show an alternative view.
Why do I need more than one Timeline?
The primary Timeline is placed at the top above the primary video panel. It is where most of the work happens, time intervals, looping, playback. It is also where the sync-codes are indicated. The secondary Timeline(s) are placed below the video panel(s). There is a secondary Timeline for each media source attached to a Transcript. If you use them, these are where the video-cues are indicated. Moreover, if the Timelines are independent (and not synced), then one can focus each Timeline at different zoom levels, eg. the primary Timeline could be zoomed right in on an 8-second excerpt, while the secondary Timeline is zoomed out to give a macro-perspective on the whole clip.
Why can I not copy/paste underlined text?
Because of the way underlining works in the editor in DOTE, copy/pasting text that is underlined does not carry over the underlining, only the plain text. The underlining has to be added again manually.
Why would I use Checkpoints?
By default, if there are unsaved changes since the last backup, DOTE automatically makes a backup copy of the current Transcript at regular intervals of 5 minutes. You can change this behaviour in Settings. This is called Autobackup. This is useful, but other than the date/time stamp there is no easy way at a glance to know what changes were made that triggered a specific Autobackup.
DOTE implements a second system called Checkpoints that allows the user to write meaningful messages for each Checkpoint they make, which stores the changes made to the Transcript since the last Checkpoint. Thus, the user can figure out at a glance what changes were made at each checkpoint in the reverse chronological list of Checkpoints. It is advisable to write informative messages and make Checkpoints frequently.
NOTE that you will need to install Git, an open source version control system, to be able to use Checkpoints.
Why would I use Video-cues?
Using the unique Video-cue feature in DOTE, one can automatically playback the audio-visual media files in a Project in a cinematic mode, eg. pan, zoom, jump cut. This is incredibly useful when there is a lot of activity in a video source or the Project has several alternative camera angles and/or audio sources. Often when transcribing a specific segment of some data, it is desirable to zoom in to see more closely what is happening in the video (eg. a hand gesture or shift of gaze direction) or to pan around in the 360 video to see what event just happened in the opposite direction (eg. a new speaker appears at the door) or to smoothly track the action (eg. someone walking around in the scene) as it moves around the 2D or 360 video. These can be automated using Video-cues, so every time the segment is played through, the important stuff is accessible without any manual effort. It may be the case that during the segment the action is only accessible from another camera angle, but with Video-cues one can automatically jump cut to the other camera view/video and then switch back again later. By setting up different Video-cue combinations in alternative versions of the Transcript in a Project, one can present the same 'data' but with different analytical 'stories' or 'takes' on what visual and aural phenomena to focus on.
What is the difference between saving and Autobackup?
Saving is not the same as Autobackup. Saving the current Transcript writes the Transcript data to disk, while Autobackup makes a new copy and writes that to disk so that previous state can be recovered. Autobackup does not save the current Transcript automatically; that is a manual decision by the user. It just makes a series of backup copies at regular intervals, which can be viewed and restored in the future.
What is the difference between Replace
and Change All Occurrences
?
There are two ways to edit multiple instances of the same search string in the editor.
First, one can use Find/Replace to find every instance of a search string in the current Transcript.
Replace
can replace each instance one-by-one or all in one go.
The search string can be generated by selecting text in the Editor and then selecting Find
.
Second, one can select text in the Editor (other instances of the same string will be faintly highlighted in the editor and in the scroll bar minimap).
Then right click on the selection and choose Change All Occurrences
.
A multicursor will be positioned at the end of the string in each instance, and thus every instance can be edited at the same time.
What is the difference between zooming the UI and changing the font size?
One can zoom in (F10) and out (F9) the whole UI or one can change the font size in the editor (see Transcript Options). Zooming the UI will change the scale and font size of every element of the UI. Changing the font size in the editor will only change the size of the transcript text.
What is the Command Palette
?
For advanced users, there is a Command Palette
(F1) or right click in the editor) that lists all commands that can be executed in the editor, many of which do not have shortcuts.
The long list is searchable.
Be careful selecting some of the more esoteric commands because they may do something undesirable to your transcript.
Note: the list of commands included commands that do not work in DOTE (yet).
Can I use non-alphabetic scripts in my Transcripts?
Yes, you can use any Unicode letters, characters and symbols in your Transcript.
Because the display font has to be monospaced so that important vertical alignments can be parsed and realigned, DOTE is restricted to only those letters and symbols in Unicode that are available in DOTE's standard monospaced font, eg. Courier New
.
You can, of course, insert emojis and other special symbols or characters, but then vertical alignment of overlaps and alignment symbols, as well as the general layout of the Transcript on the page and when exported, cannot be guaranteed.
Moreover, there may be unforeseen consequences and false negatives/positives in warning and error reporting.
DOTE assumes left-to-right directionality in the Editor, so it is limited in relation to languages that have an alternative directionality, eg. right-to-left or top-to-bottom.
Can I add emojis 🗣 to my Transcripts?
Emojis can be easily added on Windows and macOS (see section in Transcript), but emojis are not monospaced in the Editor. Therefore, they can distort the auto-alignment across tiers and subtiers that DOTE offers. They can be used with caution, for example at the end of a subtier with no more alignment symbols. They are not recommended as speaker-ids nor as alignment symbols in the Mondadaian system. On the other hand, unicode symbols are monospaced, so they can be used everywhere.
Can I create Transcripts using other conventions?
DOTE fully supports two sets of transcription conventions, namely Jeffersonian and Mondadaian. If you would like to transcribe according to another set, such as GAT2 or your own system, then you can do so in the Editor, but DOTE will not be able to assist you. In fact, if you do not follow the basic formatting of a line that is expected by DOTE, then errors and warnings will be flagged. You can, of course, just toggle off the errors and warnings so they are not displayed, but they are still present, and so they will affect Export to RTF and Export to SRT, for example.
Can I convert transcripts created with other software to use in DOTE?
At present, DOTE does not support importing formats derived from other software.
A simple solution is to just cut and paste the plain text transcript from the original into the Editor, but note that underlining will not be preserved.
Any special timecodes embedded in the original will not be recognised, so the sync-codes will have to be re-entered in DOTE.
We may support importing at a later date with simple equivalence, but there are many features of DOTE that are unique and cannot be mapped onto other formats or data structures.
If you would like to program a convertor, then the data structures required in DOTE can be determined from the .project.json
file in any Project folder and the .transcript.json
and .media_meta.json
files in any Transcript folder.
The main things to look for are converting underlining and, if relevant, transcoding to sync-codes, as well as reformatting the transcript to match speaker-id + COLON + TAB.
If you do write a convertor, then please use Javascript/Typescript, port it to GitHub, and publish it to NPM.
Then we can build it into DOTE for the next release.
Can I use AI to automatically recognise speech in DOTE?
DOTE does not support automatic recognition of speech out of the box. However, it does support importing from MacWhisper, a version of OpenWhisper for macOS. See the following videos on You Tube:
- Import transcripts from 3rd party (AI based transcription Macwhisper)
- Transcribing Danish talk with Macwhisper and DOTE
- Transcription battle between AI and humans!
See Importing from JSON.
Can I copy and paste transcripts from publications into DOTE?
Fragments of transcripts are often published digitally in articles and books.
The most perversive format is PDF
, but there are also ebook formats, such as epub
.
Unfortunately, these are often in a non-standard format (PDF), in a proportional font (not monospaced) with spurious hidden symbols.
If permitted (without DCMA and password protection), then plain text can be copied and pasted into the Editor after a new Transcript is created.
Lots of work is usually required to massage the Transcript to match the original but within the style preferred by DOTE.
For example, one may have to remove line numbers, reformat each line to match the DOTE style, reformat to match the chosen conventions, realign overlaps (and subtiers), add underlines and replace spurious symbols with standard unicode.
Remember that the layout required in the DOTE Editor may not look exactly the same, especially with the Mondadaian layout, but the exported format (Export to RTF) will closely match the expected style and layout.
If there are mistakes or quirks in the original published transcript, then you will have to decide whether or not to correct them in the Editor.
Be cautious when editing sync-codes, video-cues and underlined text
Many editing operations in DOTE can be undone and redone using the shortcut keys CTRL+Z and CTRL+Y. However, some editing operations cannot be undone (and redone):
- Editing sync-codes cannot be undone using the standard shortcut.
To undo the insertion of a sync-code, select the sync-code and
right click
. SelectDelete
. - Editing video-cues cannot be undone.
To undo the insertion of a video-cue, select the video-cue and press the video-cue edit button or
right click
. In the edit dialog box, you can selectDelete
. - Adding an underline cannot be undone using the standard shortcut. To undo underlining, select the text that was underlined and press CTRL+U.
Also note that sync-codes, video-cues and underlining cannot be copy/pasted into a new location in the transcript or into other programs. Sync-codes and underlines do not follow the text or line that is cut or copied. And video-cues are unique to DOTE.
Be patient with Waveform generation, Checkpoint peeking, Exporting and Importing Projects and transcript heuristics
Be aware that on underpowered laptops or with very long transcripts and/or a long history of Checkpoints, then DOTE may slow down. There are several reasons for this:
- You are using a slow hard disk or remote file storage for the software and your data.
- DOTE is calculating the visual waveform incrementally from the audio track after import.
- DOTE is reparsing the whole transcript every time you make a small edit of the transcript.
- DOTE is reparsing the whole transcript every time the Export to RTF preview updates when you change a setting.
- DOTE is rebuilding the history of the transcript every time you peek at a Checkpoint or Autobackup.
- DOTE is reading and writing large media files when opening a transcript (with video) or exporting and importing Projects (with media).
Be patient. A solution may be to upgrade your computer to a faster processor or to use a faster SSD storage drive for your videos and transcripts.
Keep your DOTE projects safe and secure
DOTE has two in-built systems to be able to track changes over time when editing a Transcript, and to restore or reset the current Transcript to an earlier state. However, if your computer crashes and is not recoverable, or if you permanently delete the Project or Transcript folder, then there is nothing that DOTE can do to recover the Project and/or Transcripts because the files no longer exist. Therefore, as for any valuable data, keep regular backups of your Projects and Transcripts in a safe location, eg. on another drive, an external drive or the cloud.
How do I cite DOTE?
You can find out more information on how to cite here.
How was DOTE developed?
DOTE was conceived in 2017, prototyped in 2018 and developed in fits and spurts from 2020 to the first release in October 2022.
- The software was developed for the Electron platform in Javascript/Typescript.
- The online help guide was started in May 2020.
- Beta-testing started in May 2020.
- The modified license sever and webshop were built in the summer of 2022 in PHP/Laravel.
- Here is the incredible dream team who developed DOTE.