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
{{ message }}
This repository has been archived by the owner on Jan 30, 2024. It is now read-only.
When generating the form of "something", it could be useful to define where to start and where to stop when pulling data to be edited, considering that we are not limiting things to one given node or embedded forms. So the idea would be to define the boundaries of a data graph being loaded, ideally independent of the use of named graphs. For a more concrete example, I'll take the example of a form generated to be able to edit a skos:ConceptScheme and all the skos:Concept within.
Defining starting point(s) / root(s)
In the context of this application, skos:ConceptScheme are defined as "roots", and so whenever a user would land on the form of a skos:Concept, it would always be in the context of its skos:ConceptScheme, as reflected in the tree view on the left.
For now in this app, the solution we use is something that looks like this
When going deeper, the tree can expand through any property, like skos:narrower and the likes
This makes sense as narrowers are conceptually part of the same skos:ConceptScheme, and so editing them in the same context/data graph feels logical. But let's imagine a sh:PropertyShape for skos:exactMatch. It could look like this
Normally, skos:exactMatch should point to a skos:Concept that belongs to an other skos:ConceptScheme. So if we had something like ex:Belgium skos:exactMatch otherDomain:be, that otherDomain:be node should not be pulled as part of the skos:ConceptScheme form where ex:Belgium belongs to.
For now in our app we made use of something that looks a bit like this
hanami:linkingStrategy being [0..n] and only used in shapes with sh:nodeKind being sh:IRI or sh:BlankNode. Here is a revised version of what we use, as some of them are more specific than this use-case:
hanami:ExternalReferenceLinkingStrategy: defined as an external node, so its metadata will not be editable within the context of the form generated trough this shapes graph. It's only possible to add/remove references trough such property.
hanami:CreateLinkingStartegy: default value if none is given. If some "add" button is clicked linked to this property, a new node would be created with its dedicated form
hanami:InternalReferenceLinkingStartegy: the user is prompted to select another node within the same data graph instead of creating a new one.
The 2 last options are sometimes used together, as one of our client needed to cleanup their concept hierarchy, and so hanami:CreateLinkingStartegy and hanami:InternalReferenceLinkingStartegy were both set on most hierarchical properties (skos:hasTopConcept, skos:narrower, etc.)
The text was updated successfully, but these errors were encountered:
Linked to #29 I believe, even though scopes are not entirely the same, as here the tree view would be limited to the defined boundaries, but nothing tells it if some property should or should not be used in the tree (for example in the 2nd screenshot above, it could make sense to hide skos:inScheme in the tree)
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
When generating the form of "something", it could be useful to define where to start and where to stop when pulling data to be edited, considering that we are not limiting things to one given node or embedded forms. So the idea would be to define the boundaries of a data graph being loaded, ideally independent of the use of named graphs. For a more concrete example, I'll take the example of a form generated to be able to edit a
skos:ConceptScheme
and all theskos:Concept
within.Defining starting point(s) / root(s)
In the context of this application,
skos:ConceptScheme
are defined as "roots", and so whenever a user would land on the form of askos:Concept
, it would always be in the context of itsskos:ConceptScheme
, as reflected in the tree view on the left.For now in this app, the solution we use is something that looks like this
Defining external boundaries
When going deeper, the tree can expand through any property, like
skos:narrower
and the likesThis makes sense as narrowers are conceptually part of the same
skos:ConceptScheme
, and so editing them in the same context/data graph feels logical. But let's imagine ash:PropertyShape
forskos:exactMatch
. It could look like thisNormally,
skos:exactMatch
should point to askos:Concept
that belongs to an otherskos:ConceptScheme
. So if we had something likeex:Belgium skos:exactMatch otherDomain:be
, thatotherDomain:be
node should not be pulled as part of theskos:ConceptScheme
form whereex:Belgium
belongs to.For now in our app we made use of something that looks a bit like this
hanami:linkingStrategy
being[0..n]
and only used in shapes withsh:nodeKind
beingsh:IRI
orsh:BlankNode
. Here is a revised version of what we use, as some of them are more specific than this use-case:hanami:ExternalReferenceLinkingStrategy
: defined as an external node, so its metadata will not be editable within the context of the form generated trough this shapes graph. It's only possible to add/remove references trough such property.hanami:CreateLinkingStartegy
: default value if none is given. If some "add" button is clicked linked to this property, a new node would be created with its dedicated formhanami:InternalReferenceLinkingStartegy
: the user is prompted to select another node within the same data graph instead of creating a new one.The 2 last options are sometimes used together, as one of our client needed to cleanup their concept hierarchy, and so
hanami:CreateLinkingStartegy
andhanami:InternalReferenceLinkingStartegy
were both set on most hierarchical properties (skos:hasTopConcept
,skos:narrower
, etc.)The text was updated successfully, but these errors were encountered: