Exporting Aeon Timeline 3 to Obsidian

Sure, no problem!
Clicky.

If you’re looking for a good free text-to-speech solution, try loading up Microsoft Edge (yeah the one we all disable when we install Windows).

Then go to the following URL:

data:text/html,<html contenteditable>

Paste text into the blank page it gives you.
Then press CTRL-SHIFT-U
On the upper right corner, you’ll find Voice Options where you can pick from a bunch of different voices. I prefer Microsoft Brian Online.

Thanks for the file and the information about the screen reader. Anyway, the LibreOffice plugin connects to the Windows system text reader.

I will now take a closer look at the new file format and return as soon as there are satisfying results.

Cheers,
Peter

2 Likes

Fantastic! I’d be happy to provide feedback on the results as I will probably have a lot of ideas on the usefulness of the Obsidian notes. I’ve got a pretty complex use case that will no doubt stretch the limits.

Most of the work was done quickly, but the relationships are still missing, which now have to be unraveled anew. I also still have to work on the narrative, which is no longer a complete tree but a kind of multi-linked list. But it’s just a bit of busywork that I want to do on the side over the next few days.

Just for the record: Which AT3 version did you use to save the reference project?
The file format version is indicated as 15, and the AT3 version 3.5 has already been announced, which should bring extensive innovations, which will probably also be reflected in the file format.

I did some investigation last year (as you might remember @Peter_T ), and the conclusion then was that the file format might change without warning (it is not stable, for better or worse) and there are quite a few cross references. It was the latter that made me give up because it is a lot of reverse engineering is needed. I think deducing the cross references without support from the Aeon team would be painful.

Having some kind of python library to read the files would be beneficial to Aeon IMHO and something the Aeon team should help support. This would greatly help integration with any other application and in the long run grow Aeon’s customer base. All IMHO of course. :relaxed::laughing:

1 Like

Just for the record: Which AT3 version did you use to save the reference project?

Aeon Timeline
Version: 3.4.20
Shell Version: 3.4.20
Operating System: Windows 10

You say it. In the meantime, I lost track of my system of lookup lists. Now I’m experimenting with a new data model.

I don’t think this will ever happen because, as mentioned in previous discussions, it would require too much maintenance and support.
It will probably remain a puzzle game for nerds.

@Recon: Thanks. I’ll mention the AT3 verison on the project’s home page. It will be outdated soon, I’m afraid.

I am currently building the program from scratch, and introducing an object-oriented data model that does not depend on the changing representation in the different .aeon file formats.

But there is one thing that worries me: It was mentioned elsewhere that AT3 keeps deleted items in its files. Of course, this must now be taken into account. I would therefore like to know how to recognize this. I already have a guess: under collection/allItemIds the UIDs are listed together with Boolean values. I assume that true means that the corresponding item has not been deleted.
@Recon: Could you please verify this with your simple example project?

DeletedItem

Yep, when I delete something I get a notification.
Download Link
Look for an event called DeletedEvent.

[edit]
It’s worth noting that DeletedEvent still shows up in the spreadsheet view. I think it just deletes the date from the event, thus removing it from the timeline view.

From the spreadsheet view, you can right click and choose to delete (again). It asks if you’re sure. Then it vanishes from the spreadsheet view. It might be gone for real.
Link to updated project

Thank you. However, this doesn’t seem to be what I’m looking for. If I’m not mistaken, you just removed an item from a particular view. The thing is, if you really delete the item itself, it seems to remain in the file.
See: How does Aeon handle waste management
My goal is to find out how deleted items are flagged in the file.

Re-reading the thread mentioned above, I came upon this:

If this means that AT3 stores its projects in OS-dependent formats, then my endeavour is futile anyway.

I realized after I posted that the delete function just removed the date but kept it in the spreadsheet view.
See edited post above for 2nd link that has the event I actually deleted from the spreadsheet view.

I found two items in your example file: “NewEvent” and “Bob”, but no “DeletedEvent”.
I can’t find any indication that the file could contain more than two items.
Maybe deleted items are kept by the Mac version, but not under Windows?

Reverse-engineering this file format without even having the application is better than any puzzle game.

2 Likes

Indeed.
I suspect because the software uses the term “delete” when in the context of the timeline view, to remove the dates from the event, that the rumor you heard was simply that the event is still in your project but only visible in the spreadsheet view.

Whereas if you “delete” the event from the spreadsheet view, it’s really gone. Which is good news for your project.

1 Like

Yes, that’s how you would normally see it. However, judging by the discussion mentioned above, it doesn’t seem to be quite so simple.

Anyway, version 2 of aeon3obsidian is progressing well. In the meantime, I have decoupled the input and output through a data model, so that the adaptation to a future file format should be much easier.

1 Like

I wonder if it’d be possible to generate a Timeline Chronology note in Obsidian when your script runs, connecting all the events together. In Obsidian that would look a lot like a MOC, being a huge hub in the graph view but tying stuff into a list of events that are in the proper sequence.

Just thinking about any way to leverage Obsidian’s strengths with the AT3 output.

Do you mean this:

Remember that aeon3obsidian is an organized open source project that has been around for quite a long time. When I decided to stick with AT2, I summarized some open points in issues in the GitHub repository.

The first version was a bit of a hack, by repackaging the JSON part of the .aeon file into Python dictionaries, which were a bit easier to handle, and from which the Markdown pages were then knitted together.

In the meantime, I am in the process of structuring the code so that it is easier for contributors to maintain it. Reading data from .aeon files and writing to .md files can now be optimized independently of each other. However, if you want to continue working on it, you should understand and use this structure. Simply letting a LLM loose on it and seeing what happens would make my efforts seem in vain.

Back to your suggestion: This leads us to another issue, namely the user-defined calendar. Would the Obsidian tool you mentioned even support such a thing?
At the moment, aeon3obsidian also only supports the Gregorian calendar, more specifically, the “AD” era. But that can easily be changed, as I have also moved the date/time/duration processing into its own class, which can be developed separately from the rest.
See:

Sounds like you’ve made some great progress. I know when the LLM got it functional it wasn’t linking things together, so I wasn’t sure what your original output looked like. A dynamic timeline note, like a MOC I suppose, sounds pretty good. Though if we have AT3 we’ll be using AT3 so it’s important to keep in mind precisely what the benefit is of porting the data over to Obsidian. Personally, I think the biggest benefit to me would be the ability to do my universal searches within Obsidian and have those come back with timeline event data. The search/filter feature in Obsidian is incredibly useful for visualizing specific aspects of a complex saga like mine.

Regarding Gregorian A.D. only, the LLM did figure out how to get the Eras working, so like you said, that should be pretty easy. My timeline has six separate eras and about 25,000 years. So that was the very first thing to break once the LLM got the code to simply run. I’m sure a properly implemented solution would be way better.

If I were to take a crack at maintaining or modifying the code, I’d first need to fully understand it. I’m sure you’re using techniques I’ve never encountered before, so I’d have to get familiar with those. Most of my coding experience has to do with inventory management, financial transactions, and general database operations. My experience with Python is mostly from 2002-2003 where I wrote an entity engine before the Entity Framework was even a twinkle in Microsoft’s eye. I still have the code. :smiley: But I haven’t done any real Python work since then. More c# and SQL Server mainly.

It’s not so much about the Python language as it is about classes and methods. Anyway, you can always take a look at the code in the GitHub repository (the src folder).

My script is almost finished, only the “narrative” part is missing. I will be releasing version 2.0 soon.

For now, I’ve packed the Obsidian files (click on the “Download raw file” symbol) as they are generated at the current stage of development and put them online.
If you want, you can play around with them. The example project of “Murder on the Orient Express” is so complex that it is really worth exploring the possibilities of Obsidian.

Enjoy!

1 Like

I just released version 2.0.1. Most of the code is rewritten from scratch. This took me about 50 hours of work. That’s enough for now.
However, the result is pleasing and the outstanding issues from the first version have been resolved.

Here is the project home page:

2 Likes