ruby / ruby/rss

Issues parsing RSS from academic publishers

Open
#9 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Ruby
Stars
206
Forks
39
PR merge metrics
No merged PRs in 30d

Description

Most academic publishers seem to use a standard software to generate RSS (e.g.: SAGE, Academy of Management). When trying to parse these feeds I get the following error:

RSS::MissingAttributeError: attribute <rdf:about> is missing in tag <channel>
from /usr/local/Cellar/ruby/2.6.5/lib/ruby/2.6.0/rss/parser.rb:521:in `block in collect_attributes'

Disabling validation, though, works. I doubt that all these feeds are corrupt. Or is there a specific spec they follow that the current gem does not support?

Also, almost all academic publishers use PRISM as well as the default DublinCore to include metadata in RSS entries. Is it possible to implement that into the current gem? Or better than that, is there a way to allow the gem to read those nodes as generic nodes (that it won't try to validate), just like feedparser in Python?

It looks like the code for DublinCore model can be used as a template for that. But PRISM also includes Reference nodes on top of Text and Date. Is there another NS implementation I can use as template for those nodes?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the validation failure using the linked SAGE or Academy of Management feeds and inspect the parser.rb validation path named in the error. Use the existing DublinCore model as the template for assessing PRISM support, then confirm that the feeds parse successfully and that their metadata is handled without invalid validation errors.

Written by the indexing model from the issue text.

Assessment

Tech stack
ruby
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.