Feature #18
Support for Voidable Properties Definitions
| Status: | Closed | Start date: | 09/15/2009 | |
|---|---|---|---|---|
| Priority: | Normal | Due date: | ||
| Assignee: | Thorsten Reitz | % Done: | 100% |
|
| Category: | - | |||
| Target version: | Milestone 5 (RC1) | Estimated time: | 5.00 hours |
Description
This was suggested by Dominique Laurent, IGN:
Most of the attributes in the INSPIRE specifications are voidable, i.e. the attribute is required in the data model but the value of the attribute may stay empty. In this case, it is recommended to give a reason for nil value, either "unpopulated" if it is the case for all instances within a feature type or "unknown" if it is the case only for few instances.
This may lead to develop 2 functions:
function "unpopulated":
- The user select an attribute of a feature type in the target schema.
- The user select the function "unpopulated" as an augmentation transformation.
- The result of this function is that all instances of the select feature type (in target schema) will keep an empty value for the selected attribute but will receive "unpopulated" as reasonForNilValue.
function "unknown"
- The user selects an attribute in a feature type in the source schema.
- The user selects the instances for which the value of this given attribute is not provided, using a query/filter.
- The user select the corresponding attribute of the corresponding feature type in the target schema.
- The user select the function "unknown".
- The result of this function is that, when running the schema translation, all the selected instances will get in the target schema an empty value for the given attribute but will receive "unknown" as reasonForNilValue.
History
Updated by Thorsten Reitz over 2 years ago
- Target version set to Milestone 5 (RC1)
Updated by Thorsten Reitz over 2 years ago
- Estimated time changed from 2.50 to 5.00
function "unpopulated" will be implemented as suggested, but can also be used on FeatureType level. In this case, the "unpopulated" value will be used for the nilReason of all attributes of the Feature, if no other value is given.
function "unknown" will be implemented based on the target schema type as well, and will follow a behavious similar to the one for "unpopulated", but frist checking whether a value has been set before and giving "unknown" as the nilReason.
To summarize, both functions are implemented as one function that accepts a single parameter: "unknown" or "unpopulated". The remainder is decided at transformation time.
For the OML declaration, we have come up with this approach:
<align:map>
<align:Cell rdf:about="">
<label>Simple Example</label>
<entity1>
<Class rdf:about="null"></Class>
</entity1>
<entity2>
<Class rdf:about="urn:x-inspire:specification:gmlas-v31:Hydrography:2.0/Watercourse">
<omwg:transf rdf:resource="java:eu.esdihumboldt.cst.transformer.impl.NilReasonFunction">
<omwg:param>
<omwg:name>NilReasonType</omwg:name>
<omwg:value>unpopulated</omwg:value>
</omwg:param>
</omwg:transf>
</Class>
</entity2>
</align:map>
Updated by Thorsten Reitz over 2 years ago
- Status changed from New to Closed
- % Done changed from 0 to 100