Wikidata talk:Book sources

From Wikidata
Jump to navigation Jump to search

see talk:Q131283 the talk page of Wikipedia:Book sources (Q131283) . לערי ריינהארט (talk) 09:08, 18 November 2013 (UTC)[reply]

SPARQL query to improve

[edit]

This one: https://www.wikidata.org/wiki/Wikidata:Book_sources#Find_on_Wikidata

Maybe this will help: SUBSTR( ?name,2,3 ) and https://stackoverflow.com/questions/30501124/or-in-a-sparql-query

ISBN10 example: 0-7621-0072-9

ISBN-10 format - /\d{9}(\d|X))|(\d{1,5}-\d{1,7}-\d{1,6}-[0-9X]/ - syntax clarification: blocks of digits separated by dashes or 10 digits, the last one optionally replaced by an X --User123o987name (talk) 12:22, 28 May 2020 (UTC)[reply]

ISBN 10 enumeration - All ways three numbers add up to 9:

  • Numbers 000-999, 1 number per lines (via https://pinetools.com/generate-list-numbers), /(.)(.)(.)\n/$1+$2+$3,/ (via https://pinetools.com/find-and-replace), /999/9+9+9/, /^/<p id="o"><\/p><script>var th = [/, /$/];var txt = "";var i;for (i = 0; i < th.length; i++) txt += th[i] + "
    ";document.getElementById("o").innerHTML = txt;<\/script>/, it's now a modification of JavaScript https://www.w3schools.com/js/tryit.asp?filename=tryjs_loop_for, each line summed with HTML rendered via http://htmledit.squarefree.com, lines numbered with https://www.browserling.com/tools/number-lines, remove lines not containing /\s9$/ with https://textmechanic.com/text-tools/basic-text-tools/remove-lines-containing/, subtract 1 from each: 009, 018, 027, 036, 045, 054, 063, 072, 081, 090, 108, 117, 126, 135, 144, 153, 162, 171, 180, 207, 216, 225, 234, 243, 252, 261, 270, 306, 315, 324, 333, 342, 351, 360, 405, 414, 423, 432, 441, 450, 504, 513, 522, 531, 540, 603, 612, 621, 630, 702, 711, 720, 801, 810, 900
  • none of them say "\d{0,#}", so zeros are removed; 1st number can't be >5; 2nd number can't be >7, 3d number can't be >6: 117, 126, 135, 144, 153, 162, 171, 216, 225, 234, 243, 252, 261, 315, 324, 333, 342, 351, 414, 423, 432, 441, 513, 522, 531
  • . means regex .: 012345678. (form 0), 0-1-2345678-. (117), 0-12-345678-. (126), 0-123-45678-. (135), 0-1234-5678-. (144), 0-12345-678-. (153), 0-123456-78-. (162), 0-1234567-8-. (171), 01-2-345678-. (216), 01-23-45678-. (225), 01-234-5678-. (234), 01-2345-678-. (243), 01-23456-78-. (252), 01-234567-8-. (261), 012-3-45678-. (315), 012-34-5678-. (324), 012-345-678-. (333), 012-3456-78-. (342), 012-34567-8-. (351), 0123-4-5678-. (414), 0123-45-678-. (423), 0123-456-78-. (432), 0123-4567-8-. (441), 01234-5-678-. (513), 01234-56-78-. (522), 01234-567-8-. (531)

--User123o987name (talk) 08:49, 29 May 2020 (UTC)[reply]

I made the code to find all variants of ISBN10 from MAGICNUMBER:

SELECT ?isbn10 ?statement WHERE{
 ?statement prov:wasDerivedFrom ?ref .
 ?ref pr:P957 ?isbn10 .
 BIND(lcase(?isbn10)AS?l)
 BIND(lcase("123456789X")AS?i)#067187120X
 BIND(SUBSTR(?i,1,1)AS?i11)
 BIND(SUBSTR(?i,1,2)AS?i12)
 BIND(SUBSTR(?i,1,3)AS?i13)
 BIND(SUBSTR(?i,1,4)AS?i14)
 BIND(SUBSTR(?i,1,5)AS?i15)
 BIND(SUBSTR(?i,2,1)AS?i21)
 BIND(SUBSTR(?i,2,2)AS?i22)
 BIND(SUBSTR(?i,2,3)AS?i23)
 BIND(SUBSTR(?i,2,4)AS?i24)
 BIND(SUBSTR(?i,2,5)AS?i25)
 BIND(SUBSTR(?i,2,6)AS?i26)
 BIND(SUBSTR(?i,2,7)AS?i27)
 BIND(SUBSTR(?i,3,1)AS?i31)
 BIND(SUBSTR(?i,3,2)AS?i32)
 BIND(SUBSTR(?i,3,3)AS?i33)
 BIND(SUBSTR(?i,3,4)AS?i34)
 BIND(SUBSTR(?i,3,5)AS?i35)
 BIND(SUBSTR(?i,3,6)AS?i36)
 BIND(SUBSTR(?i,3,7)AS?i37)
 BIND(SUBSTR(?i,4,1)AS?i41)
 BIND(SUBSTR(?i,4,2)AS?i42)
 BIND(SUBSTR(?i,4,3)AS?i43)
 BIND(SUBSTR(?i,4,4)AS?i44)
 BIND(SUBSTR(?i,4,5)AS?i45)
 BIND(SUBSTR(?i,4,6)AS?i46)
 BIND(SUBSTR(?i,5,1)AS?i51)
 BIND(SUBSTR(?i,5,2)AS?i52)
 BIND(SUBSTR(?i,5,3)AS?i53)
 BIND(SUBSTR(?i,5,4)AS?i54)
 BIND(SUBSTR(?i,5,5)AS?i55)
 BIND(SUBSTR(?i,6,1)AS?i61)
 BIND(SUBSTR(?i,6,2)AS?i62)
 BIND(SUBSTR(?i,6,3)AS?i63)
 BIND(SUBSTR(?i,6,4)AS?i64)
 BIND(SUBSTR(?i,7,3)AS?i73)
 BIND(SUBSTR(?i,8,2)AS?i82)
 BIND(SUBSTR(?i,9,1)AS?i91)
 BIND("-"AS?h)
 BIND(CONCAT(?h,SUBSTR(?i,10,1))AS?x)
 FILTER(CONTAINS(?l, ?i)||
  CONTAINS(?l,CONCAT(?i11,?h,?i21,?h,?i37,?x))||#117
  CONTAINS(?l,CONCAT(?i11,?h,?i22,?h,?i46,?x))||#126
  CONTAINS(?l,CONCAT(?i11,?h,?i23,?h,?i55,?x))||#135
  CONTAINS(?l,CONCAT(?i11,?h,?i24,?h,?i64,?x))||#144
  CONTAINS(?l,CONCAT(?i11,?h,?i25,?h,?i73,?x))||#153
  CONTAINS(?l,CONCAT(?i11,?h,?i26,?h,?i82,?x))||#162
  CONTAINS(?l,CONCAT(?i11,?h,?i27,?h,?i91,?x))||#171
  CONTAINS(?l,CONCAT(?i12,?h,?i31,?h,?i46,?x))||#216
  CONTAINS(?l,CONCAT(?i12,?h,?i32,?h,?i55,?x))||#225
  CONTAINS(?l,CONCAT(?i12,?h,?i33,?h,?i64,?x))||#234
  CONTAINS(?l,CONCAT(?i12,?h,?i34,?h,?i73,?x))||#243
  CONTAINS(?l,CONCAT(?i12,?h,?i35,?h,?i82,?x))||#252
  CONTAINS(?l,CONCAT(?i12,?h,?i36,?h,?i91,?x))||#261
  CONTAINS(?l,CONCAT(?i13,?h,?i41,?h,?i55,?x))||#315
  CONTAINS(?l,CONCAT(?i13,?h,?i42,?h,?i64,?x))||#324
  CONTAINS(?l,CONCAT(?i13,?h,?i43,?h,?i73,?x))||#333
  CONTAINS(?l,CONCAT(?i13,?h,?i44,?h,?i82,?x))||#342
  CONTAINS(?l,CONCAT(?i13,?h,?i45,?h,?i91,?x))||#351
  CONTAINS(?l,CONCAT(?i14,?h,?i51,?h,?i64,?x))||#414
  CONTAINS(?l,CONCAT(?i14,?h,?i52,?h,?i73,?x))||#423
  CONTAINS(?l,CONCAT(?i14,?h,?i53,?h,?i82,?x))||#432
  CONTAINS(?l,CONCAT(?i14,?h,?i54,?h,?i91,?x))||#441
  CONTAINS(?l,CONCAT(?i15,?h,?i61,?h,?i73,?x))||#513
  CONTAINS(?l,CONCAT(?i15,?h,?i62,?h,?i82,?x))||#522
  CONTAINS(?l,CONCAT(?i15,?h,?i63,?h,?i91,?x))#531
)
}#e

It seems like a bit too much text to be in a URL, so I made it even better quality by removing one-use-only variables (left column=common variable, middle column=rare variable, right column=common variable), comments, and some line breaks:

SELECT ?isbn10 ?statement WHERE{
 ?statement prov:wasDerivedFrom ?ref .
 ?ref pr:P957 ?isbn10 .
 BIND(lcase(?isbn10)AS?l)BIND(lcase("067187120X")AS?i)BIND(SUBSTR(?i,1,1)AS?i11)
 BIND(SUBSTR(?i,1,2)AS?i12)BIND(SUBSTR(?i,1,3)AS?i13)BIND(SUBSTR(?i,1,4)AS?i14)BIND(SUBSTR(?i,1,5)AS?i15)
 BIND(SUBSTR(?i,4,6)AS?i46)BIND(SUBSTR(?i,5,5)AS?i55)BIND(SUBSTR(?i,6,4)AS?i64)BIND(SUBSTR(?i,7,3)AS?i73)
 BIND(SUBSTR(?i,8,2)AS?i82)BIND(SUBSTR(?i,9,1)AS?i91)BIND("-"AS?h)BIND(CONCAT(?h,SUBSTR(?i,10,1))AS?x)
 FILTER(CONTAINS(?l, ?i)||CONTAINS(?i,CONCAT(?i11,?h,SUBSTR(?i,2,1),?h,SUBSTR(?i,3,7),?x))||
  CONTAINS(?i,CONCAT(?i11,?h,SUBSTR(?i,2,2),?h,?i46,?x))||CONTAINS(?l,CONCAT(?i11,?h,SUBSTR(?i,2,3),?h,?i55,?x))||
  CONTAINS(?l,CONCAT(?i11,?h,SUBSTR(?i,2,4),?h,?i64,?x))||CONTAINS(?l,CONCAT(?i11,?h,SUBSTR(?i,2,5),?h,?i73,?x))||
  CONTAINS(?l,CONCAT(?i11,?h,SUBSTR(?i,2,6),?h,?i82,?x))||CONTAINS(?l,CONCAT(?i11,?h,SUBSTR(?i,2,7),?h,?i91,?x))||
  CONTAINS(?l,CONCAT(?i12,?h,SUBSTR(?i,3,1),?h,?i46,?x))||CONTAINS(?l,CONCAT(?i12,?h,SUBSTR(?i,3,2),?h,?i55,?x))||
  CONTAINS(?l,CONCAT(?i12,?h,SUBSTR(?i,3,3),?h,?i64,?x))||CONTAINS(?l,CONCAT(?i12,?h,SUBSTR(?i,3,4),?h,?i73,?x))||
  CONTAINS(?l,CONCAT(?i12,?h,SUBSTR(?i,3,5),?h,?i82,?x))||CONTAINS(?l,CONCAT(?i12,?h,SUBSTR(?i,3,6),?h,?i91,?x))||
  CONTAINS(?l,CONCAT(?i13,?h,SUBSTR(?i,4,1),?h,?i55,?x))||CONTAINS(?l,CONCAT(?i13,?h,SUBSTR(?i,4,2),?h,?i64,?x))||
  CONTAINS(?l,CONCAT(?i13,?h,SUBSTR(?i,4,3),?h,?i73,?x))||CONTAINS(?l,CONCAT(?i13,?h,SUBSTR(?i,4,4),?h,?i82,?x))||
  CONTAINS(?l,CONCAT(?i13,?h,SUBSTR(?i,4,5),?h,?i91,?x))||CONTAINS(?l,CONCAT(?i14,?h,SUBSTR(?i,5,1),?h,?i64,?x))||
  CONTAINS(?l,CONCAT(?i14,?h,SUBSTR(?i,5,2),?h,?i73,?x))||CONTAINS(?l,CONCAT(?i14,?h,SUBSTR(?i,5,3),?h,?i82,?x))||
  CONTAINS(?l,CONCAT(?i14,?h,SUBSTR(?i,5,4),?h,?i91,?x))||CONTAINS(?l,CONCAT(?i15,?h,SUBSTR(?i,6,1),?h,?i73,?x))||
  CONTAINS(?l,CONCAT(?i15,?h,SUBSTR(?i,6,2),?h,?i82,?x))||CONTAINS(?l,CONCAT(?i15,?h,SUBSTR(?i,6,3),?h,?i91,?x)))}

Tested: working. 3540-character URL: https://query.wikidata.org/#SELECT%20%3Fisbn10%20%3Fstatement%20WHERE%7B%0A%20%3Fstatement%20prov%3AwasDerivedFrom%20%3Fref%20.%0A%20%3Fref%20pr%3AP957%20%3Fisbn10%20.%0A%20BIND%28lcase%28%3Fisbn10%29AS%3Fl%29BIND%28lcase%28%22067187120X%22%29AS%3Fi%29BIND%28SUBSTR%28%3Fi%2C1%2C1%29AS%3Fi11%29%0A%20BIND%28SUBSTR%28%3Fi%2C1%2C2%29AS%3Fi12%29BIND%28SUBSTR%28%3Fi%2C1%2C3%29AS%3Fi13%29BIND%28SUBSTR%28%3Fi%2C1%2C4%29AS%3Fi14%29BIND%28SUBSTR%28%3Fi%2C1%2C5%29AS%3Fi15%29%0A%20BIND%28SUBSTR%28%3Fi%2C4%2C6%29AS%3Fi46%29BIND%28SUBSTR%28%3Fi%2C5%2C5%29AS%3Fi55%29BIND%28SUBSTR%28%3Fi%2C6%2C4%29AS%3Fi64%29BIND%28SUBSTR%28%3Fi%2C7%2C3%29AS%3Fi73%29%0A%20BIND%28SUBSTR%28%3Fi%2C8%2C2%29AS%3Fi82%29BIND%28SUBSTR%28%3Fi%2C9%2C1%29AS%3Fi91%29BIND%28%22-%22AS%3Fh%29BIND%28CONCAT%28%3Fh%2CSUBSTR%28%3Fi%2C10%2C1%29%29AS%3Fx%29%0A%20FILTER%28CONTAINS%28%3Fl%2C%20%3Fi%29%7C%7CCONTAINS%28%3Fl%2CCONCAT%28%3Fi11%2C%3Fh%2CSUBSTR%28%3Fi%2C2%2C1%29%2C%3Fh%2CSUBSTR%28%3Fi%2C3%2C7%29%2C%3Fx%29%29%7C%7C%0A%20%20CONTAINS%28%3Fl%2CCONCAT%28%3Fi11%2C%3Fh%2CSUBSTR%28%3Fi%2C2%2C2%29%2C%3Fh%2C%3Fi46%2C%3Fx%29%29%7C%7CCONTAINS%28%3Fl%2CCONCAT%28%3Fi11%2C%3Fh%2CSUBSTR%28%3Fi%2C2%2C3%29%2C%3Fh%2C%3Fi55%2C%3Fx%29%29%7C%7C%0A%20%20CONTAINS%28%3Fl%2CCONCAT%28%3Fi11%2C%3Fh%2CSUBSTR%28%3Fi%2C2%2C4%29%2C%3Fh%2C%3Fi64%2C%3Fx%29%29%7C%7CCONTAINS%28%3Fl%2CCONCAT%28%3Fi11%2C%3Fh%2CSUBSTR%28%3Fi%2C2%2C5%29%2C%3Fh%2C%3Fi73%2C%3Fx%29%29%7C%7C%0A%20%20CONTAINS%28%3Fl%2CCONCAT%28%3Fi11%2C%3Fh%2CSUBSTR%28%3Fi%2C2%2C6%29%2C%3Fh%2C%3Fi82%2C%3Fx%29%29%7C%7CCONTAINS%28%3Fl%2CCONCAT%28%3Fi11%2C%3Fh%2CSUBSTR%28%3Fi%2C2%2C7%29%2C%3Fh%2C%3Fi91%2C%3Fx%29%29%7C%7C%0A%20%20CONTAINS%28%3Fl%2CCONCAT%28%3Fi12%2C%3Fh%2CSUBSTR%28%3Fi%2C3%2C1%29%2C%3Fh%2C%3Fi46%2C%3Fx%29%29%7C%7CCONTAINS%28%3Fl%2CCONCAT%28%3Fi12%2C%3Fh%2CSUBSTR%28%3Fi%2C3%2C2%29%2C%3Fh%2C%3Fi55%2C%3Fx%29%29%7C%7C%0A%20%20CONTAINS%28%3Fl%2CCONCAT%28%3Fi12%2C%3Fh%2CSUBSTR%28%3Fi%2C3%2C3%29%2C%3Fh%2C%3Fi64%2C%3Fx%29%29%7C%7CCONTAINS%28%3Fl%2CCONCAT%28%3Fi12%2C%3Fh%2CSUBSTR%28%3Fi%2C3%2C4%29%2C%3Fh%2C%3Fi73%2C%3Fx%29%29%7C%7C%0A%20%20CONTAINS%28%3Fl%2CCONCAT%28%3Fi12%2C%3Fh%2CSUBSTR%28%3Fi%2C3%2C5%29%2C%3Fh%2C%3Fi82%2C%3Fx%29%29%7C%7CCONTAINS%28%3Fl%2CCONCAT%28%3Fi12%2C%3Fh%2CSUBSTR%28%3Fi%2C3%2C6%29%2C%3Fh%2C%3Fi91%2C%3Fx%29%29%7C%7C%0A%20%20CONTAINS%28%3Fl%2CCONCAT%28%3Fi13%2C%3Fh%2CSUBSTR%28%3Fi%2C4%2C1%29%2C%3Fh%2C%3Fi55%2C%3Fx%29%29%7C%7CCONTAINS%28%3Fl%2CCONCAT%28%3Fi13%2C%3Fh%2CSUBSTR%28%3Fi%2C4%2C2%29%2C%3Fh%2C%3Fi64%2C%3Fx%29%29%7C%7C%0A%20%20CONTAINS%28%3Fl%2CCONCAT%28%3Fi13%2C%3Fh%2CSUBSTR%28%3Fi%2C4%2C3%29%2C%3Fh%2C%3Fi73%2C%3Fx%29%29%7C%7CCONTAINS%28%3Fl%2CCONCAT%28%3Fi13%2C%3Fh%2CSUBSTR%28%3Fi%2C4%2C4%29%2C%3Fh%2C%3Fi82%2C%3Fx%29%29%7C%7C%0A%20%20CONTAINS%28%3Fl%2CCONCAT%28%3Fi13%2C%3Fh%2CSUBSTR%28%3Fi%2C4%2C5%29%2C%3Fh%2C%3Fi91%2C%3Fx%29%29%7C%7CCONTAINS%28%3Fl%2CCONCAT%28%3Fi14%2C%3Fh%2CSUBSTR%28%3Fi%2C5%2C1%29%2C%3Fh%2C%3Fi64%2C%3Fx%29%29%7C%7C%0A%20%20CONTAINS%28%3Fl%2CCONCAT%28%3Fi14%2C%3Fh%2CSUBSTR%28%3Fi%2C5%2C2%29%2C%3Fh%2C%3Fi73%2C%3Fx%29%29%7C%7CCONTAINS%28%3Fl%2CCONCAT%28%3Fi14%2C%3Fh%2CSUBSTR%28%3Fi%2C5%2C3%29%2C%3Fh%2C%3Fi82%2C%3Fx%29%29%7C%7C%0A%20%20CONTAINS%28%3Fl%2CCONCAT%28%3Fi14%2C%3Fh%2CSUBSTR%28%3Fi%2C5%2C4%29%2C%3Fh%2C%3Fi91%2C%3Fx%29%29%7C%7CCONTAINS%28%3Fl%2CCONCAT%28%3Fi15%2C%3Fh%2CSUBSTR%28%3Fi%2C6%2C1%29%2C%3Fh%2C%3Fi73%2C%3Fx%29%29%7C%7C%0A%20%20CONTAINS%28%3Fl%2CCONCAT%28%3Fi15%2C%3Fh%2CSUBSTR%28%3Fi%2C6%2C2%29%2C%3Fh%2C%3Fi82%2C%3Fx%29%29%7C%7CCONTAINS%28%3Fl%2CCONCAT%28%3Fi15%2C%3Fh%2CSUBSTR%28%3Fi%2C6%2C3%29%2C%3Fh%2C%3Fi91%2C%3Fx%29%29%29%7D

Now all we or I have to do is write the thing to search for all variants of ISBN-13. --User123o987name (talk) 19:04, 29 May 2020 (UTC)[reply]

ISBN13 example: 978-0-310-43566-2

ISBN-13 format (from https://www.wikidata.org/wiki/Property:P212): /97[89]-([0-57]-(\d-\d{7}|\d\d-\d{6}|\d\d\d-\d{5}|\d{4}-\d{4}|\d{5}-\d\d\d|\d{6}-\d\d|\d{7}-\d)|[89]\d-(\d-\d{6}|\d\d-\d{5}|\d\d\d-\d{4}|\d{4}-\d\d\d|\d{5}-\d\d|\d{6}-\d)|[69]\d\d-(\d-\d{5}|\d\d-\d{4}|\d\d\d-\d\d\d|\d{4}-\d\d|\d{5}-\d)|99[0-8]\d-\d-\d{4}|99[0-8]\d-\d\d-\d\d\d|99[0-8]\d-\d\d\d-\d\d|99[0-8]\d-\d{4}-\d|999\d\d-\d-\d\d\d|999\d\d-\d\d-\d\d|999\d\d-\d\d\d-\d)-\d|/ - why does it end with "\d|"? The last vertical bar (|) doesn't seem to do anything.

ISBN format, each version on a line:

  • 97[89]-
    • ([0-57]-
      • (\d-\d{7}
      • |\d\d-\d{6}
      • |\d\d\d-\d{5}
      • |\d{4}-\d{4}
      • |\d{5}-\d\d\d
      • |\d{6}-\d\d
      • |\d{7}-\d)
    • |[89]\d-
      • (\d-\d{6}
      • |\d\d-\d{5}
      • |\d\d\d-\d{4}
      • |\d{4}-\d\d\d
      • |\d{5}-\d\d
      • |\d{6}-\d)
    • |[69]\d\d-
      • (\d-\d{5}
      • |\d\d-\d{4}
      • |\d\d\d-\d\d\d
      • |\d{4}-\d\d
      • |\d{5}-\d)
    • |99[0-8]\d-\d-\d{4}
    • |99[0-8]\d-\d\d-\d\d\d
    • |99[0-8]\d-\d\d\d-\d\d
    • |99[0-8]\d-\d{4}-\d
    • |999\d\d-\d-\d\d\d
    • |999\d\d-\d\d-\d\d
    • |999\d\d-\d\d\d-\d)
  • -\d

ISBN 13 enumeration: oof. If I wrote the code for it then maybe the URL would be to long and thus not work. --User123o987name (talk) 20:02, 29 May 2020 (UTC)[reply]

query 1

[edit]

If the total has to be 13 number, this is a correct representation (* means bullet point):

123456789abcdefghijklmnop * 97[89]-
1234567                   ** ([0-57]-
1                         *** (\d-\d{7}
2                         *** |\d\d-\d{6}
3                         *** |\d\d\d-\d{5}
4                         *** |\d{4}-\d{4}
5                         *** |\d{5}-\d\d\d
6                         *** |\d{6}-\d\d
7                         *** |\d{7}-\d)
89abcd                    ** |[89]\d-
8                         *** (\d-\d{6}
9                         *** |\d\d-\d{5}
a                         *** |\d\d\d-\d{4}
b                         *** |\d{4}-\d\d\d
c                         *** |\d{5}-\d\d
d                         *** |\d{6}-\d)
efghi                     ** |[69]\d\d-
e                         *** (\d-\d{5}
f                         *** |\d\d-\d{4}
g                         *** |\d\d\d-\d\d\d
h                         *** |\d{4}-\d\d
i                         *** |\d{5}-\d)
j                         ** |99[0-8]\d-\d-\d{4}
k                         ** |99[0-8]\d-\d\d-\d\d\d
l                         ** |99[0-8]\d-\d\d\d-\d\d
m                         ** |99[0-8]\d-\d{4}-\d
n                         ** |999\d\d-\d-\d\d\d
o                         ** |999\d\d-\d\d-\d\d
p                         ** |999\d\d-\d\d\d-\d)
123456789abcdefghijklmnop * -\d

query 2

[edit]
1=123-4-5-6789012-3
2=123-4-56-789012-3
3=123-4-567-89012-3
4=123-4-5678-9012-3
5=123-4-56789-012-3
6=123-4-567890-12-3
7=123-4-5678901-2-3
8=123-45-6-789012-3
9=123-45-67-89012-3
a=123-45-678-9012-3
b=123-45-6789-012-3
c=123-45-67890-12-3
d=123-45-678901-2-3
e=123-456-7-89012-3
f=123-456-78-9012-3
g=123-456-789-012-3
h=123-456-7890-12-3
i=123-456-78901-2-3
j=123-4567-8-9012-3
k=123-4567-89-012-3
l=123-4557-890-12-3
m=123-4567-8901-2-3
n=123-45678-9-012-3
o=123-45678-90-12-3
p=123-45678-901-2-3

Anyone else think that this structure (ISBN 13) looks aesthetic af? The data represented by the regex looks neat and has a neat pattern. "And these points of data make a beautiful datagram." ["line", alternatively, what was actually said] --https://www.youtube.com/watch?v=Y6ljFaKRTrI

query 3

[edit]

ISBN 10 has 26 variants. ISBN 13 has 25 variants, so I think this will fit into a URL. Here is the code:

SELECT ?isbn13 ?statement WHERE{
 ?statement prov:wasDerivedFrom ?ref .
 ?ref pr:P212 ?isbn13 .
 BIND(lcase(?isbn13)AS?l)
 BIND(lcase("1234567890123")AS?i)
 BIND(SUBSTR(?i,4,1)AS?i41)BIND(SUBSTR(?i,4,2)AS?i42)
 BIND(SUBSTR(?i,4,3)AS?i43)BIND(SUBSTR(?i,4,4)AS?i44)
 BIND(SUBSTR(?i,4,5)AS?i45)BIND(SUBSTR(?i,6,7)AS?i67)
 BIND(SUBSTR(?i,7,6)AS?i76)BIND(SUBSTR(?i,8,5)AS?i85)
 BIND(SUBSTR(?i,9,4)AS?i94)BIND(SUBSTR(?i,10,3)AS?i103)
 BIND(SUBSTR(?i,11,2)AS?i112)BIND(SUBSTR(?i,12,1)AS?i121)
 BIND("-"AS?h)BIND(CONCAT(SUBSTR(?i,1,3),?h)AS?i13)
 BIND(CONCAT(?h,SUBSTR(?i,13,1))AS?x)
 FILTER(CONTAINS(?l, ?i)||
  CONTAINS(?l,CONCAT(?i13,?i41,?h,SUBSTR(?i,5,1),?h,?i67,?x))||
  CONTAINS(?l,CONCAT(?i13,?i41,?h,SUBSTR(?i,5,2),?h,?i76,?x))||
  CONTAINS(?l,CONCAT(?i13,?i41,?h,SUBSTR(?i,5,3),?h,?i85,?x))||
  CONTAINS(?l,CONCAT(?i13,?i41,?h,SUBSTR(?i,5,4),?h,?i94,?x))||
  CONTAINS(?l,CONCAT(?i13,?i41,?h,SUBSTR(?i,5,5),?h,?i103,?x))||
  CONTAINS(?l,CONCAT(?i13,?i41,?h,SUBSTR(?i,5,6),?h,?i112,?x))||
  CONTAINS(?l,CONCAT(?i13,?i41,?h,SUBSTR(?i,5,7),?h,?i121,?x))||
  CONTAINS(?l,CONCAT(?i13,?i42,?h,SUBSTR(?i,6,1),?h,?i76,?x))||
  CONTAINS(?l,CONCAT(?i13,?i42,?h,SUBSTR(?i,6,2),?h,?i85,?x))||
  CONTAINS(?l,CONCAT(?i13,?i42,?h,SUBSTR(?i,6,3),?h,?i94,?x))||
  CONTAINS(?l,CONCAT(?i13,?i42,?h,SUBSTR(?i,6,4),?h,?i103,?x))||
  CONTAINS(?l,CONCAT(?i13,?i42,?h,SUBSTR(?i,6,5),?h,?i112,?x))||
  CONTAINS(?l,CONCAT(?i13,?i42,?h,SUBSTR(?i,6,6),?h,?i121,?x))||
  CONTAINS(?l,CONCAT(?i13,?i43,?h,SUBSTR(?i,7,1),?h,?i85,?x))||
  CONTAINS(?l,CONCAT(?i13,?i43,?h,SUBSTR(?i,7,2),?h,?i94,?x))||
  CONTAINS(?l,CONCAT(?i13,?i43,?h,SUBSTR(?i,7,3),?h,?i103,?x))||
  CONTAINS(?l,CONCAT(?i13,?i43,?h,SUBSTR(?i,7,4),?h,?i112,?x))||
  CONTAINS(?l,CONCAT(?i13,?i43,?h,SUBSTR(?i,7,5),?h,?i121,?x))||
  CONTAINS(?l,CONCAT(?i13,?i44,?h,SUBSTR(?i,8,1),?h,?i94,?x))||
  CONTAINS(?l,CONCAT(?i13,?i44,?h,SUBSTR(?i,8,2),?h,?i103,?x))||
  CONTAINS(?l,CONCAT(?i13,?i44,?h,SUBSTR(?i,8,3),?h,?i112,?x))||
  CONTAINS(?l,CONCAT(?i13,?i44,?h,SUBSTR(?i,8,4),?h,?i121,?x))||
  CONTAINS(?l,CONCAT(?i13,?i45,?h,SUBSTR(?i,9,1),?h,?i103,?x))||
  CONTAINS(?l,CONCAT(?i13,?i45,?h,SUBSTR(?i,9,2),?h,?i112,?x))||
  CONTAINS(?l,CONCAT(?i13,?i45,?h,SUBSTR(?i,9,3),?h,?i121,?x))
 )
}

4036-character URL (tested, working): https://query.wikidata.org/#SELECT%20%3Fisbn13%20%3Fstatement%20WHERE%7B%0A%20%3Fstatement%20prov%3AwasDerivedFrom%20%3Fref%20.%0A%20%3Fref%20pr%3AP212%20%3Fisbn13%20.%0A%20BIND%28lcase%28%3Fisbn13%29AS%3Fl%29%0A%20BIND%28lcase%28%221234567890123%22%29AS%3Fi%29%0A%20BIND%28SUBSTR%28%3Fi%2C4%2C1%29AS%3Fi41%29BIND%28SUBSTR%28%3Fi%2C4%2C2%29AS%3Fi42%29%0A%20BIND%28SUBSTR%28%3Fi%2C4%2C3%29AS%3Fi43%29BIND%28SUBSTR%28%3Fi%2C4%2C4%29AS%3Fi44%29%0A%20BIND%28SUBSTR%28%3Fi%2C4%2C5%29AS%3Fi45%29BIND%28SUBSTR%28%3Fi%2C6%2C7%29AS%3Fi67%29%0A%20BIND%28SUBSTR%28%3Fi%2C7%2C6%29AS%3Fi76%29BIND%28SUBSTR%28%3Fi%2C8%2C5%29AS%3Fi85%29%0A%20BIND%28SUBSTR%28%3Fi%2C9%2C4%29AS%3Fi94%29BIND%28SUBSTR%28%3Fi%2C10%2C3%29AS%3Fi103%29%0A%20BIND%28SUBSTR%28%3Fi%2C11%2C2%29AS%3Fi112%29BIND%28SUBSTR%28%3Fi%2C12%2C1%29AS%3Fi121%29%0A%20BIND%28%22-%22AS%3Fh%29BIND%28CONCAT%28SUBSTR%28%3Fi%2C1%2C3%29%2C%3Fh%29AS%3Fi13%29%0A%20BIND%28CONCAT%28%3Fh%2CSUBSTR%28%3Fi%2C13%2C1%29%29AS%3Fx%29%0A%20FILTER%28CONTAINS%28%3Fl%2C%20%3Fi%29%7C%7C%0A%20%20CONTAINS%28%3Fl%2CCONCAT%28%3Fi13%2C%3Fi41%2C%3Fh%2CSUBSTR%28%3Fi%2C5%2C1%29%2C%3Fh%2C%3Fi67%2C%3Fx%29%29%7C%7C%0A%20%20CONTAINS%28%3Fl%2CCONCAT%28%3Fi13%2C%3Fi41%2C%3Fh%2CSUBSTR%28%3Fi%2C5%2C2%29%2C%3Fh%2C%3Fi76%2C%3Fx%29%29%7C%7C%0A%20%20CONTAINS%28%3Fl%2CCONCAT%28%3Fi13%2C%3Fi41%2C%3Fh%2CSUBSTR%28%3Fi%2C5%2C3%29%2C%3Fh%2C%3Fi85%2C%3Fx%29%29%7C%7C%0A%20%20CONTAINS%28%3Fl%2CCONCAT%28%3Fi13%2C%3Fi41%2C%3Fh%2CSUBSTR%28%3Fi%2C5%2C4%29%2C%3Fh%2C%3Fi94%2C%3Fx%29%29%7C%7C%0A%20%20CONTAINS%28%3Fl%2CCONCAT%28%3Fi13%2C%3Fi41%2C%3Fh%2CSUBSTR%28%3Fi%2C5%2C5%29%2C%3Fh%2C%3Fi103%2C%3Fx%29%29%7C%7C%0A%20%20CONTAINS%28%3Fl%2CCONCAT%28%3Fi13%2C%3Fi41%2C%3Fh%2CSUBSTR%28%3Fi%2C5%2C6%29%2C%3Fh%2C%3Fi112%2C%3Fx%29%29%7C%7C%0A%20%20CONTAINS%28%3Fl%2CCONCAT%28%3Fi13%2C%3Fi41%2C%3Fh%2CSUBSTR%28%3Fi%2C5%2C7%29%2C%3Fh%2C%3Fi121%2C%3Fx%29%29%7C%7C%0A%20%20CONTAINS%28%3Fl%2CCONCAT%28%3Fi13%2C%3Fi42%2C%3Fh%2CSUBSTR%28%3Fi%2C6%2C1%29%2C%3Fh%2C%3Fi76%2C%3Fx%29%29%7C%7C%0A%20%20CONTAINS%28%3Fl%2CCONCAT%28%3Fi13%2C%3Fi42%2C%3Fh%2CSUBSTR%28%3Fi%2C6%2C2%29%2C%3Fh%2C%3Fi85%2C%3Fx%29%29%7C%7C%0A%20%20CONTAINS%28%3Fl%2CCONCAT%28%3Fi13%2C%3Fi42%2C%3Fh%2CSUBSTR%28%3Fi%2C6%2C3%29%2C%3Fh%2C%3Fi94%2C%3Fx%29%29%7C%7C%0A%20%20CONTAINS%28%3Fl%2CCONCAT%28%3Fi13%2C%3Fi42%2C%3Fh%2CSUBSTR%28%3Fi%2C6%2C4%29%2C%3Fh%2C%3Fi103%2C%3Fx%29%29%7C%7C%0A%20%20CONTAINS%28%3Fl%2CCONCAT%28%3Fi13%2C%3Fi42%2C%3Fh%2CSUBSTR%28%3Fi%2C6%2C5%29%2C%3Fh%2C%3Fi112%2C%3Fx%29%29%7C%7C%0A%20%20CONTAINS%28%3Fl%2CCONCAT%28%3Fi13%2C%3Fi42%2C%3Fh%2CSUBSTR%28%3Fi%2C6%2C6%29%2C%3Fh%2C%3Fi121%2C%3Fx%29%29%7C%7C%0A%20%20CONTAINS%28%3Fl%2CCONCAT%28%3Fi13%2C%3Fi43%2C%3Fh%2CSUBSTR%28%3Fi%2C7%2C1%29%2C%3Fh%2C%3Fi85%2C%3Fx%29%29%7C%7C%0A%20%20CONTAINS%28%3Fl%2CCONCAT%28%3Fi13%2C%3Fi43%2C%3Fh%2CSUBSTR%28%3Fi%2C7%2C2%29%2C%3Fh%2C%3Fi94%2C%3Fx%29%29%7C%7C%0A%20%20CONTAINS%28%3Fl%2CCONCAT%28%3Fi13%2C%3Fi43%2C%3Fh%2CSUBSTR%28%3Fi%2C7%2C3%29%2C%3Fh%2C%3Fi103%2C%3Fx%29%29%7C%7C%0A%20%20CONTAINS%28%3Fl%2CCONCAT%28%3Fi13%2C%3Fi43%2C%3Fh%2CSUBSTR%28%3Fi%2C7%2C4%29%2C%3Fh%2C%3Fi112%2C%3Fx%29%29%7C%7C%0A%20%20CONTAINS%28%3Fl%2CCONCAT%28%3Fi13%2C%3Fi43%2C%3Fh%2CSUBSTR%28%3Fi%2C7%2C5%29%2C%3Fh%2C%3Fi121%2C%3Fx%29%29%7C%7C%0A%20%20CONTAINS%28%3Fl%2CCONCAT%28%3Fi13%2C%3Fi44%2C%3Fh%2CSUBSTR%28%3Fi%2C8%2C1%29%2C%3Fh%2C%3Fi94%2C%3Fx%29%29%7C%7C%0A%20%20CONTAINS%28%3Fl%2CCONCAT%28%3Fi13%2C%3Fi44%2C%3Fh%2CSUBSTR%28%3Fi%2C8%2C2%29%2C%3Fh%2C%3Fi103%2C%3Fx%29%29%7C%7C%0A%20%20CONTAINS%28%3Fl%2CCONCAT%28%3Fi13%2C%3Fi44%2C%3Fh%2CSUBSTR%28%3Fi%2C8%2C3%29%2C%3Fh%2C%3Fi112%2C%3Fx%29%29%7C%7C%0A%20%20CONTAINS%28%3Fl%2CCONCAT%28%3Fi13%2C%3Fi44%2C%3Fh%2CSUBSTR%28%3Fi%2C8%2C4%29%2C%3Fh%2C%3Fi121%2C%3Fx%29%29%7C%7C%0A%20%20CONTAINS%28%3Fl%2CCONCAT%28%3Fi13%2C%3Fi45%2C%3Fh%2CSUBSTR%28%3Fi%2C9%2C1%29%2C%3Fh%2C%3Fi103%2C%3Fx%29%29%7C%7C%0A%20%20CONTAINS%28%3Fl%2CCONCAT%28%3Fi13%2C%3Fi45%2C%3Fh%2CSUBSTR%28%3Fi%2C9%2C2%29%2C%3Fh%2C%3Fi112%2C%3Fx%29%29%7C%7C%0A%20%20CONTAINS%28%3Fl%2CCONCAT%28%3Fi13%2C%3Fi45%2C%3Fh%2CSUBSTR%28%3Fi%2C9%2C3%29%2C%3Fh%2C%3Fi121%2C%3Fx%29%29%0A%20%29%0A%7D

These queries work way better than the Wikimedia search I think. --User123o987name (talk) 00:31, 30 May 2020 (UTC)[reply]