Initial request is for being able to filter keywords from a feed, which will be in a separate issue, but the idea of making specific feeds for keywords is also a great idea.
Feature Description:
have feeds at tags/{tag}/rss that carry feeds for all papers matching that tag.
Details:
Individual papers from crossref have keywords! Currently these are just stored as a concatenated string, but if we split them off into their own table then we could do cross-journal indexing by topic, which makes way more sense than journal indexing anyway.
So we would have a simple two-column id, tag table with a uniqueness constraint on tag and a linking table with paper_id and tag_id. Then the feed generation logic would be the same as for journal RSS feeds - instead of finding all papers whose journal matches a given ISSN, find all papers who have a given tag.
The work of combining keyword feeds should be left to the reader imo, but we could revisit that if need be.
Re:
Initial request is for being able to filter keywords from a feed, which will be in a separate issue, but the idea of making specific feeds for keywords is also a great idea.
Feature Description: have feeds at
tags/{tag}/rss
that carry feeds for all papers matching that tag.Details: Individual papers from crossref have keywords! Currently these are just stored as a concatenated string, but if we split them off into their own table then we could do cross-journal indexing by topic, which makes way more sense than journal indexing anyway.
To do this we would make a many-to-many relationship between a paper and its keywords: https://sqlmodel.tiangolo.com/tutorial/many-to-many/create-models-with-link/
So we would have a simple two-column
id
,tag
table with a uniqueness constraint ontag
and a linking table withpaper_id
andtag_id
. Then the feed generation logic would be the same as for journal RSS feeds - instead of finding all papers whose journal matches a given ISSN, find all papers who have a given tag.The work of combining keyword feeds should be left to the reader imo, but we could revisit that if need be.