Forum .LRN Q&A: thinking in dotlrn and the university educational model

Hello:

I would like that in this thread we explain the differents universities models, i will start speaking about UNED (the spain distance university), althought i think that in all spanish universities is the same.

In UNED someone can study for obtain some certificate (http://www.uned.es/vep/images/organigrama.gif), for obtain a degree "diplomatura" or "licenciatura" (sorry, i am not sure if this words has a direct translation), and this person can study to be a doctor, too (the highest titulation, only who want be professor take this studies).

In the certificates, a class can be in one or various departments. In the other studies, a class only can be in one department.

One department can teach class of one or more faculties.

I think that the diagram about this in dotlrn actually is http://pikachu.innova.uned.es/dev/img/dotlrn_communities-relations.png , because this is the datamodel http://pikachu.innova.uned.es/dev/img/tables-dotlrn.png.

Perhaps, we could implement something similar to http://pikachu.innova.uned.es/dev/img/dotlrn_communities-relations-new.png using acs_rels for the composition relation. Althought is possible than in this thread we change this idea.

Regards.

It's possible that i didn't explain very good.

How to model a n:m relation between classes and departments?. It looks like acs_rels is the way to do it. But i'm starting with openacs and i don't find specific documentation about use acs_rels. I've read https://openacs.org/doc/openacs-4-6-3/object-system-design.html and https://openacs.org/doc/openacs-4-6-3/permissions-tediously-explained.html and i understand the philosophy, but i would like see simple examples about use acs_rels.

Thanks.

Hola, David.

You must read this page:

http://rubick.com:8002/openacs/acs_rels

All the links are valuable:

http://rubick.com:8002/openacs/

Regards.

/Jorge

Gracias Jorge ;)

I've read https://openacs.org/forums/message-view?message_id=111235 and https://openacs.org/forums/message-view?message_id=111185, too.

In now, i'm doing modifications to some files. When i have something running, i will comunicate it in this thread. :)

the relationship between departments, classes and class_instances is rather hard coded into dotlrn from what i can tell. In fact, i am trying to get dotlrn working with a similar configuration you are talking about (one class can belong to some departments) and i also want classes and departments to become communities. In the current dotlrn version, those are not communities themselves.

Departments and classes are not communities but only community-types and you will probably have to change that. How you model the relationship between them afterwards is rather unimportant i think.

Hello Peter!

It's wonderful that you're interested in this feature, perhaps i can send you my modifications to the source code, or talk about it in this thread. I go to do it!

I thought model departments and classes with community-types. Why not?. I continue thinking that this diagram is a good model for dotlrn, but i will want listen other ideas.

Another thing, i think that the modificated tables could have this aspect:

create table dotlrn_faculties
    faculty_key                 varchar(100)
                                constraint dotlrn_faculties_key_fk
                                references dotlrn_community_types (community_type)
                                constraint dotlrn_faculties_pk
                                primary key,
    external_url                varchar(4000)
);
create table dotlrn_departments (
    department_key              varchar(100)
                                constraint dotlrn_departments_dept_key_fk
                                references dotlrn_community_types (community_type)
                                constraint dotlrn_departments_pk
                                primary key,
    external_url                varchar(4000),
create table dotlrn_classes (
    class_key                   varchar(100)
                                constraint dotlrn_classes_class_key_fk
                                references dotlrn_community_types (community_type)
                                constraint dotlrn_classes_pk
                                primary key,
                                                                                                    
);

We can establish the relationship between class and department when we create the department creating a composition_rel. I'm not sure if implement this, in pl/sql in the file classes-create.sql or in class-procs.* thanks to next query

      select composition_rel__new(:class_key, :department_id)
      from dual;

I think that is more elegant use pl/sql but it don't seem be used:

[12:09][darroyo@pikachu:~/cvs/dotlrn]$ grep -rl dotlrn_class__new *
packages/dotlrn/sql/postgresql/classes-create.sql

Thanks for your interest!

From looking at your diagram: I have not thought about modelling faculties, but this is definitely not a bad idea. What do you mean by "subject" - "class"? Is this the same as "class" - "class_instance" from dotlrn? Everyone seems to use different terms for those two things :)

I thought model departments and classes with community-types. Why not?.
It is not a problem to have a community type "department" as a base type for all departments and one named "class", thats for sure. But if i create a new class or department (eg. Maths), i do not want them to be types but communities. Otherwise i cannot have members, portals, etc for them. Departments have staff like secretary, lecturers etc. This information should be modelled as well. But i think your model also is meant like that is it? In dotlrn a new department is just a community-type and nothing else.

I think the tables for the base types you mention are ok. In our version i have added some attributes to the departments table (telephon, fax, address etc). For the connection between departments and classes i created a mapping table. The tables are rather easy to rewrite, most of the work will probably come from changing psql and tcl-code. Things i have added as well are a table to save consultation hours for a department (person) and a table for class lecturers. Otherwise you will probably need a 6-table join using acs-rels to get a listing of every lecturer working for a department. If you are interested, i can send you the changes i did via mail, but i am far from ready.

Other modifications i thought about: I am not quite sure about the structure of dotlrn´s packages. The first thing i did was to create a new global dotlrn-admin package and removed the /admin subdir from the main dotlrn package. In addition the url for the departments, classes and class_instances need to be changed. I think the best option is to just use the respective key for that and make sure it is unique. Using the name for the url in 3 levels (department, class, class_instance) can create monsters like "Abteilung für Informationsverarbeitung/Einführung in betriebliche Informationssysteme/Einführung Java SS2003/". Another thing about the url is the mount point for classes , right now dotlrn does not take the semester into account when setting a name, so you have to integrate the term into the name if you have equal names in every term.

My idea for that (i am working on this right now) is to mount all of the class instances with their acs-ids and grant access to them via virtual url handlers from underneath the classnames path. Using this version you could get the following paths:

  • /class_shortname/class_instance_university_id/ (current term) eg: /math/6543.01/
  • /class_shortname/archive/termname/class_instance_university_id/ (archived class) eg: /math/archive/SS2003/6543.01/
We will probably want to use our universities codes for the class instances url key and i do not want to integrate the terms name in every url. What do you think about this issue?

I go to explain you my problem: in my university said me "learn to model with acs_objects" and i thought "i've created a group type edu_faculty in ACES, then i could create this entity in dotlrn".

Perhaps would be better think in "dotlrn university" than implement edu_faculty isolated. Due to you've reason when you speak about secretary, lecturers, portals, ... but i don't know if someone would do it, finally ...

I'm very interesting in your modifications my email is darroyo at innova.uned.es.

I've been think in a new entity degree or similar word. A degree is composed by one or more class and a degree belong to a department, or to a faculty. What do you think about this?

I've changed my diagram thanks to your comments 😊

Regards.