Summary

This block is used to create a new artifact by browsing the relations on an entity until a predicate is valid. This artifact will then be used in following blocks.

Implementation

  • Drag and drop the block from the palette
  • Link the "execute" action from the "executed" topic of the previous block

Example

This block creates an artifact representing the floor which the origin is assigned to. We can have some scenarios where a source is not assigned directly to a Node but to one of its descendants such as an office. The office has a b:isIn relation to a floor and we want to retrieve the floor, not the office. This artifact is used to locate the floor by following relations until the predicate is valid. So it will start by following recursively the relation b:geoSourceOf. When the relation won't exist on a entity, it will try to follow the next declared relation (b:isIn) recursively until it matches the predicate which is "the entity should be a floor".

 

 

 Properties

  • Artifacts: Artifacts created by this block
    • Artifact: artifact created by this block. Use it as an array in the following blocks. Ex: the floor the source is assigned to
  • Target: SFormat to define the component. Its relations will be browsed to find another component.
  • RelationId: Ids of relations to follow. Relations will be recursively followed until the predicate matches a component or until there is no more relations to follow
  • Direction { In, Out, Both }: Relations can be followed according to one direction only
    • In: Only inbound relations on each component will be read
    • Out: Only outbound relations will be read
    • Both: All relations are read
  • Predicate: To test each component found by following relations. The artifact will be the first component to match the predicate


Behavior: DO & UNDO

An artifact will be created.