netcreateorg / netcreate-2018

Please report bugs, problems, ideas in the project Issues page: https://github.com/netcreateorg/netcreate-2018/issues
Other
11 stars 2 forks source link

Improve Template Editing #175

Open benloh opened 2 years ago

benloh commented 2 years ago

Resources:

Use Models

Two main categories of use models

Novice Editing

Novice editors generally only modify the taxonomy of node and edge types. They do not need nor should the have access to editing the whole template file. This is the most common type of editing.

Key Novice Editing tasks

Expert Editing


Tasks

Template work needs to be completed before import as they are all interrelated.

benloh commented 2 years ago

@kalanicraig @jdanish Can you walk me through:

a) Your current Template Editing process

I'm assuming it's something like this:

  1. Go to your ncTemplateEditor site
  2. Upload an existing template
  3. Modify it using the json editor
  4. Download a template file
  5. Upload the template file to a server
  6. Create a new database with the template (or re-open an existing database with the new template) from the command line. (or use ncMultiplex to open it)?

b) Your ideal Template Editing process

I'm guessing you have two use models here:

i. Modifying an existing template

Sometimes you want to just tweak some parameters of an existing template (e.g. change prompts), so ideally in the middle of a session with an opened existing database you can just open up the template, modify the prompts, and save it, and the model would update.

This can be a doozy if we allow bigger data changes -- you might end up with a template that is incompatible with the project data. So we might need to restrict what can and can't be edited.

ii. Creating a new template

The other main model is creating a new db from scratch with a new template. Here you would still probably start from an existing template, modify it, save it, but then it's OK to have to upload it somewhere because you would still need to start up a new database/ncMultiplex instance.

c) Who usually would be the user that edits templates?

I'm guessing that it's usually administrators or tech-savvy users who would generally be doing this, though I can image that someone who is less tech-savvy (e.g. a grad student) might also want to do something like edit prompts.

d) What do they usually want to change?

Again this is a matter of prioritizing UI designs. Do you anticipate the most common use will be making small modifications on an existing database? Or is the most common use setting a new template for a new database?

I wonder if we need to revisit the whole project loading sequence and how dbs are managed? This probably means changes to ncMultiplex.

kalanicraig commented 2 years ago

A.) Current Template Editing Process

  1. Download an existing template that has some overlap with the current need
  2. Mod it in a text editor
  3. Upload it to the server/put it in a net create runtime folder
  4. Use multiplex to start it or use the --dataset flag to start it with a blank dataset

The existing ncTemplateEditor does some weird things when it’s being built from a blank template, so when I ask folks to mod a template using it, I usually send them a template that’s close. Then I upload for them.

B.) Ideal Template Editing Process Ideally, for all cases the person making the change need not have FTP/directory-level access to upload a file.

For template modifications, ideally the network editing service would pause while there is template change happening so that no one can edit while there’s a template change.

C.) Who makes template changes?

This really varies. For someone using only the netcreate-2018 repo, we can assume a reasonable level of skill. For someone working with nc-multiplex, it’s less controllable. We might have folks who are only GUI-trained users.

The answer here is: what can we reasonably do and how do we need to document around it?

D.) What do they usually want to change

This also varies. The most important types of change are

Starting from scratch with a completely new taxonomy and a blank dataset. Less frequent but vital. Collapsing two node or edge types into a single type (i.e. taxonomy was too complex). Frequent. Adding a new node or edge type (i.e. taxonomy was not complex enough). Frequent. Changing node/edge color value. Frequent Renaming a node or edge type (i.e. taxonomy was right level of complexity but vocal wasn’t well thought out). Somewhat frequent. Resetting attribute names or hiding them. Rare.

For items 2-6, limiting changes to a single element of the template at a time and requiring that they go through the template change process more than once if they’re modding an existing value would be 100% acceptable. That plus stopping editing service during template changes would help control some of the potential chaos.

On Jan 11, 2022, at 1:48 PM, benloh @.***> wrote:

@kalanicraig https://github.com/kalanicraig @jdanish https://github.com/jdanish Can you walk me through:

a) Your current Template Editing process

I'm assuming it's something like this:

Go to your ncTemplateEditor site Upload an existing template Modify it using the json editor Download a template file Upload the template file to a server Create a new database with the template (or re-open an existing database with the new template) from the command line. (or use ncMultiplex to open it)? b) Your ideal Template Editing process

I'm guessing you have two use models here:

i. Modifying an existing template

Sometimes you want to just tweak some parameters of an existing template (e.g. change prompts), so ideally in the middle of a session with an opened existing database you can just open up the template, modify the prompts, and save it, and the model would update.

This can be a doozy if we allow bigger data changes -- you might end up with a template that is incompatible with the project data. So we might need to restrict what can and can't be edited.

ii. Creating a new template

The other main model is creating a new db from scratch with a new template. Here you would still probably start from an existing template, modify it, save it, but then it's OK to have to upload it somewhere because you would still need to start up a new database/ncMultiplex instance.

c) Who usually would be the user that edits templates?

I'm guessing that it's usually administrators or tech-savvy users who would generally be doing this, though I can image that someone who is less tech-savvy (e.g. a grad student) might also want to do something like edit prompts.

d) What do they usually want to change?

Again this is a matter of prioritizing UI designs. Do you anticipate the most common use will be making small modifications on an existing database? Or is the most common use setting a new template for a new database?

I wonder if we need to revisit the whole project loading sequence and how dbs are managed? This probably means changes to ncMultiplex.

— Reply to this email directly, view it on GitHub https://github.com/netcreateorg/netcreate-2018/issues/175#issuecomment-1010259224, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACKL4NEL2MDOYRYVCJKDCFLUVR3OPANCNFSM5IIVAMTQ. You are receiving this because you were mentioned.

benloh commented 2 years ago

@kalanicraig

Collapsing two node or edge types into a single type (i.e. taxonomy was too complex). I would think if you're doing this, we need to also have some kind of utility that can help you modify all the node or edge types for you? e.g. if you're combining "master" and "slave" into "person", then the system really ought to walk through the existing "master" node and edge types and change the type to"person"?

Any changes to the a node or edge type label should probably also be automatically applied (though since we have both an "id" and a "label", all labels should automatically update without needing to update the "id").

benloh commented 2 years ago

@kalanicraig @jdanish One question about who should be allowed to edit templates. Should we implement the admin-only rule? So that only if you're only allowed to change the template if you're using localhost/127.0.0.1 (e.g. on the main server) or have ?admin=true in the URL?

A secondary question: It does seem like there are two levels of editing:

  1. Expert -- Creating a new template or changing the fields (e.g. editing anything more than Node Types and Edge Types) really is something that only someone who knows how the database works should be touching. Do we hide this behind ?admin=true (as you might recall, only admins can delete nodes)? Or do you want a different level of access?

  2. Novice -- A casual user might want to only change the Node Types and Edge Types. While doing so does impact everyone using the system, I can see exposing this with something like ?admin=true. (Or should we make this available to anyone using the system? My guess is that we don't want to let just anyone do this...) We could add a different mode like ?editTypes=true so that someone like a graduate student can make changes to the template without giving them admin level access to everything.

Are there other levels?

kalanicraig commented 2 years ago

Let’s try that again.

I’d lean toward collapsing both levels of editing into a single admin level, mostly because a team doing editing wouldn’t want any user to be able to change node/edge types on the fly without pre-set agreement, and a single user working on a network alone will only ever have one admin.

On Jan 22, 2022, at 6:50 PM, Kalani Craig @.***> wrote:

 I’d lean toward making both levels of editing

On Sat, Jan 22, 2022 at 2:31 PM benloh @.***> wrote: @kalanicraig @jdanish One question about who should be allowed to edit templates. Should we implement the admin-only rule? So that only if you're only allowed to change the template if you're using localhost/127.0.0.1 (e.g. on the main server) or have ?admin=true in the URL?

A secondary question: It does seem like there are two levels of editing:

Expert -- Creating a new template or changing the fields (e.g. editing anything more than Node Types and Edge Types) really is something that only someone who knows how the database works should be touching. Do we hide this behind ?admin=true (as you might recall, only admins can delete nodes)? Or do you want a different level of access?

Novice -- A casual user might want to only change the Node Types and Edge Types. While doing so does impact everyone using the system, I can see exposing this with something like ?admin=true. (Or should we make this available to anyone using the system? My guess is that we don't want to let just anyone do this...) We could add a different mode like ?editTypes=true so that someone like a graduate student can make changes to the template without giving them admin level access to everything.

Are there other levels?

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.

benloh commented 2 years ago

OK thanks. That makes sense. I should have a rough version for you to play with early next week.