X-Git-Url: http://lists.indexdata.dk/cgi-bin?a=blobdiff_plain;f=bibframe%2Ftriplestore.xml;h=40912c520004521512d5b9c101a892bd21e858e1;hb=381b86856fcdf134a0459bba5d40ab0a7f478bbb;hp=5904c595aeed4bff93634aa1489aacec0b5ae635;hpb=f3b97dd7bbcd61130b4a89dfa50d105a1160e344;p=mp-sparql-moved-to-github.git diff --git a/bibframe/triplestore.xml b/bibframe/triplestore.xml index 5904c59..40912c5 100644 --- a/bibframe/triplestore.xml +++ b/bibframe/triplestore.xml @@ -3,7 +3,7 @@ - + - - + + - + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns bf: http://bibframe.org/vocab/ -
SELECT DISTINCT ?work -
+ +
SELECT DISTINCT ?work
?work a bf:Work - - ?work bf:workTitle ?wt . - ?wt bf:titleValue %v FILTER(contains(%v, %s)) - ?work bf:creator ?c . - ?c bf:label %v FILTER(contains(%v, %s)) - ?work bf:subject ?subject . + + + ?work a bf:Work FILTER( ?work = %u ) + + + + + + + ?work bf:title %v FILTER(contains(%v, %s)) + + + + + ?work bf:workTitle ?wt . + ?wt bf:titleValue %v FILTER(contains(%v, %s)) + + + + + { + ?work bf:workTitle ?wt . + ?wt bf:titleValue %v FILTER(contains(%v, %s)) + } UNION { + ?work bf:title %v FILTER(contains(%v, %s)) + } + + + + + ?work bf:workTitle ?wt . + ?wt bf:subtitle %v FILTER(contains(%v, %s)) + + + + ?work bf:workTitle ?wt . + ?wt bf:partTitle %v FILTER(contains(%v, %s)) + + + + + ?work bf:titleVariation ?tv . + ?tv bf:titleValue %v FILTER(contains(%v, %s)) + + + + + ?inst bf:instanceOf ?work . + ?inst bf:instanceTitle ?it . + ?it bf:titleValue %v FILTER(contains(%v, %s)) + + + + + { ?work bf:workTitle ?wt . + { ?wt bf:titleValue %v FILTER(contains(%v, %s)) } UNION + { ?wt bf:subtitle %v FILTER(contains(%v, %s)) } UNION + { ?wt bf:partTitle %v FILTER(contains(%v, %s)) } + } UNION { + ?work bf:titleVariation ?tv . + ?tv bf:titleValue %v FILTER(contains(%v, %s)) + } UNION { + ?inst bf:instanceOf ?work . + ?inst bf:instanceTitle ?it . + ?it bf:titleValue %v FILTER(contains(%v, %s)) + } UNION { + ?work bf:title %v FILTER(contains(%v, %s)) + } + + + + + ?work bf:creator ?c . + ?c bf:label %v FILTER(contains(%v, %s)) + + + + ?work bf:contributor ?c . + ?c bf:label %v FILTER(contains(%v, %s)) + + + + { + ?work bf:creator ?c . + ?c bf:label %v FILTER(contains(%v, %s)) + } UNION { + ?work bf:contributor ?c . + ?c bf:label %v FILTER(contains(%v, %s)) + } + + + + + ?work bf:subject ?subject . ?subject bf:label %v FILTER(contains(%v, %s)) + + + + + ?work ?rel ?person . + ?person a bf:Person . + ?person bf:label %v FILTER(contains(%v, %s)) + + + + + CONSTRUCT { ?work ?rel ?subj } WHERE { ?work a bf:Work . ?work ?rel ?subj . - ?work ?rel ?obj FILTER( str(?work) = %s ) + ?work ?rel ?subj FILTER( str(?work) = %s ) } - + + + CONSTRUCT { ?work ?rel ?obj . ?obj ?rel1 ?obj1 . ?obj1 ?rel2 ?obj2 . @@ -76,19 +180,24 @@ OPTIONAL { ?obj ?rel1 ?obj1 MINUS { ?obj a bf:Work } - } + MINUS { ?obj a bf:Instance } + } OPTIONAL { ?obj1 ?rel2 ?obj2 MINUS { ?obj1 a bf:Work } - } + MINUS { ?obj1 a bf:Instance } + } OPTIONAL { ?obj2 ?rel3 ?obj3 MINUS { ?obj2 a bf:Work } - } + MINUS { ?obj2 a bf:Instance } + } ?work ?rel ?obj FILTER( str(?work) = %s ) } - + + + CONSTRUCT { %u ?rel ?wobj1 . ?wobj1 ?wrel1 ?wobj2 . ?wobj2 ?wrel2 ?wobj3 . @@ -102,7 +211,7 @@ the linking triplet will get included like any others --> ?inst bf:instanceOf %u } - &workfull; + &workfull; OPTIONAL { ?wobj ?wrel1 ?wobj1 MINUS { ?wobj a bf:Work } @@ -132,20 +241,180 @@ }
- + + + - rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns - bf: http://bibframe.org/vocab/ -
SELECT ?instance ?title ?format
- ?instance a bf:Instance - ?instance bf:title ?title - ?instance bf:title %v FILTER(contains(%v, %s)) - ?instance bf:format ?format - ?instance bf:format %s + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns + bf: http://bibframe.org/vocab/ + +
SELECT DISTINCT ?inst
+ ?inst a bf:Instance + + + ?inst a bf:Instance FILTER( ?inst = %u ) + + + + + + + ?inst bf:title %v FILTER(contains(%v, %s)) + + + + + ?inst bf:instanceTitle ?it . + ?it bf:titleValue %v FILTER(contains(%v, %s)) + + + + ?inst bf:titleStatement %v FILTER(contains(%v, %s)) + + + + + { + ?inst bf:instanceTitle ?it . + ?it bf:titleValue %v FILTER(contains(%v, %s)) + } UNION { + ?inst bf:title %v FILTER(contains(%v, %s)) + } + + + + + + ?inst bf:instanceTitle ?it . + ?it bf:subtitle %v FILTER(contains(%v, %s)) + + + + ?inst bf:instanceTitle ?it . + ?it bf:partTitle %v FILTER(contains(%v, %s)) + + + + + + { + ?inst bf:title %v FILTER(contains(%v, %s)) + } UNION { + ?inst bf:titleStatement %v FILTER(contains(%v, %s)) + } UNION { + ?inst ?titlerel ?it . + ?it a bf:Title + { + ?it bf:titleValue %v FILTER(contains(%v, %s)) + } UNION { + ?it bf:partTitle %v FILTER(contains(%v, %s)) + } UNION { + ?it bf:subtitle %v FILTER(contains(%v, %s)) + } + } + + + + + ?inst bf:creator ?c . + ?c bf:label %v FILTER(contains(%v, %s)) + + + + ?inst bf:instanceOf ?work . + ?work bf:creator ?c . + ?c bf:label %v FILTER(contains(%v, %s)) + + + + ?inst bf:instanceOf ?work . + ?work bf:contributor ?c . + ?c bf:label %v FILTER(contains(%v, %s)) + + + + ?inst bf:contributor ?c . + ?c bf:label %v FILTER(contains(%v, %s)) + + + + { + ?inst bf:creator ?c . + ?c bf:label %v FILTER(contains(%v, %s)) + } UNION { + ?inst bf:contributor ?c . + ?c bf:label %v FILTER(contains(%v, %s)) + } UNION { + ?inst bf:instanceOf ?work . + ?work bf:creator ?c . + ?c bf:label %v FILTER(contains(%v, %s)) + } UNION { + ?inst bf:instanceOf ?work . + ?work bf:contributor ?c . + ?c bf:label %v FILTER(contains(%v, %s)) + } + + + + + CONSTRUCT { ?inst ?rel ?subj } + WHERE { + ?inst a bf:Instance . + ?inst ?rel ?subj . + ?inst ?rel ?subj FILTER( str(?inst) = %s ) + } + + + + + CONSTRUCT { + %u ?irel1 ?iobj1 . + ?iobj1 ?irel2 ?iobj2 . + ?iobj2 ?irel3 ?iobj3 . + ?work ?wrel1 ?wobj1 . + ?wobj1 ?wrel2 ?wobj2 . + ?wobj2 ?wrel3 ?wobj3 + } + WHERE { + %u a bf:Instance . + %u ?irel1 ?iobj1 + OPTIONAL { + ?iobj1 ?irel2 ?iobj2 + MINUS { ?iobj1 a bf:Work } + MINUS { ?iobj1 a bf:Instance } + OPTIONAL { + ?iobj2 ?irel3 ?iobj3 + MINUS { ?iobj2 a bf:Work } + MINUS { ?iobj2 a bf:Instance } + } + } + + OPTIONAL { + %u bf:instanceOf ?work + OPTIONAL { + ?work ?wrel1 ?wobj1 + 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 } + } + } + } + } + } + +
- +