[edit]
Banach Smoosher Operator
[edit]
Operation
This operator is composed of two parts:
- the load-time graph rewiring adapts the graph according to the operations described in the diagram on the right. The goal of this stage is to make sure that every identifier is at-most one owl:sameAs away from its equivalent class centroid, thus reducing the number of queries that need to be performed at query-time.
- the query-time query rewriting uses the equivalent information to transform a query into multiple queries (the above step guarantees that at maximum two queries are needed per equivalent URI).
For more information, read the comments in the source code.
NOTE: only the load-time rewiring part is currently implemented.
[edit]
Implementation Strategy
The distiller operation is implemented as a hybrid operator: graph rewiring is performed at load time as to make sure that all nodes are at most one equivalence predicate away from the centroid of their equivalence class and then query rewriting is performed at query time to merge the results from the equivalences.
[edit]
Examples
[edit]
Entity Equivalence
Given the input graph
:PabloPicasso :painted :Guernica . :PicassoPablo :painted :Dora . :PabloPicasso owl:sameAs :PicassoPablo .
asking the query
:PabloPicasso :painted ?x
would results in the graph
:PabloPicasso :painted :Guernica . :PabloPicasso :painted :Dora .
[edit]
Predicate Equivalence
:Guernica dc:creator :PabloPicasso . :Dora vra:creator :PabloPicasso . dc:creator owl:equivalentProperty vra:creator .
asking the query
?x dc:creator :PabloPicasso
would return the graph
:Guernica dc:creator :PabloPicasso . :Dora dc:creator :PabloPicasso .


