Ticket #840 (new enhancement)

Opened 8 months ago

Last modified 2 months ago

Mapper selection needs to be revisited

Reported by: pradeep Assigned to:
Priority: unassigned Milestone:
Component: topaz Version: 0.8.2.1
Keywords: Cc:
Blocking: Blocked By:

Description

Currently multiple mappers can exist with the same predicate URI for the same class differing only by the rdfs:range value.

ie. mapper --> rdf:Property with a subset of rdfs:range.

eg.

Article {
  @Predicate(uri="a:annotatedBy")
  Set<Comment> comments;
  @Predicate(uri="a:annotatedBy")
  Set<Correction> corrections;
}

So the mapper selection is based on the predicate-uri and the rdf:type of its range.

However, this is a bit half done currently in the sense, only object-property types are considered differently. ie. different mappers with same predicate uri cannot be created based solely on the sub-class of rdfs:Literal as its rdfs:range. Not sure what the use case for such a situation is. Nevertheless it is a corner case that we don't handle now.

There are also other differentiators that we haven't considered in the predicate-uri to mapper selection. eg. we could have mappers with the same predicate-uri but for statements that appear in a different graph. Or we could have a differentiation based on the collection type. (A bit far fetched, but still a possibility).

Dependency Graph

Change History

03/11/08 15:05:45 changed by pradeep

  • owner deleted.

03/12/08 10:13:55 changed by pradeep

(In [4960]) Added enforcement of current restrictions on Mappers with same predicate-uri. Please see #840.

03/25/08 11:51:03 changed by pradeep

(In [5148]) Remove the rdf:type of the association from the RdfMapper?. It is more accurate to look this up based on the associated entity. Also the RdfMapper? look-up by URI is accurate only if the complete rdf:type look-ahead values are available. So removed the version that looked up mappers by partial rdf:type look-ahead info. Therefore made the Criterion persistence pre-insert/post-load store/retrieve the complete rdf:type information of the associated entity.

@Predicate should also be providing an explicit associated entity configuration option for referring to entities loaded via other mechanisms (eg. from an OWL content model definition). This requires the de-coupling of binding and meta-definition as required by (see #820).

See #840 also.

08/18/08 08:33:27 changed by amit

  • blocking changed.
  • blockedby changed.
  • milestone set to 0.9.1.

09/08/08 15:31:29 changed by amit

  • milestone deleted.

09/12/08 20:26:50 changed by pradeep

(In [6408]) Change the Reference concept to accomodate overrides. Currently only the RdfDefinition? handles overrides.

Also added methods to test for equivalance between two RdfDefinitions? as a replacement for the implied equivalance of the older Reference interface. This also addresses #840 in the sense we are closer to partitioning mappings by rdfs:range.