gstpl-standards Mailing List for Swing Timetable Platform (gstpl)
Status: Alpha
Brought to you by:
peat_hal
You can subscribe to this list here.
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(3) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
(13) |
Feb
(10) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Peter K. <pe...@ya...> - 2008-02-23 22:14:43
|
Hey folks, I prepared a new draft 0.3 of the standard format [1]. Please could someone take a look at it in the next weeks? Especially the example, the tag names and if the things are understandable at the first read. Maybe you find a constellation, where we could get problems with this definition. I am open for your comments! Perhaps I have time to create some more example files to apply the format on other timetabling procedure: exam timetabling, university timetabling etc. I want to figure out, if the format has enough power to describe all the stuff and if it is easy to create such a file. If so, we are ready ;-) Some other things to mention: 0. Which name is okay for the format? Standard (or Open?) Timetable (or Timetabling?) Format or Timetable Data Dictionary or how ?? 1. I think I have found a good solution to the timing stuff. Now we will use a timeSlotUnit to define the 'timeatom'. Then one minimal time-slot in a document could be 1 timeSlotUnit long. What do you think? 2. Now the main problem seems to be: how to define the constraints in a general fashion, so that we can describe the most things, but they should stay simple. Should we use a scripting language for this? 3. I decided to use Relax NG, because it seems to be powerful and easy to understand (I would even say intuitive.) How to validate an xml file against a rng schema? Download relaxer [2]. For more information on Relax NG I prepared a document here [3]. Bye, Peter. [1] Download (25KB): http://gstpl.wikispaces.com/space/showimage/doc-and-example.tar.gz this includes: 1. the draft: Standard-Timetabling-Format-Proposal.odt 2. one example: example.xml 3. the Relax NG schema files: example.rng, simpleTypes.rng to validate the xml (example) files. The simpleTypes schema will be referenced from within the example.rng schema. [2] http://www.relaxer.jp/download/index.html http://www.relaxer.jp/documentation/ [3] https://gstpl.svn.sourceforge.net/svnroot/gstpl/branches/ttstandards/README.txt |
From: Peter K. <pe...@ya...> - 2008-02-14 00:28:08
|
Hello Timetablers! I haven't prepared a document yet, but it is in progress [1] and it seems to me that we can write the specification by a XMLSchema [2] Thanks for Tomaž's idea of a dtd and I think XMLSchema 1. is a bit more powerful as described in [2] and it is xml itself! 2. and we can simply create Java classes from XMLSchema with JAXB (xjc compiler) which is default in Java 1.6. Something similar should exist for C++ I guess. 3. editing such a schema is very easy with netbeans (one plugin required) 4. last but not least: we can check against this schema to pre-verify a xml document and we can define our own 'tags' etc. with this concept. What do you think? Of course we should add a description and requirements. And what do you think should be our preferred communication way? irc, skype, forum or email? I for myself used skype a lot, but I think irc is a good way, too. Then we could communicate in the way 'many to many' or we could use the netbeans collaboration module [3]. Regards, Peter. [1] Standard-Timetabling-Format-Proposal.odf http://gstpl.svn.sourceforge.net/viewvc/gstpl/branches/ttstandards/doc You can check it out or view it online. To get write access - please ask me. [2] http://www.w3schools.com/schema/ http://www.w3schools.com/schema/schema_intro.asp [3] Get started with: http://www.netbeans.org/kb/articles/quickstart-collaboration.html This is quite interesting: you can chat and work on the SAME document at a time. But not only that, you can even start every (!) application remotely! I think C++ apps too, but I don't know for sure ... PS: Please send me your sourceforge username to add you as project member of TimeFinder !! !! not to this list, but to !! peat_hal 'at' users 'dot' sourceforge 'dot' net !! |
From: Peter K. <pe...@ya...> - 2008-02-13 23:38:43
|
Hi Tomaž! > "event" in Tablix is equivalent to a TTML variable. "resource" is an > element of a TTML variable domain. It means a resource is a value that > can be assigned to a variable. Okay, I can follow you. > When a variable is no longer discrete but continuous, the term > "resource" looses its meaning (since variable domain has in theory > infinite elements). Ah, I think I now understand. I think this table should express what you mentioned, right? | r_1 | r_2 | ... ---------------------- event1 | | X | ... event2 | | | ... event3 | X | X | ... The character 'X' means assigned. And r_i could be one of this: one person, one room or one timeslot -> 'one resource'. And if we would allow continuous timeslots it wouldn't be possible to draw such a table with assignments. (And did you mean that variable domain has finite elements instead of infinite ?) >> Other ideas? > Hm. I don't think I understand. Why reference timeslots from resources? > Aren't timeslots themselves resources? Oh, timeslots are resources! (Now I understand) > What would the example above mean? Okay, I was wrong: I want to express that e.g. a room is not free for some timeslots. But we could express this via the events: room1 has event1, event2, ... assigned. And event1 has timeslot 1-5 assigned. => room1 has the same timeslot assignment ('or' operation for all events). > Also I don't think it's necessary to specify timeslots in an absolute > way. But it should be possible I think. As an additional information. > Even if your making a non-repeating timetable (e.g. for a single > conference) the timetabling algorithm doesn't need to know the absolute > date (that could be hidden somewhere in the metadata). More important is > the relationship between timeslots I think (same day, next day, > friday-monday, etc.) and repetitions. Yes, that's true. But I think we should handle repetitions as deep copies (no 'linking'). Because if one event repeats every week, this mustn't mean that it will be always in the same timeslots for every week. Or do you mean that it should be possible to put the information anywhere. Where we describe when/who this event/resource has to repeat? > By the way, it just crossed my mind that iCal format has some very > powerful way of specifying repetitions. Maybe it would be worth looking > into it and see if it could be used as a way of specifying timetable > repetition. Where can I get more information about the specification or more details? > Hm. There are no event groups. As far as kernel is concerned each event > is a completely separate entity. > > Some modules do treat identical events (same name, same constant > resources) as a group (consecutive.so for example). So the timetabling format should be able to create 'trees' of events: E.g.: One curricula has several lectures. One lecture has several events. You can even find this 'tree-structure' for the timeslots: One semester could have several weeks. One week could have several 'phases' (days). One phase has several *consecutive* timeslots. With the term phase you can describe several consecutive timeslots. This is only for information and for the constraints (and to reduce data-duplication), but the application should only handle the leaves: events and timeslots I think. Hope my questions/comments are not too stupid, Peter. |
From: Tomaž Š. <tom...@ta...> - 2008-02-08 08:31:42
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi >>> 2. the idea of fixed and variable resources. with 'variable' we >>> can make suggestions to the algorithm AND express the assignments >>> in our solution. With 'fixed' we could avoid timetabling of this >>> resource. Right Tomaž? >> Right. Tablix however has variable and constant resource types. So >> assignments of resources of constant type are always fixed and >> vice versa. > Ah, okay I was wrong here. Now I guess you will need this e.g. for a > teacher which is assigned to an event. But then the teacher can't get > new events or what? Yes. If "teacher" is a constant resource type, then each teacher only has those events on her timetable that she was assigned to in the XML file. That is the most common type of timetabling problems in schools in my country (only rooms and timeslots are assigned by the algorithm). >> For the next major version of Tablix I had some plans to support >> "continuous" resource types, that is resource types where a >> "resource" is represented by a floating point number. Actually no >> major changes would be needed. However when I think about that, the >> term "resource" starts to become awkward and I begin to like >> TTML's variables :) > > What the difference between a 'resource' and a TTML variable? And you > mean that you want to allow the floating number for the duration? > But then you will need to check all the event collisions with > 'overlapp(event1, events)'. And there couldn't be optimizations like > I did 'and(bitArray1, bitArray2)'. I think both should be possible, > but how?? "event" in Tablix is equivalent to a TTML variable. "resource" is an element of a TTML variable domain. It means a resource is a value that can be assigned to a variable. When a variable is no longer discrete but continuous, the term "resource" looses its meaning (since variable domain has in theory infinite elements). In the case I was talking about you would have two continuous "resource types": start and end (or maybe start and duration). Yes, definitely this would mean a performance hit because it complicates collision checking. But in Tablix this performance hit would only show up when using a timetable model that would use these new resource types. With traditional timeslots you would continue to use the old modules that do fast timeslot checking. > Maybe we can specify a timeslotgroup e.g. Monday from=06.00 to=18.00 > and Tuesday 08.00 - 16.00 and it is up to the application to > determine how many timeslots we need. Which depends on the smallest > event-duration, I guess. I think we shouldn't use floats (rounding > stuff). Shouldn't we use milliseconds? No one will need more... > (okay, we should use nanoseconds ;-) to be sure) Starting from "Thu > Jan 01 01:00:00 CET 1970" like they did for new Date(0) in java? Then > my current idea is: <week from="0"> <!-- same like start="1.1.1970 + > 9h" duration="3h"--> <timeslotgroup day="Tuesday1" from="777600000" > duration="259200000"/> > > <!-- same like start="(Tuesday1 + 3h) + 1h" duration="3h"--> > <timeslotgroup day="Tuesday2" from="86400000" duration="259200000"/> > > <!-- same like start="(Tuesday2 + 3h) + 16h" duration="9h"--> > <timeslotgroup day="Wednesday" from="1382400000" > duration="777600000"/> </week> comments: 1. The "0" in the from > attribute of week means date=1.1.1970 all other 'from' are relative > to the previous timeslotgroup 2. And 9 hours are 9*24*60*60*1000 = > 777600000 milliseconds etc. maybe we should allow a,d,min,h and s as > shortcut for years, days, minutes, hours and seconds?? this would > increase parsing implementation effort... Now it is simple to > reference timeslots from resources: <resource id="1" ...> > <timeslotgroup from="777600000" duration="86400000"/> <timeslotgroup > from="950400000" duration="86400000"/> </resource> Other ideas? Hm. I don't think I understand. Why reference timeslots from resources? Aren't timeslots themselves resources? What would the example above mean? Also I don't think it's necessary to specify timeslots in an absolute way. Even if your making a non-repeating timetable (e.g. for a single conference) the timetabling algorithm doesn't need to know the absolute date (that could be hidden somewhere in the metadata). More important is the relationship between timeslots I think (same day, next day, friday-monday, etc.) and repetitions. By the way, it just crossed my mind that iCal format has some very powerful way of specifying repetitions. Maybe it would be worth looking into it and see if it could be used as a way of specifying timetable repetition. >> Events don't have their unique names because I found that in >> practice you have multiple events (for example math lectures) that >> share basically all properties, including their name. > > Yes, I understand. But what if there are event-groups with only one > event? then we should avoid grouping. And I think a unique name would > good to fetch it from a database or to create a hashcode (for > HashSet's) etc. What do you think? I assign a unique integer id to each event, which is how Tablix tracks events internally. It's mostly hidden from the user (you can see it in solution files as a property in event tags). >>> What do you mean here: "Tablix defines events as tuples of >>> exactly one resource of each type." >> It means that for example each event will have exactly one >> timeslot, one room, one group of students and one teacher assigned. >> > > Okay, so event is sth. like the 'atom' and event-group you only use > to avoid data duplication, right? Hm. There are no event groups. As far as kernel is concerned each event is a completely separate entity. Some modules do treat identical events (same name, same constant resources) as a group (consecutive.so for example). Regards Tomaz -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFHrBNpsAlAlRhL9q8RAoyaAKCw2gjMJOb3oMfQ1oIKNcOHwICJUACgr488 JzkumDhF+6a1cfKppFc2Zxs= =Q+/z -----END PGP SIGNATURE----- |
From: Peter K. <pe...@ya...> - 2008-02-05 00:57:38
|
Hello! >> 2. the idea of fixed and variable resources. with 'variable' we can make >> suggestions to the algorithm AND express the assignments in our >> solution. With 'fixed' we could avoid timetabling of this resource. >> Right Tomaž? > > Right. Tablix however has variable and constant resource types. So > assignments of resources of constant type are always fixed and vice versa. Ah, okay I was wrong here. Now I guess you will need this e.g. for a teacher which is assigned to an event. But then the teacher can't get new events or what? > Fixed assignments of resources of variable types are handled separately > through fitness functions (affected by restriction tags). At least > that's the impression you get from the file format standpoint. Actually > for performance reasons a special mechanism (resource domains) is used > instead of fitness functions. > > This is certainly something that could be exposed directly in the file > format. However I decided against it to keep the format simple. > >> 3. "User can also assign variable resources in the problem definition to >> give the algorithm a starting point" -> the output can be used as input. >> does this work in the current version? > > It should be working. > >> 5. separating 'resource and problem definition'. we should define a >> 'merge' procedure, so that an application could generate several >> solutions for one main file and if the user is ready, he gets both >> definitions merged into one file. (Include a >> referenceToFile="relativepath/file.xml" + mainFile="true" property or >> sth. like that) NetBeans does this for system, user and project >> properties I guess - maybe we can take a look at it. > > I'm not sure I understand what you mean. > > It's certainly a good idea to support separation of these parts into > different files. Tablix currently writes several files, containing > different solutions, duplicating most of the content. Okay, merging would avoid this. But this shouldn't be important for the first version of our standard proposal. > This could simply be done with XML external entities (one file with > common definitions is included in multiple files containing different > solutions). > >> Do you know a solution of the problem: >> 'events can not occupy a fractional number of time slots.' >> The only way - in my opinion - to solve this is to define 'smaller >> timeslots'!? > > Yes, of course, that is one solution. However Tablix specifically > allocates some memory for each defined resource. So it quickly becomes > unpractical to, for example, define a timeslot for each minute in a day. Yes, that's the problem. > For the next major version of Tablix I had some plans to support > "continuous" resource types, that is resource types where a "resource" > is represented by a floating point number. Actually no major changes > would be needed. However when I think about that, the term "resource" > starts to become awkward and I begin to like TTML's variables :) What the difference between a 'resource' and a TTML variable? And you mean that you want to allow the floating number for the duration? But then you will need to check all the event collisions with 'overlapp(event1, events)'. And there couldn't be optimizations like I did 'and(bitArray1, bitArray2)'. I think both should be possible, but how?? Maybe we can specify a timeslotgroup e.g. Monday from=06.00 to=18.00 and Tuesday 08.00 - 16.00 and it is up to the application to determine how many timeslots we need. Which depends on the smallest event-duration, I guess. I think we shouldn't use floats (rounding stuff). Shouldn't we use milliseconds? No one will need more... (okay, we should use nanoseconds ;-) to be sure) Starting from "Thu Jan 01 01:00:00 CET 1970" like they did for new Date(0) in java? Then my current idea is: <week from="0"> <!-- same like start="1.1.1970 + 9h" duration="3h"--> <timeslotgroup day="Tuesday1" from="777600000" duration="259200000"/> <!-- same like start="(Tuesday1 + 3h) + 1h" duration="3h"--> <timeslotgroup day="Tuesday2" from="86400000" duration="259200000"/> <!-- same like start="(Tuesday2 + 3h) + 16h" duration="9h"--> <timeslotgroup day="Wednesday" from="1382400000" duration="777600000"/> </week> comments: 1. The "0" in the from attribute of week means date=1.1.1970 all other 'from' are relative to the previous timeslotgroup 2. And 9 hours are 9*24*60*60*1000 = 777600000 milliseconds etc. maybe we should allow a,d,min,h and s as shortcut for years, days, minutes, hours and seconds?? this would increase parsing implementation effort... Now it is simple to reference timeslots from resources: <resource id="1" ...> <timeslotgroup from="777600000" duration="86400000"/> <timeslotgroup from="950400000" duration="86400000"/> </resource> Other ideas? > Of course, this is again implementation specific. I can imagine an > implementation that is smart enough to know when resources are defined > with consecutive integer names and represents them internally as a range > of integers instead of allocating memory for each string names (although > I usually don't like such smart implementations) > >> At the moment this and how we should define constraints is >> the main problem we have I think >> Please, could you tell me, why is it necessary to define a dtd? > > DTD is basically a machine readable specification of the XML file > format. It allows the program to validate the file before reading it. I > believe it's also used by operating systems to recognize different > XML-based file types. Okay, thanks. >> Do you add the 'event - repeating' property, because you want to model a >> group of events? Why you think that events shouldn't get its unique name >> (and resources will get)? > > No. "repeat" is strictly a shortcut. It's equivalent to copying the > <event> tag multiple times (in the same way <linear> or <matrix> > shortcuts are equivalent to multiple <resource> tags). Okay. > Events don't have their unique names because I found that in practice > you have multiple events (for example math lectures) that share > basically all properties, including their name. Yes, I understand. But what if there are event-groups with only one event? then we should avoid grouping. And I think a unique name would good to fetch it from a database or to create a hashcode (for HashSet's) etc. What do you think? >> Why you have a performance problem with variable resource number in >> events? Couldn't you use the stl in c? > > That has to do with the way genetic algorithm works, not fixed length > arrays in C (STL is in C++ by the way, Tablix uses C). You would need > variable number of chromosomes and it's basically just an enormous > complication. I'm not sure exactly how it would be done at all without > completely rewriting the algorithm. > > There are other ways to represent timetables in chromosomes, which > wouldn't need variable number of chromosomes, but the literature (back > when I was designing Tablix) showed that they have lower performance > than the one I used. Okay, I understand. >> Do you think that it makes sense to define a default 'repeating' == 1? >> And a default 'mode' == variable, so that we only need to indicate if >> its 'fixed'? Or we can define <default property="mode" >> value="variable">, which would it make easier for people to read the xml. > > I think sane defaults are better than adding another tag to set > different defaults for each file. Okay. >> What do you mean here: "Tablix defines events as tuples of exactly one >> resource of each type." > > It means that for example each event will have exactly one timeslot, one > room, one group of students and one teacher assigned. Okay, so event is sth. like the 'atom' and event-group you only use to avoid data duplication, right? Again thank you for your work Tomaž! In some days I will be back with a new draft ;-) Regards, Peter. |
From: Tomaž Š. <tom...@ta...> - 2008-02-04 17:47:03
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi > 2. the idea of fixed and variable resources. with 'variable' we can make > suggestions to the algorithm AND express the assignments in our > solution. With 'fixed' we could avoid timetabling of this resource. > Right Tomaž? Right. Tablix however has variable and constant resource types. So assignments of resources of constant type are always fixed and vice versa. Fixed assignments of resources of variable types are handled separately through fitness functions (affected by restriction tags). At least that's the impression you get from the file format standpoint. Actually for performance reasons a special mechanism (resource domains) is used instead of fitness functions. This is certainly something that could be exposed directly in the file format. However I decided against it to keep the format simple. > 3. "User can also assign variable resources in the problem definition to > give the algorithm a starting point" -> the output can be used as input. > does this work in the current version? It should be working. > 5. separating 'resource and problem definition'. we should define a > 'merge' procedure, so that an application could generate several > solutions for one main file and if the user is ready, he gets both > definitions merged into one file. (Include a > referenceToFile="relativepath/file.xml" + mainFile="true" property or > sth. like that) NetBeans does this for system, user and project > properties I guess - maybe we can take a look at it. I'm not sure I understand what you mean. It's certainly a good idea to support separation of these parts into different files. Tablix currently writes several files, containing different solutions, duplicating most of the content. This could simply be done with XML external entities (one file with common definitions is included in multiple files containing different solutions). > Do you know a solution of the problem: > 'events can not occupy a fractional number of time slots.' > The only way - in my opinion - to solve this is to define 'smaller > timeslots'!? Yes, of course, that is one solution. However Tablix specifically allocates some memory for each defined resource. So it quickly becomes unpractical to, for example, define a timeslot for each minute in a day. For the next major version of Tablix I had some plans to support "continuous" resource types, that is resource types where a "resource" is represented by a floating point number. Actually no major changes would be needed. However when I think about that, the term "resource" starts to become awkward and I begin to like TTML's variables :) Of course, this is again implementation specific. I can imagine an implementation that is smart enough to know when resources are defined with consecutive integer names and represents them internally as a range of integers instead of allocating memory for each string names (although I usually don't like such smart implementations) > At the moment this and how we should define constraints is > the main problem we have I think > Please, could you tell me, why is it necessary to define a dtd? DTD is basically a machine readable specification of the XML file format. It allows the program to validate the file before reading it. I believe it's also used by operating systems to recognize different XML-based file types. > Do you add the 'event - repeating' property, because you want to model a > group of events? Why you think that events shouldn't get its unique name > (and resources will get)? No. "repeat" is strictly a shortcut. It's equivalent to copying the <event> tag multiple times (in the same way <linear> or <matrix> shortcuts are equivalent to multiple <resource> tags). Events don't have their unique names because I found that in practice you have multiple events (for example math lectures) that share basically all properties, including their name. > Why you have a performance problem with variable resource number in > events? Couldn't you use the stl in c? That has to do with the way genetic algorithm works, not fixed length arrays in C (STL is in C++ by the way, Tablix uses C). You would need variable number of chromosomes and it's basically just an enormous complication. I'm not sure exactly how it would be done at all without completely rewriting the algorithm. There are other ways to represent timetables in chromosomes, which wouldn't need variable number of chromosomes, but the literature (back when I was designing Tablix) showed that they have lower performance than the one I used. > Do you think that it makes sense to define a default 'repeating' == 1? > And a default 'mode' == variable, so that we only need to indicate if > its 'fixed'? Or we can define <default property="mode" > value="variable">, which would it make easier for people to read the xml. I think sane defaults are better than adding another tag to set different defaults for each file. > What do you mean here: "Tablix defines events as tuples of exactly one > resource of each type." It means that for example each event will have exactly one timeslot, one room, one group of students and one teacher assigned. Best regards Tomaz -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFHp0+KsAlAlRhL9q8RAv+kAJ0cW5gziKf3LWfpg08w1l4tD54RFQCgzMl1 K3md+Xwh/acM9wdyEQRj6Yk= =IQ1l -----END PGP SIGNATURE----- |
From: graeme <fos...@gm...> - 2008-02-02 22:32:59
|
Sorry, I've been really busy however I took a look at the document sent by Tomaz. I liked the idea of a resource and from that point selecting the type (person (student, lecturer assistant), equipment, room etc). I agree that we need to ensure that the timeslot is sufficiently flexible, the matrix idea could be used to define the basic structure and then adjusted for specific cases. With the resource idea the personGroup could just become group and within it there would be the type, thus you may have <group id=1 type=person size=40> ... </group> I think that attributes can be used but with care (and proper discussion) so when there is only ever one value (such as id) use an attribute when there could be more than one use a child tag, however I'll read the link you gave. Sorry this was a very quick and hurried message, but I've git to rush, but I wanted to state my approval of the resource tag :) Graeme. On Feb 3, 2008 7:08 AM, Peter Karich <pe...@ya...> wrote: > Hello Graeme! > > > XML... I'm no expert in it but I feel that it is better than UML which > > is essentially tied to the OO paradigm. In that regard I see that XML is > > more language agnostic. > With UML we could generate C++ and Java code with e.g. this tool: > http://uml.sourceforge.net > But it is okay, because all understand xml and that's fine. We could do > this later if it would be necessary. > > > I don't understand why we need RoomSlots? > > Isn't it sufficient to describe that a room is assigned to an event > and > > this event is linked to a Slot? I mean shouldn't we put the RoomSlot > > into Room? > > Something like: > > <TT:Room oid="17" name="Room 1A" capacity="120" timeslot="20"/> > > > > I see that a room will be available for a ceratin number of time slots > > another room however may be available for a different number of time > > slots, for example where I used to work the labs were available for > > longer periods each day than the lecture rooms and some rooms were > > pre-booked for certain activities that were not strictly to do with the > > time table. So the room slot just indicates when each room is available > > to be booked, it is only booked when it has been placed into an event. > > If you want I can expand on this idea more. Ultimately it may be decided > > to be too specific and a more general approach adopted. > > Hmmh, that's true and difficult. > It is not too specific I think. But we could handle this with a boolean > array (length == number of timeslots) where true means 'unassigned'. So > we could handle external orders. I think timeslots is a big issue. > > How should we handle this? Should we simply use an array of timeslots > with the same 'real-time duration': where length == days* > noOfTimeslotsPerDay??? > > Most of all algorithms I have seen did this, right? > Although I programmed a genetic algorithm, where the number of > timeslots does not matter, so you could split one period (e.g. a week) > into thousands of timeslots without effecting the efficiency. > > > Incompetence... ;) I actually agree with the idea of children tags. > Okay, I taught myself and now we have an official opinion: > People from w3schools (http://www.w3schools.com/xml/xml_attributes.asp) > suggest to avoid attributes: Use elements instead. > But sometimes this could lead to inefficient xml code: > <root> > <attr>1</attr> > <attr2>2</attr2> > <attr3>2</attr3> > </root> > I counted 63 characters instead of ca. 40 characters for this: > <root attr="1" attr2="2" attr="3"> > </root> > > > > I think that if a the events repeat at a frequency different to the 7 > > week days implied by the original document then it can be incorporated > > by having a different enum (thus Monday, Tuesday, Wednesday, Thursday, > > Friday, Saturday, Sunday could become Monday1, Tuesday1, Wednesday1, > > Thursday1, Friday1, Saturday1, Sunday1, Monday2, Tuesday2, Wednesday2, > > Thursday2, Friday2, Saturday2, Sunday 2) I know of one university that > > had a six day cycle over the five working days, so the start of the week > > was Monday, then the following Tuesday and so on. The description may > > need a little more attention and the wording of attributes improved to > > make it more generic, but I think that could work. > > Yes, we can define a Period class with several days as you explained. > > > > I'm not convinced about the use of feature over equipment, I feel that > > making things too generic means that it looses clarity. > > Okay, that's true. Let us assume that applications can 'hack' this and > use the Equipment class as a feature ;-) > > > > PersonGroup works for me, or maybe it should be PeopleGroup? > > Don't know. I prefer person although my random generator says people :-) > With person you would describe one individual. With people you already > mean a group of persons, right? > Other positions? > > Bye, > Peter. > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > gstpl-standards mailing list > gst...@li... > https://lists.sourceforge.net/lists/listinfo/gstpl-standards > |
From: Peter K. <pe...@ya...> - 2008-02-02 21:07:35
|
Hello Graeme! > XML... I'm no expert in it but I feel that it is better than UML which > is essentially tied to the OO paradigm. In that regard I see that XML is > more language agnostic. With UML we could generate C++ and Java code with e.g. this tool: http://uml.sourceforge.net But it is okay, because all understand xml and that's fine. We could do this later if it would be necessary. > I don't understand why we need RoomSlots? > Isn't it sufficient to describe that a room is assigned to an event and > this event is linked to a Slot? I mean shouldn't we put the RoomSlot > into Room? > Something like: > <TT:Room oid="17" name="Room 1A" capacity="120" timeslot="20"/> > > I see that a room will be available for a ceratin number of time slots > another room however may be available for a different number of time > slots, for example where I used to work the labs were available for > longer periods each day than the lecture rooms and some rooms were > pre-booked for certain activities that were not strictly to do with the > time table. So the room slot just indicates when each room is available > to be booked, it is only booked when it has been placed into an event. > If you want I can expand on this idea more. Ultimately it may be decided > to be too specific and a more general approach adopted. Hmmh, that's true and difficult. It is not too specific I think. But we could handle this with a boolean array (length == number of timeslots) where true means 'unassigned'. So we could handle external orders. I think timeslots is a big issue. How should we handle this? Should we simply use an array of timeslots with the same 'real-time duration': where length == days* noOfTimeslotsPerDay??? Most of all algorithms I have seen did this, right? Although I programmed a genetic algorithm, where the number of timeslots does not matter, so you could split one period (e.g. a week) into thousands of timeslots without effecting the efficiency. > Incompetence... ;) I actually agree with the idea of children tags. Okay, I taught myself and now we have an official opinion: People from w3schools (http://www.w3schools.com/xml/xml_attributes.asp) suggest to avoid attributes: Use elements instead. But sometimes this could lead to inefficient xml code: <root> <attr>1</attr> <attr2>2</attr2> <attr3>2</attr3> </root> I counted 63 characters instead of ca. 40 characters for this: <root attr="1" attr2="2" attr="3"> </root> > I think that if a the events repeat at a frequency different to the 7 > week days implied by the original document then it can be incorporated > by having a different enum (thus Monday, Tuesday, Wednesday, Thursday, > Friday, Saturday, Sunday could become Monday1, Tuesday1, Wednesday1, > Thursday1, Friday1, Saturday1, Sunday1, Monday2, Tuesday2, Wednesday2, > Thursday2, Friday2, Saturday2, Sunday 2) I know of one university that > had a six day cycle over the five working days, so the start of the week > was Monday, then the following Tuesday and so on. The description may > need a little more attention and the wording of attributes improved to > make it more generic, but I think that could work. Yes, we can define a Period class with several days as you explained. > I'm not convinced about the use of feature over equipment, I feel that > making things too generic means that it looses clarity. Okay, that's true. Let us assume that applications can 'hack' this and use the Equipment class as a feature ;-) > PersonGroup works for me, or maybe it should be PeopleGroup? Don't know. I prefer person although my random generator says people :-) With person you would describe one individual. With people you already mean a group of persons, right? Other positions? Bye, Peter. |
From: Peter K. <pe...@ya...> - 2008-02-02 20:00:40
|
Hi, I found two more definitions in the web: http://www.dcs.napier.ac.uk/~andrew/tat.html http://www.gscit.monash.edu.au/units/graduate_projects/MThesis_final_sample.pdf And I have found a document where people want to define a (metadata) standard http://www.oasis-open.org/committees/documents.php?wg_abbrev=office-metadata There we can take a look at there work and how they define a 'standard' and improve our process Bye, Peter. |
From: Peter K. <pe...@ya...> - 2008-02-02 19:57:11
|
Hi Tomaž, I like your xml file definition: clear, short and applied ;-). This and graeme's work are very good starting points! The following things from Tomaž` file should be in our format: 1. the idea 'a room and person is a resource'. We should even extend it: an equipment(feature) is a resource, too. It even could have its own timetable. E.g. this would be useful for an equipment that will be shared between rooms, like a video projector. 2. the idea of fixed and variable resources. with 'variable' we can make suggestions to the algorithm AND express the assignments in our solution. With 'fixed' we could avoid timetabling of this resource. Right Tomaž? 3. "User can also assign variable resources in the problem definition to give the algorithm a starting point" -> the output can be used as input. does this work in the current version? 4. shortcuts for multiple events or resources, which is a great idea for research I think 5. separating 'resource and problem definition'. we should define a 'merge' procedure, so that an application could generate several solutions for one main file and if the user is ready, he gets both definitions merged into one file. (Include a referenceToFile="relativepath/file.xml" + mainFile="true" property or sth. like that) NetBeans does this for system, user and project properties I guess - maybe we can take a look at it. Tomaž I have some questions about your document: Do you know a solution of the problem: 'events can not occupy a fractional number of time slots.' The only way - in my opinion - to solve this is to define 'smaller timeslots'!? At the moment this and how we should define constraints is the main problem we have I think Please, could you tell me, why is it necessary to define a dtd? Do you add the 'event - repeating' property, because you want to model a group of events? Why you think that events shouldn't get its unique name (and resources will get)? Why you have a performance problem with variable resource number in events? Couldn't you use the stl in c? Do you think that it makes sense to define a default 'repeating' == 1? And a default 'mode' == variable, so that we only need to indicate if its 'fixed'? Or we can define <default property="mode" value="variable">, which would it make easier for people to read the xml. What do you mean here: "Tablix defines events as tuples of exactly one resource of each type." Bye, Peter. |
From: Peter K. <pe...@ya...> - 2008-01-31 22:43:16
|
Hi all, this is our opportunity: Sun (Microsystems) invests a lot of money into open source projects which enhances the NetBeans platform or IDE (in any sense!) Please look here for more information: http://www.netbeans.org/grant/grantdetails.html So my proposal to them will be to rewrite gstpl and transform it to the NetBeans platform. Is somebody out there, who has time AND pleasure to go with me? Here is the document how I want to fill out the provided form: http://gstpl.sourceforge.net/files/netbeans.txt Any comments? Regards, Peter. |
From: <tom...@ta...> - 2008-01-30 17:44:25
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi Peter > please, could you prepare a xml file with an example of tablix's data > model? Or a simple example would be good, too: I've written a short document with the description of Tablix' file format and some discussion about what I think could be done better. This is mostly based on some of my notes on what I had in my mind for the next iteration of the Tablix format. http://tablix.org/~avian/tablix%20format%20-%20looking%20forward.pdf I think it explains how things are defined in Tablix. Just ask if you have any questions (you can also get real-life plain XML examples in the Tablix distribution tar.gz). Best regards Tomaz -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFHoLdmsAlAlRhL9q8RAn5EAJ9TdlG6OgfwsbWW37y3k6JIOhFVpgCggITU s0wCP6Hu+r5hpmAOq6GDjR0= =Q63M -----END PGP SIGNATURE----- |
From: Peter K. <pe...@ya...> - 2008-01-28 22:33:38
|
Hi Tomaž, please, could you prepare a xml file with an example of tablix's data model? Or a simple example would be good, too: a) event start time duration b) room name capacity ... This would help a lot, because at the moment I am merging graeme's model, gstpl's model and the 3 tracks of the ITC to get a bigger picture :-) Bye, Peter. |
From: graeme <fos...@gm...> - 2008-01-28 10:59:59
|
I'll try and address your points embedded in your message. Graeme. On Jan 27, 2008 11:34 PM, Peter Karich <pe...@ya...> wrote: > Hi Graeme, > > great work! > I hope all the others got a correct message cause I can't read the > message there [1]. > > I have several comments, although this does NOT mean that it is bad > work, okay? :-) No worries, it did it to generate some debate. > > > I quickly appended a new example version, but I am not very familiar > with xml, so please post some better version or I will do in the next > weeks. > We have a lot of things to discuss and to think about, maybe we should > write (at least) one working implementation which reads/writes the xml?? > What the others think: > Is xml the preferred way to talk about standards? > http://en.wikipedia.org/wiki/Xml > Or should we use UML? > http://en.wikipedia.org/wiki/Unified_Modeling_Language > http://en.wikipedia.org/wiki/Class_diagram > > XML... I'm no expert in it but I feel that it is better than UML which is essentially tied to the OO paradigm. In that regard I see that XML is more language agnostic. > > Why we need EquipmentType? I'm not 100% happy with the equipment stuff. The reason for type was to distinguish between a type of equipment and the actual piece of equipment. Assume that there are three LCD projectors (red green and blue), a lecturer my require one, it doesn't really matter which one, so a requirement will be for an LCD projector, whilst the one that is booked for one class could be the blue projector and for the next class it could be the red. So it's there to distinguish between the what is required from the actual physical object. > I don't understand why we need RoomSlots? > Isn't it sufficient to describe that a room is assigned to an event and > this event is linked to a Slot? I mean shouldn't we put the RoomSlot > into Room? > Something like: > <TT:Room oid="17" name="Room 1A" capacity="120" timeslot="20"/> I see that a room will be available for a ceratin number of time slots another room however may be available for a different number of time slots, for example where I used to work the labs were available for longer periods each day than the lecture rooms and some rooms were pre-booked for certain activities that were not strictly to do with the time table. So the room slot just indicates when each room is available to be booked, it is only booked when it has been placed into an event. If you want I can expand on this idea more. Ultimately it may be decided to be too specific and a more general approach adopted. > > Is end time exclusive in Slot? Good point. I like to think that it is so that you can easily have slots butt up with each other, thus the two slots "9:00-10:00" and "10:00 11:00" are valid. > Shouldn't we use xml-children instead of separating attributes via ';'? > (Why you sometimes used ',' and sometimes ';'?) Incompetence... ;) I actually agree with the idea of children tags. > > I don't think that it is good to split 'Person' into > Assistant, Lecturer and Student. What you will do if (e.g. at > university) a student is a lecturer in another subject? > In subject or event we can add required persons. I like the idea of a person's role, I'm not exactly sure how it will pan out, but it's worth investigating. > > We should allow multiple weeks. So we have to add a new class Periode or > what do you mean? Shouldn't we put the timeslot and periode definitions > within the TT:Timetable? I think that if a the events repeat at a frequency different to the 7 week days implied by the original document then it can be incorporated by having a different enum (thus Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday could become Monday1, Tuesday1, Wednesday1, Thursday1, Friday1, Saturday1, Sunday1, Monday2, Tuesday2, Wednesday2, Thursday2, Friday2, Saturday2, Sunday 2) I know of one university that had a six day cycle over the five working days, so the start of the week was Monday, then the following Tuesday and so on. The description may need a little more attention and the wording of attributes improved to make it more generic, but I think that could work. > > Should we rename Equipment to Feature? It is more general I think. I'm not convinced about the use of feature over equipment, I feel that making things too generic means that it looses clarity. > > And StudentGroup to PersonGroup? PersonGroup works for me, or maybe it should be PeopleGroup? > > And Slot to Event? Event is probably better than slot. > > > And how can we avoid: > <TT:Person oid="1"> > <TT:Person oid="2"> > <TT:Person oid="3"> > I mean is this possible with xml: > <list of TT:Person> > <oid="1"> > <oid="2"> > <oid="3"> > </list of TT:Person> > Or is this not necessary? But think of an university with 50000 students: > we will have save 'TT:Person ' * 50000 => ca. 10 * 50000 characters. > My idea of StudentGroups was that they would indicate the number in the group and may if required include the actual students but that shouldn't be a requirement. > > Shouldn't we split the document in 3 (or more) parts: > Data definition: rooms, persons and its choosen events > Timetable: events with distinct start and end times, events with its rooms > Constraints: ??? > It can certainly be broken into separate files. > > Bye, > Peter. > > > > > [1] > > http://sourceforge.net/mailarchive/forum.php?thread_name=dfb4b74f0712311810h752fc675sc0343b6ce9c4e83e%40mail.gmail.com&forum_name=gstpl-standards > > Example v0.2 > > <TT:Person oid="14" name="Jonnie"/> > <TT:Event oid="4" type="Student"/><TT:Event oid="5" type="Student"/> > </TT:Person> > <TT:Person oid="15" name="Vincent"/> > <TT:Event oid="4" type="Student"/><TT:Event oid="5" type="Student"/> > </TT:Person> > <TT:Person oid="16" name="David"> > <TT:Event oid="4" type="Student"/><TT:Event oid="5" type="Student"/> > </TT:Person> > <TT:Person oid="6" name="Luther, Marc"> > <TT:Event oid="2" type="Lecturer"/><TT:Event oid="4" type="Lecturer"/> > </TT:Person> > <TT:Person oid="7" name="Arc, Joan"> > <TT:Event oid="3" type="Lecturer"/><TT:Event oid="4" type="Lecturer"/> > </TT:Person> > <TT:Person oid="8" name="Astor, Ada"> > <TT:Event oid="5" type="Lecturer"/> > </TT:Person> > <TT:Person oid="9" name="Watson"> > <TT:Event oid="3" type="Lecturer"/> > </TT:Person> > > <TT:PersonGroup oid="10" name="First Year's" total="120" divisible="true"> > <TT:PersonGroup oid="11" name="First Year Group A" total="40" > divisible="false"> > <TT:Person oid="14"/> > <TT:Person oid="15"/> > <TT:Person oid="16"/> > </TT:PersonGroup> > <TT:PersonGroup oid="12" name="First Year Group B" total="40" > divisible="false" /> > <TT:PersonGroup oid="13" name="First Year Group C" total="40" > divisible="false" /> > > <TT:Room oid="17" name="Room 1A" capacity="120"> > <type="Lecture room"/> > <type="Examination room"/> > </TT:Room> > .... > > <TT:Periode oid="38" startday="01/27/2008" numberofdays="7" /> > <TT:Timeslot oid="20" periode="38" dayOfWeek="Monday" startTime="9:30" > endTime="10:20" /> > ... > > <TT:Equipment oid="28" type="35" dependency="31" /> > ... > > <TT:Timetable oid="1" description="Spring Semester 2008" type"Lecture > Schedule"> > <TT:Event oid="2" room="17" timeslot> > <person-list><oid="6"/><oid="10"/></person-list> > </TT:Event> > <TT:Event oid="3" room="18"> > <person-list><oid="7"/><oid="9"/><oid="12"/></person-list> > </TT:Event> > <TT:Event oid="4" room="17"> > <features><oid="29"><oid="30"><features> > <person-list><oid="6"/><oid="7"/><oid="10"/></person-list> > </TT:Event> > <TT:Event oid="5" room="19"> > <person-list><oid="8"/><oid="11"/></person-list> > </TT:Event > </TT:Timetable> > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > gstpl-standards mailing list > gst...@li... > https://lists.sourceforge.net/lists/listinfo/gstpl-standards > > |
From: <tom...@ta...> - 2008-01-27 19:16:32
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi All discussion so far seems to be oriented at various school timetables. The proposed XML and class diagram include specific terms as "Exam", "Teacher", etc. However I had the impression that the goals of this project are more broad. TTML and Tablix for example support a much more generalized timetabling model. They hide specific timetabling elements behind mathematical abstractions. For example lecturers, assistants and equipment would all be threated as variable domain elements (or resources in Tablix). Maybe we should first define some clear goals. Will the standard cover only school scheduling, any scheduling that involves assigning people into rooms using discreet time slots or just generalized assignment of resources to events? How specific should we be? Abstracting things too much makes the standard hard to understand. For example for me it was hard to connect TTML abstractions with practical terms like teachers and student groups until I studied the specification sin detail. With Tablix I tried to make some compromises between abstraction and practical use however I have the impression that it's still too much on the abstract side. On the other hand it's hard to define a standard without abstraction when timetables differ so much from school to school and country to country. Sometimes teachers and student groups have fixed assignments to lectures, sometimes not. You can have multiple teachers or multiple student groups attending the same event, you need to schedule assistants, equipment, etc. Then there is exam scheduling that is again different from lecture scheduling. When designing Tablix I've seen that after you've encompassed all possible school scheduling scenarios there is only a small step needed to be as general as TTML. My proposal would be to create an all-encompassing framework, a timetabling model, and then define some standard uses of it that only use some of the components. For example a simple school timetable schema would define object classes like teachers, students and give some properties to them (like that they are statically assigned to lectures and that they represent physical entities with standard constraints) That way a certain program implementing the standard could choose to only to implement one schema or all of them. And if none of the standard schemas fits an user's problem, she can can always go a level deeper and define her own. I believe this would be a good compromise. Best regards Tomaz -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFHnNh/sAlAlRhL9q8RApYcAJ9puyU/Xh9NHxLvVTdN/1iTVyzSowCfVWxb a9hr8gn2yA5BAvke5jznu4w= =uuOm -----END PGP SIGNATURE----- |
From: <tom...@ta...> - 2008-01-27 18:11:33
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi everyone > Shouldn't we use xml-children instead of separating attributes via ';'? > (Why you sometimes used ',' and sometimes ';'?) I agree with Peter here. All lists should be given as children XML tags. This way the number and type of list elements is easily defined in the DTD document. So this: <TT:Slot oid="4" lecturer="6,7" student="10" roomslot="27" equipment="30; 29" /> Would become this: <TT:Slot oid="4"> <TT:Lecturer oid="6"/> <TT:Lecturer oid="7"/> <TT:Student oid="10"/> <TT:Roomslot oid="27"/> <TT:Equipment oid="30"/> <TT:Equipment oid="29"/> </TT:Slot> > I don't think that it is good to split 'Person' into > Assistant, Lecturer and Student. What you will do if (e.g. at > university) a student is a lecturer in another subject? > In subject or event we can add required persons. How about giving a "role" property for each assignment of a person to an event? > And how can we avoid: > <TT:Person oid="1"> > <TT:Person oid="2"> > <TT:Person oid="3"> > I mean is this possible with xml: > <list of TT:Person> > <oid="1"> > <oid="2"> > <oid="3"> > </list of TT:Person> > Or is this not necessary? But think of an university with 50000 students: > we will have save 'TT:Person ' * 50000 => ca. 10 * 50000 characters. Sometimes you don't need to define people at all, only groups. Timetables can be strictly student-group oriented, for example for schools that have fixed study programmes and do not allow students to pick courses. Having to specify all names of students in that case would be excessive. In fact, you may not even know these names at the time you are making the timetable. So it would be nice for the standard to support for example StudentGroups without further definition of which students actually are in the group (only maybe maximum and minimum numbers). Best regards Tomaz -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFHnMk8sAlAlRhL9q8RAs/NAJwMiHZwMgnQXOJV0JT8dC/iYXGP0QCfYuLj Zs+A1TToVAAQDTcDc/KtGOM= =+qVY -----END PGP SIGNATURE----- |
From: Peter K. <pe...@ya...> - 2008-01-27 15:09:10
|
Hi all, I found the following tool in the web: http://java.freehep.org/freehep-aid/ With it we can generate java and c++ files from an abstract source file definition. But we could use CORBA instead: http://en.wikipedia.org/wiki/CORBA What do you think? Peter. |
From: Peter K. <pe...@ya...> - 2008-01-27 13:31:46
|
Hi Graeme, great work! I hope all the others got a correct message cause I can't read the message there [1]. I have several comments, although this does NOT mean that it is bad work, okay? :-) I quickly appended a new example version, but I am not very familiar with xml, so please post some better version or I will do in the next weeks. We have a lot of things to discuss and to think about, maybe we should write (at least) one working implementation which reads/writes the xml?? What the others think: Is xml the preferred way to talk about standards? http://en.wikipedia.org/wiki/Xml Or should we use UML? http://en.wikipedia.org/wiki/Unified_Modeling_Language http://en.wikipedia.org/wiki/Class_diagram Why we need EquipmentType? I don't understand why we need RoomSlots? Isn't it sufficient to describe that a room is assigned to an event and this event is linked to a Slot? I mean shouldn't we put the RoomSlot into Room? Something like: <TT:Room oid="17" name="Room 1A" capacity="120" timeslot="20"/> Is end time exclusive in Slot? Shouldn't we use xml-children instead of separating attributes via ';'? (Why you sometimes used ',' and sometimes ';'?) I don't think that it is good to split 'Person' into Assistant, Lecturer and Student. What you will do if (e.g. at university) a student is a lecturer in another subject? In subject or event we can add required persons. We should allow multiple weeks. So we have to add a new class Periode or what do you mean? Shouldn't we put the timeslot and periode definitions within the TT:Timetable? Should we rename Equipment to Feature? It is more general I think. And StudentGroup to PersonGroup? And Slot to Event? And how can we avoid: <TT:Person oid="1"> <TT:Person oid="2"> <TT:Person oid="3"> I mean is this possible with xml: <list of TT:Person> <oid="1"> <oid="2"> <oid="3"> </list of TT:Person> Or is this not necessary? But think of an university with 50000 students: we will have save 'TT:Person ' * 50000 => ca. 10 * 50000 characters. Shouldn't we split the document in 3 (or more) parts: Data definition: rooms, persons and its choosen events Timetable: events with distinct start and end times, events with its rooms Constraints: ??? Bye, Peter. [1] http://sourceforge.net/mailarchive/forum.php?thread_name=dfb4b74f0712311810h752fc675sc0343b6ce9c4e83e%40mail.gmail.com&forum_name=gstpl-standards |
From: graeme <fos...@gm...> - 2008-01-05 05:41:57
|
Hi Peter, I wanted to put something down regarding standards. The first caveat is that I'm no expert on this but I see that this is an important stage. The standard needs to be both concise and precise yet flexible enough to meet all currently perceived needs. I have seen that a lot of standard use XML, UML is defined using XML, the open document format uses XML and so on so whilst I have some misgivings about XML (my second caveat) I would recommend that we use it to define the data needs. I would suggest that the class diagram is a good starting point and something like that can be used to draft the initial draft of the XML definitions. Something which I am happy to have a first bash with. When it comes to XML my preference would be to avoid attributes as much as possible, I believe that the usage of attributes confuse the final document. That is not to say that there isn't a place in XML for attributes but I'd rather minimise their usage. I should mention that at this stage I see that the standard would develop the data dictionary, which is where XML can be used. Once that has been finalised a release candidate can be released and code can be written to convert the XML standard to and from internal data structures in various programming languages. This would be the key testing of the standard. A suite of standard test files (in XML) can be developed to ensure that the functions work correctly and that the standard is sufficiently encompassing to ensure that it can be used to describe all the situations that we want to be able to model. Defining that standard would concentrate upon concrete instances of the data, for example there would be a definition of a teacher this would then be broken down by the programming library into the various classes that make up the teacher object (for an OO language that is). I'm going to be out of contact for most of the next fortnight but I'll put some thought into how this can be converted into XML. Graeme |
From: graeme <fos...@gm...> - 2008-01-03 11:01:19
|
Ah!!! Many thanks for your reply, I think I follow it all now, although I may want to approach it slightly differently... Anyway, when I get time I'l= l write what I am thinking when it comes to standards, but I'm too busy to do it justice at the moment. Not that it needs a huge amount of time but I nee= d to get my thoughts very clear. Graeme. On Jan 1, 2008 9:39 PM, peter karich <pe...@ya...> wrote: > Hi Graeme, > > thank you for your inputs! > I think a programming language independend model is > fine (and the goal) and I thought a class diagram > would be the best, because there are several tools to > easily convert these diagrams into code. > > > > > My view > > would be to develop a data description independent > > of programming language. > > After the data > > description has been agreed I would see work on > > standard algorithms, again > > these should be language independent and storage > > independent. > Yes, I agree here with you. > Do you have an idea how to do this (without diagrams)? > I am not familiar with making standards :-). sorry for > this. Please suggest what we should do! > > > > I don't understand the inheritance model, > > although maybe it is because I don't use interfaces, > > > for example, I'm confused as to why IPerson inherits > > > from ITimetable. > Yes, naming could be a problem. I mean Timeable (not > Timetable): something that can have events. This could > be e.g. a room or a person. Why a room can have > events? Because the events could take place in those > rooms and so those rooms 'have' events. > > Interface or classes? This is a personal advantage. > In my opinion it is good to separate definition from > implementation. E.g. we can have several > implementations of the IRaster interface: > with boolean array, with the BitSet class, with a long > array, with a String etc. > And the programmer should be able to choose the > fastest or the cleanest or whatever. > We can have a factory: > IRaster Factory.createRaster("speed") //speed > optimized > IRaster Factory.createRaster("storage") //memory > optimized -> useful for database etc. > > > > I'm not clear how the class IFeature will be > > used, I'm sure an example would clarify this > E.g. a room can have a Bunsen burner or a big > blackboard. And some IEvents could require those > IFeature's (e.g. chemistry needs a bunsen burner). > > Another point here is that the capacity of a room is a > feature as well. But every room has a capacity, so I > put the capacity directly in the IRoom interface. > Is this okay? > > > > > Is the word raster meant to be roster: *roster n. > > list or plan showing turns of duty etc.* > I didn't mean 'roster' here. I meant a grid like > structure, where we can define forbidden and required > timeslots. E.g. if a person doesn't want to work on > tuesday in the 5 slot then we simply do sth. like: > person.getWeekRaster(week).set(slot, FORBIDDEN); > We can change the name, of course. > > > > Thanks again Graeme for your hints :-) > > Peter. > > > __________________________________ Ihre erste Baustelle? > Wissenswertes f=FCr Bastler und Hobby Handwerker. www.yahoo.de/clever > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > gstpl-standards mailing list > gst...@li... > https://lists.sourceforge.net/lists/listinfo/gstpl-standards > |
From: peter k. <pe...@ya...> - 2008-01-01 11:39:38
|
Hi Graeme, thank you for your inputs! I think a programming language independend model is fine (and the goal) and I thought a class diagram would be the best, because there are several tools to easily convert these diagrams into code. > My view > would be to develop a data description independent > of programming language. > After the data > description has been agreed I would see work on > standard algorithms, again > these should be language independent and storage > independent. Yes, I agree here with you. Do you have an idea how to do this (without diagrams)? I am not familiar with making standards :-). sorry for this. Please suggest what we should do! > I don't understand the inheritance model, > although maybe it is because I don't use interfaces, > for example, I'm confused as to why IPerson inherits > from ITimetable. Yes, naming could be a problem. I mean Timeable (not Timetable): something that can have events. This could be e.g. a room or a person. Why a room can have events? Because the events could take place in those rooms and so those rooms 'have' events. Interface or classes? This is a personal advantage. In my opinion it is good to separate definition from implementation. E.g. we can have several implementations of the IRaster interface: with boolean array, with the BitSet class, with a long array, with a String etc. And the programmer should be able to choose the fastest or the cleanest or whatever. We can have a factory: IRaster Factory.createRaster("speed") //speed optimized IRaster Factory.createRaster("storage") //memory optimized -> useful for database etc. > I'm not clear how the class IFeature will be > used, I'm sure an example would clarify this E.g. a room can have a Bunsen burner or a big blackboard. And some IEvents could require those IFeature's (e.g. chemistry needs a bunsen burner). Another point here is that the capacity of a room is a feature as well. But every room has a capacity, so I put the capacity directly in the IRoom interface. Is this okay? > Is the word raster meant to be roster: *roster n. > list or plan showing turns of duty etc.* I didn't mean 'roster' here. I meant a grid like structure, where we can define forbidden and required timeslots. E.g. if a person doesn't want to work on tuesday in the 5 slot then we simply do sth. like: person.getWeekRaster(week).set(slot, FORBIDDEN); We can change the name, of course. Thanks again Graeme for your hints :-) Peter. __________________________________ Ihre erste Baustelle? Wissenswertes für Bastler und Hobby Handwerker. www.yahoo.de/clever |
From: graeme <fos...@gm...> - 2008-01-01 02:10:13
|
Hi all, I've been looking at the class diagram, and I have a few questions: - I don't understand the inheritance model, although maybe it is because I don't use interfaces, for example, I'm confused as to why IPerson inherits from ITimetable. - I'm not clear how the class IFeature will be used, I'm sure an example would clarify this - Is the word raster meant to be roster: *roster n. list or plan showing turns of duty etc.* Finally, I'm not convinced that a class diagram is the best starting point to discuss standards, and I feel that is the best starting point. My view would be to develop a data description independent of programming language. Once the data has been described then code can be submitted to translate to and from the standard to various storage formats using various languages. For example C functions to SQL, or Java to flat files. After the data description has been agreed I would see work on standard algorithms, again these should be language independent and storage independent. Graeme. |
From: peter k. <pe...@ya...> - 2007-12-28 14:35:19
|
Welcome to the mailing list of timetabling standards! Look here: http://gstpl.wikispaces.com/Timetabling+Standards for more informations. Subscribe/Unsubscribe via: https://lists.sourceforge.net/lists/listinfo/gstpl-standards to gst...@li... A related forum was created here: https://sourceforge.net/forum/forum.php?forum_id=767141 Thanks, Peter Karich. __________________________________ Ihr erstes Fernweh? Wo gibt es den schönsten Strand? www.yahoo.de/clever |
From: peter k. <pe...@ya...> - 2007-12-28 14:29:01
|
Hello Timetabling Folks, I created a forum [1] and a mailing list [2] for the timetabling standardization stuff. Finally I created some initially Java classes [3] for the data abstraction and its class diagram which should be readable for all programmers [4]. Again - it could be really helpful if you ask some more people to join! Thank you and have nice new year 2008! Peter Karich. [1] https://sourceforge.net/forum/forum.php?forum_id=767141 [2] gst...@li... Subscribe via: https://lists.sourceforge.net/lists/listinfo/gstpl-standards [3] Checkout via: svn co https://gstpl.svn.sourceforge.net/svnroot/gstpl/branches/ttstandards ttstandards You will have to join gstpl to get write access. [4] http://gstpl.wikispaces.com/space/showimage/ttstandards-data.jpg PS: The page: http://gstpl.wikispaces.com/Timetabling+Standards will summarize actions with important links like the things above. I will mirror this page to the ttstandards repository as html to allow users with a slow internet connection to participate. __________________________________ Ihr erstes Baby? Holen Sie sich Tipps von anderen Eltern. www.yahoo.de/clever |
From: peter k. <pe...@ya...> - 2007-12-28 13:52:38
|
Welcome to the mailing list of timetabling standards! Look here: http://gstpl.wikispaces.com/Timetabling+Standards for more informations. Subscribe/Unsubscribe via: https://lists.sourceforge.net/lists/listinfo/gstpl-standards A related forum was created here: https://sourceforge.net/forum/forum.php?forum_id=767141 Thanks, Peter Karich. Machen Sie Yahoo! zu Ihrer Startseite. Los geht's: http://de.yahoo.com/set |