HEy Henrik, Not related by U wrote a project scheduling library and a tasks parser for natural language in Clojure,
You might want to take a look on it here: https://github.com/turbopape/milestones There is one online dome here: http://turbopape.github.io/milestones/ I'll be happy if you can review it (and why not, leave a star on it :) ) If you want any explanationa on the scheduling algorihtm, I'll be more than happy to discuss it with you ! Cheers, Rafik 2016-11-17 12:05 GMT+01:00 Henrik Sarvell <[email protected]>: > Hi list, > > I'm trying to build a project scheduler / planner. > > This is the E/R for a project: > > (class +Proj +Macropisobj) > (rel id (+Key +Number)) > (rel nm (+Ref +String)) > (rel sDate (+Ref +String)) > (rel eDate (+Ref +String)) > > (dm getCurrent> (Sdate Edate) > (filter '((P) (or > (< Sdate (; P sDate) Edate) > (< Sdate (; P eDate) Edate) > (< Sdate (; P sDate) (; P eDate) Edate) ) ) > (collect 'id This) ) ) > > I haven't decided on whether or not to use +Date yet so the above dates > are on the "Y-m-d" format currently. > > I need to find all projects which are active during a certain time period, > for instance between 2016-11-01 and 2016-12-31. > > Logically that means finding all projects which have either a start date > or an end date in the period OR all projects with a start date before the > range that also have an end date after the range. > > I can fairly trivially do a collect and then a filter on the results of > the collect as shown above. > > But how would the above problem be solved with Pilog and select if we have > more than "a couple of hundred objects" in the database? > > > -- [image: --] Rafik Naccache [image: https://]about.me/rafik_naccache <https://about.me/rafik_naccache?promo=email_sig&utm_source=email_sig&utm_medium=email_sig&utm_campaign=external_links>
