Hacker News new | past | comments | ask | show | jobs | submit login
New revamped version of the AnyMeal recipe management software (wedesoft.de)
44 points by wedesoft 11 months ago | hide | past | favorite | 29 comments

Many recipe sites now have metadata at the top of the page in json-ld or in embedded in the html based on schema.org structured data.


There are apps which can import from these sites. for example "recipe keeper", you can browse third party sites with schema.org recipes from inside the app and it will import them into the app management software.

Structured data typically maps to RDF, which is for graph databases like apache Jena or RDFox, but since most recipe data does not have backlinks or cyclical links, any type of JSON or YAML store should be sufficient.

If you are still updating your app, it would be cool if you could add support for recipes sites with json-ld!

It is difficult to support more recipe formats because they are more generic than MealMaster. But I can take a look.

Nice ! Here is an example

Recipe: https://www.bbc.co.uk/food/recipes/tofu_peanut_stir-fry_6272...

Google review tool: https://search.google.com/structured-data/testing-tool#url=h...

From command line:

curl https://www.bbc.co.uk/food/recipes/tofu_peanut_stir-fry_6272... | grep -o -P '(?<="application/ld\+json">).*(</script)'

Looks like the recipe ingredients are not structured any further. That means that it is going to be difficult to extract amount and unit from the text.

Thanks. I can take a look. That's interesting.

Crazy early (1985!) example of a recipe markup system, RxOL: https://web.archive.org/web/20021105191447/http://anthus.com...

That's an interesting article. Thanks for sharing. Maybe something more structured than MealMaster is required when programming a kitchen robot in the future ;)

Yes, that was our conclusion after reviewing numerous pre-existing systems, and we have now built one (the robot, and the more structured recipe markup system). RxOL was just one system we reviewed, which I appreciated for the article's explicit discussion of the rationale for its architecture.

Wow. Really? Do you have any videos of the robot to share?

Absolutely not, for IP protection reasons. 4 years of R&D. Our strategy for commercialization is wholly owned network operation. Quite unlike the apparent de-facto strategy within the segment of "wow-factor novelty" we have designed for operation as an always-available urban utility.

Examples of "wow-factor novelty robots": Foodom in Guangzhou, Ekim/Pazzi in France, Creator in SF, Spyce in Boston, etc.

It seems the done thing, when that fails to commercialize, is that you spend marketing budget on expensive chefs to convince people the food is good, then you go back to your investors for more money, then you become a zombie startup...

(Edit: Oh there are many more projects... it is quite an active area globally, despite a lack of significant successes. Most making the same mistakes. See https://www.youtube.com/watch?v=FmXLqImT1wE&feature=youtu.be and https://patents.google.com/?q=food&assignee=Amf+Incorporated... for an early example.)

PS: I have played with robots a bit myself: https://github.com/wedesoft/arduino-sainsmart

Ok, I wish you success with your endeavour. Sounds like a really futuristic project :)

Thanks for the project list. I was only aware of Moley robotics.

I used to look up recipes online and never bothered collecting them, but now with all the ad laden and SEO optimized recipes sites, I think it's time for me to go back to collecting the ones worth keeping. Thanks for bringing this up and for the tool. I'll give it a try.

Thanks for your comment. Of course one can use a search engine for finding recipes. But using a recipe database one can perform ingredient searches and category searches more easily.

There's some interesting ideas in this space too

With supercook app you can go through your fridge and say the ingredients that you have and the app will tell you what recipes you can cook https://www.supercook.com/#/recipes

There's another app that works in reverse, you pick what recipes you want then it gives you a shopping list. I think the app was Mealime

Back then I tried to implement that, but if I tell it, that I have no water, it ruled out many recipes. If I told it, I had water, it suggested coffee or tea.

Structured data can be imported to graph databases like Apache Jena or RDFox, and then recursive queries can be done with alternatives.

Here is an example using RDFox: https://imgur.com/ziZdIzA

My fridge has "noodles, tomatos and butter", But I know only one recipe which calls for "noodles, sauce, oil, optionally cheese". However you put alternatives in the database, if you have tomatos, you can make sauce, if you have butter, you don't need oil.

RDFox correctly says I can still make :spaghetti.


select DISTINCT ?recipe where { :fridge :item ?x. ?recipe a :recipe. ?recipe :requires ?y. OPTIONAL { ?y :alternative ?z }. FILTER(?x IN (?y, ?z)) }

Cool project! One of my earlier projects for learning Scheme was a similar system whose selling point was automatic "smart" ingredient substitution. It's interesting that one of the key selling points of this is it's focus on quickness of search. I can't imagine having so many recipes that a computer would have a hard time searching through them, but then perhaps I'm just not the target audience :)

Aside: I know everyone loves to hate electron/web tech, but being an electronician myself, I can't help but wonder how a web-tech version of this would look. For one, it would be nice to be able to try this out, but the current version is unavailable on my platform (MacOS). An Electron or web version wouldn't have this problem, and a web version would work with an iPad or similar, which is a nicer kitchen tool than any keyboarded-device in my experience. Potential hanging points would be in parsing the recipes, and search. I'd imagine that for search it wouldn't be all that difficult to build up a sufficient index programmatically without mySQL, but I could be wrong. As for parsing, the examples I've seen seem all quite simple, but of course the difficulty in parsing is always the long tail.

Not sure about Electron. You would probably still need the parser to be Flex/C for performance. Even using Flex and C it takes about half an hour to import 250000 recipes. Sorry that I haven't done a build for MacOS. But I don't have a system for testing.

Any chance that recipe dump is available online anywhere?

The thing is, I don't have the copyrights. I just downloaded the recipes from Glen's MealMaster archive and imported it. But MealMaster is human readable text if you just want to look at the data.

Thanks, found the archive but looks like the “140,000 more recipes” link is dead.

How did you deal with the ambiguity in representation of ingredients? For instance, looking through some examples it seems like an ingredient description can continue onto two lines, and that is indistinguishable from an ingredient followed by an ingredient with no measurement.

Ed: also, do you intelligently deal with the “or” clauses in some ingredient lists? It seems their syntax is ill defined as well.

I am not sure which link you mean.

Glen's Mealmaster archive is here: http://thehoseys.org/buster/recipes.html

An ingredient continuation line has to start with a "-". Otherwise the software can't recognise it. There is no intelligence in the parser.

Interesting, a quick manual parse suggests that would work for a majority of cases, but there is definitely a sizable minority of recipes playing fast and loose with formatting.

Thanks for all your effort! I haven't tinkered with mealmaster files in ages but you've given me a reason to dig through my old CDs to find my archives. Unlike zip files of old code or software, recipes are likely just as useful today as they were 10 or 20 years ago.

One thing I noticed when working with Sqlite3 recently is that they've implemented full text searching.


I found the implementation simple to employ and incredibly fast and powerful. Perhaps it could be a helpful tool in a generic search? Just an idea!

Thanks for your suggestion. At the moment I am looking into bulk operations for categories. But I might give it a go later. Not sure how fast it will be. It would need to run on 400 MByte of text!

I ran it on a 67GB sqlite database with approximately 15 million rows in one table and 300 million in another and on an SSD it spit out a result in less than a second. On a mech drive its 5-10 seconds, but that's a factor of 10 faster than if I did a traditional WHERE clause with LIKE/GLOB.

The drawback is that it increases the size of the database, almost exponentially depending on the number of columns you include in the FTS. But its fun to tinker with!

Another thing I forgot to mention in the article is that I set up a Debian Sid Docker container in order to build a package to submit to the Debian developers. Hopefully I will find a sponsor soon so that it will eventually be available as a package on Debian and Ubuntu ...

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact