+ <!-- isbn index. The Instance may contain a isbn10 or isbn13. -->
+ <!-- These can be literal values like -->
+ <!-- http://isbn.example.org/1906833214 which we need to search -->
+ <!-- by our usual substring match. Or they can be links to Identivfiers -->
+ <!-- which will have a proper identifierValue on which we can do -->
+ <!-- an exact match. -->
+ <index type="bf.isbn">
+ {
+ ?thing bf:isbn10 %v
+ FILTER(isUri(%v) && contains(str(%v), %s))
+ } UNION {
+ ?thing bf:isbn13 %v
+ FILTER(isUri(%v) && contains(str(%v), %s))
+ } UNION {
+ {
+ ?thing bf:isbn10 %v_isbn
+ } UNION {
+ ?thing bf:isbn13 %v_isbn
+ }
+ %v_isbn a bf:Identifier .
+ %v_isbn bf:identifierValue %v FILTER( %v = %s )
+ }
+ </index>
+
+ <!-- lccn number, a simpler index for id numbers -->
+ <index type="bf.lccn">
+ ?thing bf:lccn %v_lccn .
+ %v_lccn a bf:Identifier .
+ %v_lccn bf:identifierValue %v FILTER( %v = %s )
+ </index>
+
+ <!-- Find the instances of a given work -->
+ <index type="bf.work">
+ ?thing bf:instanceOf %u
+ </index>
+
+