<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">2014-01-29 Nicolas Chauvat <span dir="ltr"><<a href="mailto:nicolas.chauvat@logilab.fr" target="_blank">nicolas.chauvat@logilab.fr</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Hi List,<br>
<br></blockquote><div><br></div><div>Hi</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

Below is another idea I am trying to float around to see if it gets<br>
traction. If needed, I will turn it into an actual CWEP.<br>
<br>
CWEP-???? - CWSchema<br>
====================<br>
<br>
:champion: Nicolas Chauvat<br>
:last update: 2014/01/29<br>
:status: draft<br>
<br>
Rationale<br>
---------<br>
<br>
A recurrent feature request from users has been to be able to modify the data<br>
model without having to code or to easily adapt the data model to their very<br>
specific case.<br></blockquote><div><br></div><div>As we already discussed early, we had this spreadsheet idea, in which entities,</div><div> attributes, relations, translations, permissions could generate and manage a Schema for CW. </div>
<div><br></div><div>Our Client Softtek developed that and we use it to manage 52 entities, </div><div>and over 700 attributes and relations for those entities.  </div><div><br></div><div>I can't imagine managing all that schema and migrations without a central utility.</div>
<div>As for today, this is Softtek dev and none free software.   </div><div><br></div><div> </div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<br>
Another use case would be to define forms on-the-fly by describing their data<br>
model and using the standard form engine based.<br>
<br></blockquote><div><br></div><div>I guess  CWSchema would be nicer than a spreadsheet, </div><div>specially if Ergonomy and Usability are at least equivalent to that experienced with </div><div>a spreadsheet. </div><div>
<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Proposal<br>
--------<br>
<br>
The main idea of this proposal is to introduce an entity CWSchema that would be<br>
used as a namespace for instances of CWEType and CWRType.<br>
<br>
At the time of this writing, the whole codebase implicitly assumes that<br>
instances of CW*Type are together defining a unique data model.<br>
<br>
A CWSchema named "default" could be introduced that would contain all the<br>
instances of CW*Type. The codebase would have to be (heavily) modified to<br>
explicitly reference the "default" CWSchema.<br>
<br>
The second step would be to set permissions on CWSchema and allow some users to<br>
create instances of CWSchema and CW*Type, then execute queries and call views<br>
"in the context/namespace of CWSchema named XYZ".<br>
<br>
Lots of questins are open at this point and it will be needed to give<br>
that idea a try and see how it changes writing forms, classifying data<br>
(think "dynamic" thesaurus) and import/export data (think user-defined<br>
schema on top of "common" objects like persons, organisations and<br>
places).<br></blockquote><div><br></div><div>These part sounds promising. </div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<br>
Implementation<br>
--------------<br>
<br>
Not yet.<br>
<br>
::<br>
<br>
  CWSchema.name = String(required=True, unique=True)<br>
<br>
  CWRType [*]in_schema[1] CWSchema<br>
  CWEtype [*]in_schema[1] CWSchema<br>
<br>
Questions:<br>
<br>
- would yams or RQL need to be modified ?<br>
<br>
Discussion<br>
-----------<br>
<br>
Please comment.<br>
<span class=""><font color="#888888"><br>
<br></font></span></blockquote><div><br></div><div><div>Althought my programming skills are far far away from... well from almost anyone, </div><div>I will closely follow this CWEP, eager to see in which part I could fit. </div>
</div><div><br></div><div><br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<span class=""><font color="#888888">
<br>
<br>
<br>
--<br>
Nicolas Chauvat<br>
<br>
<a href="http://logilab.fr" target="_blank">logilab.fr</a> - services en informatique scientifique et gestion de connaissances<br>
_______________________________________________<br>
Cubicweb mailing list<br>
<a href="mailto:Cubicweb@lists.cubicweb.org">Cubicweb@lists.cubicweb.org</a><br>
<a href="http://lists.cubicweb.org/mailman/listinfo/cubicweb" target="_blank">http://lists.cubicweb.org/mailman/listinfo/cubicweb</a><br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br>Celso FLORES<br>Knowledge Management Consultant<br>Mx. 044 81 80 75 04 73  <br><a href="mailto:celso.flores@crealibre.com" target="_blank">celso.flores@crealibre.com</a>        Skype: jcelsoflores
</div></div>