Hello, I discovered and it is funny to see that it seems similar to org-roam, which will be compatible with ActivityPub. Tell me if it is a caricature of what bopwiki is, but I just wanted to share with you one of my recent project which does that in some limited ways. It is a exporter for org files (edited using emacs) to Activity Streams JSON files.

Anyway, I will be interested to hear more about bopwiki.

@Valenoern Thanks for your detailed answer, but I still don't get what is the activitypub support of bopwiki.


#bopwiki and "org-mode In General" do have similar purposes,

but I think one of the biggest differences is I've always felt like emacs is a bit impenetrable to outsiders while bop is supposed to be more immediately self-explanatory.
(and that's a subjective thing. but when possible I prefer to use programs that are easy to explain to people who just discovered linux.)

bop also uses regular old Common Lisp for all its main code / configuration instead of elisp



As for org-roam,

I think that in its 'final form' bopwiki could actually load an extension to use org-roam's syntax for metadata lines.

as I look at it I personally don't think I like this syntax, but the true power of bop is you're supposed to one day be able to select an arbitrary syntax for a given kind of file, so you could have a Tiddlywiki file and an org-roam file and a plain rdf file in the same folder if you wanted to



one thing that's different between org-roam's syntax and bop's "default" syntax is I currently assume bop files will have all their metadata lines at the bottom of the file and their content at the top
(which makes files a bit more trivial to parse)



I actually hadn't been thinking very often about when I was going to make it possible to put meta lines in an entry body,

though it *had* always been in the back of my mind due to the fact I copied bop's "=>" line from gemini but gemini can easily put these external link lines in the middle of a webpage.

so it's somewhat likely it will happen some day



> org protocol/capture extension

this is a really cool feature.

I'm not sure I would have bothered with this for bop,
although it's been a dream of mine to *somehow* easily archive specific kinds of "posts" on the web, such as toots you posted, rss/atom feed entries, or title + link + thumbnail information for online videos.

(I think one difference is I don't want bop to depend on a browser at all, so I'd want it to download the toot etc in a 'headless' way.)



> graphing

this just doesn't exist for bop right now

although when org-roam seems to be using existing things like graphviz, maybe it could?



> bibtex citations

another thing that doesn't exist for bop but has been a 'maybe'

I'd done some reading about bibtex before, and sort of concluded that it might be more flexible to just use bop's rdf capabilities (once they exist) to manage citations expressed in rdf vocabularies

(this may be one of those times I made a decision that would shock academics because I've never been a grad student and am more of a programmer.)


@Valenoern Yes it is using graphviz, which is ok, but at the end very limited. A complementary project have been developed on top of D3.js (so in the browser) to interact with the graph of notes and to be able to edit the selected notes back in emacs using org-protocol.

@Valenoern Ok, I am also personally interested in archiving and extracting metadata from the different documents one can find on the web. I am currently using several tools that you may already hear about, like Wallabag (for web page), youtube-dl (for video). I created a (messy) project to manage an archive of medias built on top of youtube-dl :


okay. I've reached the bottom of the org-roam manual I was using for reference and that's everything I can think of for now.

I should probably some time soon see what parts of this I can add to the bop manual so this information is a bit more available.


@Valenoern I am not sure to understand what do you mean by plain rdf file ? Do you want to support any rdf file as a possible entry. I am a bit lost here.


imagine you want to keep a catalog of citations, a bibliography type thing,
and it makes the most sense to enter them in using rdf/xml or rdf turtle

then bop could render those 'plain' rdf files through a specified template when you render everything else. basically as a way to separate data and presentation.

though I imagine a number of other things becoming possible too


ah right,
another big difference from org-roam is... org-roam is a realtime text editor
(or to be accurate, a mode inside one.)

bop is very specifically Not an Editor; you run "bop open pagename" and it launches your editor of choice. -although there's a bug in this currently-

this is because bop was made in response to #Tiddlywiki (on nodejs) taking too long to boot each time just to edit files in an html textarea, and I decided I'd rather open files in jedit/kate/etc.



in bop's 'final form' it might have a nice little GUI ("BEbop") where you can access all its commands from instead of having to read the manual/manpage/etc

but also, you could in theory use bop to open entries in emacs

(when it's likely BEbop would need to have multiple versions for different desktops anyway, I can easily see there being an elisp BEbop which itself lives inside emacs.)



"but if bop could make its 'home base' inside emacs, what would it *do* there?"

for one,
in bop you typically name entries like "1631146746_example.txt",
so you could call some kind of (bop-open example) to open this entry no matter what subdirectory of your entries folder it's in.

(I'm not totally sure emacs couldn't do something like that with autocompletion already, but it works as an example.)


> not totally sure emacs couldn't

ah, okay, if you use org-roam you can assign aliases to org entries.
(like bop is supposed to be able to as well, though currently it only guesses those from the filename)

so that example would be most useful if you were using emacs *without* org-roam but for some reason *with* emacs bop.


> At its core, Org-roam provides a database abstraction layer, ... a dual representation

same thing bop does, but in a more simple way
(perhaps laughably simple; I assume that with sqlite org-roam's querying/caching is a bit more powerful.)



> is there any database in bop?

not a permanent one.
currently it just scans all the entry files into a hashtable format each time

surprisingly that doesn't take forever. it takes maybe about 5 seconds to render an entire bop folder to html

so I felt like I'd scored a victory when that was much smaller than the 15-30 seconds tiddlywiki would take to boot up and do anything at all


I've considered the idea of serialising the page table in lisp object form

though then I'd have to figure out when the entries folder changed or the same cache could be used

> emacs is a bit impenetrable

case in point:
just now I had to do about five web searches (!) simply to find a single example of what a link looks like in an org/org-roam file.

manual: "we link between nodes with org's standard id link"
me: ok, can you give me a reference on that or something? an example org file?
[all the 'example org files' are emacs screenshots that don't show the source markup for links]


@Valenoern Here you can find a org file (a complicated one) and the corresponding HTML:

Basically the file id is at the top of the file between :PROP:. And the links have this form [[id:file_id][link label]], but nobody neither see nor write this, since the links are nicely displayed in emacs (by default) and there is a prompt for creating link, which is very handy.

@Valenoern Ok, this is very interesting. Because, you are right saying that emacs + org-mode + org-roam require a very long time to be handled properly.


if your question is what I use it for,
I use it to render blog posts that can be boosted on mastodon

I wanted something 'like mastodon' I could truly self-host with minimal computing power.

the drawback is things like favouriting or replying are still being worked out (posts basically disappear when I edit them),
and I prefer to just post on mastodon for more 'real-time conversation' and less 'archive' kind of things

Sign in to participate in the conversation

The original server operated by the Mastodon gGmbH non-profit