@prefix math: . @prefix list: . @prefix str: . @prefix time: . @prefix log: . @prefix xsd: . @prefix fn: . @prefix galen: . @prefix med: . @prefix rpo: . @prefix e: . @prefix : . ### test data :a :b :d. :ng1 :namedGraph {:b :a :c. :e :d :f. :h :g :i. :k :j :l}. :ng2 :namedGraph {:b :a :c. :e :d :f. :h :g :i}. :s :p {:s1 :p1 :o1}, {:s2 :p2 :o2. :s3 :p3 :o3}. ### test cases {?SCOPE e:findall (?O {:s :p ?O} ({:s1 :p1 :o1} {:s2 :p2 :o2. :s3 :p3 :o3}))} => {:ef1 :result true}. {({:a :b :c. :d :e :f} {}) e:graphDifference {:a :b :c. :d :e :f}} => {:egd1 :result true}. {({} {:d :e :f}) e:graphDifference {}} => {:egd2 :result true}. {({:a :b :c. :d :e :f} {:d :e :f}) e:graphDifference {:a :b :c}} => {:egd3 :result true}. {({:a :b :c. :d :e :f. :g :h :i} {?d :e :f}) e:graphDifference {:a :b :c. :g :h :i}} => {:egd4 :result true}. {({:a :b :c} {:a :b :c. :u :v :w. :x :y :z}) e:graphDifference {}} => {:egd5 :result true}. {({}) e:graphIntersection {}} => {:egi1 :result true}. {({} {:d :e :f}) e:graphIntersection {}} => {:egi2 :result true}. {({:a :b :c. :d :e :f. :g :h :i} {}) e:graphIntersection {}} => {:egi3 :result true}. {({:a :b :c. :d :e :f} {:d :e :f}) e:graphIntersection {:d :e :f}} => {:egi4 :result true}. {({:a :b :c. :d :e :f. :g :h :i} {:g :h :i. ?d :e :f} {?d :e :f. :g :h :i}) e:graphIntersection {?d :e :f. :g :h :i}} => {:egi5 :result true}. {((8 :d) (5 :a) (6 :b) (7 :a) (9 :d) (4 :d)) e:length 6} => {:el1 :result true}. {(8 5 6 7 9 4) e:max 9} => {:em1 :result true}. {(8 5 6 7 9 4) e:min 4} => {:em2 :result true}. {:a :b :d. _: e:optional {:g :h :i}} => {:eo1 :result true}. {((4 :d) (5 :a) (6 :b) (7 :a) (8 :d) (9 :d)) e:reverse ((9 :d) (8 :d) (7 :a) (6 :b) (5 :a) (4 :d))} => {:er1 :result true}. {((8 :d) (5 :a) (6 :b) (7 :a) (9 :d) (4 :d)) e:sort ((4 :d) (5 :a) (6 :b) (7 :a) (8 :d) (9 :d))} => {:es1 :result true}. {"http://www.agfa.com/w3c/euler" e:wwwFormEncode "http%3a%2f%2fwww.agfa.com%2fw3c%2feuler"} => {:ew1 :result true}. {"Hello World!" e:wwwFormEncode "Hello%20World%21"} => {:ew2 :result true}. {("2000/10/swap/" "http://www.w3.org/") fn:resolve-uri "http://www.w3.org/2000/10/swap/"} => {:fnr1 :result true}. {("2006-12-14" 5 2) fn:substring "12"} => {:fns1 :result true}. {("http://www.co-ode.org/ontologies/galen#Head" "#") fn:substring-after "Head"} => {:fnsa1 :result true}. {("http://www.co-ode.org/ontologies/galen#Head" "#") fn:substring-before "http://www.co-ode.org/ontologies/galen"} => {:fnsb1 :result true}. {((:a :b :c) (:d :e)) list:append (:a :b :c :d :e)} => {:lista1 :result true}. {(:a :b :c) list:first :a} => {:listf1 :result true}. {:c list:in (:a :b :c)} => {:listi1 :result true}. {(:a :b :c) list:last :c} => {:listl1 :result true}. {(:a :b :c :d) list:member :b} => {:listm1 :result true}. {(:a :b :c) list:rest (:b :c)} => {:listr1 :result true}. {({}) log:conjunction {}} => {:logc1 :result true}. {({} {:u :v :w} {:x :y :z. :j :k :l}) log:conjunction {:u :v :w. :x :y :z. :j :k :l}} => {:logc2 :result true}. {({} {:u :v :w} {} {}) log:conjunction {:u :v :w}} => {:logc3 :result true}. {(:a ?A) log:equalTo (?B :b)} => {:loge1 :result true}. {{:b :a :c. :e :d :f. :h :g :i. :k :j :l} log:includes {:k :j :l. ?X :d ?Z}} => {:logi1 :result true}. {:ng1 :namedGraph ?F. ?F log:includes {:k :j :l. ?X :d ?Y}} => {:logi2 :result true}. { log:semantics ?F. ?F log:includes {med:aspirinHighDose med:excludedFor med:AllergyForAspirin}} => {:logi3 :result true}. {:a log:notEqualTo :b} => {:logne1 :result true}. {{:b :a :c. :e :d :f. :h :g :i} log:notIncludes {:e :d :f. :b :e :c}} => {:logni1 :result true}. {:ng2 :namedGraph ?F. ?F log:notIncludes {:e :d :f. :b :e :c}} => {:logni2 :result true}. { log:semantics ?F. ?F log:notIncludes {med:aspirinLowDose med:excludedFor med:SevereAsthma}} => {:logni3 :result true}. { log:uri "http://eulersharp.sourceforge.net/2006/02swap/med#Fever"} => {:logu1 :result true}. {:betaBlocker log:uri "http://eulersharp.sourceforge.net/2007/07test#betaBlocker"} => {:logu2 :result true}. {(1 1) math:difference 0} => {:mathd1 :result true}. {("2009-01-25T12:00:00"^^xsd:dateTime "1970-01-01T00:00:00"^^xsd:dateTime) math:difference 1232884800.0} => {:mathd2 :result true}. {(2 ?X) math:exponentiation 8.0. (4.0 ?X) math:product 12.0} => {:mathe1 :result true}. {2 math:greaterThan 1} => {:mathg1 :result true}. {"02" math:greaterThan "1"} => {:mathg2 :result true}. {7 math:notLessThan 5} => {:mathnl1 :result true}. {(1 1) math:sum 2} => {:maths1 :result true}. {("1" "1") math:sum 2} => {:maths2 :result true}. {("1970-01-01T00:00:00+01:00"^^xsd:dateTime) math:sum -3600.0} => {:maths3 :result true}. {("P1D"^^xsd:duration) math:sum 86400.0} => {:maths4 :result true}. {("eul" "er") str:concatenation "euler"} => {:strc1 :result true}. {"Tim" str:containsIgnoringCase "IM"} => {:strci1 :result true}. {"abracadabra" str:matches "(a|b|r|c|d)+"} => {:strm1 :result true}. {"euler" str:startsWith "eu"} => {:strs1 :result true}. {"2006-12-14"^^xsd:date time:day "14"} => {:timed1 :result true}. {"2006-12-14"^^xsd:date time:month "12"} => {:timem1 :result true}. {"2006-12-14"^^xsd:date time:year "2006"} => {:timey1 :result true}. ### test framework {?P => {?S :result ?R}. ?S :result ?R} => {?P a :PASS}. {?P => {?S :result ?R}. (?SCOPE 1) e:findall ((?R) {?S :result ?R} ())} => {?P a :FAIL}.