[GeoNetwork-devel] Wizards

Hi,

Yesterday I was in a group-session about wizards. Draft conclusions here:

https://github.com/geonetwork/core-geonetwork/wiki/201503Bern-Group2—UI

We think wizards have to be simpler than the editor, like windows installers.The main idea is that users that don’t know anything about metadata (not even know metadata exists) can create records on the catalog.

What we discussed yesterday was some kind of user admin interface where you can visually define a workflow of easy steps as a decision tree that will end up on a metadata view of a newly created metadata with the decisions made. So each step is defined as a very basic form (a yes-no decision, a list of checkboxes, a select dropdown,…) and
after that step there is an action transparent to the user (select template, XSLT transformation,…).

So, with this admin wizard UI you can define the steps to create a metada of some specific kind or the steps to fix an editor completeness requirement. The idea is also to be able to combine wizards so you can call a wizard at the end of another wizard, like modules.

We can define a wizard were the user just have to select the type of metadata (, next), add title (, next), add description (, next), add thumbnail (, next) and upload some additional resource (,next) to have a full defined metadata. Or have another wizard where they can define a more complex survey with steps for bounding box, temporal extent, etc… Fields used here can be the same as in the editor, so we can use autocompletion and required attributes

The advanced editor will still be available for advanced users. And advanced users can also create wizards for special usecases too.

This strongly links to the creation of wizards to fix errors on the editor, fix completeness errors, etc… With just a couple of fields you can apply and XSLT transformation that fixes anything.

The wizards, as decision trees, will be able to show different options depending on previous options selected. All this workflow thing can be defined on xml + auxiliar xslt files, so the main difficult thing here may be the ui, which can come at a later stage.

For me is important that a combination of a wizard with a certain template always creates valid metadata, so metadata validation can be hidden for basic users.

Also fields should take sensible defaults, the wizard should check the shapefile/xsl/pdf and extract usefull metadata like filesize, bounds, format, name. Uploading of a file should be the first step in many wizards.

What do you think?

Regards,
María.

Quick update: What do you think about http://www.xpdl.org/index.html for describing the workflows? Too much? Not enough? Too complex?

···

On Fri, Mar 20, 2015 at 11:53 AM, María Arias de Reyna <delawen@anonymised.com> wrote:

Hi,

Yesterday I was in a group-session about wizards. Draft conclusions here:

https://github.com/geonetwork/core-geonetwork/wiki/201503Bern-Group2—UI

We think wizards have to be simpler than the editor, like windows installers.The main idea is that users that don’t know anything about metadata (not even know metadata exists) can create records on the catalog.

What we discussed yesterday was some kind of user admin interface where you can visually define a workflow of easy steps as a decision tree that will end up on a metadata view of a newly created metadata with the decisions made. So each step is defined as a very basic form (a yes-no decision, a list of checkboxes, a select dropdown,…) and
after that step there is an action transparent to the user (select template, XSLT transformation,…).

So, with this admin wizard UI you can define the steps to create a metada of some specific kind or the steps to fix an editor completeness requirement. The idea is also to be able to combine wizards so you can call a wizard at the end of another wizard, like modules.

We can define a wizard were the user just have to select the type of metadata (, next), add title (, next), add description (, next), add thumbnail (, next) and upload some additional resource (,next) to have a full defined metadata. Or have another wizard where they can define a more complex survey with steps for bounding box, temporal extent, etc… Fields used here can be the same as in the editor, so we can use autocompletion and required attributes

The advanced editor will still be available for advanced users. And advanced users can also create wizards for special usecases too.

This strongly links to the creation of wizards to fix errors on the editor, fix completeness errors, etc… With just a couple of fields you can apply and XSLT transformation that fixes anything.

The wizards, as decision trees, will be able to show different options depending on previous options selected. All this workflow thing can be defined on xml + auxiliar xslt files, so the main difficult thing here may be the ui, which can come at a later stage.

For me is important that a combination of a wizard with a certain template always creates valid metadata, so metadata validation can be hidden for basic users.

Also fields should take sensible defaults, the wizard should check the shapefile/xsl/pdf and extract usefull metadata like filesize, bounds, format, name. Uploading of a file should be the first step in many wizards.

What do you think?

Regards,
María.

On Fri, Mar 20, 2015 at 2:07 PM, María Arias de Reyna <delawen@anonymised.com.>
wrote:

Quick update: What do you think about http://www.xpdl.org/index.html for
describing the workflows? Too much? Not enough? Too complex?

The idea is to have like a subset or an extended subset of it to describe
wizards.

On Fri, Mar 20, 2015 at 11:53 AM, María Arias de Reyna <delawen@anonymised.com1...>
wrote:

Hi,

Yesterday I was in a group-session about wizards. Draft conclusions here:

https://github.com/geonetwork/core-geonetwork/wiki/201503Bern-Group2---UI

We think wizards have to be simpler than the editor, like windows installers.The
main idea is that users that don't know anything about metadata (not
even know metadata exists) can create records on the catalog.

What we discussed yesterday was some kind of user admin interface where
you can visually define a workflow of easy steps as a decision tree that
will end up on a metadata view of a newly created metadata with the
decisions made. So each step is defined as a very basic form (a yes-no
decision, a list of checkboxes, a select dropdown,...) and
after that step there is an action transparent to the user (select template,
XSLT transformation,...).

So, with this admin wizard UI you can define the steps to create a metada
of some specific kind or the steps to fix an editor completeness
requirement. The idea is also to be able to combine wizards so you can
call a wizard at the end of another wizard, like modules.

We can define a wizard were the user just have to select the type of
metadata (, next), add title (, next), add description (, next), add
thumbnail (, next) and upload some additional resource (,next) to have a
full defined metadata. Or have another wizard where they can define a
more complex survey with steps for bounding box, temporal extent, etc...
Fields used here can be the same as in the editor, so we can use
autocompletion and required attributes

The advanced editor will still be available for advanced users. And advanced
users can also create wizards for special usecases too.

This strongly links to the creation of wizards to fix errors on the editor,
fix completeness errors, etc... With just a couple of fields you can
apply and XSLT transformation that fixes anything.

The wizards, as decision trees, will be able to show different options
depending on previous options selected. All this workflow thing can be
defined on xml + auxiliar xslt files, so the main difficult thing here
may be the ui, which can come at a later stage.

For me is important that a combination of a wizard with a certain
template always creates valid metadata, so metadata validation can be
hidden for basic users.

Also fields should take sensible defaults, the wizard should check the
shapefile/xsl/pdf and extract usefull metadata like filesize, bounds,
format, name. Uploading of a file should be the first step in many wizards.

What do you think?

Regards,
María.

Hi,

I continue with my digression about wizards. If someone has any kind of
comment, good or bad, please let me know.

So, my plan is:
* Define a basic language based on XPDL or similar to describe wizards
* Create a basic engine to run this wizards (on a different maven project)
* Document and write some examples
* Test
* Define the admin UI to create wizards. Maybe on iterations, because we
can still create the wizards with xml files
* Iterate improving the admin UI and iterate improving the type of actions
and views the wizards support

I will try to follow the above requirements. If anyone knows some framework
that can be useful here, this is the time and place to say so. I quickly
overviewed some workflows and wizards frameworks and couldn't find one that
fitted with our usecase, so I was thinking on creating a new one ¿based on
angular?.

Regards,
María.

Hola Maria,

···

2015-03-23 9:48 GMT+01:00 María Arias de Reyna <delawen@anonymised.com>:

Just some thoughts, an option would be to extend what is already there.

From the editor configuration :
https://github.com/geonetwork/core-geonetwork/blob/develop/schemas/iso19139/src/main/plugin/iso19139/layout/config-editor.xml#L232

Instead of <tab …
Add the concept of <step …
Which could have

  • a completeness indicator expression
  • a set of fields (existing of custom)

eg.

<view name="myWizard">
<step id="what"
completeIf="//identificationInfo/gmd:title != '' and //identificationInfo/gmd:abstract != ''"
progressIndicator="(count(//identificationInfo/gmd:title != '') + count(//identificationInfo/gmd:abstract != ''")) / 2">
<field xpath="//identificationInfo/gmd:title"/>
<field xpath="//identificationInfo/gmd:abstract"/>
</step>
<step id="when">...
<step id="where">...

completeIf expression could be used to point to a specific step (from the completeness indicator).

Then for sure a set of new directives would be required for customizing fields but that could be built on top of what is there.

BTW, I’ve no idea of what XPDL does … long time ago, we also had a look to XForms
eg. http://demo.orbeon.com/orbeon/fr/orbeon/w9/edit/4a83b4cf2b905fbe105d7e57ddc5597b5e78c0a3

Cheers.

Francois


Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/


GeoNetwork-devel mailing list
GeoNetwork-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geonetwork-devel
GeoNetwork OpenSource is maintained at http://sourceforge.net/projects/geonetwork

Hi,

I continue with my digression about wizards. If someone has any kind of comment, good or bad, please let me know.

So, my plan is:

  • Define a basic language based on XPDL or similar to describe wizards
  • Create a basic engine to run this wizards (on a different maven project)
  • Document and write some examples
  • Test
  • Define the admin UI to create wizards. Maybe on iterations, because we can still create the wizards with xml files
  • Iterate improving the admin UI and iterate improving the type of actions and views the wizards support

I will try to follow the above requirements. If anyone knows some framework that can be useful here, this is the time and place to say so. I quickly overviewed some workflows and wizards frameworks and couldn’t find one that fitted with our usecase, so I was thinking on creating a new one ¿based on angular?.

Regards,
María.

On Mon, Mar 23, 2015 at 10:06 AM, Francois Prunayre <fx.prunayre@anonymised.com>
wrote:

Hola Maria,

2015-03-23 9:48 GMT+01:00 María Arias de Reyna <delawen@anonymised.com>:

Hi,

I continue with my digression about wizards. If someone has any kind of
comment, good or bad, please let me know.

So, my plan is:
* Define a basic language based on XPDL or similar to describe wizards
* Create a basic engine to run this wizards (on a different maven
project)
* Document and write some examples
* Test
* Define the admin UI to create wizards. Maybe on iterations, because we
can still create the wizards with xml files
* Iterate improving the admin UI and iterate improving the type of
actions and views the wizards support

I will try to follow the above requirements. If anyone knows some
framework that can be useful here, this is the time and place to say so. I
quickly overviewed some workflows and wizards frameworks and couldn't find
one that fitted with our usecase, so I was thinking on creating a new one
¿based on angular?.

Just some thoughts, an option would be to extend what is already there.

From the editor configuration :

https://github.com/geonetwork/core-geonetwork/blob/develop/schemas/iso19139/src/main/plugin/iso19139/layout/config-editor.xml#L232

Instead of <tab ...
Add the concept of <step ...
Which could have
* a completeness indicator expression
* a set of fields (existing of custom)

eg.

<view name="myWizard">
  <step id="what"
            completeIf="//identificationInfo/gmd:title != ''
and //identificationInfo/gmd:abstract != ''"
            progressIndicator="(count(//identificationInfo/gmd:title !=
'') + count(//identificationInfo/gmd:abstract != ''")) / 2">
    <field xpath="//identificationInfo/gmd:title"/>
    <field xpath="//identificationInfo/gmd:abstract"/>
  </step>
  <step id="when">...
  <step id="where">...

Like it. Thanks.

Also, we need decision trees to decide to what step you jump (maybe there
is some optional step depending on previous values) and XSLT actions
between steps.

completeIf expression could be used to point to a specific step (from the
completeness indicator).

Then for sure a set of new directives would be required for customizing
fields but that could be built on top of what is there.

BTW, I've no idea of what XPDL does ... long time ago, we also had a look
to XForms
eg.
http://demo.orbeon.com/orbeon/fr/orbeon/w9/edit/4a83b4cf2b905fbe105d7e57ddc5597b5e78c0a3

It is very similar to what you described.

Cheers.

Francois

Regards,
María.

------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website,
sponsored
by Intel and developed in partnership with Slashdot Media, is your hub
for all
things parallel software development, from weekly thought leadership
blogs to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
GeoNetwork-devel mailing list
GeoNetwork-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geonetwork-devel
GeoNetwork OpenSource is maintained at
http://sourceforge.net/projects/geonetwork

Hi,

I am trying to find the config-editor.xsd file but I cannot find it on the repository. Maybe it is hosted somewhere else? Or maybe there is no xsd…

Thanks,
María.

···

On Mon, Mar 23, 2015 at 10:10 AM, María Arias de Reyna <delawen@…31…> wrote:

On Mon, Mar 23, 2015 at 10:06 AM, Francois Prunayre <fx.prunayre@anonymised.com> wrote:

Hola Maria,

Like it. Thanks.

Also, we need decision trees to decide to what step you jump (maybe there is some optional step depending on previous values) and XSLT actions between steps.

It is very similar to what you described.

2015-03-23 9:48 GMT+01:00 María Arias de Reyna <delawen@anonymised.com>:

Just some thoughts, an option would be to extend what is already there.

From the editor configuration :
https://github.com/geonetwork/core-geonetwork/blob/develop/schemas/iso19139/src/main/plugin/iso19139/layout/config-editor.xml#L232

Instead of <tab …
Add the concept of <step …
Which could have

  • a completeness indicator expression
  • a set of fields (existing of custom)

eg.

<view name="myWizard">
<step id="what"
completeIf="//identificationInfo/gmd:title != '' and //identificationInfo/gmd:abstract != ''"
progressIndicator="(count(//identificationInfo/gmd:title != '') + count(//identificationInfo/gmd:abstract != ''")) / 2">
<field xpath="//identificationInfo/gmd:title"/>
<field xpath="//identificationInfo/gmd:abstract"/>
</step>
<step id="when">...
<step id="where">...

Hi,

I continue with my digression about wizards. If someone has any kind of comment, good or bad, please let me know.

So, my plan is:

  • Define a basic language based on XPDL or similar to describe wizards
  • Create a basic engine to run this wizards (on a different maven project)
  • Document and write some examples
  • Test
  • Define the admin UI to create wizards. Maybe on iterations, because we can still create the wizards with xml files
  • Iterate improving the admin UI and iterate improving the type of actions and views the wizards support

I will try to follow the above requirements. If anyone knows some framework that can be useful here, this is the time and place to say so. I quickly overviewed some workflows and wizards frameworks and couldn’t find one that fitted with our usecase, so I was thinking on creating a new one ¿based on angular?.

completeIf expression could be used to point to a specific step (from the completeness indicator).

Then for sure a set of new directives would be required for customizing fields but that could be built on top of what is there.

BTW, I’ve no idea of what XPDL does … long time ago, we also had a look to XForms
eg. http://demo.orbeon.com/orbeon/fr/orbeon/w9/edit/4a83b4cf2b905fbe105d7e57ddc5597b5e78c0a3

Cheers.

Francois


Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/


GeoNetwork-devel mailing list
GeoNetwork-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geonetwork-devel
GeoNetwork OpenSource is maintained at http://sourceforge.net/projects/geonetwork

Regards,
María.

2015-03-23 11:41 GMT+01:00 María Arias de Reyna <delawen@anonymised.com>:

Hi,

I am trying to find the config-editor.xsd file but I cannot find it on the
repository. Maybe it is hosted somewhere else? Or maybe there is no xsd...

Looks to have been dropped at some point between ?
commit 5353d73daa0ff4e25de31bec77353f6ceaff60ce
Author: Jesse Eichar <jesse.eichar@anonymised.com>
...skipping...
commit 679a6a38c80b53915f9bd04ab7125e0e1996087e
Author: François Prunayre <fxprunayre@anonymised.com>

Not sure why ?

We should restore it from
https://github.com/geonetwork/core-geonetwork/blob/2.11.x/web/src/main/webapp/WEB-INF/data/config/schema_plugins/config-editor.xsd

Francois

Thanks,
María.

On Mon, Mar 23, 2015 at 10:10 AM, María Arias de Reyna <delawen@anonymised.com1...>
wrote:

On Mon, Mar 23, 2015 at 10:06 AM, Francois Prunayre <
fx.prunayre@anonymised.com> wrote:

Hola Maria,

2015-03-23 9:48 GMT+01:00 María Arias de Reyna <delawen@anonymised.com>:

Hi,

I continue with my digression about wizards. If someone has any kind of
comment, good or bad, please let me know.

So, my plan is:
* Define a basic language based on XPDL or similar to describe wizards
* Create a basic engine to run this wizards (on a different maven
project)
* Document and write some examples
* Test
* Define the admin UI to create wizards. Maybe on iterations, because
we can still create the wizards with xml files
* Iterate improving the admin UI and iterate improving the type of
actions and views the wizards support

I will try to follow the above requirements. If anyone knows some
framework that can be useful here, this is the time and place to say so. I
quickly overviewed some workflows and wizards frameworks and couldn't find
one that fitted with our usecase, so I was thinking on creating a new one
¿based on angular?.

Just some thoughts, an option would be to extend what is already there.

From the editor configuration :

https://github.com/geonetwork/core-geonetwork/blob/develop/schemas/iso19139/src/main/plugin/iso19139/layout/config-editor.xml#L232

Instead of <tab ...
Add the concept of <step ...
Which could have
* a completeness indicator expression
* a set of fields (existing of custom)

eg.

<view name="myWizard">
  <step id="what"
            completeIf="//identificationInfo/gmd:title != ''
and //identificationInfo/gmd:abstract != ''"
            progressIndicator="(count(//identificationInfo/gmd:title !=
'') + count(//identificationInfo/gmd:abstract != ''")) / 2">
    <field xpath="//identificationInfo/gmd:title"/>
    <field xpath="//identificationInfo/gmd:abstract"/>
  </step>
  <step id="when">...
  <step id="where">...

Like it. Thanks.

Also, we need decision trees to decide to what step you jump (maybe there
is some optional step depending on previous values) and XSLT actions
between steps.

completeIf expression could be used to point to a specific step (from
the completeness indicator).

Then for sure a set of new directives would be required for customizing
fields but that could be built on top of what is there.

BTW, I've no idea of what XPDL does ... long time ago, we also had a
look to XForms
eg.
http://demo.orbeon.com/orbeon/fr/orbeon/w9/edit/4a83b4cf2b905fbe105d7e57ddc5597b5e78c0a3

It is very similar to what you described.

Cheers.

Francois

Regards,
María.

------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website,
sponsored
by Intel and developed in partnership with Slashdot Media, is your hub
for all
things parallel software development, from weekly thought leadership
blogs to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
GeoNetwork-devel mailing list
GeoNetwork-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geonetwork-devel
GeoNetwork OpenSource is maintained at
http://sourceforge.net/projects/geonetwork

On Mon, Mar 23, 2015 at 11:49 AM, Francois Prunayre <fx.prunayre@anonymised.com>
wrote:

2015-03-23 11:41 GMT+01:00 María Arias de Reyna <delawen@anonymised.com>:

Hi,

I am trying to find the config-editor.xsd file but I cannot find it on
the repository. Maybe it is hosted somewhere else? Or maybe there is no
xsd...

Looks to have been dropped at some point between ?
commit 5353d73daa0ff4e25de31bec77353f6ceaff60ce
Author: Jesse Eichar <jesse.eichar@anonymised.com>
...skipping...
commit 679a6a38c80b53915f9bd04ab7125e0e1996087e
Author: François Prunayre <fxprunayre@anonymised.com>

Not sure why ?

We should restore it from
https://github.com/geonetwork/core-geonetwork/blob/2.11.x/web/src/main/webapp/WEB-INF/data/config/schema_plugins/config-editor.xsd

The problem is that that folder does not exist anymore. The equivalent path
would be on the root of the schemas project, location that probably will be
ignored on the build.

Maria, I added the file back
https://github.com/geonetwork/core-geonetwork/commit/9d35b385ed4c556269710a578240764c57ae3223

with the version from 2.11.x.

Francois

···

2015-03-23 11:56 GMT+01:00 María Arias de Reyna <delawen@anonymised.com>:

On Mon, Mar 23, 2015 at 11:49 AM, Francois Prunayre <fx.prunayre@anonymised.com> wrote:

The problem is that that folder does not exist anymore. The equivalent path would be on the root of the schemas project, location that probably will be ignored on the build.

2015-03-23 11:41 GMT+01:00 María Arias de Reyna <delawen@anonymised.com>:

Hi,

I am trying to find the config-editor.xsd file but I cannot find it on the repository. Maybe it is hosted somewhere else? Or maybe there is no xsd…

Looks to have been dropped at some point between ?

commit 5353d73daa0ff4e25de31bec77353f6ceaff60ce
Author: Jesse Eichar <jesse.eichar@anonymised.com189…>
…skipping…
commit 679a6a38c80b53915f9bd04ab7125e0e1996087e
Author: François Prunayre <fxprunayre@anonymised.com>

Not sure why ?

We should restore it from https://github.com/geonetwork/core-geonetwork/blob/2.11.x/web/src/main/webapp/WEB-INF/data/config/schema_plugins/config-editor.xsd