You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The form to use for the new object is then specified by ui:part
It appears there is currently no way to specify default properties for the new object, e.g. its rdf:type.
For rdf:type in particular, this means that forms for the new object will not be rendered by solid-panes, which discovers the relevant form based on its class.
Possible solutions
I don't whether there is a need for a more general templating mechanism, but at least for rdf:type, a solution could be to allow ui:Multiple to also use ui:category (as for ui:Classifier) or ui:targetClass (as for ui:Autocomplete)
Another option would be to specify ui:from (as for ui:Choice) instead of ui:part, and choose the ui:creationForm based on the specified rdfs:Class.
Example use case
Generating a new observation
sosa:Observation ui:annotationForm :ObsForm.
:ObservationList ui:annotationForm :ObsListForm.
:ObsListForm
a ui:Multiple;
ui:part :ObsForm;
ui:property rdfs:member;
ui:category sosa:Observation.
:ThisObsList a :ObservationList.
Creating a new object in :ThisObsList would generate:
:ThisObsList rdfs:member :id1639432788935.
:id1639432788935 a sosa:Observation.
When using
ui:Multiple
, currently a new object is created and linked to the subject with the specifiedui:property
.https://github.com/solid/solid-ui/blob/c4ad302f361cc4a1de24941a475cb66333c43805/src/widgets/forms.js#L273
The form to use for the new object is then specified by
ui:part
It appears there is currently no way to specify default properties for the new object, e.g. its rdf:type.
For rdf:type in particular, this means that forms for the new object will not be rendered by solid-panes, which discovers the relevant form based on its class.
Possible solutions
I don't whether there is a need for a more general templating mechanism, but at least for rdf:type, a solution could be to allow
ui:Multiple
to also useui:category
(as forui:Classifier
) orui:targetClass
(as forui:Autocomplete
)Another option would be to specify
ui:from
(as forui:Choice
) instead ofui:part
, and choose theui:creationForm
based on the specified rdfs:Class.Example use case
Generating a new observation
Creating a new object in :ThisObsList would generate:
Edit: I've got an patch using ui:category here: https://github.com/josephguillaume/my-solidos-patches/blob/2860861f3ce4ddde9a8b0831ca520e4492878991/solid-ui.diff#L32
Edit: incidentally it's possible to get the desired behaviour by using ui:reverse with rdf:type as the ui:property
Visiting sosa:Observation builds a form for :dummyClass which generates triples:
:newsubject a sosa:Observation
This might be more of a curiosity than a real solution.
The text was updated successfully, but these errors were encountered: