A feed aggregator with topic-focussed discovery.
NewsMonitor may be run standalone locally or on a remote server as long as there's a writeable SPARQL store somewhere accessible over HTTP. It's written in Java and was originally written as an OSGi module for the Fusepool (/Stanbol) system, though that aspect hasn't been mainained.
Revisiting. After adjusting config to point to my online Fuseki store and rebuilding, the aggregator appears to mostly work. Pretty remarkable given that it's almost a decade since I wrote it. Looks like it polls/trawls feeds as it should, but I'm not seeing the feed item content in the store yet. I suspect this is down to Fuseki having a different auth setup since I last tried it, so SPARQL INSERT isn't working. Fortunately the code seems pretty well structured (I got some EU funding for it, so had to attempt best practices), shouldn't be hard to fix. Is funny, Java was my go-to language back then. Nowadays for Web stuff I'll use vanilla JS in the browser, nodejs for services, for general stuff Python, for embedded C++. Anything but Java.
I have absolutely no idea what I had for reader UI, can't see anything in this repo server- or client-side. But I've got stuff around HKMS which I can easily adapt (the main idea behind HKMS is headless knowledge management, having task/domain-specific browser client apps that talk to common online SPARQL stores).
I pretty much abandoned NewsMonitor when I'd done enough for the contract, had other work to chase. The big thing I felt would benefit from back then was a little work on it's intelligence. If I remember correctly, when it discovers new feeds it does categorisation by string-matching on keywords. Something smarter, maybe k-nearest neighbours could be plugged in fairly easily.
But for now my aim is just to get it running again as a feed aggregator service with simple browser rending. This is mostly for my own benefit, though the news page it'll make might be of interest to anyone that like AI, Linked Data, modular synths and/or woodcarving.
Assuming there's a Fuseki server running on http://localhost:3030 with a dataset called "feedreader".
First git clone this repository, then -
cd NewsMonitor
mvn clean install -P build-for-fuseki
java -jar target/NewsMonitor-1.0.0-SNAPSHOT.jar it.danja.newsmonitor.standalone.Main
The following might not currently work
cd to NewsMonitor directory, then :
mvn clean install
or, skipping tests :
mvn clean install -Dmaven.test.skip=true