-
Notifications
You must be signed in to change notification settings - Fork 62
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Identify both sequential and hierarchical relationships between road events and other entities #118
Conversation
FYI this is called the "relation" object in JSCalendar, not "relationship". Not sure we need to follow that but wanted to make sure it was clear. |
@DeraldDudley I read through the JSCalendar Relation section 1.4.10 several times and it's still not completely clear to me, however I don't believe how this implementation proposes its usage matches up with the definition in JSCalendar. Specifically, since we don't care about types in WZDx, the only property on the relation object is
I was wondering what the "String[Boolean]" part meant, and earlier up in the document it describes how types are defined:
That means an example of the relation object is
and as a set (I'm assuming that means array, but it's not as clear as I'd like):
Seems slightly useless in this context, but maybe I'm missing something. Either way I don't think using the relation object like JSCalendar proposes it will be relevant to WZDx. Regardless, I'm largely ok with the proposal in this PR but think there is a need to clarify/restrict the Rather than an array for the property itself, though, another option would be to allow arrays for the values of each of the keys ( With the
An an example of multiple ways to split relations if
Let me know if you have any additional thoughts or a better understanding of the JSCalendar "Relation". I think the idea behind this PR is great and it adds a lot of functionality, but the implementation (files changed) proposed here is not quite clear enough. |
@j-d-b Thanks for making this better. My intent is to partially adopt the JS Calendar "relation" object. The concept of keys describing relationships and values identifying the related objects works for the WZD; It has the added benefit of being more precise than the original "subidentifier" property which only indicated "parental" relationships. Maybe a better title for the PR would be "Identify relationships between road event features by using an object similar to the "Relation" object from JSCalendar."
My intent is to enable an optional collection of key/value pairs which identify and describe relationships among features. I like the method you suggest of allowing arrays for the values of each of the keys.
|
Finished the changes here and updated the first comment with semantic headers + to reflect the new changes. |
… moving to object model soon
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great!
Reference Issue #108
In WZDx v2.0 the specification currently uses the road_events
subidentifier
field as to relate road events to another entity, such as a project or district. However, the field does not explicitly describe how linked features are related. Replacingsubidentifier
with a relationship object, inspired by the "relation" object used in JSCalendar, will enable identifying both sequential and hierarchical relationships between road events and other entities. For example, a relationship can be used to link multiple road events to a common "parent", such as a project or phase, or identify a sequence of road events.1. Add relationships data table
Identify both sequential and hierarchical relationships between road events and other entities. For example, a relationship can be used to link multiple road events to a common "parent", such as a project or phase, or identify a sequence of road events.
Relationships show up on the feed as as a
relationship
property on the road_events feature properties. A road event can have one relationship object, but multiple relationships, as the value for each relationship field (e.g.parents
) is an array.relationships
optional
Identify both sequential and hierarchical relationships between road events and other entities. For example, a relationship can be used to link multiple road events to a common "parent", such as a project or phase, or identify a sequence of road events.
Relationships show up on the feed as as a
relationship
property on the road_events feature properties.Table Structure
first
andnext
types define sequential relationshipsparents
andchildren
types define hierarchical relationshipsChanges to the feed structure
The
subidentifier
field is removed and a newrelationship
field is added to the road event feature "properties".Examples
Hierarchical Example
Sequential Example