-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Pitch
Create a drag & drop form builder application that combines HTML form input fields, and generates an RDF form definition of the created form. This RDF form definition should be stored in a preferred Solid location.
See: #19 for the use-cases that a related to this challenge.
The basic idea is to start with a Google Forms like interface but for the generation of RDF data. This application is one application that can be used in an enviroment in which:
- Form builder applications can generate a RDF Form definition
- Form render applications that can render an RDF form for end users (e.g. as HTML or as a text menu)
- Form viewer applications that can view the generated RDF in a human friendly way (e.g. a Form builder can create a Doodle form, a Form render can make the HTML version to input the data, a Form viewer application can render a nice read-only view)
Use case
An end-user wants to create Web Form that can be used to generate RDF data for a book review. She knows a little bit about RDF namespaces and fields and wants to drag & drop the fields:
Titlea text field which binds todc:titleAuthora text field which binds todc:authorRatinga dropbox field for which she doesn't find a binding but choosesex:ratingas temporary solution. The drop down should contains these options:- "★ - I don't like it" binding to
ex:NotLikeIt - "★★ - It was ok" binding to
ex:ItWasOk - "★★★ - I liked it" binding to
ex:LikedIt - "★★★★ - I really liked it" binding to
ex:ReallyLikedIt
- "★ - I don't like it" binding to
Reviewa textarea which binds todc:description
The enduser can store the RDF form description in a Solid pod location of choice. At a later time she decides she wants to add an extra choice option and adds:
- "★★★★★ - It was amazing" binding to
ex:Amazing
The enduser can use an Form renderer application to view and fill-out the generated RDF Form (not part of this challenge, see: #65).
Desired solution
- A user is presented with a drag&drop menu to build up a basic form (basic = without nesting)
- A selection of the following fields is available
- Checkbox field : a checkbox on the form
- Text field : a text input field in the form
- Textarea field : a textarea field in the form
- Date field : a date picker in the form
- Choice field : a field with a selection of one or more items - Each field provides a way to provide:
- A field title
- A field type (eg. something that maps to checkbox, text, area, date, choice,...)
- A field default value
- A binding (e.g.http://xmlns.com/foaf/0.1/name)
- Indication if the field is required or not (e.g. this can be implemented as a yes/no button in the app)
- Indication if the field can be used repeated or not (idem)
- (internally) the order of the field in the list - The app makes an abstraction of the data model above and provides a way to serialize this model using (to be checked which one or maybe combination is feasible):
- The generated RDF is stored in a Solid location
- The generated RDF can be edited (fields be added, deleted)
Acceptance criteria
- The Form builder app can be used to drag&drop the fields to the
book reviewexample that will be given below - The Form builder app will serialize an RDF form that is at least compatible with
rdf-form - The Form builder app can store the generated RDF form into a Solid pod
- The Form builder app can read an existing
book reviewRDF form definition and add/delete fields
Pointers
See: https://docs.google.com/document/d/11uj4kjh96gBXQgU3b3asRZZiHjQC2HXL0Xy-I_gtB6k/edit# for overview of existing implementations that tried this