Issue 3909: Issue with inverse properties (daf_ftf) Source: ALSTOM ESCA (Mr. Arnold deVos, adv@langdale.com.au) Nature: Uncategorized Issue Severity: Summary: Issue: in the past we have seen a question about how to find all the properties of a given class. That operation requires a special schema property to be defined which is the inverse of the rdfs:domain property. In other words, to do this operation in a standard way we need to extend the RDF schema. This problem is likely to arise again where ever we have a property with no inverse defined. For example, finding all the properties that refer to a given class requires an inverse to rdfs:domain. Navigating the CIM is fine because we have defined inverses for all properties, but it seems unreasonable to expect this of every schema that might be used with the DAF. Proposed Solution: The DAF interface should support inverse navigation for any resource-valued property. Informally, it should be possible make queries of the form: "What resources have a property P with value V?" The value V is restricted to be a resource. One solution is to add new query methods to the ResourceQueryService interface. However, that represents a considerable expansion of the IDL. The proposed solution has much less impact and is more general. A boolean member called "inverse" should be added to the Association structure, thus: struct Association { PropertyID property; ClassID type; boolean inverse; }; Wheninverse is false, the association is interpreted as per the current specification. When inverse is true the the association is interpreted as if the inverse of the given property were supplied. In either case the type member retricts the resources resulting from the query to the given class. More formal wording for the specification is required, of course. Regards, Arnold Resolution: Revised Text: The following changes are recommended, as per [1]: · A boolean member called "inverse" should be added to the Association structure. (Section 5.). The inverse member affects the interpretation of the Association as follows: · If false, the Association yields the values of the given property of the parent, where those values belong to the given class. · If true, the association yields resources for which the value of the given property is the parent and which belong to the given class. Page numbers affected: 25, 28. Actions taken: September 26, 2000: received issue May 24, 2001: closed issue Discussion: Some implementers asked how to find all the properties of a given class. Although this is a fundamental operation, it requires a special schema property to be defined which is the inverse of the rdfs:domain property. In other words, to do this operation in a standard way we need to extend the RDF schema. Issue No. 3909. 2.4.1 Discussion It is often necessary to query all resources for which a given property has a given value. Finding all Property's with a given domain Class is a special case of this query. Such a query can only be made if the schema defines an inverse of the given property. This is an unreasonable restriction in the API since there is no requirement that RDF schema should define inverses of all properties. Therefore the interface should support inverse navigation for any resource-valued property. It should be possible make queries of the form: "Which resources have a property P with value V?" where value V is a resource. One solution would be the addition of new query methods to the ResourceQueryService interface. However, that represents a considerable expansion of the IDL. The proposed solution has much less impact and is more general. End of Annotations:===== From: "Arnold deVos" To: , Subject: Issue with inverse properties Date: Tue, 26 Sep 2000 08:49:24 +1100 MIME-Version: 1.0 X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4133.2400 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0040_01C02796.ABE5B6B0" X-UIDL: dIPe94aX!!6c'!!p~;e9 Hi all, here is a DAF issue: Issue: in the past we have seen a question about how to find all the properties of a given class. That operation requires a special schema property to be defined which is the inverse of the rdfs:domain property. In other words, to do this operation in a standard way we need to extend the RDF schema. This problem is likely to arise again where ever we have a property with no inverse defined. For example, finding all the properties that refer to a given class requires an inverse to rdfs:domain. Navigating the CIM is fine because we have defined inverses for all properties, but it seems unreasonable to expect this of every schema that might be used with the DAF. Proposed Solution: The DAF interface should support inverse navigation for any resource-valued property. Informally, it should be possible make queries of the form: "What resources have a property P with value V?" The value V is restricted to be a resource. One solution is to add new query methods to the ResourceQueryService interface. However, that represents a considerable expansion of the IDL. The proposed solution has much less impact and is more general. A boolean member called "inverse" should be added to the Association structure, thus: struct Association { PropertyID property; ClassID type; boolean inverse; }; Wheninverse is false, the association is interpreted as per the current specification. When inverse is true the the association is interpreted as if the inverse of the given property were supplied. In either case the type member retricts the resources resulting from the query to the given class. More formal wording for the specification is required, of course. Regards, Arnold