[{"data":1,"prerenderedAt":413},["ShallowReactive",2],{"project-8395556":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":44,"post_text":46,"what":47,"said":74,"maker_in_thread":198,"shape":207,"grid":211,"attempts":376,"same_week":377,"maker_shows":33,"maker_hidden":405,"reader_version":406,"card":407},"8395556","Duckling","Open-source datetime expression parsing","title","Show HN: Duckling – Open-source datetime expression parsing","http:\u002F\u002Fduckling-lib.org\u002F","duckling-lib.org","blandinw",1412179858,2014,136,67,189,2272,9,"notable","languages","parsing library","library",[24,25,26,27],"datetime parsing","natural language dates","temporal expressions","open source parser","curious",-0.133,{"positive":31,"neutral":32,"mixed":33,"critical":34},8,23,2,11,44,{"execution":37,"design":39,"idea":42},{"positive":38,"critical":31},3,{"positive":40,"critical":41},0,1,{"positive":43,"critical":41},4,[40,38,45,40,40,38,38,38,45,41,38,41,40,38,41,41,38,45,38,38,38,38,41,45,41,38,38,45,38,38,38,38,40,38,38,45,38,41,41,41],5,null,{"problem":48,"audience":46,"pricing":46,"motivation":46,"time_to_build":46,"stack":59,"openness":71,"stage":72,"team_size":73},{"value":49,"source":50,"evidence":51},"Parses natural-language time expressions like 'next wednesday at 3' into concrete dates","commenter",[52,56],{"id":53,"by":54,"text":55},"8395656","aembleton","I'm impressed. I thought I'd try it with `next wednesday at 20 to 3 in the afternoon`. It understood! It didn't understand if I used `afternon`. Perhaps as an improvement it…",{"id":57,"by":11,"text":58},"8397027","Even though the demo website expects the whole input to be a time expression, Duckling actually detects substrings inside a larger block of text. We've mostly used it on short…",[60,67],{"value":61,"source":50,"evidence":62},"Clojure",[63],{"id":64,"by":65,"text":66},"8395790","ar7hur","Probably too much :) All our backend is Clojure, all our new web developments are in ClojureScript (with React and Om). The only places we're not using Clojure are iOS, Android…",{"value":68,"source":50,"evidence":69},"Rust",[70],{"id":64,"by":65,"text":66},"open_source","beta","company",{"praise":75,"objections":91,"requests":129,"questions":158,"alternatives":174},[76,84],{"value":77,"source":50,"evidence":78},"Impressive handling of natural time phrases",[79,80],{"id":53,"by":54,"text":55},{"id":81,"by":82,"text":83},"8395764","taternuts","This is cool! I too was pretty impressed it nailed \"the second friday of october 2017\", was kind of hoping it would get \"the second friday of october in 4 years\" but still cool",{"value":85,"source":50,"evidence":86},"Good choice of focused scope and clear docs",[87],{"id":88,"by":89,"text":90},"8397235","hardwaresofton","This project looks great. I think it's a great example of finding one thing to do well, and doing it well (though of course, there are the other competitors you will have to…",[92,107,118],{"value":93,"source":50,"evidence":94},"Misses regional and colloquial expressions like fortnight and Scottish phrasing",[95,99,103],{"id":96,"by":97,"text":98},"8396787","teh_klev","Unfortunately it doesn't parse a Scottish colloquial expression such as \"the next again day at 4pm\". Which means in two days time at 4pm :)",{"id":100,"by":101,"text":102},"8396819","AbsoluteDestiny","Likewise it doesn't know what a fortnight is.",{"id":104,"by":105,"text":106},"8398772","pacaro","It also doesn't understand basic britishisms like \"Friday week\" or \"a week on Friday\"",{"value":108,"source":50,"evidence":109},"Ambiguous handling of times like 6 o'clock and day\u002Fmonth order",[110,114],{"id":111,"by":112,"text":113},"8396957","aleem","One suggestion from a use-case standpoint. On iOS, \"tomorrow at 6\" is parsed as 6PM instead of 6AM. This makes sense because usually people really mean 6PM. This is context…",{"id":115,"by":116,"text":117},"8397877","Someone","Are there countries that use slashes for d\u002Fm\u002Fy? What surprised me was \"1-2-2014\": ``` From Thursday, 2 October 2014 at 1:02:00 +0000 (UTC) to Wednesday, 1 January 2014 at 0:00:00…",{"value":119,"source":50,"evidence":120},"No time zone support for place names",[121,125],{"id":122,"by":123,"text":124},"8396056","heeen","It seems to have problems with places as time zones, e.g. next sunday noon, german time",{"id":126,"by":127,"text":128},"8397638","Thrymr","Looking forward to time zones support in something like this. Parsing phrases like \"4 o'clock tomorrow my time\" or \"8am on the East Coast\" would be useful. Few libraries that try…",[130,139,148],{"value":131,"source":50,"evidence":132},"Support time zones and place names",[133,134,135],{"id":122,"by":123,"text":124},{"id":126,"by":127,"text":128},{"id":136,"by":137,"text":138},"8398254","hamburglar","Suggestion: if you want people using the demo page to be able to spot errors easily, it would be useful to give a plain english description of when the time they specified is.…",{"value":140,"source":50,"evidence":141},"Handle typos and colloquial expressions",[142,145],{"id":143,"by":65,"text":144},"8395680","Thanks! Yes we should probably relax a little bit the lexical analysis to cope with typos, thanks for your feedback.",{"id":146,"by":65,"text":147},"8396805","I'm very excited about supporting Scottish colloquial expressions! Working on it now, thanks :)",{"value":149,"source":150,"evidence":151},"Show assumptions and alternate results","maker",[152,155],{"id":153,"by":11,"text":154},"8397113","You're spot on. The next version of Duckling will return the list of assumptions made, as well as a list of alternate results. Applications will also be able to give assumptions…",{"id":156,"by":65,"text":157},"8397103","Absolutely. We are working on something called \"assumptions\" where Duckling informs you about what assumptions it made to produce the result (like: time was ambiguous, I chose…",[159,166],{"value":160,"source":50,"evidence":161},"How does it compare to SUTime and other temporal taggers",[162],{"id":163,"by":164,"text":165},"8397074","trab","I have been frantically researching for a temporal tagging library that can be used on an Android application with no good results. I have looked at SUTime, HeidelTime, natty and…",{"value":167,"source":50,"evidence":168},"Can it run on Android or iOS",[169,170],{"id":163,"by":164,"text":165},{"id":171,"by":172,"text":173},"8400548","coldcode","Looks very cool, but sadly I have no way to use Clojure on my iOS apps.",[175,180,191],{"value":176,"source":50,"evidence":177},"SUTime",[178,179],{"id":88,"by":89,"text":90},{"id":163,"by":164,"text":165},{"value":181,"source":50,"evidence":182},"Chronic",[183,187],{"id":184,"by":185,"text":186},"8396431","sleepyhead","If you want to do this in Ruby try Chronic. https:\u002F\u002Fgithub.com\u002Fmojombo\u002Fchronic",{"id":188,"by":189,"text":190},"8395862","medell","Who wants to use this to make an Alfred Workflow that creates Google Calendar events? :) QuickCal hasn't been supported in years.",{"value":192,"source":50,"evidence":193},"Date::Manip and DateTime::Format::Natural",[194],{"id":195,"by":196,"text":197},"8397646","peterwwillis","Perl modules to implement this would be Date::Manip and DateTime::Format::Natural. To see some funnier modules (like calculating Discordian dates or Japanese eras) look here:…",{"comments":45,"answered":41,"key":199},[200,203,204],{"id":201,"text":202},"8397034","cf. my answer to another comment. Even though the demo website expects the whole input to be a time expression, Duckling -- used as a library -- actually detects substrings…",{"id":153,"text":154},{"id":205,"text":206},"8397212","Fixed, thanks!",{"commenters":208,"max_depth":45,"maker_replies":45,"first_comment_mins":209,"lifespan_hours":210},40,13,149,[212,216,219,221,223,226,229,232,235,237,239,241,242,243,245,247,249,250,252,253,256,258,261,265,266,267,272,274,277,278,282,285,288,291,294,297,298,300,302,304,308,310,314,316,318,322,326,327,329,332,334,336,340,342,346,347,349,351,354,356,358,362,365,366,368,370,374],[213,40,40,214,215,40],"8396271","other\u002Fneutral\u002Fnone","muxxa",[217,40,40,214,218,40],"8399329","crdoconnor",[53,41,38,220,54,40],"project\u002Fmixed\u002Fexecution",[143,41,45,222,65,40],"maker\u002Fpositive\u002Fexecution",[224,41,40,214,225,40],"8396701","chc",[227,41,40,214,228,40],"8396729","radnor",[230,41,40,214,231,40],"8396911","infogulch",[233,41,40,214,234,40],"8396970","samdb",[111,33,38,236,112,40],"project\u002Fneutral\u002Fdesign",[201,33,40,238,11,41],"project\u002Fneutral\u002Fexecution",[240,33,38,236,231,40],"8397061",[156,33,38,236,65,40],[153,33,40,236,11,41],[244,33,38,238,65,40],"8398439",[88,38,45,246,89,40],"project\u002Fpositive\u002Fidea",[96,43,41,248,97,40],"project\u002Fcritical\u002Fexecution",[146,43,45,222,65,40],[251,43,41,248,101,40],"8397360",[100,43,41,248,101,40],[254,43,40,214,255,40],"8396974","munificent",[257,43,40,214,234,40],"8397029",[259,43,40,214,260,40],"8397214","Arnavion",[262,43,38,263,264,40],"8398489","maker\u002Fneutral\u002Fexecution","francis88",[104,43,41,248,105,40],[195,45,40,214,196,40],[268,269,41,270,271,40],"8396283",6,"project\u002Fcritical\u002Fdesign","ominous",[273,269,38,236,260,40],"8396747",[275,269,38,276,65,40],"8396766","maker\u002Fneutral\u002Fdesign",[205,269,40,276,11,41],[279,280,45,246,281,40],"8396233",7,"jblz",[283,280,38,284,65,40],"8396266","project\u002Fneutral\u002Fidea",[286,31,38,238,287,40],"8399109","pit",[289,31,38,290,65,40],"8399136","project\u002Fneutral\u002Fnone",[292,31,38,238,293,40],"8413437","Ygg2",[295,31,40,296,287,40],"8424084","commenter\u002Fneutral\u002Fnone",[126,18,38,284,127,40],[163,299,41,248,164,40],10,[301,299,38,284,65,40],"8397152",[81,34,45,303,82,40],"project\u002Fpositive\u002Fexecution",[305,306,38,220,307,40],"8397344",12,"lbarrett",[184,209,41,309,185,40],"project\u002Fcritical\u002Fidea",[311,312,38,236,313,40],"8397160",14,"primo44",[315,312,40,276,11,41],"8397205",[136,317,38,236,137,40],15,[319,320,40,214,321,40],"8398018",16,"EyeballKid",[323,324,45,246,325,40],"8396929",17,"krammer",[57,324,40,238,11,41],[328,324,38,236,65,40],"8398443",[330,324,45,331,325,40],"8407625","project\u002Fpositive\u002Fnone",[122,333,41,248,123,40],18,[335,333,38,263,65,40],"8396080",[337,338,40,214,339,40],"8396719",19,"huu",[341,338,38,238,264,40],"8396756",[343,344,40,214,345,40],"8395753",20,"zongitsrinzler",[64,344,40,214,65,40],[348,344,38,284,345,40],"8395804",[350,344,38,238,65,40],"8395881",[352,344,40,214,353,40],"8397870","kibwen",[355,344,38,238,65,40],"8398446",[188,357,45,246,189,40],21,[359,360,38,238,361,40],"8395760",22,"dangerlibrary",[363,360,40,364,65,40],"8395822","commenter\u002Fneutral\u002Fexecution",[115,360,41,248,116,40],[367,360,40,296,321,40],"8398067",[171,32,41,369,172,40],"project\u002Fcritical\u002Fnone",[371,372,41,248,373,40],"8398972",24,"sanemat",[375,372,38,263,65,40],"8398990",[],[378,383,388,392,396,401],{"id":379,"name":380,"points":381,"category":382},"8395689","Taiga",436,"productivity",{"id":384,"name":385,"points":386,"category":387},"8368199","Javelin Browser",373,"consumer_social",{"id":389,"name":390,"points":391,"category":382},"8373914","Airtable",361,{"id":393,"name":394,"points":395,"category":382},"8380817","newfangled.me",142,{"id":397,"name":398,"points":399,"category":400},"8388935","Realm for Android",108,"data",{"id":402,"name":403,"points":404,"category":382},"8384110","Moo.do",84,false,"v2",{"id":408,"name":5,"line":6,"ai":405,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":409,"top":18,"kw":410,"maker":11,"domain":10,"tier":19,"attempts":40,"strip":411,"url":9,"mix":412,"praise":77,"objection":93,"sub":21},8395556,-0.13,[24,25,26,27],"0350033351310311353333151335333303353111",[31,32,33,34],1793990913080]