query-0fa7b196aeca3ccddee75436f9022f2f
rq turtle/ttl
Call for reduction of code length and/or running time. I already had to remove the documentation. This is the structure: Wikidata:WikiProject Visual arts/Artists same name which seems to add some more code) and often times out! It is used to find duplicates of visual artist items at Template:Wikidata listCan anyone help to reduce the code length and/or running time or somehow simplify the following query? It almost exceeds the maximal query length (at least when fed to precision of date differences number of date differences (P570)date of death and (P569)date of birth mean difference of Sort by: Calculate difference Break down to smallest common precision: (P570)date of death and (P569)date of birth For (P3373)sibling or (P460)said to be the same as , (P1889)different from Filter out those connected via either Look for matching English labels or aliases in items Take visual artist items
Use at
- https://query.wikidata.org/sparql
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX psv: <http://www.wikidata.org/prop/statement/value/>
PREFIX p: <http://www.wikidata.org/prop/>
SELECT DISTINCT ?itemName
?item ?dob1dispStr ?dod1dispStr ?occ1
?item2 ?dob2dispStr ?dod2dispStr ?occ2
?dobdiff ?doddiff ?meandiff ?meanPrec where {
{
SELECT DISTINCT ?item ?item2 ?itemName ?occ1 ?occ2 WHERE {
?item wdt:P106 ?occ1 .
?occ1 wdt:P279* wd:Q3391743 .
{ ?item rdfs:label ?itemName. } UNION { ?item skos:altLabel ?itemName. }
?item2 wdt:P106 ?occ2 .
?occ2 wdt:P279* wd:Q3391743 .
{ ?item2 rdfs:label ?itemName. } UNION { ?item2 skos:altLabel ?itemName. }
FILTER((LANG(?itemName)) = "en")
FILTER((STR(?item)) < (STR(?item2)))
}
LIMIT 100000
} MINUS { ?item wdt:P1889 \u007C wdt:P460 \u007C wdt:P3373 ?item2. }
MINUS { ?item2 wdt:P1889 \u007C wdt:P460 \u007C wdt:P3373 ?item. }
OPTIONAL {
?item p:P569/psv:P569 [
wikibase:timeValue ?dob1Val;
wikibase:timePrecision ?dob1Prec ] .
BIND(STR(?dob1Val) AS ?dob1fullStr)
BIND(IF(?dob1Prec <= 10, 3, 0) AS ?dob1insigDayChars)
BIND(IF(?dob1Prec <= 9, 3, 0) AS ?dob1insigMonthChars)
BIND(IF(?dob1Prec <= 8, 9-?dob1Prec, 0) AS ?dob1insigYearChars)
BIND(?dob1insigDayChars + ?dob1insigMonthChars + ?dob1insigYearChars AS ?dob1insigDateChars)
BIND(SUBSTR(?dob1fullStr, 1, STRLEN(?dob1fullStr) - 10 - ?dob1insigDateChars) AS ?dob1SignStr)
BIND(CONCAT(?dob1SignStr, SUBSTR("0000000000000000", 1, ?dob1insigYearChars)) AS ?dob1dispStr)
}
OPTIONAL {
?item2 p:P569/psv:P569 [
wikibase:timeValue ?dob2Val;
wikibase:timePrecision ?dob2Prec ] .
BIND(STR(?dob2Val) AS ?dob2fullStr)
BIND(IF(?dob2Prec <= 10, 3, 0) AS ?dob2insigDayChars)
BIND(IF(?dob2Prec <= 9, 3, 0) AS ?dob2insigMonthChars)
BIND(IF(?dob2Prec <= 8, 9-?dob2Prec, 0) AS ?dob2insigYearChars)
BIND(?dob2insigDayChars + ?dob2insigMonthChars + ?dob2insigYearChars AS ?dob2insigDateChars)
BIND(SUBSTR(?dob2fullStr, 1, STRLEN(?dob2fullStr) - 10 - ?dob2insigDateChars) AS ?dob2SignStr)
BIND(CONCAT(?dob2SignStr, SUBSTR("0000000000000000", 1, ?dob2insigYearChars)) AS ?dob2dispStr)
}
BIND(IF(?dob1insigDateChars > ?dob2insigDateChars, ?dob1insigDateChars, ?dob2insigDateChars) AS ?dobComInsigDateChars)
BIND(SUBSTR(?dob1fullStr, 1, STRLEN(?dob1fullStr) - 10 - ?dobComInsigDateChars) AS ?dob1ComSigStr)
BIND(SUBSTR(?dob2fullStr, 1, STRLEN(?dob2fullStr) - 10 - ?dobComInsigDateChars) AS ?dob2ComSigStr)
BIND(STRDT(CONCAT(?dob1ComSigStr, SUBSTR("0000000000000000-01-01T00:00:00Z", 23 - ?dobComInsigDateChars)), xsd:dateTime) AS ?dob1ComSig)
BIND(STRDT(CONCAT(?dob2ComSigStr, SUBSTR("0000000000000000-01-01T00:00:00Z", 23 - ?dobComInsigDateChars)), xsd:dateTime) AS ?dob2ComSig)
BIND((CEIL(ABS((?dob1ComSig - ?dob2ComSig) / 3.652425))) / 100 AS ?dobdiff)
OPTIONAL {
?item p:P570/psv:P570 [
wikibase:timeValue ?dod1Val;
wikibase:timePrecision ?dod1Prec ] .
BIND(STR(?dod1Val) AS ?dod1fullStr)
BIND(IF(?dod1Prec <= 10, 3, 0) AS ?dod1insigDayChars)
BIND(IF(?dod1Prec <= 9, 3, 0) AS ?dod1insigMonthChars)
BIND(IF(?dod1Prec <= 8, 9-?dod1Prec, 0) AS ?dod1insigYearChars)
BIND(?dod1insigDayChars + ?dod1insigMonthChars + ?dod1insigYearChars AS ?dod1insigDateChars)
BIND(SUBSTR(?dod1fullStr, 1, STRLEN(?dod1fullStr) - 10 - ?dod1insigDateChars) AS ?dod1SignStr)
BIND(CONCAT(?dod1SignStr, SUBSTR("0000000000000000", 1, ?dod1insigYearChars)) AS ?dod1dispStr)
}
OPTIONAL {
?item2 p:P570/psv:P570 [
wikibase:timeValue ?dod2Val;
wikibase:timePrecision ?dod2Prec ] .
BIND(STR(?dod2Val) AS ?dod2fullStr)
BIND(IF(?dod2Prec <= 10, 3, 0) AS ?dod2insigDayChars)
BIND(IF(?dod2Prec <= 9, 3, 0) AS ?dod2insigMonthChars)
BIND(IF(?dod2Prec <= 8, 9-?dod2Prec, 0) AS ?dod2insigYearChars)
BIND(?dod2insigDayChars + ?dod2insigMonthChars + ?dod2insigYearChars AS ?dod2insigDateChars)
BIND(SUBSTR(?dod2fullStr, 1, STRLEN(?dod2fullStr) - 10 - ?dod2insigDateChars) AS ?dod2SignStr)
BIND(CONCAT(?dod2SignStr, SUBSTR("0000000000000000", 1, ?dod2insigYearChars)) AS ?dod2dispStr)
}
BIND(IF(?dod1insigDateChars > ?dod2insigDateChars, ?dod1insigDateChars, ?dod2insigDateChars) AS ?dodComInsigDateChars)
BIND(SUBSTR(?dod1fullStr, 1, STRLEN(?dod1fullStr) - 10 - ?dodComInsigDateChars) AS ?dod1ComSigStr)
BIND(SUBSTR(?dod2fullStr, 1, STRLEN(?dod2fullStr) - 10 - ?dodComInsigDateChars) AS ?dod2ComSigStr)
BIND(STRDT(CONCAT(?dod1ComSigStr, SUBSTR("0000000000000000-01-01T00:00:00Z", 23 - ?dodComInsigDateChars)), xsd:dateTime) AS ?dod1ComSig)
BIND(STRDT(CONCAT(?dod2ComSigStr, SUBSTR("0000000000000000-01-01T00:00:00Z", 23 - ?dodComInsigDateChars)), xsd:dateTime) AS ?dod2ComSig)
BIND((CEIL(ABS((?dod1ComSig - ?dod2ComSig) / 3.652425))) / 100 AS ?doddiff)
BIND(BOUND(?dobdiff) AS ?dobdiffbound)
BIND(BOUND(?doddiff) AS ?doddiffbound)
BIND(IF(BOUND(?dobdiff), ?dobdiff, 0) AS ?dobdiffSf)
BIND(IF(BOUND(?doddiff), ?doddiff, 0) AS ?doddiffSf)
BIND((xsd:integer(?dobdiffbound) + xsd:integer(?doddiffbound)) AS ?numOfDateDiffs)
BIND((CEIL((?dobdiffSf + ?doddiffSf) / ?numOfDateDiffs * 100) / 100) AS ?meandiff)
BIND(IF(?dob1Prec < ?dob2Prec, ?dob1Prec, ?dob2Prec) AS ?dobComPrec)
BIND(IF(?dod1Prec < ?dod2Prec, ?dod1Prec, ?dod2Prec) AS ?dodComPrec)
BIND(BOUND(?dobComPrec) AS ?dobComPrecBound)
BIND(BOUND(?dodComPrec) AS ?dodComPrecBound)
BIND(IF(BOUND(?dobComPrec), ?dobComPrec, 0) AS ?dobComPrecSf)
BIND(IF(BOUND(?dodComPrec), ?dodComPrec, 0) AS ?dodComPrecSf)
BIND((xsd:integer(?dobComPrecBound) + xsd:integer(?dodComPrecBound)) AS ?numOfComPrecBound)
BIND((?dobComPrecSf + ?dodComPrecSf) / ?numOfComPrecBound AS ?meanPrec)
}
ORDER BY (!(?dobdiffbound) && !(?doddiffbound)) ?meandiff (?numOfDateDiffs * -1) (?meanPrec * -1) ?itemName
LIMIT 500
Query found at
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
v32("?dob1ComSig")
v30("?dob1ComSigStr")
v12("?dob1Prec")
v18("?dob1SignStr")
v11("?dob1Val")
v19("?dob1dispStr"):::projected
v13("?dob1fullStr")
v17("?dob1insigDateChars")
v14("?dob1insigDayChars")
v15("?dob1insigMonthChars")
v16("?dob1insigYearChars")
v33("?dob2ComSig")
v31("?dob2ComSigStr")
v21("?dob2Prec")
v27("?dob2SignStr")
v20("?dob2Val")
v28("?dob2dispStr"):::projected
v22("?dob2fullStr")
v26("?dob2insigDateChars")
v23("?dob2insigDayChars")
v24("?dob2insigMonthChars")
v25("?dob2insigYearChars")
v29("?dobComInsigDateChars")
v61("?dobComPrec")
v63("?dobComPrecBound")
v65("?dobComPrecSf")
v34("?dobdiff"):::projected
v59("?dobdiffSf")
v59("?dobdiffbound")
v56("?dod1ComSig")
v54("?dod1ComSigStr")
v36("?dod1Prec")
v42("?dod1SignStr")
v35("?dod1Val")
v43("?dod1dispStr"):::projected
v37("?dod1fullStr")
v41("?dod1insigDateChars")
v38("?dod1insigDayChars")
v39("?dod1insigMonthChars")
v40("?dod1insigYearChars")
v57("?dod2ComSig")
v55("?dod2ComSigStr")
v45("?dod2Prec")
v51("?dod2SignStr")
v44("?dod2Val")
v52("?dod2dispStr"):::projected
v46("?dod2fullStr")
v50("?dod2insigDateChars")
v47("?dod2insigDayChars")
v48("?dod2insigMonthChars")
v49("?dod2insigYearChars")
v53("?dodComInsigDateChars")
v62("?dodComPrec")
v64("?dodComPrecBound")
v66("?dodComPrecSf")
v58("?doddiff"):::projected
v60("?doddiffSf")
v59("?doddiffbound")
v7("?item"):::projected
v8("?item2"):::projected
v6("?itemName"):::projected
v68("?meanPrec"):::projected
v61("?meandiff"):::projected
v67("?numOfComPrecBound")
v61("?numOfDateDiffs")
v9("?occ1"):::projected
v10("?occ2"):::projected
a2((" "))
a1((" "))
a4((" "))
a3((" "))
a6((" "))
a5((" "))
a8((" "))
a7((" "))
c5(["wd:Q3391743"]):::iri
f0[["str(?item) < str(?item2)"]]
f0 --> v7
f0 --> v8
f1[["?itemName = 'en'"]]
f1 --> v6
v7 --"p:direct/P106"--> v9
v9 --"p:direct/P279"--> c5
subgraph union0[" Union "]
subgraph union0l[" "]
style union0l fill:#abf,stroke-dasharray: 3 3;
v7 --"skos:altLabel"--> v6
end
subgraph union0r[" "]
style union0r fill:#abf,stroke-dasharray: 3 3;
v7 --"rdfs:label"--> v6
end
union0r <== or ==> union0l
end
v8 --"p:direct/P106"--> v10
v10 --"p:direct/P279"--> c5
subgraph union1[" Union "]
subgraph union1l[" "]
style union1l fill:#abf,stroke-dasharray: 3 3;
v8 --"skos:altLabel"--> v6
end
subgraph union1r[" "]
style union1r fill:#abf,stroke-dasharray: 3 3;
v8 --"rdfs:label"--> v6
end
union1r <== or ==> union1l
end
subgraph minus2["MINUS"]
style minus2 stroke-width:6px,fill:pink,stroke:red;
subgraph union2[" Union "]
subgraph union2l[" "]
style union2l fill:#abf,stroke-dasharray: 3 3;
subgraph union3[" Union "]
subgraph union3l[" "]
style union3l fill:#abf,stroke-dasharray: 3 3;
v7 --"p:direct/P3373"--> v8
end
subgraph union3r[" "]
style union3r fill:#abf,stroke-dasharray: 3 3;
v7 --"p:direct/P460"--> v8
end
union3r <== or ==> union3l
end
end
subgraph union2r[" "]
style union2r fill:#abf,stroke-dasharray: 3 3;
v7 --"p:direct/P1889"--> v8
end
union2r <== or ==> union2l
end
end
subgraph minus3["MINUS"]
style minus3 stroke-width:6px,fill:pink,stroke:red;
subgraph union4[" Union "]
subgraph union4l[" "]
style union4l fill:#abf,stroke-dasharray: 3 3;
subgraph union5[" Union "]
subgraph union5l[" "]
style union5l fill:#abf,stroke-dasharray: 3 3;
v8 --"p:direct/P3373"--> v7
end
subgraph union5r[" "]
style union5r fill:#abf,stroke-dasharray: 3 3;
v8 --"p:direct/P460"--> v7
end
union5r <== or ==> union5l
end
end
subgraph union4r[" "]
style union4r fill:#abf,stroke-dasharray: 3 3;
v8 --"p:direct/P1889"--> v7
end
union4r <== or ==> union4l
end
end
subgraph optional0["(optional)"]
style optional0 fill:#bbf,stroke-dasharray: 5 5;
a1 -."wikibase:timeValue".-> v11
a1 --"wikibase:timePrecision"--> v12
v7 --"p:P569"--> a2
a2 --"p:statement/value/P569"--> a1
bind4[/"str(?dob1Val)"/]
v11 --o bind4
bind4 --as--o v13
bind5[/"if(?dob1Prec <= '10^^xsd:integer','3^^xsd:integer','0^^xsd:integer')"/]
v12 --o bind5
bind5 --as--o v14
bind6[/"if(?dob1Prec <= '9^^xsd:integer','3^^xsd:integer','0^^xsd:integer')"/]
v12 --o bind6
bind6 --as--o v15
bind7[/"if(?dob1Prec <= '8^^xsd:integer','9^^xsd:integer' - ?dob1Prec,'0^^xsd:integer')"/]
v12 --o bind7
bind7 --as--o v16
bind8[/"?dob1insigDayChars + ?dob1insigMonthChars + ?dob1insigYearChars"/]
v14 --o bind8
v15 --o bind8
v16 --o bind8
bind8 --as--o v17
bind9[/"substring(?dob1fullStr,'1^^xsd:integer',string-length(?dob1fullStr) - '10^^xsd:integer' - ?dob1insigDateChars)"/]
v13 --o bind9
v17 --o bind9
bind9 --as--o v18
bind10[/"concat(?dob1SignStr,substring('0000000000000000','1^^xsd:integer',?dob1insigYearChars))"/]
v18 --o bind10
v16 --o bind10
bind10 --as--o v19
end
subgraph optional1["(optional)"]
style optional1 fill:#bbf,stroke-dasharray: 5 5;
a3 -."wikibase:timeValue".-> v20
a3 --"wikibase:timePrecision"--> v21
v8 --"p:P569"--> a4
a4 --"p:statement/value/P569"--> a3
bind11[/"str(?dob2Val)"/]
v20 --o bind11
bind11 --as--o v22
bind12[/"if(?dob2Prec <= '10^^xsd:integer','3^^xsd:integer','0^^xsd:integer')"/]
v21 --o bind12
bind12 --as--o v23
bind13[/"if(?dob2Prec <= '9^^xsd:integer','3^^xsd:integer','0^^xsd:integer')"/]
v21 --o bind13
bind13 --as--o v24
bind14[/"if(?dob2Prec <= '8^^xsd:integer','9^^xsd:integer' - ?dob2Prec,'0^^xsd:integer')"/]
v21 --o bind14
bind14 --as--o v25
bind15[/"?dob2insigDayChars + ?dob2insigMonthChars + ?dob2insigYearChars"/]
v23 --o bind15
v24 --o bind15
v25 --o bind15
bind15 --as--o v26
bind16[/"substring(?dob2fullStr,'1^^xsd:integer',string-length(?dob2fullStr) - '10^^xsd:integer' - ?dob2insigDateChars)"/]
v22 --o bind16
v26 --o bind16
bind16 --as--o v27
bind17[/"concat(?dob2SignStr,substring('0000000000000000','1^^xsd:integer',?dob2insigYearChars))"/]
v27 --o bind17
v25 --o bind17
bind17 --as--o v28
end
bind18[/"if(?dob1insigDateChars > ?dob2insigDateChars,?dob1insigDateChars,?dob2insigDateChars)"/]
v17 --o bind18
v26 --o bind18
bind18 --as--o v29
bind19[/"substring(?dob1fullStr,'1^^xsd:integer',string-length(?dob1fullStr) - '10^^xsd:integer' - ?dobComInsigDateChars)"/]
v13 --o bind19
v29 --o bind19
bind19 --as--o v30
bind20[/"substring(?dob2fullStr,'1^^xsd:integer',string-length(?dob2fullStr) - '10^^xsd:integer' - ?dobComInsigDateChars)"/]
v22 --o bind20
v29 --o bind20
bind20 --as--o v31
bind21[/"STRDT(concat(?dob1ComSigStr,substring('0000000000000000-01-01T00:00:00Z','23^^xsd:integer' - ?dobComInsigDateChars)),'xsd:dateTime')"/]
v30 --o bind21
v29 --o bind21
bind21 --as--o v32
bind22[/"STRDT(concat(?dob2ComSigStr,substring('0000000000000000-01-01T00:00:00Z','23^^xsd:integer' - ?dobComInsigDateChars)),'xsd:dateTime')"/]
v31 --o bind22
v29 --o bind22
bind22 --as--o v33
bind23[/"numeric-ceil(numeric-abs(?dob1ComSig - ?dob2ComSig / '3.652425^^xsd:decimal')) / '100^^xsd:integer'"/]
v32 --o bind23
v33 --o bind23
bind23 --as--o v34
subgraph optional2["(optional)"]
style optional2 fill:#bbf,stroke-dasharray: 5 5;
a5 -."wikibase:timeValue".-> v35
a5 --"wikibase:timePrecision"--> v36
v7 --"p:P570"--> a6
a6 --"p:statement/value/P570"--> a5
bind24[/"str(?dod1Val)"/]
v35 --o bind24
bind24 --as--o v37
bind25[/"if(?dod1Prec <= '10^^xsd:integer','3^^xsd:integer','0^^xsd:integer')"/]
v36 --o bind25
bind25 --as--o v38
bind26[/"if(?dod1Prec <= '9^^xsd:integer','3^^xsd:integer','0^^xsd:integer')"/]
v36 --o bind26
bind26 --as--o v39
bind27[/"if(?dod1Prec <= '8^^xsd:integer','9^^xsd:integer' - ?dod1Prec,'0^^xsd:integer')"/]
v36 --o bind27
bind27 --as--o v40
bind28[/"?dod1insigDayChars + ?dod1insigMonthChars + ?dod1insigYearChars"/]
v38 --o bind28
v39 --o bind28
v40 --o bind28
bind28 --as--o v41
bind29[/"substring(?dod1fullStr,'1^^xsd:integer',string-length(?dod1fullStr) - '10^^xsd:integer' - ?dod1insigDateChars)"/]
v37 --o bind29
v41 --o bind29
bind29 --as--o v42
bind30[/"concat(?dod1SignStr,substring('0000000000000000','1^^xsd:integer',?dod1insigYearChars))"/]
v42 --o bind30
v40 --o bind30
bind30 --as--o v43
end
subgraph optional3["(optional)"]
style optional3 fill:#bbf,stroke-dasharray: 5 5;
a7 -."wikibase:timeValue".-> v44
a7 --"wikibase:timePrecision"--> v45
v8 --"p:P570"--> a8
a8 --"p:statement/value/P570"--> a7
bind31[/"str(?dod2Val)"/]
v44 --o bind31
bind31 --as--o v46
bind32[/"if(?dod2Prec <= '10^^xsd:integer','3^^xsd:integer','0^^xsd:integer')"/]
v45 --o bind32
bind32 --as--o v47
bind33[/"if(?dod2Prec <= '9^^xsd:integer','3^^xsd:integer','0^^xsd:integer')"/]
v45 --o bind33
bind33 --as--o v48
bind34[/"if(?dod2Prec <= '8^^xsd:integer','9^^xsd:integer' - ?dod2Prec,'0^^xsd:integer')"/]
v45 --o bind34
bind34 --as--o v49
bind35[/"?dod2insigDayChars + ?dod2insigMonthChars + ?dod2insigYearChars"/]
v47 --o bind35
v48 --o bind35
v49 --o bind35
bind35 --as--o v50
bind36[/"substring(?dod2fullStr,'1^^xsd:integer',string-length(?dod2fullStr) - '10^^xsd:integer' - ?dod2insigDateChars)"/]
v46 --o bind36
v50 --o bind36
bind36 --as--o v51
bind37[/"concat(?dod2SignStr,substring('0000000000000000','1^^xsd:integer',?dod2insigYearChars))"/]
v51 --o bind37
v49 --o bind37
bind37 --as--o v52
end
bind38[/"if(?dod1insigDateChars > ?dod2insigDateChars,?dod1insigDateChars,?dod2insigDateChars)"/]
v41 --o bind38
v50 --o bind38
bind38 --as--o v53
bind39[/"substring(?dod1fullStr,'1^^xsd:integer',string-length(?dod1fullStr) - '10^^xsd:integer' - ?dodComInsigDateChars)"/]
v37 --o bind39
v53 --o bind39
bind39 --as--o v54
bind40[/"substring(?dod2fullStr,'1^^xsd:integer',string-length(?dod2fullStr) - '10^^xsd:integer' - ?dodComInsigDateChars)"/]
v46 --o bind40
v53 --o bind40
bind40 --as--o v55
bind41[/"STRDT(concat(?dod1ComSigStr,substring('0000000000000000-01-01T00:00:00Z','23^^xsd:integer' - ?dodComInsigDateChars)),'xsd:dateTime')"/]
v54 --o bind41
v53 --o bind41
bind41 --as--o v56
bind42[/"STRDT(concat(?dod2ComSigStr,substring('0000000000000000-01-01T00:00:00Z','23^^xsd:integer' - ?dodComInsigDateChars)),'xsd:dateTime')"/]
v55 --o bind42
v53 --o bind42
bind42 --as--o v57
bind43[/"numeric-ceil(numeric-abs(?dod1ComSig - ?dod2ComSig / '3.652425^^xsd:decimal')) / '100^^xsd:integer'"/]
v56 --o bind43
v57 --o bind43
bind43 --as--o v58
bind44[/"bound(?dobdiff)"/]
v34 --o bind44
bind44 --as--o v59
bind45[/"bound(?doddiff)"/]
v58 --o bind45
bind45 --as--o v59
bind46[/"if(bound(?dobdiff),?dobdiff,'0^^xsd:integer')"/]
v34 --o bind46
bind46 --as--o v59
bind47[/"if(bound(?doddiff),?doddiff,'0^^xsd:integer')"/]
v58 --o bind47
bind47 --as--o v60
bind48[/"http://www.w3.org/2001/XMLSchema#integer(?dobdiffbound) + http://www.w3.org/2001/XMLSchema#integer(?doddiffbound)"/]
v59 --o bind48
v59 --o bind48
bind48 --as--o v61
bind49[/"numeric-ceil(?dobdiffSf + ?doddiffSf / ?numOfDateDiffs * '100^^xsd:integer') / '100^^xsd:integer'"/]
v59 --o bind49
v60 --o bind49
v61 --o bind49
bind49 --as--o v61
bind50[/"if(?dob1Prec < ?dob2Prec,?dob1Prec,?dob2Prec)"/]
v12 --o bind50
v21 --o bind50
bind50 --as--o v61
bind51[/"if(?dod1Prec < ?dod2Prec,?dod1Prec,?dod2Prec)"/]
v36 --o bind51
v45 --o bind51
bind51 --as--o v62
bind52[/"bound(?dobComPrec)"/]
v61 --o bind52
bind52 --as--o v63
bind53[/"bound(?dodComPrec)"/]
v62 --o bind53
bind53 --as--o v64
bind54[/"if(bound(?dobComPrec),?dobComPrec,'0^^xsd:integer')"/]
v61 --o bind54
bind54 --as--o v65
bind55[/"if(bound(?dodComPrec),?dodComPrec,'0^^xsd:integer')"/]
v62 --o bind55
bind55 --as--o v66
bind56[/"http://www.w3.org/2001/XMLSchema#integer(?dobComPrecBound) + http://www.w3.org/2001/XMLSchema#integer(?dodComPrecBound)"/]
v63 --o bind56
v64 --o bind56
bind56 --as--o v67
bind57[/"?dobComPrecSf + ?dodComPrecSf / ?numOfComPrecBound"/]
v65 --o bind57
v66 --o bind57
v67 --o bind57
bind57 --as--o v68