X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=bibframe%2Ftriplestore.xml;h=7fd29fd699396563c10f95f37477e315b6db7f1d;hb=c2f66096841eb02cf1d68e79660ca57e6a9b4b65;hp=95e5735e7d93a00f73b30a5a418b386f063e5b0b;hpb=07416e8b5374c2af0157d24eb8d49ea508e68200;p=mp-sparql-moved-to-github.git diff --git a/bibframe/triplestore.xml b/bibframe/triplestore.xml index 95e5735..7fd29fd 100644 --- a/bibframe/triplestore.xml +++ b/bibframe/triplestore.xml @@ -17,18 +17,23 @@ - ?thing rdf:type ?any FILTER( ?thing = %u ) + ?thing rdf:type ?any FILTER( ?thing = %u ) + + + + + ?thing a %t + - + CONSTRUCT { - ?thing ?rel ?subj + %u ?rel ?subj } WHERE { - ?thing ?rel ?subj . - ?thing ?rel ?subj FILTER( str(?thing) = %s ) + %u ?rel ?subj . } @@ -158,48 +163,50 @@ ?subject bf:label %v FILTER(contains(%v, %s)) + + + + ?thing bf:contentCategory %u + - - + + CONSTRUCT { - %u ?rel ?wobj1 . - ?wobj1 ?wrel1 ?wobj2 . - ?wobj2 ?wrel2 ?wobj3 . + %u ?wrel1 ?wobj1 . + ?wobj1 ?wrel2 ?wobj2 . + ?wobj2 ?wrel3 ?wobj3 . ?inst ?irel1 ?iobj1 . ?iobj1 ?irel2 ?iobj2 . ?iobj2 ?irel3 ?iobj3 } WHERE { %u a bf:Work . - %u ?rel ?wobj1 . + %u ?wrel1 ?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 } } } OPTIONAL { - ?inst bf:instanceOf %u - OPTIONAL { - ?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 } } } } @@ -314,9 +321,34 @@ } + + + + + + + + { + ?thing bf:isbn10 %v + FILTER(contains(str(%v), %s)) + } UNION { + ?thing bf:isbn13 %v + FILTER(contains(str(%v), %s)) + } UNION { + { + ?thing bf:isbn10 ?isbn + } UNION { + ?thing bf:isbn13 ?isbn + } + ?isbn a bf:Identifier . + ?isbn bf:identifierValue %v FILTER( %v = %s ) + } + + + - + CONSTRUCT { %u ?irel1 ?iobj1 . ?iobj1 ?irel2 ?iobj2 . @@ -327,33 +359,28 @@ } WHERE { %u a bf:Instance . - %u ?irel1 ?iobj1 + %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 { - %u bf:instanceOf ?work + OPTIONAL { + %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 } } } } @@ -372,7 +399,7 @@ - + CONSTRUCT {