%u ?rel ?wobj1 .
OPTIONAL {
- ?wobj ?wrel1 ?wobj1
- MINUS { ?wobj1 a bf:Work }
- MINUS { ?wobj1 a bf:Instance }
+ ?wobj1 ?wrel2 ?wobj2
+ MINUS { ?wobj1 a bf:Work }
+ MINUS { ?wobj1 a bf:Instance }
OPTIONAL {
- ?wobj1 ?wrel2 ?wobj2
- MINUS { ?wobj2 a bf:Work }
- MINUS { ?wobj2 a bf:Instance }
- OPTIONAL {
- ?wobj2 ?wrel3 ?wobj3
- MINUS { ?wobj3 a bf:Work }
- MINUS { ?wobj3 a bf:Instance }
- }
+ ?wobj2 ?wrel3 ?wobj3
+ MINUS { ?wobj2 a bf:Work }
+ MINUS { ?wobj2 a bf:Instance }
}
}
<!-- Link to the instance(s) -->
OPTIONAL {
- ?inst bf:instanceOf %u
- OPTIONAL { <!-- and expand the instance -->
- ?inst ?irel1 ?iobj1
+ ?inst bf:instanceOf %u .
+ ?inst ?irel1 ?iobj1
+ OPTIONAL {
+ ?iobj1 ?irel2 ?iobj2
+ MINUS { ?iobj1 a bf:Work }
+ MINUS { ?iobj1 a bf:Instance }
OPTIONAL {
- ?iobj1 ?irel2 ?iobj2
- OPTIONAL {
- ?iobj2 ?irel3 ?iobj3
- }
+ ?iobj2 ?irel3 ?iobj3
+ MINUS { ?iobj2 a bf:Work }
+ MINUS { ?iobj2 a bf:Instance }
}
}
}
%u ?irel1 ?iobj1
OPTIONAL {
?iobj1 ?irel2 ?iobj2
- MINUS { ?iobj2 a bf:Work }
- MINUS { ?iobj2 a bf:Instance }
+ MINUS { ?iobj2 a bf:Work }
+ MINUS { ?iobj2 a bf:Instance }
OPTIONAL {
?iobj2 ?irel3 ?iobj3
- MINUS { ?iobj3 a bf:Work }
- MINUS { ?iobj3 a bf:Instance }
+ MINUS { ?iobj3 a bf:Work }
+ MINUS { ?iobj3 a bf:Instance }
}
}
-
- OPTIONAL {
+ OPTIONAL { <!-- Work -->
%u bf:instanceOf ?work
+ ?work ?wrel1 ?wobj1
OPTIONAL {
- ?work ?wrel1 ?wobj1
- MINUS { ?wobj1 a bf:Work }
- MINUS { ?wobj1 a bf:Instance }
+ ?wobj1 ?wrel2 ?wobj2
+ MINUS { ?wobj1 a bf:Work }
+ MINUS { ?wobj1 a bf:Instance }
OPTIONAL {
- ?wobj1 ?wrel2 ?wobj2
- MINUS { ?wobj2 a bf:Work }
- MINUS { ?wobj2 a bf:Instance }
- OPTIONAL {
- ?wobj2 ?wrel3 ?wobj3
- MINUS { ?wobj3 a bf:Work }
- MINUS { ?wobj3 a bf:Instance }
- }
+ ?wobj2 ?wrel3 ?wobj3
+ MINUS { ?wobj2 a bf:Work }
+ MINUS { ?wobj2 a bf:Instance }
}
}
}