[ https://issues.apache.org/jira/browse/RYA-294?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16114839#comment-16114839 ]
Jesse Hatfield commented on RYA-294: ------------------------------------ Alternatively, we could use FixedStatementPattern to enumerate predicate/restriction pairs rather than nested unions. Something like: {noformat} Join(FSP, Join(StatementPattern(?subject, ?property, ?object), StatementPattern(?object, rdf:type ?restriction))) {noformat} where FSP provides bindings for {{?property}} and {{?restriction}}: {noformat} FixedStatementPattern(?restriction, owl:onProperty, ?property): (:r1, onProperty, :p1) (:r2, onProperty, :p2) ... (:rN, onProperty, :pN) {noformat} In this case, the number of nodes in the query tree is bounded; additional restrictions implying the same type are represented as statements in the FixedStatementPattern. One top-level Union is still needed to include the original statement pattern. > Implement owl:someValuesFrom inference > -------------------------------------- > > Key: RYA-294 > URL: https://issues.apache.org/jira/browse/RYA-294 > Project: Rya > Issue Type: Sub-task > Components: sail > Reporter: Jesse Hatfield > > An *{{owl:someValuesFrom}}* restriction defines the set of resources which, > for a given predicate and other type, have at least one value of that other > type for that predicate. > If the ontology states that {{:Chair}} is the set of resources who are > {{:headOf}} at least one resource which must itself be a {{:Department}}, > then: > {{?x rdf:type :Chair}} > should be expanded to: > {noformat} > { ?x :headOf ?dept . > ?dept rdf:type :Department } > UNION > {?x rdf:type :Chair } > {noformat} -- This message was sent by Atlassian JIRA (v6.4.14#64029)