%u ?rel ?wobj1 .
OPTIONAL {
- ?wobj ?wrel1 ?wobj1
+ ?wobj1 ?wrel2 ?wobj2
MINUS { ?wobj1 a bf:Work }
MINUS { ?wobj1 a bf:Instance }
OPTIONAL {
- ?wobj1 ?wrel2 ?wobj2
+ ?wobj2 ?wrel3 ?wobj3
MINUS { ?wobj2 a bf:Work }
MINUS { ?wobj2 a bf:Instance }
- OPTIONAL {
- ?wobj2 ?wrel3 ?wobj3
- MINUS { ?wobj3 a bf:Work }
- MINUS { ?wobj3 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 }
}
}
}
OPTIONAL {
%u bf:instanceOf ?work
+ ?work ?wrel1 ?wobj1
OPTIONAL {
- ?work ?wrel1 ?wobj1
+ ?wobj1 ?wrel2 ?wobj2
MINUS { ?wobj1 a bf:Work }
MINUS { ?wobj1 a bf:Instance }
OPTIONAL {
- ?wobj1 ?wrel2 ?wobj2
+ ?wobj2 ?wrel3 ?wobj3
MINUS { ?wobj2 a bf:Work }
MINUS { ?wobj2 a bf:Instance }
- OPTIONAL {
- ?wobj2 ?wrel3 ?wobj3
- MINUS { ?wobj3 a bf:Work }
- MINUS { ?wobj3 a bf:Instance }
- }
}
}
}